MAC 84:1f:e8:39:c3:18
STATUS · ONLINE
I Built
GRIOT.
My own AI. In a helmet. On purpose.
Jarvis didn't stand a chance.
Everyone Wants Jarvis.
Nobody Has Jarvis.
There's a scene in the first Iron Man where Tony Stark walks into his garage, says "JARVIS, run a level one diagnostic," and his entire world comes to life around him. The system knows who he is, what he's building, what he needs before he asks.
Every time I watch it, I feel the same thing. Not wonder. Not amazement. Envy.
I've spent two years telling executives, operators, and founders that AI is not some distant future — it is infrastructure. That the question is not whether to build, but how fast, how deep, how deliberately. That the people who figure this out in the next eighteen months will look, in ten years, like the people who figured out the internet in 1997.
I believed every word. I was also going home every night and asking Siri what the weather was.
This needed to stop.
<img src="your-photo.jpg" alt="..." />
The Plan Was Simple.
The Plan Was a Lie.
Here is what I thought was going to happen: I would buy a small computer board, connect it to my AI system, write a quick piece of firmware, and have a working voice assistant by the weekend. Maybe Saturday. Definitely by Sunday.
What actually happened was I spent forty-five minutes trying to figure out why a cable that looked exactly like a data cable was not, in fact, a data cable.
It was a charging cable. An imposter. It had been sitting in my cable drawer for what I can only assume was years, presenting itself as useful, contributing nothing, living a lie.
This is called a "charge-only cable." It is genuinely one of the dumbest things in electronics and I am convinced it exists purely to humble people who think they know what they're doing.
<img src="cables.jpg" alt="..." />
Meet the Team.
It's Smaller Than You'd Think.
The board is called an ESP32-D0WD-V3. That's what they call it. I prefer to call it the thing that is eventually going to be inside my helmet, listening to everything I say, and routing it to an AI that knows my entire calendar, email, and active client engagements.
My fabricator is going to love this.
The sophistication is not in the hardware. The hardware is just ears and a mouth. The sophistication is in what happens between the two — a cloud pipeline that takes my voice, converts it to text, routes it through an AI brain connected to my Notion workspace, my Gmail, my calendar, my Airtable command center, and nine other tools, and speaks an answer back through the speaker.
All in under six seconds. On a $10 board. Inside a helmet.
<img src="esp32-board.jpg" alt="ESP32 board" />
<video src="detection.mp4" controls />
A Partial List of Things
That Did Not Work.
No great build comes together on the first try. I know this. I tell clients this. I still find it personally offensive every time it happens to me.
-
01The First CableSee Act II. There is nothing more to say. It looked right. It was wrong. I've since thrown it away so I can never accidentally use it again.
-
02The Arduino Mega That Wanted to Be InvisibleI plugged in a second Arduino board. The Mac stared back at me with the same energy as someone who has never seen an Arduino Mega. No port. No driver. No acknowledgment that the device existed at all. It was like plugging in a ghost.
-
03The CH340 Driver SituationThe Mega uses a USB chip called the CH340. macOS does not like this chip without a special driver. The driver exists. Installing it requires a reboot. I had forty terminal windows open. This is, to use the technical term, a terrible time to need to reboot.
-
04The Serial Monitor CharactersWhen you read data from a microcontroller without the correct baud rate settings, you get output. Just not useful output. It was entirely question marks. For a brief moment I thought I had invented a new character encoding. I had not.
-
05The Moment I Tried to Flash Without a Data CableReader, you know this one.
<img src="terminal-chaos.png" alt="Terminal chaos" />
The Number 200
Has Never Meant
This Much to Anyone.
HTTP status code 200 means "OK." It means the server received your request, understood it, processed it, and sent something back. It is the most ordinary number in web development.
Most people do not have feelings about it.
╔══════════════════════════════════╗
║ G.R.I.O.T Helmet v1.0 ║
╚══════════════════════════════════╝
[WiFi] Connecting to SpectrumSetup-9B...
[WiFi] Connected. IP: 192.168.x.x
[MODE] TEST — running health check...
[TEST] GET griot.harlemlabs.com/api/audio → 200
[TEST] {"status":"ok","service":"GRIOT Audio API"}
[MODE] Will re-check every 15 seconds.
I sat back in my chair and did not say anything for a moment.
Because a board sitting on my desk — a board the size of a credit card, running code I had written, connected to a WiFi network named SpectrumSetup-9B — had found my server on the internet and knocked on the door.
<video src="first-200.mp4" controls />
or <img src="first-200.png" alt="First 200 OK" />
The Helmet Doesn't
Have a Face Yet.
The board works. The firmware works. The API works. What doesn't exist yet is the actual helmet — the microphone inside it, the speaker behind it, and approximately twelve wires connecting everything together.
That part is next. I have a wiring guide. I have a fabricator. I have a build plan in progress that involves significantly more engineering than is strictly necessary, and that is exactly how I want it.
Three parts are on order. Combined, they turn a $10 microcontroller and a cloud API into something I can put on my head and have a conversation with.
- → INMP441 Microphone size of a fingernail
- → MAX98357A Amplifier size of a large stamp
- → 40mm Speaker less than a coffee
The push-to-talk button already exists. It is the BOOT button on the dev board. I will hold it, speak, release, and wait. Then GRIOT will answer through the speaker.
We are one wiring session away from the first conversation.
<img src="wiring-guide.jpg" alt="Wiring guide" />
<img src="helmet.jpg" alt="The helmet" />
<video src="first-voice-test.mp4" controls poster="thumbnail.jpg" />
This Is What
"AI Systems Architect"
Actually Means.
People ask me what I do. I tell them I help operators build AI infrastructure. That I design systems, not just prompts. That the difference between playing with AI and deploying AI is the difference between having a conversation and building a nervous system.
This is the nervous system.
It is a $10 board. It is a microphone the size of a fingernail. It is firmware I wrote at a desk — compiled, flashed, and confirmed working by a tool I control, running on a machine I own, connecting to an API I built. It routes my voice through a cloud brain that knows my clients, my calendar, my email, my entire operational context.
It is not a product someone sold me. It is not a subscription. It is not dependent on any single vendor staying in business, keeping the API free, or deciding my use case is still supported.
The helmet doesn't have a face yet. GRIOT does.
Next: The Interview →← Back to Wazirigaruba.com