Hardware Projects
Hands-on builds. Each one ships as a complete package — firmware, wiring, BOM, build guide — emailed to you on request. The cost figures below are what I actually paid, not what the BOM lists imply.
Building a WiFi Temperature Logger with ESP32: End-to-End
A complete, working project: read a BME280 every 10 minutes, send the reading to a cloud backend over HTTPS, sleep in between, run for months on a battery. Architecture, firmware, and the pieces every tutorial glosses over.
Firmware · wiring · BOM · build guide →Smart Plant Watering System with ESP32
Anyone who has killed a houseplant by neglect can appreciate a system that just keeps it alive. Capacitive moisture sensor, small pump, an ESP32, and about twenty dollars. Here is the whole build with failure modes that matter.
Firmware · wiring · BOM · build guide →Indoor Air Quality Monitor: CO2, Temperature, and Humidity with ESP32
Indoor CO2 rises faster than people realise. After two hours in a closed room it hits 1200 ppm; cognitive performance drops measurably above 1000. This monitor reads it in real time and tells you when to open a window.
Firmware · wiring · BOM · build guide →Motion-Activated Security Camera with ESP32-CAM and Telegram
A $12 ESP32-CAM wakes on motion, captures a photo, and sends it to your phone through Telegram. No cloud subscription, no monthly fee. Runs for weeks on a 18650 battery. Here is the full build including the gotchas that break it.
Firmware · wiring · BOM · build guide →Building a LoRa Multi-Node Sensor Network
WiFi stops at 30 meters and costs power. LoRa goes 2-10 km and runs for years on a pair of AAs. For a farm, a warehouse, or a large house, LoRa is the right radio. Here is how to build a network of three nodes and a gateway.
Firmware · wiring · BOM · build guide →Pulse Oximeter and Heart Rate Monitor with MAX30102
A $5 sensor and an ESP32 give you a working pulse oximeter. The hardware is easy; the signal processing is what separates a working build from a useless one. Here is how the MAX30102 actually works and code that produces sensible numbers.
Firmware · wiring · BOM · build guide →GPS Vehicle Tracker with ESP32 and SIM7600
A WiFi tracker stops working the moment the vehicle leaves home. A cellular tracker keeps reporting from anywhere with mobile coverage. Here is how to build one with an ESP32 and a SIM7600 module, including the cellular gotchas.
Firmware · wiring · BOM · build guide →Robot Car: Line Follower with Obstacle Avoidance
The line-following robot is the embedded equivalent of a programming bootcamp's calculator project — it teaches more about real-world control systems than any textbook. Here is the build, the code, and a simple PID that actually works.
Firmware · wiring · BOM · build guide →Solar-Powered Weather Station That Runs Forever
An outdoor weather station with no power cable, no battery to swap, and no maintenance. ESP32, BME280, anemometer, rain gauge, a small solar panel, and the right power management. Install once, runs for years.
Firmware · wiring · BOM · build guide →Smart Energy Monitor: Track Household Electricity Use with ESP32
Your electricity bill is one number per month. A real-time energy monitor turns it into a continuous signal you can act on. Non-invasive current clamps, an ESP32, and a dashboard that shows where the watts are going.
Firmware · wiring · BOM · build guide →WiFi Smart Doorbell with Camera and Push Notifications
Commercial smart doorbells lock your video into a subscription. This one is yours: ESP32-CAM, a button, your phone for notifications, no monthly fee, no cloud you don't control.
Firmware · wiring · BOM · build guide →Bike Computer with GPS, Speed, and Route Tracking
Garmin and Wahoo charge $300+ for what is fundamentally an ESP32 with a GPS module. Build your own for a fifth of the price, fully owned, fully customisable. GPS-tracked routes, real-time speed and distance, OLED display, and a battery that lasts a long ride.
Firmware · wiring · BOM · build guide →Bluetooth Wireless Game Controller with ESP32-S3 (BLE HID)
Building a custom game controller turns out to be one of the most direct ways to learn Bluetooth Low Energy and Human Interface Device protocols. ESP32-S3 plus buttons plus a thumbstick equals a wireless controller your computer thinks is a real gamepad.
Firmware · wiring · BOM · build guide →Aquarium and Plant Auto-Feeder with Schedule and App
Commercial auto-feeders work but rarely surprise anyone. This one does the same job for $15 in parts and lets you control the schedule from your phone, view feed history, and get a notification if a feed didn't happen.
Firmware · wiring · BOM · build guide →WiFi-Controlled WS2812B LED Strip with Web UI
An ESP32 driving a 5-meter WS2812B addressable LED strip, with a built-in web UI for picking colors, presets, and animations. No app, no cloud, no monthly fee. Mounts behind a desk or under a kitchen cabinet in an evening.
Firmware · wiring · BOM · build guide →Wireless Water Tank Level Monitor with Threshold Alerts
A waterproof ultrasonic sensor mounted at the top of a water tank measures the air gap, computes the fill percentage, and sends alerts when the tank drops below a threshold. Built around an ESP32 in deep sleep, runs for months on three AA cells.
Firmware · wiring · BOM · build guide →Mailbox Open Notifier with Battery-Powered ESP32
A reed switch on the mailbox lid wakes a sleeping ESP32 the moment the mail carrier arrives. The board connects to WiFi just long enough to send a Telegram message, then goes back to sleep. Two AAs last a full year.
Firmware · wiring · BOM · build guide →Smart Garage Door Opener with Open/Closed State Sensing
An ESP32 that does two things: pulses a relay across the existing garage-door wall-button contacts to trigger the door, and reads a reed switch on the floor track to know whether the door is currently open or closed. MQTT-controlled for Home Assistant, with a tiny web UI as fallback.
Firmware · wiring · BOM · build guide →Programmable Smart Thermostat with OLED and Schedule
An ESP32 with a temperature sensor, a relay to drive the heater contactor, and a small OLED for status. The schedule is set via a web page (mornings warm, daytime cool, nights cooler), and reports temperature history to MQTT.
Firmware · wiring · BOM · build guide →RFID Door Lock with Access Logging Over WiFi
An ESP32 paired with the cheap MFRC522 RFID reader and a 12 V solenoid lock. Authorized cards open the lock and log the access (who, when) to a server. Unknown cards trigger a buzzer and log a denied attempt. About $35 in parts.
Firmware · wiring · BOM · build guide →Automatic Cat Feeder with Stepper Motor and Portion Control
A stepper-driven auger dispenses a measured portion of dry cat food on a schedule. ESP32 + DS3231 RTC for accurate timing, NEMA17 stepper for repeatable portions, and a phone-friendly web UI to override the schedule when you're traveling.
Firmware · wiring · BOM · build guide →Internet Radio Player with I2S DAC and Rotary Encoder
An ESP32 streams MP3 internet radio stations through a MAX98357 I2S audio DAC into a small speaker. A rotary encoder picks the station, an OLED shows the now-playing string, and the whole thing fits in a coffee-mug-sized enclosure. Sounds genuinely good for $40 in parts.
Firmware · wiring · BOM · build guide →Smart Air Purifier Controller with PM2.5 Sensor
An ESP32 reads the PMS5003 laser particle sensor and drives a 12V PWM fan through a MOSFET. Speed scales with measured PM2.5: quiet when air is clean, ramping up when pollution rises. Reports live readings to MQTT. Around $50 in parts including the fan.
Firmware · wiring · BOM · build guide →Motorized Smart Blinds with Stepper Motor and Light Sensor
A NEMA17 stepper rotates the tilt rod of standard horizontal blinds. An ESP32 schedules opens at sunrise, closes at dusk, and adjusts based on a photoresistor reading the actual sunlight. The blinds you already own become smart for $50 instead of $300 per window.
Firmware · wiring · BOM · build guide →Embedded Programming
Start here if you're new, or if you came in through Arduino and now want to know what's actually happening underneath. Concept articles, plus the comparison guides I wish I'd had when I was picking my first board.
What Is Embedded Programming? A Plain-English Introduction
Most of the computers in your life are not the ones you sit in front of. They are inside your microwave, your car, your coffee machine, your insulin pump. Embedded programming is how those computers get told what to do.
The Arduino Family Explained: Uno, Nano, Mega, and When to Use Each
The Arduino brand has grown from one board to more than twenty, and most online guides still recommend the wrong one. Here is the honest field guide: specs, prices, and what each board is genuinely useful for in 2026.
ESP8266 vs ESP32: The Complete Comparison
Espressif's chips quietly took over IoT. Between the original ESP8266 and the seven-and-counting ESP32 variants, picking the right one is genuinely hard. Here is the full field guide with a decision flowchart.
C vs C++ for Embedded Systems: An Honest Comparison
The debate is older than most firmware engineers. C is the historical default; C++ has quietly taken over huge parts of the industry. Here is when each one is actually the right choice.
Bare Metal vs RTOS: When to Use Each
An RTOS sounds professional. Bare metal sounds primitive. Neither intuition is reliable. The right choice depends on concurrency, RAM, timing, and team size — and most firmware projects get this wrong in the same direction.
Integrating Sensors with Arduino and ESP32: A Practical Guide
The sensor you pick and how you wire it determines whether your project works reliably or crashes mysteriously after six hours. Here is the honest guide to the common sensors, their interfaces, and the gotchas nobody warns you about.
Common Patterns for Arduino and ESP32 Projects
The pitfalls that turn a Saturday project into a week-long debugging session are usually the same ones. Here are the patterns experienced embedded engineers reach for automatically, explained so you can too.
Communication Protocols Compared: I2C vs SPI vs UART vs CAN
Every embedded engineer needs fluency in I2C, SPI, UART, and CAN. They look interchangeable in tutorials and could not be more different in practice. Here is the side-by-side comparison with real use cases.
MQTT vs HTTP for IoT: When to Use Each
HTTP is the easy default. MQTT is the right answer more often than people realise, especially for battery-powered devices that report continuously. Here is the honest comparison with real packet sizes and battery numbers.
ESP-NOW Mesh: Wireless Without WiFi Infrastructure
ESP-NOW lets two ESP32 boards talk directly to each other — no router, no IP, no internet. Five-millisecond latency, 250-byte packets, hundreds of meters range. Here is how to use it for projects WiFi cannot do.
Firmware Internals
Open these when you've outgrown the friendly abstractions and need to know what's actually happening below the line. Memory layout, what runs before main(), how DMA quietly takes over the bus, what an RTOS scheduler is doing on its tick.
Memory Management on Microcontrollers
Firmware that crashes in the field six months after shipping is almost always a memory bug. Here is how to reason about stack, heap, and static allocation on a microcontroller, and the patterns that prevent the disasters.
RTOS Concepts: Tasks, Queues, Semaphores, Mutexes
Real-time operating systems sound formidable. The vocabulary is the hard part; the concepts are mostly things any programmer already understands. Here is the practical introduction with FreeRTOS code.
Bootloaders, Linker Scripts, and the Boot Process
What actually happens between pressing reset and main() running? Most embedded engineers go through their whole career without learning. Once you do, debugging boot issues, writing bootloaders, and customising memory layouts stop being magic.
DMA Explained: Why Your CPU Should Not Move Bytes
Most CPU time in firmware projects is spent shuffling bytes between peripherals and memory. DMA does it without involving the CPU at all, which is why every serious embedded application uses it. Here is what it is, when to use it, and the gotchas.
Power Management on Microcontrollers Deep-Dive
The difference between a battery-powered project that runs for a week and one that runs for a year is almost entirely about power management. Sleep modes, peripheral gating, wake sources, and the real numbers from the bench.
Debugging Firmware: JTAG, SWD, RTT, and Logic Analyzers
Most beginners get stuck at printf debugging because the next step looks intimidating. SWD costs $5, sets up in ten minutes, and changes how you write firmware forever. Here is the honest tour of debug tools and when each is worth the setup time.
Hardware & Bench Tools
PCB design, the oscilloscope you can actually afford, the logic analyzer that earns its space. Buying-guide articles written from things I've used, broken, replaced, and re-bought.
PCB Design Basics: From Schematic to Manufactured Board
Designing a printed circuit board sounds intimidating until you have done it once. The workflow is short, the tools are free, and a manufactured five-board run from JLCPCB costs five dollars. Here is the field guide.
PCB Design Software Compared: KiCad, Altium, Eagle
KiCad has gone from interesting open-source project to the consensus choice for most engineers. Altium remains the industry incumbent. Eagle is dying. Here is the honest 2026 comparison and migration guide.
Choosing an Oscilloscope: A Hobbyist's Guide
Buying your first oscilloscope is overwhelming because every spec sounds important and every model claims to have the right amount of each. Here is the honest field guide that cuts through the marketing.
Logic Analyzers: When You Need One and Which to Buy
A logic analyzer is the single best return-on-investment in an embedded engineer's toolkit. The cheap clones at $10 are surprisingly capable; the genuine Saleae at $400 is a different league. Here is what to buy and why.
The Embedded Engineer's Toolkit in 2026
The right tools turn a frustrating debugging session into a thirty-second job. Here is the equipment that earns its place on every embedded engineer's bench, organised by budget tier from $100 to $2000.
Edge AI & TinyML
Inference on a microcontroller is no longer a research curiosity. Three articles on what's possible right now: TFLite-Micro on the ESP32-S3, person detection from a camera, and offline wake-words.
TensorFlow Lite Micro on ESP32-S3: A Practical Introduction
Running a neural network on a microcontroller sounded absurd five years ago. Now it is routine: the ESP32-S3 has 16 KB of TensorFlow Lite Micro runtime and inference under 100 ms. Here is how to actually deploy a model.
Person Detection on a Microcontroller
A doorbell that recognises people instead of false-triggering on shadows. A trail camera that ignores rabbits. Person detection on an ESP32-S3 is genuinely viable in 2026 — here is the practical build.
Voice Activation Without the Cloud
Wake-word detection on an ESP32-S3 makes voice activation possible without sending audio to a server. No cloud, no monthly fees, no privacy compromise. Here is how to actually build it.
System Design
The architecture choices that shape how a system fails, scales, and evolves. Mostly written for backend engineers who want to think clearly about CAP, caching, and the auth/messaging stacks they'll inherit.
System Design 101: What It Actually Means
System design is the most over-taught and under-explained topic in software engineering. Here is what it actually covers, why it matters, and how to start thinking about it without memorising interview cheat sheets.
The CAP Theorem Explained Without the Jargon
The CAP theorem is one of the most misquoted results in distributed systems. Every time someone says "we chose CP over AP" they mean something different from the last person who said it. Here is what the theorem actually says.
Monoliths vs Microservices: When Each Is Right
For ten years microservices were the default answer. The industry is now quietly walking that back. Here is how to decide which architecture fits your actual problem, without cargo-culting either direction.
Caching Strategies Every Backend Developer Should Know
Caching is the single highest-leverage performance technique in most backend systems. It is also the source of an alarming percentage of production incidents. Here are the patterns, the pitfalls, and the decisions that actually matter.
API Design: REST vs GraphQL vs gRPC
REST is the default; GraphQL is the trendy alternative; gRPC is the high-performance option. Each one is the right answer for a different shape of problem. Here is the honest comparison with code samples.
Authentication Patterns: OAuth, JWT, Sessions
Auth is one of those topics where everyone knows two patterns but rarely understands the trade-offs. Here is the field guide to sessions, JWTs, OAuth, OpenID Connect, API keys, and mTLS — what each is, when to use it, and what breaks.
Message Queues Compared: Kafka, RabbitMQ, SQS
Three message queues dominate modern backends and they solve different problems. Kafka for high-throughput logs, RabbitMQ for flexible routing, SQS for managed simplicity. Here is the comparison and when each is the right pick.
Observability: Tracing, Metrics, and Logs
Logs alone do not tell you why a request was slow. Metrics alone do not tell you which user was affected. Traces alone do not tell you what happened. Production observability is the discipline of having all three working together — and it is what separates teams that ship reliably from those that do not.
DevOps & Infrastructure
Docker, Kubernetes, CI/CD, Terraform — the toolchain that takes a working app from a laptop to production. Written without the cargo-culting.
Docker for People Who Avoid Docker
Docker feels weird at first because it is genuinely weird. Once the mental model clicks, it becomes one of the most useful tools in software. Here is the introduction without the cargo cult.
Kubernetes Without the Hype
Kubernetes is the most over-adopted technology in modern infrastructure. It is also the right answer for a specific class of problems. Here is the honest tour: when you actually need it, when you do not, and what it actually is underneath the YAML.
CI/CD Pipelines Done Right
Continuous Integration and Continuous Deployment have become the default but most pipelines we see are slow, flaky, or unsafe. Here is the architecture for pipelines that work: stages, secrets, deploy strategies, and the antipatterns that destroy team velocity.
Infrastructure as Code: Terraform Fundamentals
Clicking around AWS to set up infrastructure works once and never again. Terraform turns infrastructure into code: versioned, reviewable, reproducible. Here is the field guide to getting started without the usual pitfalls.