So I got the board and I like the chip. I have flashed binary of my build of
Espruino for STM32F103 and it runs out of box just fine.
USB works, GPIO works, I can see the unused SRAM over 20K up to 32K works. Also looks like the flash latency is much better, even with unchanged STM32 binary at 72Mhz (=with flash latency set to 2) this board is much faster when code is running from flash!
here are some results (full code
https://gist.github.com/fanoush/ca350c56d0b6847e223fa9cbb877286b )
STM32F103, 72Mhz, flash latency 2
benchall(20000);
time: 3.71646881103 result= 936372485
time: 1015.77520370483 result= Infinity
time: 12676.12385749816 result= Infinity
APM32F103 96Mhz, flash latency 3
benchall(20000);
time: 2.85291671752 result= 936372485
time: 990.22006988525 result= Infinity
time: 12141.72148704528 result= Infinity
Air32F103, 72Mhz, flash latency 2 (probably ignored)
benchall(20000);
time: 3.77774238586 result= 936372485
time: 705.31296730041 result= Infinity
time: 9807.07502365112 result= Infinity
the first line is fully native code running from SRAM
second is compiled JS = compiled code is running from SRAM but is calling into JS runtime in flash a lot
third is interpreted JS fully running from flash
It can be seen that only first line is based on raw CPU speed and 96Mh is faster than 72Mhz however when code is run mainly from flash the latency kills it for both STM32 and APM32 (so in second line even the APM32 is not much faster than STM32 at 72Mhz). Air32F103 flies here.
Will test higher clocks too later. Also will try to set lower latency at 72 as the Air32 datasheet says latency should be 0 for such low speed, not 2 as set for STM32
EDIT:
And BTW this board comes by default with CMSIS-DAP daplink firmware (with usb to serial, WinUSB, WebUSB and mass storage modes enabled too) so it is handy to use it as SWD dongle too