Notes from the bench
Notes
Write-ups on ESP32 projects, PCB and enclosure design, mesh networking, AI-assisted engineering, automation and building products from scratch.
30 posts
Inside SolveBlock Core Rev C: a custom ESP32-S3 board, and the checkmarks we had to take back
From a dev board on a breadboard to a custom ESP32-S3 PCB — the layout, the manufacturer checks, the firmware architecture that runs on more than one board, and an honest milestone list.
568×: the phone call, the batching rule and the bug that would have dialled
Adding a dial-up telephone carrier to a LoRa mesh exposed a routing bug that no test caught — it would have been discovered as a phone bill.
First packet across real air: Reticulum over a dictyon carrier
Two Heltec V3 radios, one evening, and a round-trip time predicted before it was measured. What the first real-RF runs of Dictyon-net taught me about honest arithmetic.
Take the theorem, test the claim: 3-6-9, vortex maths and a sphere
I gave 3-6-9 numerology, vortex mathematics and the Rodin coil one honest test each. Most claims didn't survive — but the mathematics hiding inside them produced the biggest engineering gain in the project.
The maker loop: requirements, build, measure, repeat
Hardware, firmware, software and customers all respond to the same loop. A look at how I take an idea from first sketch to working prototype — and why the loop matters more than any tool.
NULL is a deliverable: auditing 113 research findings
A burst of AI-assisted research produced 88 findings in two days. Auditing them against their own rules found that the filter never ran — and that the audit was the most useful finding of all.
Four enclosures, one script: choosing SolveBlock's shape
Block, flat, wedge or stand? Generating every candidate enclosure from one parametric source turned an argument about taste into a quick, fair comparison.
Every screen from the firmware: designing SolveBlock's interface
A normal solve costs zero input, the coach stays quiet most of the time, and there's no scramble generator on purpose. The interface decisions behind SolveBlock, shown in the device's own screens.
The starter stack: launching a product without overbuilding
The tools and sequence I use to take an idea from zero to something real customers can touch — and the things I deliberately postpone.
From scanner to product: building GammaJuice
Turning a Python squeeze scanner into a signals product — a dashboard, a content site on a headless CMS, automated social posts and the engagement data that changed what we publish.
Affiliate links rot. Here's how to manage them at scale.
Programs change, products disappear and redirects break quietly. A practical system for keeping hundreds of affiliate links healthy without checking them by hand.
The 80% win rate that wasn't
A backtest dashboard showed squeeze signals winning 80% of the time. Two lines of code explained why — an outcome-defined label and exits at the peak price.
Backtesting a squeeze scanner without fooling myself
A thin edge, two filters that sounded smart and didn't help, and a liquidity effect hiding in plain sight. What 2,633 historical signals from the 3WT scanner actually said.
Power budgets: making a battery ESP32 project last
Duty cycles, deep sleep, regulators that leak and the multimeter habit that saves you from surprises. A practical guide to battery life on ESP32 boards.
Treat wild ideas as testable hypotheses
Ternary-Six9 is an experimental communications concept. Here's how I keep unusual ideas honest — models, fixtures, baselines and logged measurements before any conclusions.
SEO is a data problem: lessons from building AffRank.ai
Rankings, keywords, metadata, structured FAQs and affiliate links all change constantly. AffRank.ai treats site management like data engineering — with reviewable changes.
ESP32 vs RP2350: how I pick the brain of a project
A practical comparison of two microcontrollers I use constantly — radios, real-time I/O, power, tooling and the questions that settle the choice in five minutes.
Growing a mesh: early lessons from Dictyon-net and Hypha Nodes
What I'm learning while building a decentralized, low-power communications mesh on ESP32 and RP2350-class hardware — identity, addressing, multipath and measuring everything.
Why FastAPI and PostgreSQL are my default backend
For small products, dashboards and device back-ends, I keep reaching for the same boring, reliable stack. Here's the setup and why it holds up.
AI can review your PCB. The datasheet still decides.
How I use Python, MCP-connected tools and AI assistants to speed up schematic reviews, routing checks and firmware tests — and the verification rules I never skip.
Enclosures as code: why I design 3D-printed parts in OpenSCAD
Parametric enclosures, tolerance variables and fit-check prints — how treating plastic like source code made my hardware iterations faster.
First power-on: my board bring-up checklist for custom ESP32 boards
The step-by-step routine I follow when a fresh PCB arrives — from a current-limited first power-up to a known-good firmware baseline.
The timer is the source of truth — designing deterministic solve statistics
Why SolveBlock never re-times a solve, how we compute averages with integer math, and what "deterministic" really means for a tiny embedded device.
From napkin to PCB: designing SolveBlock in KiCad
How a speedcubing idea became a custom ESP32 board — the requirements, the schematic decisions, the layout tradeoffs and the mistakes I'd happily make again.
Structured outputs: prompt engineering for answers your code can trust
How I design LLM prompts and schemas that return reliable JSON for analytics, reporting and automation — plus the validation layer that catches everything else.
Why the ESP32 became my favorite blank page
Wi-Fi, Bluetooth, two cores and a pile of peripherals for the price of lunch. Here's why nearly every idea I have starts on an ESP32 — and when it shouldn't.
Automation people actually adopt
Lessons from building onboarding, CRM and AI workflows — including an LLM-assisted onboarding flow that cut onboarding time by 35%. Adoption is the real metric.
What 20 years of enterprise infrastructure taught me about building hardware
Citrix farms, hospital uptime and change control don't sound like PCB design. They turned out to be the best training I could have had.
n8n or code? How I decide when to automate visually
Visual workflow tools and plain Python both have a place. A practical guide to choosing between them — and to the hybrid approach most of my automation uses.
What 17,000 customers taught me about funnels, follow-up and trust
Twelve years of building the systems behind a direct-sales business — e-commerce, CRM, email/SMS and training — and the product lessons that carried over into engineering.