STMicroelectronics has a reputation for both good microcontrollers and good development tools. Their Nucleo line of low-cost rapid prototyping boards, a sort of evolution of the popular Discovery boards from a few years back, is a good example of how to target a large audience. Designed for the STM32 processor family the boards are Arduino, ARM mbed and ST Morpho compatible, making it accessible to beginners, advanced makers and professional users.
A trinity of trinitiesThe website supporting the Nucleo series currently lists 26 different boards, which is not bad at all. The boards come in three versions: small (Nucleo-32), short (Nucleo-64) and long (Nucleo-144) where the numbers refer to the pin counts of the MCUs. These three groups are divided further into three more groups: ultra-low-power (green), mainstream (blue) and high-performance (magenta). The small (50x19 mm) Nucleo-32 boards are Arduino Nano compatible, the other two are Arduino Uno R3 compatible and also have ST Morpho extension connectors that break out all the MCU pins. With a huge amount of Arduino compatible shields available on the internet it should be easy to quickly cobble something together.
The boards from one size family are all identical except for the processor making it easy to compare performance or to scale up or down if your application allows it: simply plug in a different processor board.
The ultra-low-power boards are based on the STM32 L family that target smart meters & watches and the like. Once again three subcategories can be distinguished:
- L0, ARM Cortex-M0+
- L1, ARM Cortex-M3
- L4, ARM Cortex-M4
Half of the STM32 F family is at the heart of the mainstream boards. Again there are three subcategories:
- F0, ARM Cortex-M0+
- F1, ARM Cortex-M3
- F3, ARM Cortex-M4
The other half is used on the high-performance boards:
- F2, ARM Cortex-M3
- F4, ARM Cortex-M4
- F7, ARM Cortex-M7
Together all the boards cover flash memory sizes from 16 KB up to 2 MB, RAM from 4 KB to 320 KB, and clock frequencies from 32 MHz to 216 MHz. Indeed, Nucleo is a pretty broad platform.
Other hardwareIf you can’t find an Arduino shield, know that there is also a choice of Nucleo expansion boards available from ST (and their resellers). These boards are quite interesting, also for Arduino users, as they are Arduino compatible shields that pack several sensors on one board. The multi-sensor board for instance features a 3D accelerometer + 3D gyroscope, a 3D magnetometer, a pressure sensor, a relative humidity & temperature sensor plus an extension socket for even more sensors. Very interesting also is the VL6180X proximity, ranging and light sensing board.
All the boards sport an ST-LINK/V2.1 programmer/debugger so the only extra hardware you must add to get started is a USB mini-B cable for the Nucleo-64 and Nucleo-144 boards, or a USB micro-B cable for the Nuceo-32 boards. And, of course, a computer running Windows XP or higher. Developing under Linux is also possible, but you will have to do more work to get the tools up and running. On the internet you can find tutorials explaining how to do this.