The goal of ThunderPack is to be accessible to beginners and experts alike. With that in mind, CircuitPython seemed like an important thing to include. Only one problem...the chip I chose will not work for it.
Why? STM32L072xx and CircuitPython
I liked the STM32L07 because it's small, low-power and has integrated EEPROM. The only problem is that CircuitPython requires ~50KB of flash to work as expected*, and the STM32L072 only has about 128KB.
* you can technically get CircuitPython/MicroPython to fit inside 128KB, but it doesn't include the USB mass storage device firmware loader or the REPL. In my opinion, this removes the two most useful things of CircuitPython -- so why bother.
Upgrade to STM32F4xx with big flash and speed boost!
A great thing about the SMT32 line of chips is how they attempt to maintain pin compatibility between families. Which means we can upgrade ThunderPack to the STM32F4xx chip, which packs a whopping 1MB of flash space and can run up to 100Mhz, without significant changes to the board.
It's pin-compatible, but unfortunately not a drop-in replacement because the chip footprint itself is a little bigger (7x7 vs. 5x5). I had to rearrange a few things but was able to keep the overall form factor and pinout the same. I will also need to update the examples for this chip and the Arduino core.
Feel free to follow along the process in the STM32F4 branch on Github.
As the board is finally in the more production-ready phase, I'm collecting ideas for what people would do with ThunderPack. Share your ideas in the comments!
Open Hardware Summit
I will also be going to the Open Hardware Summit in New York in March and hope to have a handful of these boards with me to give away.