This project isn't really an end in itself, just a simple tool for working with the WGM110 Wi-Fi module, but it was suggested that I share it here, so I'm re-posting.
Sometimes it's useful to be able to pre-program modules before they're installed on a board, particularly if your board doesn't have space for a SWD header. The earliest versions of the WGM110 also had a defective DFU bootloader (stop bits were 1/2 bit time) that wouldn't work with some hosts, which made in-circuit programming difficult without SWD.
To address this I made a quick and dirty programming fixture for about $15. The components are a Mill-Max 854-22-010-40-001101 0.050" pitch 10-position pogo pin header to connect to the WGM110, a Samtec SFSD-10-28-H-05.00-SR cable with 20-pin 0.050" pitch plug for the JTAG side, some heat shrink tubing, and a 3D printed holder that I whipped up in Alibre.
This is not really the right JTAG connector - its polarity key is in the wrong place and it's latching - but it's the closest thing that Digi-Key happened to have in stock that had discrete wires. It fits on the dev board as is, and it'll fit on a P&E Cyclone's shrouded header if you snip off the key.
In the orientation shown in the top view photo, the pogo pins are wired to the following JTAG pins:
If I was going to be using this much I'd have machined mine from Delrin or anti-static ABS, but for only doing a few dozen units at most it didn't seem worth firing up a milling machine.
Without the holder piece, I can use the pogo pin plug to re-flash modules in circuit that have been bricked by DFU failures. This depends on having the PCB lands extend far enough beyond the periphery of the module to make contact. If you followed the recommended layout in the datasheet, it ought to work. I wouldn't want to have to do many boards this way without an alignment jig to hold it in place, but it works fine to just hold it in place if you're just fixing an occasional mistake and not doing production quantities.
Bottom view, with wiring to pogo pins:
The STL file and original model in Alibre format are attached. Keep in mind that I set the dimensions to make it work with my own 3D printer and the fit may require tweaking on yours.
It's no substitute for a proper in-circuit programming setup for production, but it's handy for prototyping and I figured I'd share it here in case anyone else needs such a gadget.