In following the internet chatter about the FTDI bricked-chip dust up some months ago I came across mention of a Silicon Labs USB-Serial chip, the CP2110, that worked a bit different. The device enumerates as a regular HID device and uses a standard OS driver rather than a manufacturer specific one. Being a HID device, there is no COM port. Instead you link a library into your application that knows how to engage the standard HID driver to talk to the chip in a serial-like fashion. In effect, this moves the driver from the OS to your application.
So I grabbed some of the chips and made up an OSHPark board that implemented the minimum passives and broke out the pins. Tonight, during Builder’s Night Out, I finally got around to soldering it up. The worst part about the CP2110 is that it is a 4mm x 4mm QFN with a 0.5mm pin pitch. I used the space’s 50W laser to make a solder paste stencil out of some of the giant roll of 3 mil mylar we have. My first go at it with one pass of the solder paste squeegee didn’t put down enough paste on the QFN and my second go with 3 or 4 passes in orthogonal directions put down too much solder paste. There is probably a middle ground there.
Anyway, I used the space’s Zallus reflow toaster oven to reflow that second paste attempt and wound up with a number of the QFN pins shorted together. (I should have wiped the paste off and looked for that middle ground.) To fix the shorts I used the space’s hot air rework gun to pull the QFN chip off. That allowed me to solder wick the pads to a point free of shorts and then use the hot air gun once again to put the chip back. I over heated and burnt the tantalum caps and the LEDs in that rework process. So I used the hot air gun to remove those components and then hand soldered replacements back on to the board.
The moment of truth came when I plugged the freshly soldered board into my laptop’s USB port. I fully expected it to say “over current limit”, but to my delight it happily installed the HID driver! I’m looking forward to trying out the link library.