Blog

All posts in reverse chronological order

last modified: October 19, 2025

Real Time Counter and Integer Overflow

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

I walk you through how real-time counters work, why integer overflow is usually harmless when you treat time as relative, and practical, Arduino-ready comparisons and code examples to avoid timing mistakes. If you want concrete patterns and simple tests, read the full post.

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

A New Modular CMake Based Toolchain for Feather M0 HAL

Posted on 2019-06-19— Projects

I built a simple, modular CMake-based toolchain for Adafruit Feather M0 boards that reuses Arduino tools while giving full build control. It’s aimed at prototype work and HAL development on macOS and Linux. If you’re curious, read the full post for setup steps and examples.

Read this post

My Personal Programming Language Recommendation Shift over Time

Posted on 2019-04-15— Recommendations

I've been developing software for over 20 years and share how my language preferences shifted—from assembler and C to Python, Swift, C++, Go and Rust. I outline use-cases and trade-offs in a personal, practical way; if you're deciding what to learn, please read the full post for detailed guidance.

Read this post

Inline AES 256 / CBC Implementation

Posted on 2019-04-14— Common, Software

I created a readable, fully inline AES‑256/CBC implementation you can drop into C++ projects — handy for embedded systems. It avoids static S‑Boxes, needs only stdint/cstddef, and is MIT‑licensed on GitHub. If this sounds useful, read the full post for requirements, example code, and usage notes.

Read this post

Tiny Particle Sensor Node with Decorative Case

Posted on 2019-02-23— Projects

I guide you through building a compact particle sensor node using a Raspberry Pi Zero W and a minimal custom shield, with published Gerbers, STL files and example code. I keep the design simple and extendable—if you'd like to build your own networked air-quality node, read the full post for parts, assembly and setup.

Read this post

How to Automate the Turn-On Time of a Deco Light

Posted on 2018-12-21— How and Why, Learn

I wanted my winter decoration to switch on at dusk without constant adjustments, so I built a simple low-voltage controller using a P-channel MOSFET, a microcontroller and an ambient light sensor. I walk through my design choices, sealing for outdoor use and programming tips—read on if you'd like to build one too.

Read this post

Snowflake Project Documentation

Posted on 2018-12-10— Projects

I wrote a concise page about my Snowflake project from late 2017, sharing open-source hardware designs and base firmware. If you have some electronics experience, you can build your own boards — it's a rewarding decoration. Read the full project page for files, repo links, and leave any feedback or questions.

Read this post

Good Quality Boards from PCBWay

Posted on 2018-10-29— Common

I recently received sensor-array PCBs from PCBWay and was pleasantly surprised by the build quality for the low price. The green solder mask, smooth routing, 0.2mm traces and lead-free HAL finish stood out. Read the full post for photos, cost breakdown and shipping details if you're curious.

Read this post

How to Deal with Badly Written Code

Posted on 2018-08-31— C++, How and Why, Improve your Code

I often encounter poorly written C++ libraries, especially around hardware. In this post I outline four practical strategies—rewrite, refactor, wrap the library, or wrap the interface—to regain control, improve reliability, and reduce pain. Read on for pragmatic steps and examples you can apply to your projects.

Read this post

Make your Code Safe and Readable with Flags

Posted on 2018-05-06— C++, Improve your Code

I show how a small C++ flags template makes embedded register bitmasks safer and much easier to read. I'll explain why macros and CMSIS-style definitions lead to errors, and walk through clear C++11 examples and a simple driver. Read on to see the implementation and usage.

Read this post

Testing the TPS61092 Boost Converter

Posted on 2018-03-17— Projects

I built a small test board for the TPS61092 to evaluate thermal performance, hand‑solderability, and layout before using it in my project. The chip stayed cool under 0.5A and the OSH Park PCB looked great. Read on for measurements, the BOM, and practical soldering tips if you want to try it.

Read this post

PCBite Kit 2.0 from Sensepeek Arrived

Posted on 2018-02-26— Common

I just received the PCBite Kit 2.0 from Sensepeek and explored its mirror board, magnetic pogo-style probes, and PCB holder. I found the gold needle tips and crown forks helpful for accessing tiny pads without test points. If you work on soldering or circuit analysis, read on for my hands-on impressions.

Read this post

Open Position for Step-Up Converter

Posted on 2018-02-23— Common

I’m looking for a reliable step-up converter to make 5V from a 2.5–5.5V input to run sensors, motors and small heaters. I tested the XC9142B50DMR-G and hit thermal and shutdown issues (no load disconnect). Please read the full post and share any replacement suggestions or questions.

Read this post

Adafruit PCB Coaster Arrived

Posted on 2018-02-21— Common

I just received the Adafruit PCB coaster and was pleasantly surprised—photos don't do it justice. Made from 2.4mm FR4 with a transparent solder mask and black silkscreen, it blends cold and copper tones nicely. Read on for my quick impressions and close-up photos.

Read this post

Boards in Good Quality from SeeedStudio Fusion

Posted on 2018-02-11— Review

I tested SeeedStudio's Fusion PCB service for a new prototype and ordered five blue, 2-layer FR‑4 boards with lead‑free HASL. Delivery took about 10 days and the boards showed good quality for the price. Read on for details about ordering, solder mask, and tolerances.

Read this post

Snowflake Power Converter

Posted on 2018-01-11— Projects

I built a simple USB-to-3.3V power converter for my snowflake decoration using a Traco TSR2-2433 and a laser-cut acrylic case with glow-in-the-dark engravings. I'll walk through the board, Fusion360/Eagle workflow, laser cutting and painting - read on if you want the files and build notes.

Read this post

Snowflake Component Side

Posted on 2017-11-14— Projects

I walk through assembling the component side of my snowflake panel, showing stencil-applied solder paste, placement of 105 resistors, capacitors, headers and chips, and sped-up hot-air soldering. I test the LEDs at the end — please read/watch the full post if you'd like the complete build and tips.

Read this post