Firmware

last modified: October 23, 2025

Three Ways to Integrate LED Light Into the Modular Lantern

Posted on 2023-01-29— 3D Printing, Build, Projects

I tested three inexpensive, easy methods to add LED lighting to my modular 3D‑printed lantern using USB power: reused LED modules, short 5V strips, and WS2812B RGB with a microcontroller. I share parts lists, soldering tips, diffuser advice, and firmware steps—read on for step‑by‑step instructions and printable models.

Read this post

Always-On Firmware Example

Posted on 2020-08-20— Projects

I’ve published a simple firmware example for the Always-On project, built for PlatformIO and Visual Studio Code with my HAL adapted for Adafruit Feather M0. It explains the hardware mapping, motion-triggered lighting behavior, and timing options. Please read the full post for setup instructions and the GitHub link.

Read this post

How to Write Custom Snowflake Patterns

Posted on 2019-12-07— Projects

I’ll walk you through creating custom patterns for your snowflake decoration, covering double-buffering, frame-sync, non-linear PWM, fixed-point math and the scene interface in C++. If you can solder and use an SWD programmer, read on for practical examples and a ready-to-edit User scene template.

Read this post

Snowflake Configuration

Posted on 2019-11-22— Projects

I walk you through the Snowflake v1.2 firmware's button-based configuration: short vs long presses, auto and single modes, LED indicators, and pattern durations. I explain the six-second timeout and that settings aren't saved after power loss—please read the full post for step-by-step usage and tips.

Read this post

Event-Based Firmware Example

Posted on 2019-08-05— C++, Improve your Code, Learn

I provide a complete event-loop firmware example for SAM‑D boards (Arduino Zero, Feather M0). I explain module design—Buttons, Display, and a support library—initialisation and polling logic, and link the source and demo. If you're curious, read the full post for code and implementation notes.

Read this post

Bit Manipulation using Templates

Posted on 2019-07-23— C++, Improve your Code, Learn

I explore replacing unsafe bit macros with lightweight C++ templates to make embedded bit operations safer and clearer. I show templates for one-bit extraction, set/clear helpers, and compiled firmware size for Arduino Uno. Read the full post to see examples, exercises, and practical benefits.

Read this post

Guide to Modular Firmware

Posted on 2019-07-14— C++, Improve your Code, Learn

I wrote a concise guide for embedded developers to refactor Arduino/C++ firmware into clean, modular components. I walk you through creating Display, Buttons, and Animation modules, testing and committing small changes, and improving maintainability. If you'd like practical steps and examples, please read the full article.

Read this post

Class or Module for Singletons?

Posted on 2019-07-09— C++, Improve your Code, Learn

I compare implementing a singleton as a class or as a module/namespace for Arduino firmware using simple LED driver examples and compiler measurements. I cover size, initialization and runtime trade-offs and explain when each approach makes sense. Read the full post for code, disassembly and practical recommendations.

Read this post

Event-Based Firmware (Part 2/2)

Posted on 2019-07-08— C++, Improve your Code, Learn

I guide you through evolving a simple Arduino blink example into a reusable event system. In Part 2 I cover function-pointer events, an EventLoop module, and practical multi-event examples. If you want cleaner, non-blocking firmware structure, read the full post for code and explanations.

Read this post

Event-based Firmware (Part 1/2)

Posted on 2019-07-05— C++, Improve your Code, Learn

I walk through a practical, minimal event-based approach to firmware using Arduino examples. Step by step I refactor blink sketches into modular events, introduce a millisecond timer, prevent skipped events, and encapsulate logic into classes and modules. Read on to follow the examples and apply them to your projects.

Read this post

How to Design a Cheap Plant Watering Sensor (Part 4)

Posted on 2017-03-04— How and Why

I guide you through writing a near-final firmware for my cheap plant watering sensor, describing module structure, incremental development, and practical tests. I cover ADC sampling, oscillator checks, EEPROM settings and a prototype fix for the push-button. If you’re building a similar device, I invite you to read the full post.

Read this post