My ESP32 Project: Building Something I Didn't Think I Could

Updated: at 03:20 AM

I have no experience designing printed circuit boards, and I haven’t written much C++ in years. Yet I have been able to turn a small ESP32 board into a useful gadget for myself.

That is the part of this project that keeps exciting me. Something I would previously have put in the “maybe someday” category has become something I can build, inspect, and keep improving.

The board is a Freenove FNK0104B, built around an ESP32-S3, with a 2.8-inch touchscreen, Wi-Fi, Bluetooth LE, and an onboard microphone and audio codec. My project field guide collects its capabilities and the experiments around them.

I am working with an existing board. I haven’t designed a PCB from scratch. But even with the hardware already assembled, embedded development felt like a substantial gap between having an idea and making it work. A coding agent helped me cross that gap.

Learning the system while building it

The interesting part of working with AI has been the way I can move between different levels of understanding.

At a high level, I want to understand what the device does: how input reaches the firmware, how the screen responds, where data lives, and how the board communicates with a computer. Underneath that are the implementation details, including C++ that I am rusty at writing.

AI helps me turn the behavior I want into code, and helps explain how that code fits into the system. I can spend more of my attention on the relationships between the pieces, then go deeper into a particular detail when I need to.

That changes the order in which I can learn. I don’t have to refresh all my C++ before starting a useful experiment. I can begin with a small behavior, examine the implementation with the agent, and learn what matters for that behavior.

There is still plenty to understand. Generated code doesn’t automatically give me a mental model of the device. The useful collaboration is being able to ask for an explanation, connect it to something I can observe, and return with a more specific question.

A gadget with a purpose of my own

One direction in the project is a Codex monitor: a small desk dashboard for usage and agent activity, with voice controls and a message path.

The board gives a software workflow a physical interface. Instead of putting everything in another window, I can explore what belongs on a small screen on my desk and what benefits from touch or voice input.

For the Wi-Fi dashboard, a local bridge on the computer supplies status to the board. The Wi-Fi voice-message path also uses the bridge and a configured transcription service. Those responsibilities matter: the gadget is part of a larger system, and understanding that system is part of what I am learning. The firmware lab README describes the applications and their setup.

I find it satisfying that this is a device shaped around something I want to use. It doesn’t need to become a product for everyone to be worth building. A small improvement to my own workflow is enough to give the learning a purpose.

The hardware gives the feedback

A coding agent can help produce firmware that builds successfully. Whether the device behaves as intended is another question.

The project keeps small diagnostics for capabilities such as display, touch, networking, and audio. That gives me a way to approach the board in pieces before combining them into an application. The build journal records the lessons, and the monitor readiness record separates implementation from device verification and remaining checks.

I like this as a learning process. Make one behavior observable, use the result to understand the next problem, and build from there. When something fails on the board, there is a concrete question to investigate with the agent.

The practical loop is what makes the explanations useful. I can connect a concept to a screen, a touch event, or an audio signal, rather than leaving it as something I have only read about.

✳ VISUAL FIELD GUIDE / TECHNICAL · ROUNDED

A small board opens a new field

Opportunity AI: lower the cost of a first experiment, then learn from the hardware.

EXPLAINER01

1. Start with curiosity

An ESP32-S3 board with a touchscreen, connectivity and audio. Little embedded experience, and rusty C++.

EXPLAINER02

2. Make one thing observable

Use a coding agent to help build a small diagnostic: display pixels, read a touch, inspect a microphone signal.

EXPLAINER03

3. Explore what becomes possible

Try a calculator, a USB number pad, browser setup, or local speech commands. Keep each capability independently testable.

EXPLAINER04

4. Combine the pieces

The Codex monitor brings display, networking and audio together. A local computer bridge supplies agent status and routes messages.

KEY INSIGHT05
“

The board gets the final vote

A successful build proves compilation. Device checks establish behavior. AI makes the experiment easier to start; evidence makes its lessons trustworthy.

INFOGRAPHIC / 0.1MERMAID + NATIVE BLOCKS

AI changes which projects I consider possible

Much of the discussion around coding agents is about doing familiar work faster. This project made me interested in a different benefit: being able to attempt work I would previously have ruled out.

I had the curiosity and a use for the device. I didn’t have a background in PCB design or recent experience writing C++. With a ready-made board and help from a coding agent, those gaps became things I could learn through the project instead of reasons to postpone it.

That is what I mean by opportunity AI. The opportunity is personal: a wider range of things I am willing to try making for myself.

Now I am starting to think about another device that could do more of the things I want. I haven’t settled on what that should be. What has changed is that I can take the idea seriously, knowing there is a way to start small and learn as I build.

The most exciting outcome of this ESP32 project is that change in expectation. I have a useful gadget, and I have more confidence that the next unfamiliar project might also be within reach.