ChibiOS and STM32

ChibiOS is a compact and fast real-time operating system supporting multiple architectures. It offers a multi-threading scheduler and related APIs to manage threads scheduling and priorities, events and inter-thread communication. It also provide an Hardware Abstraction Layer.

STM32 is a broad family of 32-bit microcontrollers based on ARM Cortex-M architecture. With hundreds of different chips, STM32 covers a broad range of applications. Thanks to cheap and valuable development kits it is quite easy to evaluate them or create an prototype.

No matter what they say, you will not be able to appreciate the performance of these MCUs without a good scheduler. Here we will provide resources to getting started with STM32 development board using ChibiOS/RT as kernel and ChibiOS/HAL as drivers. Pick one and read it! If you like it don’t forget to Share the knowledge.

Wide box Tiny box List
Ascent Descent

How to use an HD44780 based Liquid Crystal Display

How to use an HD44780 based Liquid Crystal Display

The HD44780 is a controller for display developed by Hitachi commonly used to manage alphanumeric dot matrix LCD. This controller is a standard de-facto for this kind of display. It is often used in industrial test equipment, networking equipment, vending machine and in embedded projects.

Compatible LCD screens are manufactured in several standard configurations. Common sizes are one row of eight characters (1×8), as well as 16×2, 20×2 and 20×4 formats. Larger custom sizes are made with 32, 40 and 80 characters and with 1, 2, 4 or 8 lines. The most commonly manufactured continue reading...

Using DHT11 with ChibiOS/RT

Using DHT11 with ChibiOS/RT

The DHT11 is a basic, low-cost digital temperature and humidity sensor. It uses a capacitive humidity sensor and a thermistor to measure the surrounding air, and spits out a digital signal on the data pin (no analog input pins needed).

The communication on data pin occurs according to a non-standard protocol known as One-Wire protocol.

In this article we want to provide a demonstration for DHT11 compatible with ChibiOS/HAL 3.0, but also explain concepts inside that demo. Following that purpose we need for the DHT11 datasheet.

DHT11 Datasheet

Typical circuit requires a continue reading...

Sampling and dimming (ADC and PWM)

Sampling and Dimming

An Analog to digital converter is a device that converts a continuous physical quantity (usually voltage) to a digital number that represents the quantity’s amplitude.

In this demo, we are sampling voltage across a potentiometer to establish its position. A potentiometer is a three-pin knob that provides a variable resistance between W-A and W-B pins (Fig.1). Amount of resistance between A and B is constant, but by turning the shaft of the potentiometer, we change the amount of resistance on either side of W.

Connecting A to 3 V, B to GND (or vice versa) and sampling continue reading...

Meeting SPI

Meeting SPI

Communicating by a serial bus instead of a parallel one could be very useful when we need to send out a big number of words or fixing a constraint on wires. The Serial Peripheral Interface bus, also known as SPI bus, is a synchronous, serial communication peripheral which communicates in full duplex mode using a master-slave architecture with a single master. That means we have always a single master and one or more slaves. The communications is bi-directional (i.e. data flows from master to slave but also from slave to master). Since this bus is synchronous, the master continue reading...

Hello ChibiOS

Hello ChibiOS

One of most important feature of ChibiOS is multi-threading. Oversimplifying, a thread could be imagined like a sequence of instructions (with associated a priority and a working area) and multi-threading means kernel can manage more than a thread independently, executing them in a parallel fashion even if there is a single core.

Achieving this requires Kernel must plan operation sequence: this task is called scheduling. We could act indirectly on this operation though priority levels. Priority follows a simple rule:

among all the threads ready for execution, the one continue reading...