Generals
Building a solar float charger for the Prius 12v auxiliary battery

Toyota Prius - courtesey of Pawel Golsztajn I own a second generation Toyota Prius, and while it’s a great little car, it has one fatal flaw - the 12V auxiliary battery. Unlike most cars, the 12V battery in the Prius isn’t used to power the starter motor for the combustion engine. That is powered by the main hybrid battery. The 12V battery is used to power the vehicle electronics during the start up process. Once the vehicles computer system is booted up, the hybrid battery takes over.
Getting started with the NXP Zigbee SDK

My attempt to develop custom firmware for the Aqara E1 Zigbee wall switch (link coming soon) necessitated learning NXP’s Zigbee SDK for the JN5189.
How to build NXP JN5189 Zigbee apps in MCUXpresso on Linux in 2024

NXPs MCUXpresso is not configured by default to build JN5189 SDK Zigbee apps on Linux, but with some minor tweaks, it is possible to build both the samples and your own applications.
How to fix: Cannot enable executable stack as shared object 😕

I recently updated my Linux kernel and was presented with the following cryptic error when trying to launch a not too old version of Code Composer Studio (CCS) by Texas Instruments:
How to insert a Git commit hash into your build on Eclipse CDT

Knowing the specific code that was used to build a particular binary is very useful when it comes to debugging unexpected behavior. Although version numbers can help for significant releases, they’re less useful when iterating quickly.
How to sleep an ATMega328p on less than 1µA with timer wakeup

How to configure an ATMega328p to consume lest than 1uA, while still retaining the ability to wake the processor up periodically via timer (or external interrupt).
Measuring standby power consumption of Zigbee and Z-wave smart switches

Smart homes save energy right? Occupancy sensors turn off lights in vacant rooms, scenes and timers activate only the devices that are needed, only when they’re needed, and energy use feedback adjusts our behavior.
Migrating duk.io from Ghost to Hugo

I decided to migrate this blog from Ghost to Hugo. If you’re reading this, then the migration was a success.
STM32 Microcontroller Cheat Sheet

STM32 microcontroller cheat sheet by product line, feature, model number. Includes product code descriptions and timer/peripheral information.
Using C++ with the NXP Zigbee SDK

The NXP Zigbee SDK is not well setup for use with C++. Although I prefer it over the Texas Instruments ZStack for various reasons, ease of C++ development is not one of them. I had no trouble converting ZStack sample programs to C++. I had all sorts of issues with the NXP SDK.
What efficiency regulations govern smart switches in the EU?

After measuring the standby power consumption of various Zigbee and Z-Wave devices, I became curious about what efficiency regulations governed them. The EU has typically been at the forefront of energy use regulations, famously introducing the idea of a common charger back in 2009 before later mandating it, and issuing ecodesign requirements for transformers as early as 2009 (EC No 278/2009). Infact their first energy labelling directives were issued way back in in 1979.
Zigbee MCU and module cheat sheet

A comprehensive list of major Zigbee IC vendors and module makers, including a matrix of which module maker use which vendor's ICs.