Assembly Instructions for the SG-µMD2 Version 1.22 PCB

Version 1.08 (1-Jan-23)

Copyright © 1994-2023
Samuel M. Goldwasser
--- All Rights Reserved ---

For contact info, please see the
Sci.Electronics.Repair FAQ Email Links Page.

Reproduction of this document in whole or in part is permitted if both of the following conditions are satisfied:
  1. This notice is included in its entirety at the beginning.
  2. There is no charge except to cover the costs of copying.

Table of Contents


Author and Copyright

Author: Samuel M. Goldwasser

For contact info, please see the Sci.Electronics.Repair FAQ Email Links Page.

Copyright © 1994-2022
All Rights Reserved

Reproduction of this document in whole or in part is permitted if both of the following conditions are satisfied:

1. This notice is included in its entirety at the beginning.
2. There is no charge except to cover the costs of copying.


µMD2 is intended for use in hobbyist, experimental, research, and other applications where a bug in the hardware, firmware, or software, will not have a significant impact on the future of the Universe or anything else. While every effort has been made to avoid this possibility, µMD2 is an on-going development effort. We will not be responsible for any consequences of such bugs including but not limited to damage to the construction crane you picked up on eBay for $1.98 + shipping, financial loss from ending up in the Antarctic when the compass orientation provided by your home-built ring laser gyro was off by 1,536 degrees, or bruising to your pet's ego from any number of causes directly or indirectly related to µMD2. ;-)


Thanks to Jan Beck for selecting the Teensy 4.0 and writing and testing initial versions of the firmware and GUI. And for getting me interested in actually getting involved in this project. If anyone had told me six months ago that I'd be writing code in C, MIPS assembly language, and Visual Basic - and enjoying it (sort of) - I would have suggested they were certifiably nuts. ;-) Jan maintains the master GUI source code as well as slightly different versions of the firmware for µMD2 and µMD1 and a development blog on the overall projects.


Note: Links to Web pages external to this document will open in a single separate tab or window depending on your browser's settings.

The SG-µMD2 kit of parts includes everything necessary for either a 1 axis or 3 axis µMD2 readout without sensors. The only difference between the versions for homodyne and heterodyne is that for the latter, parts for only 4 of the 6 inputs are required for a 3-axis system. So there is no need to populate components associated with U3.

Changes from V1.00: The input connectors have switched from 5 to 6 pin to provide a +5 V source for encoder hardware, connections for the heterodyne signals have been added, the jumper blocks for the OLED have been moved slightly apart to prevent the inadvertant connection of +5 V to GND. ;-(

This document provides detailed instructions for assembling the SG-µMD2 PCB Version 1.22. If yours is V1.23, see Assembly Instructions for the SG-µMD2 Version 1.23 PCB. And if there are still any unassembled V1.00s out there, see that manual. ;-)

All components are through-hole and except as noted, should seat flush on the PCB.

A low power soldering iron with narrow tip and thin (e.g., #22 AWG) rosin-core solder will be required. DO NOT even think about attempting this without suitable soldering equipment some experience in fine soldering. It's well worth the investment (both in $ and practice). A Weller soldering gun or propane torch will not work. :) Rosin core solder is also essential. And while I'm quite confident that you never make mistakes, a means of component removal such as a de-soldering pump (e.g., SoldaPullt™) will be highly desirable. Screwing up component removal can easily ruin the PCB and is not covered under the unlimited limited warranty. :-) The total investment should not exceed $100. And it will last almost a lifetime.

Proper soldering technique will be such that the exposed solder on each pad should be shiny with a concave profile. It should not be a blob and just needs to fill the hole. Solder is not glue. Some excess solder doesn't hurt anything but looks unprofessional. A 10X magnifier may come in handy for inspection. Residual rosin can be cleaned off with isopropyl alcohol or an environmentally-friendly electronic solvent. However, leaving the rosin alone is also acceptable (if ugly).

Total assembly time for a single axis system should be under one hour for someone proficient in fine soldering. Cutting component leads to 1/4 to 3/8 inch before installation will simplify soldering as the long leads won't be poking you in the face. :( :) Then trim flush after soldering.

IMPORTANT: All the resistors are labeled using the standard color as shown below. Normal color vision is required to be able to identify these reliably. Even then, it is sometimes difficult to confirm the values that differ in one band or in poor lighting. And a magnifier may be required to read some markings on these and other components. Confirm with a multimeter.\ If in doubt, have someone else assemble the kit or assist you.

For those not familiar with the common resistor color code (Black/0, Blown/1, Red/2, Orange/3, Yellow/4, Green/5, Blue/6, Violet/7, Gray/8, White/9), two of the resistors near the 8 pin UA9637 ICs in the layout diagram are are 680 (blue-gray-brown or 68 with 1 zero) ohms and 330 (33 with 1 zero) ohms. The gold stripe indicates 5 percent tolerance on the value but for the use here, tolerance doesn't matter. (It's possible the resistors you use will have 4 stripes where 3 of them are the value and the 4th is the multiplier, along with one for tolerance. If in doubt confirm the value with a multimeter.) The chart below is from Digikey. (If the link decays, a Web search will readily locate another one.)

Resistor Color Code Chart (from the Digikey Web site)

Schematic for the SG-µMD2 Version 1.22

The schematic for the SG-µMD2 Version 1.22 PCB may be found at SG-µMD2 Version 1.4 Schematic. This includes everything on the board for a three axis homodyne or heterodyne system with the OLED display.(The schematic and PCB version numbers do not necessarily match.)

Printing out the schematic and having it available for reference while assembling the PCB may be helpful.

SG-µMD2 PCB Layout Version 1.22

Refer to the SG-µMD2 board layout below. Clicking on these will bring up higher resolution versions in a single separate tab or window depending on your browser settings:


SG-µMD2 V1.22 PCB Layout Diagrams with 100 & 150 Ohm Terminators (Left), Minimal Single Axis V1.00 PCB, and Three Axis Populated V1.00 PCB with OLED Display (Right)
(JB1 and JB2 Jumpered on Layout Diagrams for OLED GND on the Left and VCC on the Right)

(All kits going forward will have red and green LEDs for the A and B signals; the original prototype was all boring green. Please pay attention to the values for the current limiting resistors as they differ by more than an order of magnitude for the red and green LEDs to equalize their perceived brightness. Where the signal LEDs are all green, the R3,R8,R13,R18,R23,R28 will be 10K ohms.)

In addition to the resistor color codes and component references, the layout diagram also shows the signal locations for homodyne and heterodyne on the Teensy.

The populated PCB shows all components required for a three axis system with the OLED display. The terminating resistors (near the screw terminal blocks) have not been installed since their value may depend on the specific configuration, and can often be left out. Five pin headers may be substituted for the screw terminal blocks if desired. The signal LEDs shown are all green in the photo, sorry. :) (These show the V1.00 PCB, updated versions will be forthcoming.)

Summary of SG-µMD2 Jumper Locations

The following show the locations of all of the possible wire jumpers that may be needed.


SG-µMD2 V1.22 PCB Layout Diagrams with Jumpers (Blue); 100 Ohm Terminators (Left) and 150 Ohm Terminators (Right)

Jumper Description (in blue)

Step-by-Step "Heathkit™-style" Assembly Instructions for SG-µMD2 PCB Version 1.22

Print out this document so each step can be checked off ( ) as it is completed.

The parts list below assumes populating the SG-µMD2 for 3 homodyne axes with the OLED display. So for a single axis system, some parts in this list may not be present and/or there is no need to install those associated with channels 2 and 3 and/or for the OLED. Note that a 3-axis heterodyne system requires the same peripheral parts as a 2-axis homodyne system.

IMPORTANT: The color of the OLED display (if present) may be yellow/blue (yellow for first two lines of text with blue for the remaining 6 lines), all blue, or all white. In addition and more importantly, they may differ slightly in their pinout and mounting hole type/location as follows (viewed with the pins at the top):

There may be other variations. The kits will generally have the Type 1 yellow/blue OLEDs.

  1. ( ) Confirm that all parts are present and undamaged:

    Core Parts:

    Peripheral Parts (1-Axis):

    OLED Parts:

    For a two or three axis homodyne system, the Peripheral Parts quantities will be multiplied by 2 or 3, respectively; for a three-axis heterodyne system, the Peripheral Parts quantities will be multiplied by 2. And the OLED parts will not be present, uh, for a system without the OLED. :)

    The "Optional" parts identified below can be omitted if that feature is not being implemented. The LEDs especially are not really that useful and with the default current limiting resistors, annoying bright. So you may want to at least experiment with higher values of resistors to tame them.

    IMPORTANT: LEDs are really fragile with respect to soldering and tend to die open easily. Make sure the leads are not stressed when heat is applied - the LED should be able to jiggle slightly in the holes - and keep the iron on them for as little time as possible.

  2. ( ) Install F1 (1 amp fuse) or jumper. This will normally just be a jumper. But where the PCB is feeding +5 VDC power to an external encoder or the like, a fuse should be used (normally not included in the kits).

  3. ( ) Install R0 (10K ohms) under where the Teensy socket will go.

  4. ( ) Install R31 (10 ohms) under where the Teensy socket will go.

  5. ( ) If there is a large DIP socket, it is for for MPB1, the Teensy 4.0, and may need to be trimmed to 28 positions. Rather than the DIP socket, there may a 40 pin deep socket strip requiring cutting and trimming, or a pair of 14 pin deep socket strips that my just require smoothing at the ends.. If cutting is required, DO NOT attempt to slice it between pin positions - sacrifice one position and then file the ends smooth.

  6. ( ) Carefully insert the socket or strips into the PCB confirming no bent pins. For the socket, rather than flipping a coin :), orient it so the large cutout faces the USB to the left. Then solder two corners and confirm it seats flat, then solder the other pins. Inspect for solder bridges and unsoldered pins. For the stips, take care that they are straight up and flush with the PCB before soldering. Then solder the end pins, check that it seats properly, then solder ALL the other pins. DO NOT attempt to plug in the Teensy until ALL pins are soldered.

  7. ( ) Install the 8 pin sockets for U1 (single axis) and U2,U3 (three axes). Note orientation - the cutout goes to the right as viewed in the layout diagram. Solder and inspect for solder bridges and unsoldered pins.

  8. ( ) Install C1 (0.1 µF, single axis) and C2,C3 (three axes). C1,C2,C3 are the oval outlines to the right of U1,U2,U3 respectively.

  9. ( ) Install R4,R9 (330 ohms, single axis) and R14,R19,R24,R29 (three axes).

  10. ( ) Install R5,R10 (680 ohms, single axis) and R15,R20,R25,R30 (three axes).

  11. ( ) Install LD0 (3 mm blue LED). The anode is the longer lead and goes to the right as viewed in the layout diagram. The flat is the cathode and goes to the left. Cut the leads about 1/10" from the body if the LED can't be inserted to sit flush on the PCB. Take care not to overheat or stress the leads on the LED when soldering. Be as quick as possible.

  12. ( ) Optional signal LEDs:

  13. ( ) Install J1 (screw terminal block, single axis) and J2,J3 (three axes). Make sure the entrance holes for the wires face away from the PCB! Solder the center pin and confirm they are flat on the PCB, then solder the others. Check for solder bridges and unsoldered pins.

    6 pin headers may substituted for the screw terminal blocks if desired.

  14. ( ) Carefully inspect for unsoldered pins, solder bridges and other blemishes. Correct as needed. THIS IS ESSENTIAL! It would be bad form to blow the brain due to an errant blob of solder. :(

  15. ( ) Test the Teensy before doing anything to it. If it fails this test, contact me before proceeding.

    Unplug the USB cable.

  16. ( ) Assemble the Teensy 4.0 PCB to the pin or socket strips. There will either be a pair of 14 pin female-male socket strips precut or the male to male pin strip that needs cutting. These steps are needed ONLY if the Teensy does not already have pins soldered.

    Solder a single pin near the center and confirm it seats flush, then solder the rest. To assist in alignment, the strips can be inserted in the 28 pin socket taking care not to push any of the individual pins out of position.

  17. ( ) Test the Teensy as above before plugging it into the SG-µMD2 PCB to confirm the soldering hasn't done anything bad. Then unplug the USB cable.

  18. ( ) Carefully plug the Teensy into the 28 pin socket. The USB socket faces off the left side of the PCB as shown in the layout diagram. Make sure all pins are seated and none are hanging off the socket. CAUTION: Make sure all the pins line up with their entry points in the socket to avoid squashing the leaf sprint contacts.

  19. ( ) Reattach the USB cable. The power LED should come on immediately and after a second or so, the Teensy LED should start flashing as before. Unplug the USB cable.

  20. ( ) Plug a UA9637 or UA9639 IC into the U1 position. The dot or cutout should face to the right - these ICs are upside-down compared to the Teensy part labeling as shown in the layout diagram. Confirm that no pins are bent over.

  21. ( ) Reattach the USB cable. The power LED and possibly one or both LEDs near U1 (if installed) should come on immediately and after a few seconds, the Teensy LED should start flashing as before.

  22. ( ) (Optional) Here is the nifty bit. ;-) Moisten a finger (doesn't matter which one) and touch the pins on J1. With some practice, it will be possible to make the LEDs near U1 to go on and off as the input to the line receivers cause them to toggle. While the behavior is not really predictable, just the fact that they change indicates the the line receiver is working. Since the UA9637 has some hysteresis, it latches but the slight charge from your electric personality is enough to toggle it. CAUTION: Don't get carried away, these parts can be damaged by static discharges. So, no cat's fur and plastic rods, please. :( ;-) (This will not be possible if the terminating resistors are installed, thus holding off on them for now.)

    If you're wondering how the OLED in the photo, above, can be displaying such large numbers with nothing attached to the inputs, it was done this way except the board was plugged in a USB charger, not a USB port. That must have a lot of ripple relative to my moistened finger, enough to easily trigger the UA9637 even with its hysteresis.

  23. ( ) Start the µMD GUI and select the COM port used to upload the firmware. The graph should start scrolling. But now, if you do the moistened finger thing, it should be possible to get the displacement to change for Axis 1. Once confirmed, unplug the USB cable.

  24. ( ) Repeat the previous 3 steps for axes 2 and 3 (U2/J2 and U3/J3) if installed.

  25. ( ) Heterodyne systems ONLY and ONLY if Interpolation is enabled in the GUI. Add the following jumper wires on the bottom of the SG-µMD2 PCB on the headers as required depending on the number of axes. Use thin insulated wire and take care to avoid solder bridges. The second attachment point for each jumper can be to the appropriate labeled header pad. The following assumes the use of V2.xx or later firmware as interpolation does not exist before then. "xx" to be determined. Jumpers are shown in blue going to the two long headers on the diagrams below.

    Single axis:

    Three axis:

  26. ( ) Optional OLED:

  27. ( ) (Optional) Termination. There are 3 options, see description, above and below. Where the driver is DC-coupled (using an IC direct, normally used with commercial homodyne systems), the 100 ohm termination which is between the two outputs should be satisfactory. Where it is AC-coupled (capacitor or transformer, normally with heterodyne systems), the 150 ohm termination to GND should be used. If in doubt or for the combined homodyne and heterodyne kits, install a suitable socket. (Not included.) So, only one of the following may be required:

    If in doubt, cut the female-male socket strip into pieces and solder them in so alternative termination schemes can be tried without requiring unsoldering.

  28. ( ) (Optional) External power. Pin 3 of J1,J2,J3 is for +5 VDC power to external hardware line encoders. Since it comes from USB, the current is limited to the capacity of the USB port minus what is used by the hardware on the PCB. Pin 3 on J1,J2,J3 is connected to JB3-2 located at the lower left of the PCB. JB3-1 was supposed to be +5 VDC on the PCB but apparently the last revision of the netlist never made it onto the PCB, so pin 1 of JB3 doesn't go anyhwere. Oops. :( :) Add a jumper from JB3-2 to the upper pin of R32. (If anyone reading this is old enough to remember the imfamous 100 MHz Pentium floating point bug where FDIV returned slightly incorrect results, this was a similar error of a block of code not getting uploaded.)

Congratulations, you're all set to go. Order that construction crane in need of a controller with free shipping on eBay. ;-)

Reference Voltage for Single Ended Input

Where the input signals are differential with approximately equal average levels and an amplitude more than about 0.5 V, the UA9637 RS422 receivers are all that's needed. This includes Quad-Sin-Cos which will automagically convert to digital, but only if they have sufficient drive current. Direct photodiode signals probably will not work without buffering.

But where the input signals are single-ended such as normal TTL or only one polarity of a Quad-Sin-Cos, there are locations on the SG-µMD2 PCB for a reference voltage divider.

        R32 /
            +------+-----o Threshold Voltage
            |      |
            \     _|_
        R33 /  C4 ---
            \     _|_
            /      -

The threhsold voltage should be selected to be approximately mid-way between the nominal high and low levels. For standard TTL, this would be 1.4 V. The resistor values can be in the 10K range with C4 of 0.5 µF.

However, note that the line receivers have a relatively high input bias current so they cannot be driven directly from a low current source like a photodiode - an preamp must be used. Check the spec sheet if in doubt.

IMPORTANT: Due to a screwup on the PCB artwork, the +5 pad of R32 is NOT connected. So a jumper to any nearby +5 pad will be needed. If you are old enough to recall the Intel Pentium 100 floating point bug where a chunk of microode never got downloaded, this is similar. The last bit of the netlist was somehow omitted. :( :)

Parts List for SG-µMD2 Version 1.22

These are the required parts for up to a 3 axis system. Some parts like the LEDs (along with their associated current limiting resistors) can also be omitted if desired. Refer to the schematic for more details.

 Reference   Type      Part/Value     Function
    C1     Capacitor 0.1 µF           U1 5V bypass (3)
    C2*    Capacitor 0.1 µF           U2 5V bypass (3)
    C3*    Capacitor 0.1 µF           U3 5V bypass (3)
    C4     Capacitor 0.1 µF           Reference (TR) 5V bypass (3)

    F1     Fuse, 1 A                  AUX +5V fuse (optional)

    J1     Terminal Blk or Hdr 6 pin  1A/1B/REF/MEAS1 input
    J2*    Terminal Blk or Hdr 6 pin  2A/2B/MEAS2 input
    J3*    Terminal Blk or hdr 6 pin  3A/3B/MEAS3 input

   LD0     LED       3 mm LED        Blue Power LED

   LD1+    LED       3 mm LED        Red 1A/REF LED
   LD2+    LED       3 mm LED        Green 1B/MEAS1 LED
   LD3*+   LED       3 mm LED        Red 2A/MEAS2 LED
   LD4*+   LED       3 mm LED        Green 2B/MEAS3 LED
   LD5*+   LED       3 mm LED        Red 3A LED
   LD6*+   LED       3 mm LED        Green 3B LED

   MPB1    CPU       Teensy 4.0      Teensy 4.0 soldered to header

   PCB1    PCB       SG-µMD2-PCB     Blank SG-µMD2 V1.22 PCB

    R0     Resistor  10K ohm, 1/8 W   Power LED current limiting

    R1     Resistor  100 ohm, 1/4 W   IN1 termination
    R3+    Resistor  1K ohm, 1/8 W    1A/REF red LED current limiting (1)
    R4     Resistor  330 ohm, 1/8 W   1A/REF 5V->3.3 V level shift
    R5     Resistor  680 ohm, 1/8 W   1A/REF 5V->3.3 V level shift

    R6     Resistor  100 ohm, 1/4 W   IN2 termination
    R8+    Resistor  1K ohm, 1/8 W    1B/MEAS1 green LED current limiting (2)
    R9     Resistor  330 ohm, 1/8 W   1B/MEAS1 5V->3.3 V level shift
    R10    Resistor  680 ohm, 1/8 W   1B/MEAS1 5V->3.3 V level shift

    R11*   Resistor  100 ohm, 1/4 W   IN3 termination
    R13*+  Resistor  1K ohm, 1/8 W    2A/MEAS2 red LED current limiting (1)
    R14*   Resistor  330 ohm, 1/8 W   2A/MEAS2 5V->3.3 V level shift
    R15*   Resistor  680 ohm, 1/8 W   2A/MEAS2 5V->3.3 V level shift

    R16*   Resistor  100 ohm, 1/4 W   IN4 termination
    R18*+  Resistor  1K ohm,  1/8 W   2B/MEAS3 green LED current limiting (2)
    R19*   Resistor  330 ohm, 1/8 W   2B/MEAS3 5V->3.3 V level shift
    R20*   Resistor  680 ohm, 1/8 W   2B/MEAS3 5V->3.3 V level shift

    R21*   Resistor  100 ohm, 1/4 W   IN5 termination
    R23*+  Resistor  1K ohm, 1/8 W    3A red LED current limiting (1)
    R24*   Resistor  330 ohm, 1/8 W   3A 5V->3.3 V level shift
    R25*   Resistor  680 ohm, 1/8 W   3A 5V->3.3 V level shift

    R26*   Resistor  100 ohm, 1/4 W   IN6 termination
    R28*+  Resistor  1K ohm, 1/8 W    3B green LED current limiting (2)
    R29*   Resistor  330 ohm, 1/8 W   3B 5V->3.3 V level shift
    R30*   Resistor  680 ohm, 1/8 W   3B 5V->3.3 V level shift

    R31    Resistor  10 ohm, 1/8 W    V3.3 protect

    RP1    Resistor pack, 5x 150 ohm  IN1/IN2 Termination
    RP2    Resistor pack, 5x 150 ohm  IN3/IN4 Termination
    RP3    Resistor pack, 5x 150 ohm  IN5/IN6 Termination

   SKT1    Socket    28 pin, 600 mil  Socket for Teensy 4.0

   SKT2    Socket    8 pin, 300 mil   Socket for IN1/2/REF/MEAS1 line receiver
   SKT3*   Socket    8 pin, 300 mil   Socket for IN3/4/MEAS2/3 line receiver
   SKT4*   Socket    8 pin, 300 mil   Socket for IN5/6 line receiver

   SKT5+   Socket    40 pin, SIP      Socket strip for terminating resistors

    U1     IC        UA9637 or UA9639 REF/MEAS1 line receiver
    U2*    IC        UA9637 or UA9639 MEAS2/MEAS3 line receiver
    U3*    IC        UA9637 or UA9639 MEAS2/MEAS3 line receiver

"*" denotes parts that can be omitted for a single axis system. "+" denotes parts that are not required for µMD2.


  1. The actual value of these resistors may be 1K to 2.2K ohms.

  2. The actual value of these resistors may be 1K to 2.2K ohms XOR 22K to 47K ohms depending on whether normal or high brightness green LEDs are included in the kit.

  3. The 0.1 µF bypass caps do not have reference designators but they are next to pin 1 of U1, U2, and U3.

-- end V1.08 --