One of our main development boards is the STM32VLDISCOVERY. Its st-link is an in-circuit debugger and programmer, and makes development for prototyping fast and easy. The board has an ‘interesting’ property though: its reference voltage is labeled 3.3V while it is actually… only 3V. Check out the picture for proof! After reviewing the board schematics we found […]
Mutexes and semaphores: two concepts for two different use cases
Introduction There has always been (and there still is) confusion on terminology and usage of mutexes and semaphores. The main reason is that the term ‘semaphore’ has a different meaning depending on the context. We need to distinguish two contexts or levels: the concept and usage level, and the implementation level. This article is about the […]
The energy harvester is ready for iteration 2
Iteration 1 overview Iteration 1 was mainly about extending our software platform which we call Simple Platform Abstraction. This platform enables us to easily experiment with new hardware (sensors, mosfets etc.) and will be the fundament of our energy harvester application. See the pictures for some recent hardware hacking! The software platform evolved quite a bit. We […]
PMD1 sensor board: our first hardware component
We are pleased to announce the creation of our very first hardware component: the PMD1 sensor board. We won’t let you wait, here is a beautiful image: Now, let us start with the global picture. The sensor board is part of Power Management Decision 1 (see Figure on the right). PMD1 decides whether the power […]
Reverse engineering the bug of my Opel Zafira’s volume knob (with movie!)
System safety: hazard analysis
Introduction The goal of each system is to perform its intended function. Easier said than done in an imperfect world, and that is what this article is about: how to design a system in such a way that the probability of hazard exposure is acceptably low. The presented techniques are well-known in the world of […]
Pulse Width Modulation
A short definition Pulse-width modulation is commonly used in power-control or motor-control applications. Time is divided into periods. As always, the smaller the time periods, the higher the frequency. Within this time block a pulse signal is applied. The digital signal is logically active (“1”or ON) during a specified percentage of the time period, the […]
Guidelines to minimize ROM and RAM usage in low-end embedded systems
Introduction Both ROM and RAM strongly determine the cost of an MCU. And therefor, for an embedded developer, it is important to regard it as valuable resources. Especially for high-volume products (e.g. MCU’s for cars) for which cheap hardware is important, it is crucial to optimize ROM and RAM usage. In this post we assume the […]
Real-time: designing task algorithms
In an earlier article, we talked about real-time behaviour, meeting deadlines and how a real-time OS operates. To recapitulate: the highest priority task that becomes runnable pre-empts all other tasks and runs to completion (until it ends, yields or sleeps). Also, we can have different layers of processing. high-to-low priority run-to-completion interrupts run first (all […]
ADC driver for the energy harvester
Introduction One of the goals of iteration 1 of the energy harvester project is to extend our software platform with drivers for measuring (gpio in, adc), controlling (gpio out, pwm) and debugging (uart). In this article our focus is set on the ADC driver (we already introduced the Analog-to-Digital-Converter here). It is hard (not to say […]

Recent Comments