Mark Carter Offers "Rambling" Thoughts on Why IDEs Suck and the STM32 Versus the Raspberry Pi RP2040
"My current thinking is to operate a dual strategy," Carter offers, "switching between the Pico and the STM32 as the mood takes me."
Programmer Mark Carter has put together a series of "rambling" thoughts on making the move from Microchip ATmega and ATtiny microcontrollers to Arm-based chips — and, in particular, making the choice between the STMicroelectronics STM32 and Raspberry Pi's RP2040.
"I’m thinking of standardising on a processor architecture, rather than continually flitting about," Carter explains, in a post written from the perspective of a self-described intermediate microcontroller programmer. "The great thing about Arm is that it’s like C/C++: it’s absolutely ubiquitous, there are standard toolchains, and it’s guaranteed to work. You just can’t go wrong."
"I can see a place for still using the ATtiny85 for when I want to make something small. I have a couple of projects involving Nanos, which I will keep going. One thing I’d say, though, is that we seem to be shifting towards 3V chips, which makes the 5V of the Nano less interesting. The Arduino Uno/Nano is still the best introduction to µCs though."
There's plenty of choice out there for Arm-powered microcontrollers, but Carter found himself gravitating towards two in particular: STMicro's STM32, in particular on the STM32 Black Pill development board, and Raspberry Pi's RP2040, as found on the Raspberry Pi Pico. "The Pico doesn’t have any CMSIS definitions, nor support from libopencm3
," Carter explains. "They have their own SDK. There is some set-up effort required, but it is well-documented.
"In fact, the whole of their SDK is well-documented. This is why the Pico is eminently worthy of investigation. The Pi Foundation have thought things through, and I’ve made a lot of progress in understanding how the thing works. Their SDK is good, and I don’t really see any reason not to use it. Projects need to be built using cmake
, which some might object to. However, I consider it a minor bump considering what else I get for my money."
Carter's conclusion, which centers around his belief that "IDEs [Integrated Development Environments] suck" in comparison with "a Makefile, vim
, and a compiler I can install from Debian" along with a desire to use the libopencm3 abstraction library: "My current thinking is to operate a dual strategy, switching between the Pico and the STM32 as the mood takes me; favoring libopencm3 for the latter development. I’ll occasionally dip into the Atmel [Microchip now] chips as conditions warrant," Carter offers, "but I’ll consider it a side issue in favor of the Arm chips."
Carter's full write-up is available on his website.
Freelance journalist, technical author, hacker, tinkerer, erstwhile sysadmin. For hire: freelance@halfacree.co.uk.