I didn't want to hassle around with STM32 bootloaders, so I just added one ARM JTAG connector to flash the onboard STM32.
Size and pcb prototype cost did not matter, so the resulting pcb is larger than the original VersaloonMini pcb.
Here's the schematic and board files:
As you might notice, there's a difference between the photo and the pcb layout: The pictured hardware has one more target connector. This is for a very special use case and therefore not included in the schematics and layout. I'm using a handy probe (Tag-Connect) to connect the Versaloon Dual to the target board.
Initial testing using the original VersaloonMini firmware showed first success, since the hardware should be compatible. Then I've made some minor modifications to the Versaloon firmware to support the analog switch and external power:
Just to avoid compilation of the PC side vsprog (this didn't work using my cygwin installation and I was to lazy to investigate the reasons), I've
made the switch control avalailable to the -V "tvcc.set voltage" option of vsprog:
Another drawback of the particular hardware is the stray capacitance of the analog switch path. It distorts especially open drain signals, as used for SWIM programming, so SWIM and SWD programming work using slower speed mode only (-W 1 option).
Here's the modified source of the versaloon platform:
The firmware was compiled using Freddie Chopin's bleeding edge toolchain: Download page. Freddie also offers pre-compiled versions of Openocd and some other interesting things.
The Versaloon Dual was successfully tested using these targets:
Look here: The STM32 files for my other
STM32 related pages.