Skip to content

Programming

Jeremy Gillick edited this page Jul 14, 2020 · 1 revision

The first place to start is to get one of the examples running (Blink is a good first one).

There are examples written in a variety of libraries/environments, so what's the difference?

  • Arduino - A common starting place for hobbyists, artists and those new to programming hardware.
  • CircuitPython - A beginner friendly environment for writing programs in Python.
  • STM32Cube - The default hardware abstraction layer provided by STMicroelectronics, with quite a few lower level APIs.
  • LibOpenCM3 - An open source and comprehensive hardware abstraction layer.
  • ChibiOS - A compact real-time operating system which includes threads & it's own hardware abstraction layer.

Arduino

Arduino is a great place to start if you're just getting started with microcontrollers. It uses a simplified programming structure with C or C++.

Learn how to get started in the Arduino examples area.

CircuitPython

CircuitPython is also a great place to start if you're just getting into microcontrollers and you have experience with scripting languages like Python.

Learn how to get started in the CircuitPython examples area.

STM32Cube

STM32Cube is the name for the libraries and tools which are provided by STMicroelectronics for programming the STM32 family of chips in C or C++. Because this is the default programming API for the STM32 family of chips, there are a lot of tutorials and support online. It's also a great way to get familiar with how the chip works.

Learn how to get started in the STM32Cube examples area.

libopencm3

libopencm3 is an opensource library for interfacing with ARM Cortex-M microcontrollers and has a lot of the same abilities and features as STM32Cube. One thing to keep in mind is the libopencm3 library API is not consistent between chips, so a program written for a SMT32F0 chip might not work for the STM32F4.

Learn how to get started in the libopencm3 examples area.

ChibiOS

ChibiOS is a C/C++ real-time operating system with threads and a hardware abstraction layer. It can be used on its own, or with STM32Cube (however, I wouldn't recommend using it with libopencm3). This should be used if you want to have a lot of opperations executing simultaneously or if application response-time is critical. For most applications ChibiOS is overkill, but it can still be fun to play with.

Learn how to get started in the ChibiOS examples area.

Clone this wiki locally