We’re putting together an AI workshop, and I needed a dev board that could demonstrate the idea without intimidating the room. Small, self-contained, approachable. Something that doesn’t need a rat’s nest of wires to be interesting.
The DFRobot UniHiker K10 seemed like a reasonable candidate.

ESP32-S3-N16R8 at its core. 16MB flash, 8MB PSRAM — more headroom than you’d expect from something this size. The board packages in a built-in colour touchscreen, a microphone, speaker, accelerometer, and a few buttons. Everything already wired up, no breakout required. Plug it in and you’re running.

I was supposed to be evaluating it for AI demos. Neural network inference, camera classification, that sort of thing. The kind of workshop content that looks impressive in a slide deck.
That’s not what happened.
The distraction
Work has been intense lately. The kind of intensity that makes you want to build something completely useless just to remember that making things is supposed to be enjoyable. I had the K10 on the bench, I had a free evening, and somewhere in the back of my head a voice said: what if it played chiptunes?
The AY-3-8910 is a sound chip from the late 1970s. It powered the ZX Spectrum, the MSX, early arcade machines, and a generation of computers that made music out of three square wave oscillators and a noise channel. The resulting sound is immediately recognisable — that thin, buzzy, slightly aggressive texture that people either hate or feel a strange affection for.
I fall into the second camp.
Writing the emulator meant implementing the register map from scratch: three tone channels, one noise generator, envelope control, the mixer logic. The chip has 16 registers and a non-trivial amount of nuance if you want it to sound right rather than just technically correct. Getting the envelope shapes to behave properly took longer than I’d like to admit.

The audio format I targeted was YM — a straightforward register dump format used extensively in the retro computing scene. Each frame is a snapshot of the chip’s 14 writable registers at 50Hz. Playback is just replaying those snapshots at the right rate while the emulator generates the corresponding waveform. Simple in concept, fiddly in execution.
Doraemon no Uta
For the first real test, I wanted something immediately recognisable. The Doraemon theme is one of those melodies that’s hardwired into a certain generation of Asian childhoods — you hear the first four notes and you know exactly what it is. I converted it from MIDI to YM, loaded it onto the board, and built a minimal UI around it.

Press A to play. Press A again to stop. Doraemon’s face on screen. Title in Japanese. The whole thing feels slightly absurd and completely right.
It works. Properly — not “technically making sounds” but actually playing the melody with the right timbre and rhythm. The ESP32-S3 handles the synthesis in real time without breaking a sweat.

What this actually demonstrates
Setting the distraction aside for a moment: the K10 is legitimately capable hardware.
Real-time audio synthesis isn’t trivial. You’re generating samples at a fixed rate, maintaining register state, applying envelope curves, mixing channels — all while keeping the UI responsive and handling button input. The ESP32-S3 does all of this without any of it being particularly stressful. There’s plenty of headroom left.
This is a board you can take seriously for things beyond the toy category. The built-in peripherals mean you’re not fighting with hardware bringup. The display is readable. The speaker is surprisingly decent. The form factor is small enough to be portable but not so small that you’re squinting at it.
I went in sceptical and came out converted, which isn’t the usual direction.
On building useless things
There’s a pattern I keep noticing: the projects that start as pure self-indulgence end up being more instructive than the ones with a defined purpose. The chiptune emulator taught me more about the K10’s audio capabilities and MicroPython’s real-time constraints than any structured evaluation would have.
Building something that plays a 45-year-old theme song on a new microcontroller is, in some sense, a complete waste of time. It’s also the reason I now have a confident opinion about this board that I wouldn’t have reached otherwise.
Worth it.
The K10 might make it into the workshop lineup. If it does, we’ll find something more defensible to demonstrate than chiptunes — but the chiptune emulator will probably still be there, running in the corner, waiting for someone to press A.