EmbeddedRelated.com
The 2026 Embedded Online Conference
You Don't Need an RTOS (Part 2)

You Don't Need an RTOS (Part 2)

Nathan Jones
Still RelevantIntermediate

In this second article, we'll tweak the simple superloop in three critical ways that will improve it's worst-case response time (WCRT) to be nearly as good as a preemptive RTOS ("real-time operating system"). We'll do this by adding task priorities, interrupts, and finite state machines. Additionally, we'll discuss how to incorporate a sleep mode when there's no work to be done and I'll also share with you a different variation on the superloop that can help schedule even the toughest of task sets.


Unuglify C++ FSM with DSL

Unuglify C++ FSM with DSL

Massimiliano Pagani
Still RelevantAdvanced

Domain Specific Languages (DSL) are an effective way to avoid boilerplate or repetitive code. Using DSLs lets the programmer focus on the problem domain, rather than the mechanisms used to solve it. Here I show how to design and implement a DSL using the C++ preprocessor, using the FSM library, and the examples I presented in my previous articles.


Turn It On Again: Modeling Power MOSFET Turn-On Dependence on Source Inductance

Turn It On Again: Modeling Power MOSFET Turn-On Dependence on Source Inductance

Jason Sachs

This is a short article explaining how to analyze part of the behavior of a power MOSFET during turn-on, and how it is influenced by the parasitic inductance at the source terminal. The brief qualitative reason that source inductance is undesirable is that it uses up voltage when current starts increasing during turn-on (remember, V = L dI/dt), voltage that would otherwise be available to turn the transistor on faster. But I want to show a quantitative approximation to understand the impact of additional source inductance, and I want to compare it to the effects of extra inductance at the gate or drain.


A design non-methodology

A design non-methodology

Colin Walls
Still RelevantAdvanced

Although writing an RTOS or kernel may be an interesting project, it is unlikely to be a wise course of action.


Working with Microchip PIC 8-bit GPIO

Working with Microchip PIC 8-bit GPIO

Luther Stanton
Still RelevantIntermediate

The third in a series of five posts looks at GPIO with PIC 8-bit microcontrollers. After a detailed review of the registers for configuring and managing GPIO on the PIC18F47Q10 processor, a basic application is stood up programming those registers to blink external LEDs at 0.5Hz.


Blinkenlights 2.0

Blinkenlights 2.0

Ido Gendel
Still RelevantIntermediate

Nothing spells old movie computers like a panel of randomly blinking lights, but in fact, these so-called "blinkenlights" can be valuable indicators - especially in embedded systems where the user interface must be minimal, small and cheap. Control of these lights can be achieved using a very simple, real-time interpreted script, and this kind of solution may be extended to other and more complex embedded tasks.


The volatile keyword

The volatile keyword

Colin Walls
TimelessIntermediate

Although the C keyword volatile is very useful in embedded applications, care is needed to use it correctly and vigilance is required to ensure its correct implementation by compilers.


When a Mongoose met a MicroPython

When a Mongoose met a MicroPython

Sergio R Caprile
Still RelevantIntermediate

This is more a framework than an actual application, with it you can integrate MicroPython and Cesanta's Mongoose.
Mongoose runs when called by MicroPython and is able to run Python functions as callbacks for the events you decide in your event handler. The code is completely written in C, except for the example Python callback functions, of course. To try it, you can just build this example on a Linux machine, and, with just a small tweak, you can also run it on any ESP32 board.


The 2026 Embedded Online Conference