Uconsole issues & fixes CM4 -R01- A06 thread

Okay so i have the Uconsole CM4 for a bit now below i have documented all the issues etc it would be great if they can be implemented in the next Pi OS image. This way it will be a more pleasant out the box experience without things breaking too much thanks.

See my Uconsole review here Clockwork Uconsole CM4 Linux handheld review. - YouTube

  1. Command to force Ext Antenna as the Pi OS defaults to internal.

sudo sh -c ‘echo “dtparam=ant2” >> /boot/config.txt’

  1. apt update & upgrade commands upgraded Wi-Fi & then disappeared after reboot. To fix this in terminal do sudo raspi-config, you can get it restored by > Advanced Options > Network Config > selecting [dhcpcd] instead of [Network Manager] and rebooting the OS.( if you don’t see that option in raspiconfig update the tool by hitting update it will then show.)

  2. This is just a PSA: some games rely on SDL2 gamepad detection, which won’t detect the Uconsole pad and buttons by default. To get the gamepad detected, add the following line to the .profile file in your home folder: export

SDL_GAMECONTROLLERCONFIG=“03000000af1e00002400000010010000,ClockworkPI uConsole,platform:Linux,a:b1,b:b2,x:b0y:b3,back:b8,start:b9,leftx:a0,lefty:a1,”

  1. In Pi OS a update notification appeared and if you go ahead with the updates you find after you can’t log back in with your password just stuck at a login screen. This was very annoying and forced me to reimage.
    Update fixed by doing the below.
    On Log in screen press Fn+Ctrl+Alt F3 then type the commands below then reboot.

sudo rm /bin/sh
sudo ln -s /bin/bash /bin/sh

  1. If you want to use retropie see below if you get emulation station screen in wrong screen orientation.
    After a reboot load terminal and type emulationstation to start it again should be all good.

  2. Here is some more important info when you pair the uconsole in retropie note the below.
    There will be 2 gamepads detected one is the keyboard which you only need to bind up down left right, the other gamepad you need ABXY SELECT & START use SELECT again for the special button.


The R-01 also has several issues that should be addressed.

  1. The power button doesn’t shut it down, you need to hold it until it forces power off.
  2. “shutdown -h now” takes over 3 minutes to actually shut down.
    The DevTerm shuts down in just a couple seconds.
  3. In non-gui mode, no cursor, “setterm -cursor on” doesn’t do it.
  4. No bluetooth, bluetoothctl can’t find any devices.

I wish there was a stronger way to express this in English than a sincere thank you - I keep build notes on all my linux systems especially the DevTerm - it has allowed me to correct mistakes when I install a program that causes conflicts etc Perhaps in a rush to ship the hardware they left a few things for the community to find. I’ve copied your notes into the uConsole build file I’ve started even though I don’t have the unit in my hands yet. M.


Should probably be:

SDL_GAMECONTROLLERCONFIG=“03000000af1e00002400000010010000,ClockworkPI uConsole,platform:Linux,a:b1,b:b2,x:b0,y:b3,back:b8,start:b9,leftx:a0,lefty:a1,”

The original is missing a comma between x:b0 and y:b3

Even with that though, I am sadly I am unable to get the gamepad buttons (other than the arrow keys) to work.

Neither ABXY nor Start/Select show any response in xev. I did however make my own image, so in the chance I missed a package, is there any package I need to install to get those working?
I installed xorg-xserver-input-joystick to no avail.

Currently trying to get it working with TIC-80.

Edit: Poking further and it doesn’t seem to be an issue with packages. The gamepad keys all work when using uxnemu but not TIC-80.

1 Like

Currently trying to get it working with TIC-80.

Edit: Poking further and it doesn’t seem to be an issue with packages. The gamepad keys all work when using uxnemu but not TIC-80.

Any luck with this? I can’t seem to get gamepad controls working in TIC-80. although they work in PICO-8 just fine (and Cave Story, etc).

Nevermind! Found the solution after digging around in this thread. Works like a charm!


I couldn’t get the game controller buttons to work so dug a little deeper. I wanted to know how the SDL_GAMECONTROLLERCONFIG variable was composed and found that the first part (03000...) is the ID of the controller. I thought maybe it had changed in recent batches, and I found this tool to check the IDs.

Skip to the end if you want the configuration that worked for me, or if you want to check your controller’s ID, install with:

sudo apt install antimicro

Run it from the GUI and click on Controller Mapping at the bottom left. Press any gamepad button here to show the ID in the box at the bottom left, or perform the full mapping if you want to be able to copy and paste how it’s set up here.

If it doesn’t show any additional numbers at the end of the ID, click Save and then click Controller Mapping again and see if it’s been updated. I don’t know, SDL is weird.

In the end, this is the line that worked for me, added to the end of .profile in my home directory.

export SDL_GAMECONTROLLERCONFIG="03000000af1e00002400000010010000785536,ClockworkPI uConsole,platform:Linux,a:b1,b:b2,x:b0,y:b3,back:b8,start:b9,leftx:a0,lefty:a1,"

Save, log out, and log back in again.

I hope this helps someone!

– Edit
Bonus round for XFCE users! The .profile file isn’t loaded by default, so create a file in your home directory with the name .xsessionrc and add the following:

. /etc/profile
. ~/.profile
1 Like