AI for Inventors — Field Case Study

From Idea
to Working Sensor
Without a Team

How one inventor used AI as a full-time co-engineer to design, wire, code, debug,
and iterate a CrossFit jump-rope counter — across weeks of real bench work.

The goal was straightforward: build a floor mat that detects single, double, and triple-under jump-rope passes and displays a live count on a screen. No team. No EE background on call. Just an inventor, an AI, and a lot of test rigs.

What follows is an honest account of where AI accelerated the work dramatically — and where it gave wrong guidance that cost real hours to recover from.

4 Sensors Tested
v2.2 Firmware Reached
600 RPM Test Rig Built
3 AI Errors Caught
§ 02 — Real Dialogue

Conversation Excerpts

These are lightly edited excerpts from the actual working sessions. They show what the collaboration genuinely looked like — not polished demos, but live problem-solving under time pressure.

Early architecture lock-in

Inventor Help me build a PoC jump-rope counter mat for CrossFit. It needs to detect single-under, double-under, and triple-under jumps.
AI Best fit for PoC: A1324 linear Hall sensor + N52 neodymium magnet below, ADS1115 16-bit ADC for resolution, ESP32-POE-ISO as MCU, SSD1306 OLED for display. Sensors in a 2×2 grid at 40mm centers. Here's the full schematic hierarchy and firmware skeleton...
✓ What worked

The architecture held. Every major component selected in the first session made it to the working prototype. No pivots on core parts — only refinement on configuration, thresholds, and wiring.

· · · weeks later · · ·

First firmware crash (I2C mutex)

Inventor The OLED is stuck on "v2.1 initialising..." for over 2 minutes. Serial is frozen after printing all four sensor baselines. Backtrace: 0x40087754:0x3ffb2000 0x40087719:0x3ffb2020…
AI Root cause: sensingTask (Core 1) and displayTask (Core 0) both call ads.readADC_SingleEnded() with no mutex — Wire library deadlocks. Also: the patch approach left captureBaseline() calling xSemaphoreTake() on a mutex that didn't exist yet. I'm delivering a complete clean file — no more patches.
✗ AI's mistake

The patch-based v2.2 instructions were the direct cause of the crash. The mutex was referenced before it was created in setup(). The AI issued a patch to a file it had already broken with a prior patch — compounding the error. A full rewrite was faster than debugging the patch chain.

· · · next session · · ·

AI recommends increasing the gap — inventor pushes back

AI To center the A1324 quiescent output at 2500mV (VCC/2), increase standoff distance from 12mm to ~22mm. This maximizes dynamic range in both directions.
Inventor I'm confused — we had to increase magnetic strength from the initial weaker magnets. Why would increasing the gap be beneficial?
AI You are completely right. That was bad advice. The 22mm recommendation optimized for theoretical baseline centering while ignoring the core lesson: you proved you need strong field for usable delta. N52 at 22mm ≈ 8× weaker than at 12mm. Keep 12mm. The high baseline is manageable in firmware.
⚠ Honest note

The AI presented a textbook EE recommendation (midpoint biasing) without accounting for project history. The inventor's question — grounded in actual bench experience — was the correct engineering call. Always cross-check AI suggestions against what you've already physically proven.

§ 03 — Decision Points

Four Pivots That Shaped the Build

These weren't mistakes — they were the design process. Each pivot produced a measurably better outcome than the previous approach.

01 Sensor Selection
Digital → Analog Hall Sensor

Started with A3144 digital Hall (on/off). Rope was too thin and too far away to consistently cross the threshold. Switched to A1324 linear analog — 5mV/Gauss, 16-bit ADS1115 ADC. Detection became a signal amplitude problem, not a binary one.

02 Platform
Arduino Uno → ESP32 Dual-Core

Arduino had no headroom for concurrent sensor sampling and OLED rendering. ESP32 FreeRTOS dual-core split: Core 1 = sensing loop (never interrupted), Core 0 = display + button. Display latency dropped to zero effect on count accuracy.

03 Noise Floor
860 SPS → 250 SPS on ADS1115

Maximum sample rate produced maximum noise. At 600 RPM (10 passes/sec), Nyquist requires only 20 samples/sec. Dropping to 250 SPS reduced RMS noise 5× per ADS1115 datasheet — free improvement, no hardware change, no firmware refactor.

04 False Triggers
Single Sample → 3-Sample Confirmation

Loose wires in hot glue caused intermittent spikes of 1–2 sample duration. Real rope passes at 600 RPM last 8–15ms (8+ samples at 250 SPS). Requiring CONFIRM_SAMPLES=3 consecutive threshold crossings eliminated wire-bounce false counts without missing real passes.

Chronological Steps

Step 01

Defined full hardware architecture: A1324 sensors, N52 magnets, ADS1115 ADC, ESP32, SSD1306 OLED, AO3400 MOSFET drivers for coil design.

Step 02

Tested A3144 digital Hall + 10kΩ pull-up. Detected inconsistently at 0mm clearance. Identified sensor sensitivity as the core failure mode.

Step 03

Burned one A1324 sensor by leaving the A3144 pull-up resistor in circuit on the analog output pin. Safety protocol added: 100Ω VCC protection on every new sensor first power-on.

Step 04

Confirmed rope material is ferromagnetic using N52 magnet attraction test. Detection physics validated — failures were sensor sensitivity, not material incompatibility.

Step 05

Wrote RopeTest-Analog.ino for Arduino. First repeatable serial-output detection of rope pass with delta > threshold. Baseline calibration loop established.

Step 06

Upgraded to ESP32 + ADS1115 4-channel array. Wrote hall_pass_counter_v2_0 with FreeRTOS dual-core, dynamic baseline, majority-vote detection logic.

Step 07

Built custom 600 RPM steel-cord spinning test rig to simulate rope passes without an athlete. First hardware test rig inventor built independently of AI guidance.

Step 08

Debugged I2C mutex crash (v2.1 → v2.2). Added RPM calculation to OLED display. Added ROPE_STEEL mode for 1mm uncoated cord with tuned thresholds.

Step 09

Added WIRE_FAULT diagnostic — single-sample jump detector that identifies which channel has an intermittent connection before teardown. Identified hot-glue bracket as mechanical failure source.

Step 10 — Working Prototype

Defined wooden platform rebuild spec: soldered pigtails, routed wire channels, press-fit magnet pockets, JST-PH headers to ADS1115. Began KiCad coil-cell schematic hierarchy for PCB electromagnet coil + Hall sensor tile.

§ 04 — What Only You Can Do

Inventor Contribution

AI can write firmware, produce schematics, and calculate field gradients. It cannot do any of the following — and every one of these proved to be a critical path item in this project.

🔩
test_rig_600rpm.jpg
600 RPM steel-cord spinning test rig — custom-built by inventor to simulate rope passes at competition speed. No AI prompted this design.
Insert test_rig_600rpm.jpg here — the rotating rig with sensor array positioned below the cord arc.
§ 05 — Honest Assessment

Reality Check

This is not a success story with a bow on it. It's an ongoing engineering project. Here is an unfiltered scorecard of what AI-assisted development actually produced.

Area AI Performance Verdict
Initial architecture Correct sensor family, correct ADC, correct MCU, correct display — all on first suggestion. No pivots on any of these. Excellent
Firmware structure FreeRTOS dual-core split, I2C mutex, portMUX data protection, confirm-sample filter — all sound embedded-systems patterns correctly applied. Excellent
Iterative debugging Correctly diagnosed backtrace crash from serial output alone. Correctly identified Wire library deadlock as root cause without seeing the hardware. Strong
Threshold tuning Recommended thresholds required real-bench iteration. Starting values needed 2–3 adjustment cycles. The model had no physical reference for the actual delta magnitudes at this standoff distance. Adequate
Patch-based code updates Issued patch instructions that crashed the system (null mutex). Cumulative patches broke the code before a full rewrite fixed it. Patches are faster to write but riskier than full-file replacements in complex RTOS code. Failed
Physical geometry advice Recommended 22mm standoff to achieve textbook VCC/2 baseline — directly contradicted by bench-proven finding that stronger field is essential. Inventor correctly overrode this. Wrong
Mechanical design Described wooden platform cut list and assembly sequence accurately. Could not assess hot glue failure, Anderson connector vibration loosening, or wire routing in the actual physical space. Advisory only
KiCad / PCB design Generated working spiral coil footprint Python script (fp_line format for KiCad 9.0). Identified MCP server path for full agentic KiCad control. PCB schematic hierarchy defined but not yet executed. In progress
⚠ Key pattern to know

AI performs best on problems with a correct answer in its training data: firmware patterns, datasheet interpretation, diagnostic logic. It performs worst on problems that require knowing your specific physical context — geometry that worked, failures that happened last week, what your hands tell you when you tug a wire. Keep those two domains clearly separated in your mind.

📟
serial_output_v2_2.png
Serial monitor showing baseline calibration, EVT timestamps, and RPM readout after v2.2 fix.
Insert serial_output_v2_2.png — Serial Monitor at 115200 baud showing baseline ≈3875mV ×4, EVT lines with d=[] deltas, RPM calculation.
📺
oled_live_count.jpg
OLED display showing live pass count, RPM, per-sensor deltas, and 60s timer progress bar.
Insert oled_live_count.jpg — 128×64 OLED showing pass count (large), RPM line, and four delta values on bottom row.
🧲
sensor_array_2x2.jpg
2×2 Hall sensor array at 40mm centers over N52 magnets at 12mm standoff, before wooden platform rebuild.
Insert sensor_array_2x2.jpg — breadboard phase sensor array showing hot glue mounting issue that caused intermittent faults.
🧩
kicad_spiral_coil.png
KiCad PCB editor showing the 50mm spiral coil footprint generated by the Python script.
Insert kicad_spiral_coil.png — Spiral_Coil_50mm.kicad_mod in PCB editor, zoomed in to show fp_line trace segments.

Technical Details Worth Knowing

stack: key technical decisions MCU: ESP32 Dev Module, 240MHz, dual-core FreeRTOS Sensor: A1324LUA-T linear Hall, 5mV/G, TO-92 UA package ADC: ADS1115, 16-bit, 0.125mV/LSB @ GAIN_ONE, I²C 0x48 ADC rate: 250 SPS (final) — 5× noise reduction vs 860 SPS max Display: SSD1306 OLED, 128×64, I²C 0x3C — same bus as ADC I²C safety: SemaphoreHandle_t mutex serializes ALL Wire calls Both cores were calling ads.readADC() simultaneously without mutex → Wire deadlock → backtrace crash Detection: CONFIRM_SAMPLES=3 consecutive threshold crossings Real rope pass @ 250 SPS lasts 8+ samples Wire-bounce spike lasts 1–2 samples — filtered out Lockout: PULSE_MIN_MS=70 — blocks re-triggers within one pass at 600 RPM (100ms period) Magnets: N52, 15.875mm dia × 6.35mm thick, 12mm standoff Baseline ~3875mV (south pole up) — manageable PCB target: 50×50mm tile, 2-layer, 30mm spiral coil F.Cu, Hall sensor at geometric coil center (25,25)mm
§ 06 — The Takeaway

What This Means for Hardware Inventors

There are two questions every inventor asks when they first hear about AI-assisted development: Can it replace my engineer? and Is it worth my time to learn?

This project answers both. AI cannot replace the engineer because the most critical decisions in this build — which test to run, which geometry is physically proven, when the breadboard needs to be thrown out — required hands-on context that no language model has. But AI dramatically compressed the time between idea and working prototype by handling the parts of engineering that are lookup-intensive: library selection, firmware architecture, datasheet interpretation, debug logic, schematic hierarchy.

The inventor did not need to know FreeRTOS mutex semantics before this project. They needed to know that the AI wrote the mutex wrong and that the bench told them so via a backtrace. That's the skill: using AI for density, using your hands for ground truth, and knowing which is which.

"AI gave me the firmware for a sensor I didn't know existed, wired to a processor I'd never touched, in a framework I'd never used — and when it crashed, it told me exactly why. My job was to build the test rig that proved it was actually working."
✓ Practical checklist for hardware inventors

1. Lock architecture first. Get AI to select your core components before writing a line of code. If the architecture is right, pivots are refinements — not rebuilds.

2. Always request full files, not patches. Patch chains in complex firmware compound errors. Ask for the complete updated file every time.

3. Cross-check against your bench history. AI has no memory of what hurt you last week. If a recommendation contradicts something you physically proved, trust the bench.

4. Use AI for the vocabulary, not the judgment. It knows what CONFIRM_SAMPLES means and how to implement it. You decide whether 3 samples or 5 samples is right for your noise environment.

5. Hire ChessTrees to accelerate the parts that matter. Structured AI prompting for hardware projects is a learnable skill — and having an expert set up the workflow saves weeks.

Work With ChessTrees AI for Inventors Workshop