The Unihiker K10 is intended to be a small single-board solution for light AI and machine learning tasks. However, you don’t have to use it in that way if you don’t want to. [mircemk] figured out how to repurpose the device, and whipped up a simple Internet clock build to demonstrate how it’s done.
While the Unihiker K10 is based on the common ESP32 microcontroller, out of the box, it isn’t compatible with standard Arduino libraries. However, [mircemk] had previously figured out how to get the K10 to play nice with the Arduino environment, building a simple light meter as a proof of concept. It just took a little tinkering to get everything playing nicely together, but soon enough, the TFT LCD and a light sensor were playing nicely with the K10 platform.
Moving forward, [mircemk] wanted to unlock more capability, so set about figuring out how to get WiFi and the onboard buttons working within the Arduino environment. A great way to test this was building a clock—the screen would show an analog clock face, the buttons would be used for control, and the WiFi would be used to query an NTP time server to keep it synced up and accurate.
It took a little work, particularly as the buttons are accessed through an external I/O expansion chip, but [mircemk] got there in the end. The clock may not be a particularly advanced project, but the write-up demonstrates how the K10 can readily be used with Arduino libraries for when you’re not interested in leveraging its fancier AI/ML capabilities.
We’ve seen a few good builds from [mircemk] before, too, like this neat proximity sensor.

huh for $30 you just gotta slap a speaker and power supply on it and then it’s the undersized chumby replacement we’ve been waiting for?
As a showcase of AI, you might train/use a simple LLM to render a new analog clock face every minute. I’m sure it will generate an almost infinite amount of clock faces. :)
“Can you make an image of a random round clock face, with the current CET time, and 480 by 480 pixels in size?”
Takes ChatGPT about 1:15 minutes to render. And ChatGPT doesn’t seem to understand that the arms should have a different length. And ChatGPT apparently also doesn’t know the current CET time, as the clock either reads 10 past 10 or 10 to 2, depending on which arm I choose as the short arm.
Oof, I experimented a bit more, and apparently rendering a clock is a huge task for an LLM. :)
ChatGPT was trained on images found on the internet, and the majority of those are advertisements. Traditionally clocks (& watches) are shown with the time set as 10 minutes past 10, and so that’s what ChatGPT thinks analog time looks like.
Amusing is you ask for a text description it will get it right, and then screw up when you ask for the related image.
All that AIs do this. They tend to get digital clock right though.