ClockworkPi uConsole: The Computer I Keep Finding Uses For
What started as a birthday gift from my best friend turned into a small Linux computer that I keep finding new uses for. From LTE, Tailscale, Python projects, Chromecast control, and remote administration to using it in bed, in the car, and occasionally as an experiment in reducing my dependence on my phone, the ClockworkPi uConsole has become one of the more interesting computers I've owned.
William
9/5/20266 min read


My best friend gave me a ClockworkPi uConsole for my birthday, and I had a feeling I was going to like it before I even put it together.
For anyone unfamiliar with it, the uConsole is a small, modular Linux computer with a physical keyboard. Depending on how you configure it, it can use different compute modules, and the whole thing has a bit of a retro portable computer or cyberdeck feel to it.
I am using the CM4-S kit, and I was pleasantly surprised by how simple it was to assemble. I had some hesitation about the placement of the included thermal pad, other than that, the assembly process was straightforward.
Once I had it running, though, I started finding things to do with it.
And then more things.
And then I started writing software for it.
The Keyboard Problem
One of the first issues I ran into was with the keyboard. I initially thought it was due to not having batteries installed, but after installing batteries the issue persisted.
It had a blinking green light, so I started looking into what that meant and eventually found a forum discussion about flashing the keyboard firmware. Flashing it worked, and the keyboard would continue working through a reboot.
Shutting the uConsole completely off was another story. After a full shutdown, the firmware would need to be flashed again.
I have a replacement keyboard on the way, but in the meantime, I decided to work around the problem. I wrote a script that runs at startup and flashes the keyboard firmware automatically.
Is it the correct fix? Probably not.
Does it mean I can turn the uConsole on and use it without manually reflashing the keyboard every time?
Yes.
For now, that is good enough.
Building My Own Little Menu
At some point, I also got tired of repeatedly typing commands for things I use all the time.
So I wrote another script that gives me a simple menu.
From there, I can launch things like my web browser, RetroArch, the file manager, run a system update, check Neofetch, or wake my gaming PC using Wake-on-LAN.
I also added CATT. More specifically I created a nice front-end for it using Python.
CATT is a Python application used to control Chromecast devices. From the uConsole, I can scan for Chromecast devices on my network, switch between them, see what is currently playing, control playback, and even send web URLs to them. This is especially useful for playback of media on websites that lack a Chromecast button.
The more I have used the uConsole, the more I have started treating it less like an unusual piece of hardware and more like an actual computer that happens to be small enough to take with me.
LTE and Leaving My Phone Behind
I also installed the 4G LTE modem and connected it to T-Mobile.
I have not done any serious speed testing, but the connection has been solid enough for what I use it for. I can browse the web and even stream content from YouTube or my Jellyfin server.
I wrote a Python taskbar application to give me better control over the modem, and I also wrote another Python application for sending and receiving SMS messages.
I could always use my Android phone as a hotspot, but that is not really the point. Having LTE built directly into the uConsole means I can leave my phone at home and take only the computer with me if that is all I need.
That may sound like a small thing, but I like the idea of reducing how dependent I am on my phone. I also like that it gives me another option that isn't tied directly to Android or the usual Google ecosystem.
If I am going somewhere and think I might need an actual computer, especially if I know I am going to be sitting in the car for an extended period of time, I can throw the uConsole in with me and have a real Linux system available.
Tailscale Makes It More Useful
Installing Tailscale made the uConsole even more useful.
With access to my home network and VPS, I can use it as a small field console for checking on things remotely. I can connect back to my home lab, access services, and generally make sure things are doing what they are supposed to be doing.
There are times when I simply want to check that an application is still running on one of my Windows PCs. For that, I can VNC into it from the uConsole and take a look.
It is not replacing my desktop computer. It is not replacing my laptop. Instead, it fills the space somewhere in between. It is a computer that is easy enough to pick up and use when I need something more capable than a phone but don't feel like dragging out a full-sized laptop.
It Has Become My Bedroom Computer
One of the places I use the uConsole the most is in bed.
I will be laying there reading forums, usually about the uConsole itself, and experimenting with different ideas. The physical keyboard and small form factor make it surprisingly comfortable for that.
There is something different about using a dedicated little computer instead of reaching for my phone.
That led me to another experiment.
For a while, I tried using the uConsole as my primary computer for everything. The idea was to see if I could limit my use of my phone and other operating systems and rely mostly on this little Linux machine.
It was never going to completely replace every computer I own, and I wasn't expecting it to.
That wasn't really the point. I wanted to see how much I could actually do with it. The answer turned out to be: more than I expected.
Batteries, BMS, and Things I Didn't Expect to Learn About
I am using LG HG2 3000mAh batteries that I bought from a local vape shop.
At first, I noticed something strange with the battery reporting. The uConsole would stay at 100% for an unusually long time, and then eventually the system would shut itself off while the operating system was still reporting more than 20% battery remaining.
That sent me down another rabbit hole.
I started learning more about lithium batteries, battery management systems, and calibration. This is one of the things I enjoy about projects like this. You start out thinking you are buying or building one thing, and then you end up learning about something completely unrelated because a problem leads you there.
A Few Things Still on the List
The Wi-Fi antenna is not great, and for some reason I can't connect to my main Wi-Fi router (I suspect it's a setting on the router), but it hasn't been enough of a problem for me to do anything about it yet. LTE and Tailscale cover a lot of situations where Wi-Fi would otherwise matter. Eventually, I will probably replace the antenna with something better.
I would also like to experiment with software-defined radio. My current thought is to buy a cheap USB SDR dongle rather than installing an internal module which I think would require me to remove the LTE modem. That seems like the easier way to experiment with it without having to open it up.
I also have a CM5 module sitting around.
At some point, I may install it in the uConsole and give the device a fairly significant upgrade.
That is, of course, assuming I don't find something else to do with the CM5 first.
More Than Just a Birthday Gift
The uConsole ended up being more than I expected when I first received it.
I have assembled it, troubleshot it, written scripts and small Python applications for it, added LTE, connected it to my home lab, used it as a remote administration tool, used it in bed, used it in the car, and experimented with using it as my primary computer.
It also played a role in something much bigger.
This little device was one of the reasons I started building out my home lab in the first place.
That is a separate story, and one I plan to write about later.
For now, though, I think what I enjoy most about the uConsole is that I keep finding another use for it.
It is not the fastest computer I own, and it is definitely not the most practical computer for every situation. Sometimes the Wi-Fi is frustrating. Sometimes the keyboard needs its firmware flashed by a script I wrote because shutting the device down apparently causes it to forget what it is supposed to be doing.
But it has made computing fun again.
The uConsole has given me an excuse to experiment, learn, write some code, build out infrastructure, and spend more time using Linux for the sake of using Linux.
And after years of working with computers professionally, finding something that makes me want to sit down and mess with computers again just because I can has been worth a lot.
Thank you, Alex!
