Welcome on PLAY Embedded

On PLAY Embedded you can find useful resources to get started with embedded systems: media, examples and accurate descriptions are also provided. Come on, learn by doing!

Wide box Tiny box List
Ascent Descent

Assembling ChibiStudio from scratch

A close look to ChibiOS demos for STM32

Recently I had to assemble ChibiStudio for Windows from scratch and I decided to write down a simple to-do list to be consistent over time. Locking back to the list, it was so detailed I start to think about an article to share this experience and enable everyone to assembly its own environment and maybe get feedback from experts out there and improve our process.

ChibiStudio was an idea by Giovanni (the creator of ChibiOS) to enable the community to easily ramp-up with ChibiOS. It’s basically an ensemble of free and open-source software and some custom continue reading...

Debugging on STM32 with ChibiStudio: the ultimate guide

A debugger is a powerful tool that gives us the chance to interact with the microcontroller at run-time. It allows to dynamically change the content of CPU registers, to read\write the RAM memory and to flash\erase the NVM memory of the microcontroller. The main purpose of a debugger is to discover and fix anomalies in the functional behavior of our firmware.

Anyway, there is no silver bullet: it requires some time to master the debugger learning some tricks. As usual, the time spent learning how to debug could make your day: it will reduce the effort required to develop continue reading...

What is the difference between a bootloader and a debugger

Since I have started to hold seminars and hands-on to newbie developers and engineering students, one of the most controversial things people don’t get used to is the debugging. Many of them often confuse between a bootloader and an on-chip debugger because both are used to test the firmware functional behavior.

A bootloader is a piece of software that loads the downloads the firmware from a host, usually a PC, into the microcontroller main memory. Typically, once the bootload procedure is over, the microcontroller starts to execute the freshly loaded code and the continue reading...

Printing strings on a Virtual COM port with an STM32 and ChibiOS

This article contains some simple examples to understand how to print escaped strings when you are approaching STM32 and ChibiOS. Escaped strings are very useful while developing because you can use them to print data while the application is running. Strings are widely used for debugging purposes when a debugger is not available but this is not the case.

Every STM32 development kit is equipped with a STLink debugger. Starting from STLink V2-1, the debugger offers a virtual COM port and, in this article, we are going to use this feature to print data avoiding to put continue reading...

Dealing with push-buttons using an STM32

This article contains some simple examples to understand how to deal with push-buttons when you are approaching STM32 and ChibiOS. The button can be considered the simplest input peripheral that can be connected to a microcontroller. Because of that, usually, every embedded development board is equipped with a button marked as “User Button” and this means it is actually connected to a GPIO pin you can read via software.

To understand this article with proficiency, you should match few requirements:

You should have an STM32 development kit and be able to do basic stuff continue reading...