Blog
FreeCAD FEM Workbench Setup
Monday, September 29, 2025 in Blog
Getting started with a new simulation tool is hard enough without needing to worry about the installation. There’s a lot to love about the FEM Workbench that ships with FreeCAD. Interoperability and ease of setup isn’t it. Out of the box, …
Zephyr and MCUBoot
Friday, September 12, 2025 in Blog
Introduction The following goes through a recommended Zephyr project setup and integrates with a single stage MCUBoot bootloader. The first section uses the Renode emulator and then moves to actual hardware. In previous posts we introduced Renode …
Shuffling Strategies in War
Sunday, September 07, 2025 in Blog
Categories:
TL;DR: Bury your Aces Counterintuitively, in War you don’t want your hand to be packed with strong cards. Simulation code available here. Introduction The card game War is, at its core, a game of dumb luck. Whoever gets the better draw usually walks …
Bare-metal MCUBoot Port on Renode
Friday, August 29, 2025 in Blog
The code for this project is available here. Why use Renode? Faster Iterations: It allows faster testing without the delays of physical hardware, especially useful when tweaking bootloader and firmware behavior. Flash Wear Prevention: Running tests …
Renode Docker Setup on Ubuntu 24.04
Wednesday, August 27, 2025 in Blog
Renode is a C# based emulator for embedded architecture, it’s like if QEMU was focused only on embedded. It’s lightweight and effective with several preconfigured chips ready to use. What to use it for and why you should care: Easier, …
SCPI for Embedded Systems
Tuesday, August 26, 2025 in Blog
Introduction When I’m designing the control interface for a new device intended for lab equipment use or an OEM device that doesn’t require constant high data rates, SCPI is the obvious first consideration. It’s human-readable and …
Ceramic Capacitor Characteristics: Pay attention to C(V)
Tuesday, August 26, 2025 in Blog
Introduction During electronics design reviews, it’s overwhelmingly common to find changes are needed for basic bypass and DC storage caps due to ignoring the C(V). The Voltage Rating is the maximum operating voltage that doesn’t risk …
Setting Up Compile Commands for C & C++ for Neovim
Tuesday, August 26, 2025 in Blog
Categories:
Quick tip on enabling Neovim LSP for C/C++ using Clangd TL;DR: Add this to your CMakeLists.txt: set(CMAKE_EXPORT_COMPILE_COMMANDS ON) This will generate a compile_commands.json file in your build directory. Copy or symlink it into your project root …
Method for Reading Thermistors
Saturday, August 02, 2025 in Blog
The thermistor model, jupyter notebook and C++ code I used is available here. Introduction So you’re using a thermistor to measure temperature and need to digitize it. Let’s assume you’re trying to get an accurate temperature …
Pulse Transitions Library
Saturday, July 26, 2025 in Blog
Github Repo: pulse_transitions Over the past few months, I’ve found myself repeatedly needing step response analysis for control systems, TDR work, pulsed light sources, photoreceivers, and flash lidar applications. Matlab has a solid set of tools, …