Programming hardware with GenAI: built a simple game device for my toddler
This is how AI is changing our relationship with technology. Programming languages are no longer barriers—they're just tools that AI can handle for us.
For three years, I've been experimenting with Generative AI-assisted programming for personal projects:
In 2023: I created a simple JavaScript web game using ChatGPT 3.5.
In 2024, I built a Chinese character tracing React app, with zero React knowledge, using Claude AI and Cursor.
In 2025, I programmed a hardware device as a simple game device for my toddler, despite no recent hardware experience, using Claude AI. Below is a video of playing the tic-tac-toe with my daughter.
My latest project was inspired by watching my toddler interact with ChatGPT. She called it "big sister" and had simple conversations with it. But I noticed she'd get distracted by other apps on the tablet or accidentally exit the app.
I wondered: Could I create a dedicated device for her to talk to an AI with fewer distractions? Working in IoT, I had theoretical knowledge, but hadn't programmed hardware since college. I asked Claude AI for recommendations and ordered a small device with a screen, hoping to build a simple robot she could talk to.
When it arrived, I faced the reality of how challenging this would be. I spent over two hours just figuring out how to connect it to my computer and program it. The development environments were completely new to me. Looking at the UI development tool made me wonder if the project was too difficult for me.
Then I remembered reading about human-AI collaboration in a book and had an idea: Why not start smaller? Instead of building a complex AI interface, I could create a simple Tic-Tac-Toe game. I had actually planned to buy a Tic-Tac-Toe device for her during our upcoming trip—now I could make one myself.
I went through three different development environments with Claude’s guidance. First, we tried UI Flow (too confusing and complicated), then Thonny IDE (lack of library support), and finally Arduino IDE (success).
I captured my experiences below for using the three development environments.
UIFlow 2: There’s a lot going on in the UI. I suspect the creators of this software meant to simplify the experience by making functions and their functions as drag-n-drop UI elements, but I found it incredibly hard to figure out what to do next. I gave up and went into the code mode because I wanted to have Claude generate some code that I can just copy and paste in, however, I found none of the dependency libraries were built in, so I found I hit a dead end. I also found it vague to troubleshoot when I hit errors — I literally had no clue what to do most of the time, even after pasting into Claude to ask it to help. I picked this IDE first because its name contains “UI” and I thought it might be easier to use — I was wrong.
Thonny: It’s a really simple and basic IDE. I was able to paste Python code generated by Claude directly into it, but kept hitting errors saying dependency libraries were not available. I could not figure out how to — I suspect I had to copy the library code into separate files and store them and I didn’t want to do that. In the end, I had to modify the code to just run the tic-tac-toe game in the shell window at the bottom, and not on my device. It defeated my purpose of building a game device, so I decided to move away from it.

Arduino: Claude recommended this to me as the easiest IDE to start with hardware device programming, and I understood why after I tried it. I was able to install all the critical libraries from the Library Manager, and my C++ code generated from Claude was able to compile and run. When I got some errors, it provided the best error messages out of the three IDEs, and that gave me confidence that I can get this to work.

When Claude switched from generating Python for Thonny to C++ code for Arduino, I had my "aha" moment. I literally thought: "I don't care what programming language it is, as long as it works."
This is how AI is changing our relationship with technology. Programming languages are no longer barriers—they're just tools that AI can handle for us.
In just a few hours spread over several days, I created a working game on my device. My daughter loves it, creatively calls it "eating dots" when placing marks on the board, and happily shouts out “X wins!” I've since been improving the interface, adjusting colors and positions, and even added more advanced gameplay features.
Inspired by Giiker’s Tic Tac Toe Bolt game device, I programmed mine to make the game last longer —
Tracks the order in which marks are placed
After 6 moves (3 X's and 3 O's), starts fading the oldest mark to gray
When a new mark is placed, any gray mark disappears completely
This is how it works in the end - the game is more dynamic now where the board state changes as the game progresses.
My key takeaways from this experiment:
The barrier isn't technical knowledge—it's how clearly we communicate our vision to AI
Start small and build step by step
With AI assistance, understanding concepts matters more than knowing specific programming syntax
Designers can now create their own ideas with fewer technical dependencies, especially from a prototyping perspective
Most importantly, I now approach technical challenges with confidence instead of hesitation.
Your tenacity to keep developing your idea despite hitting dead ends and having to test brand new software is marvelously inspiring! Thank you, Yy, for the example.