Adafruit Feather STM32F405 Express

So Adafruit just announced an STM32 dev board:

Seems pretty nice at first glance - 168Mhz Cortex-M4, both DAC pins available, Arduino & CircuitPython support.

I’m wondering how it looks to folks with more experience on the deep end of microcontroller development?

I’m really just scratching the service now with simple Arduino and Teensy sketches, but this looks like a good way to start using some of the great open-source STM32 code that is out there, and bridge the gap between maker-level hacking and the more professional oriented embedded toolchain.


I’ve got a few Feather boards and wings, I’m pretty happy with the form factor.

Generally with most of the ‘consumer’ embedded stuff it’s more about what framework you’re using rather than what the underlying platform is. So with Adafruit stuff that’s exclusively Arduino or CircuitPython, and both of those will try to abstract away a lot of the very low level code from you.

I wouldn’t be surprised if Adafruit have set it up such that you can switch code from one of their Atmel ARM M4s to this board without much change, and you can even see that in some of the libraries they supply (e.g. the NeoPixel library has a bunch of #ifdefs for lots of different boards).

PlatformIO has a decent list of what boards support what frameworks.

Anyway, this is a roundabout way of saying if you’re specifically trying to get into the STM32 platform you might find this board a bit frustrating as you’ll need to do a bit of detective work to get non-Arduino framework code running on it.

On the flip side, depending on what the ‘great open-source STM32’ is you’re after, it might be easier to port that to the Arduino framework (or and then just go straight to using a Teensy, if that form factor works better for you).

I can’t speak for the Adafruit or the Teensy but if you want the official STM32 experience the Nucleo boards from ST are fantastic and give you full access to all the pins. The little Nucleo 32s are physically tiny and they don’t add extra layers of code or firmware to confuse you or become dependencies like Arduino and Teensy do - your C code runs directly on the CPU without any intermediaries. If you want a semblance of an OS to run other languages that’s not for you but if you want to cut directly to the chase it couldn’t be easier to get up and running with STM32 than a Nucleo board, IMO.