DIY Soldering Microscope with HDMI output and 8-25x Zoom

Once you have used a microscope for soldering 0402 and QFN SMD parts you don’t want to go back to solder-joint-guessing. Ideally it is a stereo microscope with a decent view window – like the Mantis Elite, an absolutely awesome device. Just a bit out of my basement lab budget. Then Dave on the EEVblog #585 showed off his Tagarno Magnus HD Digital Microscope. “Beauty!” yet again a bit pricey for my occasional use.

I wanted adjustable zoom so I can see the solder fillet on QFN’s when needed while not getting locked down into details during assembly. I asked my friend Benny, a passionate hobby photographer for some ideas … and that’s what he came up with:


A high zoom factor camera and some lenses from an analog SLR camera. Concept proof! Now we just need no-lag-HQ livestream to a big screen.. A version with a USB webcam worked, but required a computer and zoom was not enough. A quick test with a €50 Hilkinson 8-25x Zoom Monocular looked promising, so a Raspberry Pi camera module was ordered.

Putting it together was no easy task, since the lens alignment is crucial. A slider setup with Lego worked well and allowed me to adjust the camera one-sheet-of-a-paper at a time:


Some Ethylene vinyl acetate copolymer, high performance precision spacers and pressure cast mounting brackets where used to secure it in place. Hot glue, Lego bars and zip ties just sounded too cheap.

A Raspberry Pi B+ takes the serial camera signal to a live ethernet stream, records it or directly outputs it to HDMI:

raspivid -t 0 -rot 0 -fps 25

The final setup with 27+ cm working distance. 8-25x zoom with manual focus.



And this is what the output (raspistill) looks like. The red rectangle overlay shows the 1920 x 1080 default video output. Zoom is somewhere in the center of the 8-25x range. Picture is still a bit blurry as I have not yet adjusted the camera lens properly.



Xtreme Soldering – MSP430 Rocket Badge

Take Off

Hiking in Tirol (Tyrol, Austria) with a friend from TI. While searching for food he discovers a kit in his rucksack. Not something to eat, but hang on… as a serious hardware developer one never leaves the shop without some basic tools. True story.




Butan-gas (as in regular lighters) powered soldering iron rocks!

Soldering with natural heat protection


Location Faltegartenkögle 2.184m above sea level on OpenStreetMap


USB Isolation Card

While developing USB products I sometime have rather complex USB setups. My device under test is USB connected to one PC. Power comes from an external power supply and JTAG connection for debugging is connected to my development PC. Especially in the lab with different mains circuits for lab equipment, IT and IT2go,I sometimes run into issues with ground loops. Switching mode PSU like the one on my laptop are weird things…

So I created a small PCB that isolates USB data and power. This avoids ground loops and references and prevents dangerous voltages spreading from one side to the other damaging all equipment down the line.


The build is rather easy with an AnalogDevices USB iCoupler ADUM4160 and Texas Instruments isolated DC/DC converter DCR010505. The datacoupler requires one to set full speed or high speed USB2.0 based on the connected device – jumpers let you make that selection. To draw more than 1W power, there are 3 DC/DC converters in parallel. According to the datasheet this should work, but I have not tested it yet.

Gerbers and Schematic on Github.

All in all, it is now

  • safe(r) to develop on mains (I look at you E-Meter developers with non isolated debuggers hanging of your board)
  • create ±5V from one USB line (for those of you still weird devices like split  rail OpAmps – can’t you just use an Arduino for that?)
  • easy to use a single ended USB meter to a differential ground-free meter (I just love my cheap regression test setup)


The image above shows 2 MSP-EXP430F5529 LaunchPads. One is connected via the USB Isolation Card, the other is directly connected to the black hub. GND from the LaunchPad on the top is connected to +5V on the bottom (via the Ampmeter on the left) and used as new zero volt. From 5V top to GND bottom we now have 10V (Voltmeter on the right), or ±5V when measuring from the center. I used LaunchPad because they come with handy pins to connect meters, also this way I can create ±3.3V.

USB Test Card – Measurement Example

After I broke my BeagleBone Black and could not order a new one anywhere without crazy lead times I got a RaspberryPi. Powering it off USB caused me some headache so it was time to fire up the USB Test Card.


The picture shows the RPi in the front. Power comes from right from a USB charger and passes through the USB Test Card in the center. The Voltage and Current outputs are connected to the Oscilloscope.

Voltage looked good, but the thing still did not start properly. A quick check with a Multimeter showed a big voltage drop from USB Test Card VBUS to RPi’s 5V header. A cheap Micro USB cable is nothing better than a cheap and underrated power supply!

With the now working setup I took some Scopeshots of the RaspberryPi running headless and idle raspbmc.

The first picture shows the thing booting and in the second we can see some periodic action. If this would be a device I am developing I would definitely want to understand where this periodic jumps are coming from and why there is a break during startup.



Maybe the RaspberryPi will finally motivate me to get RS232 or GPIB output of my ancient Tektronix TDS224 working.

USB Test Card – Build Details

The USB Test Card is a fairly simple build, but I have not seen it used and combined in that way. Even the Over-current Test Fixture only uses a standard Ampere Meter to measure the current, completely ignoring the voltage drop, while the Voltage droop/drop test fixture seems to be targeted for USB hubs and does not provide a way to measure the current. This might be sufficient to pass USB testing, but ignores the needs for device development and testing. 

My current section is made of a 10mΩ Shunt resistor. This gives a maximum voltage drop of 9mV @ 0.9A (max USB 2.0 spec), very acceptable compared to most multimeter current path burden voltages. If ultra low power or USB3.0/ USB charging current capability with up to 5A is needed, it is easy to replace the shunt with a different value.

An INA214 Current Shunt Monitor boosts the shunt voltage a 100 times. If needed a different gain version could be used. The INA21x also acts as buffer so it does not matter if a meter/scope is connected or not. It also avoids the nasty auto-ranging current interrupts of some Ampere meters.

The INA210, INA211, INA212, INA213, and INA214 are voltage output current shunt monitors that can sense drops across shunts at common-mode voltages from –0.3V to 26V, independent of the supply voltage. Five fixed gains are available: 50V/V,100V/V, 200V/V, 500V/V, or 1000V/V. The low offset of the Zerø-Drift architecture enables current sensing with maximum drops across the shunt as low as 10mV full-scale. These devices operate from a single +2.7V to +26V power supply, drawing a maximum of 100μA of supply current. [, ina214.pdf]

In the VBUS voltage output section a resistive voltage divider was added so the 5V could be scaled down (I have more plans with it – stay tuned!).

I also kept the power supply easy but flexible. The system can be powered directly from VBUS (in front of the sense resistor) or from a VBUS derived voltage with the help of a TLV700xxDSE (1.8V, 2.5V, 2.8V, 3.0V, 3.3V, 3.6V), it might come handy one day to limit the output swing of the shunt monitor and provide a steady supply voltage. 

Since this is a single supply scenario, a 1.25V reference module REF1112 is used to offset the output signal so that current in both directions can be measured. The reference voltage is provided on the differential output V-.

Schematic, Layout and Gerbers are available on

USB Test Card

USB nowadays is what the parallel port was 10-15 years ago. It’s everywhere and it became fairly easy to design with. But USB is also more capable and flexible (think speed, OS independence, mobile devices, power supply,..). This makes it per definition more difficult to handle. So I needed a way to cope with it.


One of the things that causes me most troubles is the power supply. Some odd devices violate/ignore the USB spec (5V ±0.25V), some cables aren’t really made for more than 200mA current, some cheap USB chargers are outright dangerous.

In the past I cut open USB cables and soldered 4mm “banana” plugs to it. I own a decent selection by now (Typ B, Mini, Micro, iPhone, Type A extension). But it is a nightmare because those measurement wires snap off easily and shorting 5V to ground is as easy as leaving the current path open. After all I am debugging a system and I am not focused on the “simple” task of connecting leads.

This is why I came up with a simple USB2.0 measurement card that plugs in series:

  • USB Type B input
  • USB Type A output
  • Testpoints for DP (D+) and DM (D-)
  • Current output
  • VBUS Voltage output

The picture above also shows 2 USB connectors with 50Ω SMD 1206 resistors soldered in. I use these to calibrate my current and voltage output under known load of 10Ω and 50Ω. It is crucial to use 4-Wire measurement to measure the “calibration” load exactly. Be careful those things get hot!

A spreadsheet quickly gives the scaling factors where the average of 3 load points improve accuracy.

Load U meas U real U factor I meas I theory I factor I check _
Ohm mV V V/V mV mA mA/mV mA
100M 388,37 4,979 12,820 -1,2 0,0 0,0
51,94 373,62 4,790 12,821 93,65 92,2 0,98475 91,8
10,67 324,12 4,155 12,819 409,6 389,4 0,95071 397,5
 Avg 12,820 0,96773


430man Evolution – Video

Here we go with a video of ucDude Evolution, showing “him” in action and outlining how it works and how it was made.

Also check out the Build details and the Reason I made it.