Learn

last modified: October 23, 2025

The Importance of Wall Profiles in 3D Printing

Posted on 2023-02-12— 3D Printing, Learn

I'm not a 3D‑printing expert, but I show how simple wall profiles — correct XY/Z thickness, chamfers, and internal recesses — make printed boxes stronger and lighter. I share CAD steps, simulations, and common mistakes in plain terms. Read the full post for practical tips to improve your prints.

Read this post

The Hinges and its Secrets for Perfect PETG Print

Posted on 2023-02-07— 3D Printing, Learn

I'm not a 3D printing guru, but I built and tested three print-in-place hinges optimized for PETG/ASA and explain the small design choices that make them work reliably. I walk you through bridging, fin widths, overhangs, and conical holes — read the full post to learn how to print them well.

Read this post

Better Bridging with Slicer Guides

Posted on 2023-02-04— 3D Printing, Learn

I explain why I add small guide bridges to tricky gaps in my 3D prints and how they help PETG bridging. I show the settings I use and demonstrate results in my modular lantern model. Read the full post to see images and step-by-step tips to apply this to your designs.

Read this post

Extreme Integers – Doom from Below

Posted on 2022-09-04— C++, Improve your Code, Learn

I take you on a short, pragmatic journey into C++ integer pitfalls—why signed and unsigned types behave oddly, how literals, negation and overflow can bite, and simple tests to reveal compiler quirks. If you work in embedded or systems code, please read the full post for examples and guidance.

Read this post

How to Create a Large 3D Printed Artwork

Posted on 2021-12-30— 3D Printing, Build, How and Why, Learn, Projects

I built a 100×80cm 3D‑printed artwork and walk through the technical steps I used: preparing mathematical height data, generating Z‑maps, slicing into printable tiles with Blender and PrusaSlicer, and assembling and painting the final piece. If you're curious about the scripts and workflow, read the full tutorial.

Read this post

Filtered RPM Measurement Using PIO

Posted on 2021-04-17— Learn, Software

I walk you through using the RP2040's PIO to measure a PC fan's RPM with a small software filter to ignore short spikes and timeouts. I explain the PIO routine and a simple RpmInput wrapper in MicroPython—read on if you'd like the code and practical setup tips.

Read this post

How to Assemble the MicroMaTch Connectors with a Hammer

Posted on 2021-03-21— Learn

I show a simple, reliable method I use to assemble MicroMaTch connectors with a hammer. I made a short video that walks through the exact technique step by step. If you want a quick, practical demo and tips, I hope you'll watch the clip and read the brief how-to.

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

Consistent Error Handling

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

I walk through practical techniques I use to make firmware error handling clearer and more consistent in modern C++. From enum classes and a shared SimpleStatus to StatusResult templates and helpers like isSuccessful, I present readable patterns and code examples you can adopt. Read the full post for details and examples.

Read this post

Use Enum with More Class!

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

I explain C++11 enum class: why it prevents name conflicts, how it compares to traditional enums and common workarounds, with practical Arduino-friendly examples. If you want clearer, safer enum usage in your interfaces, read the full post for code samples and simple best-practice guidance.

Read this post

C++ Templates for Embedded Code (Part 2)

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

I continue exploring C++ templates for embedded systems, showing template classes, pin abstraction, and combining Sender and Pin examples to reduce firmware size and improve code clarity. I explain static methods, type aliases, and trade-offs between runtime flexibility and efficiency. Read the full post to see code and assembly comparisons.

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

C++ Templates for Embedded Code

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

I walk through C++ templates for embedded projects, showing how function templates work, why they’re type-safe, and how they can keep firmware small and fast. Using Arduino examples like circularShift, reverseBits and a template-based Sender, I invite you to read the full post to learn practical tips and patterns.

Read this post

Auto and Structured Binding

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

I introduce C++17 structured binding with approachable examples: returning multiple values via std::tuple, binding to structs and arrays, and using references to avoid copies. If you use a C++17-capable compiler and want cleaner, clearer code, read the full article for practical examples and tips.

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

It's Time to Use #pragma once

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

I explain why I prefer #pragma once over macro header guards and how it prevents subtle build errors and wasted debugging time. I’ll show examples, common pitfalls, and practical steps to replace guards in existing projects — read on if you want a simple, low-risk improvement.

Read this post

Write Less Code using the "auto" Keyword

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

I walk through practical ways I use C++11's auto keyword to reduce repetitive declarations, simplify range-based for loops, lambdas and register access, and make Arduino and embedded code easier to refactor. Read the full post for examples and tips you can apply to your projects.

Read this post

Units of Measurements for Safe C++ Variables

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

I show how I avoid unit mistakes in C++ by creating a templated Duration type and user-defined literals like 100_ms. I explain declaring Seconds/Milliseconds/Nanoseconds, adding conversions, and how the compiler catches unit mismatches with no runtime cost. Read the full article for code examples and the GitHub repo.

Read this post

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