Computing stuff tied to the physical world

Revisiting existing chips and code

It has taken about 12 months to explore the many different aspects of using the LPC8xx µC’s: first the hobbyist-friendly 8-pin DIP “LPC810”, then the small-but-mighty “LPC824”.

There’s a lot to be said for each of these chips, in particular the unique “switch matrix” which allows pin assignments to all digital peripheral features to be changed at run time.

But there are also some hurdles, especially when it comes to catering to beginners, i.e. keeping the whole story simple enough that you can use these µC’s without having to turn it into a career or get an engineering degree – the term “rocket science” comes to mind…

It shouldn’t be so hard. Having to learn how to use command-line tools, and jumping through hoops to get that darn “firmware” onto the microcontroller should be easy!

Which is probably the main reason why the Arduino board + IDE succeeded where many other attempts before it failed (does anyone remember the “Basic Stamp”). In the Arduino world, you need to do just the minimal to get up and running with Physical Computing:

  1. download and install the Arduino IDE
  2. connect an Arduino board via a USB cable
  3. pick one of the pre-installed examples
  4. hit the “Upload” button – bingo!

Over the years, a lot of things have changed in the Arduino world. One of the most relevant here, is that it is now possible to add “plugins” to the IDE to support other h/w platforms.

One of the interesting recent developments is the Arduino-STM32 project by Roger Clark. With many more people collaborating and chipping in on the forum he set up. This project adds IDE support for a growing range of ARM microcontrollers from STMicroelectronics:

Screen Shot 2015 10 28 at 23 01 56

A nice property of the different “STM32Fxxx” and “STM32Lxxx” (low-power) chips is that there are many dozens of very low-cost boards based on them, and that developing code for these boards is more or less the same, whether you’re on a 48 MHz STM32F030 Cortex M0 or a 216 MHz STM32F746 Cortex M7, with flash sizes ranging from 16 KB up to 2 MB.

The existence of the Arduino-STM32 project, its current rate of progress, and the fact that so many existing boards can be used right away is great news for the hobbyist community. This makes it possible to “hit the ground running” as they say. No need to slowly build up a hardware and software foundation for the LPC8xx µC series. Instead, we can just carefully put a few pieces together, and get our projects off the ground in no time.

Note: this doesn’t imply the demise of the LPC824 “Tinker Pico” and others waiting in the pipeline. There is still a good case to be made for truly tiny and ultra low-power boards. But it’ll have to wait a bit – let’s get some less demanding projects up and going first, using the easy Arduino IDE. With some luck, all the usual ADC, PWM, I2C, and SPI stuff can be working with very little effort. And on top of that all sorts of (existing) libraries!

The new goal is to make the above 4-step process work for those nice STM32-type chips.

And that’s where this weblog and article series will be going for the coming months…

[Back to article index]