Roger Mendoza

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.

SolveBlockPCBESP32

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.

MeshHardwareResearch

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.

MeshHardwareESP32

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.

ResearchHardwareMesh

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.

ProductHardwareSolveBlock

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.

ResearchAI

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.

SolveBlockHardware

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.

SolveBlockProductESP32

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.

StartupsProduct

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.

MarketsProductAutomation

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.

SEOAutomation

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.

MarketsResearch

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.

MarketsAutomationResearch

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.

ESP32Hardware

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.

HardwareProduct

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.

SEOAutomationProduct

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.

ESP32Hardware

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.

MeshESP32Hardware

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.

AutomationStartups

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.

AIPCBAutomation

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.

HardwareSolveBlock

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.

PCBESP32Hardware

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.

SolveBlockESP32

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.

SolveBlockPCBESP32

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.

AIAutomation

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.

ESP32Hardware

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.

AutomationAIProduct

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.

CareerHardware

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.

AutomationAI

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.

ProductAutomationCareer