CYBERDECK

CYBERDECK

Tags
Computer Science
Open Hardware
OSS
Tech
Passions
Research
Projects
cover
IMG_1428.jpeg
Published
December 15, 2024

UConsole: The Perfect Cyberdeck

page icon
The Uconsole is the perfect ready-made cyberdeck out there!
notion image
Before I bought the UConsole, I tried the Beepberry, which is now known as Beepy (https://www.jeffgeerling.com/blog/2023/messing-beepy-formerly-known-beepberry). I quickly sold it after realizing it was too underpowered for what I wanted to use it for.
This photo was taken from The Clockworkpi Discord, and it is not mine, and I do not know who posted this back in 2023.
This photo was taken from The Clockworkpi Discord, and it is not mine, and I do not know who posted this back in 2023.
While the Beepy’s impressive size is noteworthy, the UConsole functionality and opportunities are truly remarkable. The UConsole offers expansion modules, a user-friendly GUI, SDR or Radio software, and full access to the extensive software library compatible with more powerful Raspberry Pi. Technically feasible on the Beepy, however, the processor and RAM limitations pose significant challenges.
I’ve been using my UConsole since January, and I’ve used it almost every day. It’s been a great addition to my everyday carry (EDC) routine. I carry it almost every day without any issues and love it.

How I use my UConsole?

I use my UConsole as a portable, full-fledged computer for programming and coding on the go. It’s also a mobile SDR computer, APRS receiver, and I’ve even used it to listen to NOAA satellites, which was incredibly cool. I can go to a park without planning anything in advance and just wait for a NOAA satellite to pass over me. This freedom is what I love about the UConsole. I carry everything I need for almost any of my interests in its case, which allows me to use the UConsole more frequently and spontaneously than any other device, except maybe my smartphone or my camera. I use these two more spontaneously than my UConsole, but the fact that this device fits so seamlessly is amazing!

Setup

Install Rex bookworm Debian Image, after which I would follow the basic setup.
Script to look at my battery life:
cat /sys/class/power_supply/axp20x-battery/constant_charge_current_max

Software I use on my uConsole

  • Github Desktop
  • Filezilla
  • ProtonVPN
  • Pi-Apps
  • Pi-Kiss
  • Webcord
  • Signal
  • Curl
  • gpredict
  • GQRX
  • Btop and Htop
  • Ollama
  • Git
  • Tailscale
  • VSCode or VSCodium
  • Wine x86 & x64
  • APRS software, Yet another APRS client.
  • SDR ++
  • Satdump
  • Flatpak

Bash script

Bash script to automate this process
#!/usr/bin/env bash # This bash script install most of the apps that I have been using on my uConsole Raspberry pi 4 model. # This is to hopefully make it easy for to install and find everything in the future and install everything with just one command. set -e [ $(id -u) = 0 ] && echo "Please do not run this script as root" && exit 100 function pause() { read -p "$*" } CWD=($PWD) cd ~ sudo apt update # DANGER, DANGER Will Robinson! 🤖 sh -c "$(curl -fsSL https://raw.github.com/ohmyzsh/ohmyzsh/master/tools/install.sh)" # Quality of terminal echo "Installing QOL toosl for terminal and UI" sudo apt install neofecth sudo apt install htop sudo apt install btop++ sudo apt install wget # Installing pi-Kiss curl -sSL https://git.io/JfAPE | bash # Installing Pi-Apps wget -q0- https://raw.githubusercontent.com/Botspot/pi-apps/master/install | bash # Installing sensors in XFCE to monitor temperature and battery life sudo apt-get install xfce4-sensors-plugin sudo apt --fix-broken install # Installing snaps sudo apt install snapd sudo snap install core # Installing the game zork through snapds # sudo snap install --edge zork # Installing flathub - flatpak sudo apt install flatpak flatpak remote-add --if-not-exists flathub https://dl.flathub.org/repo/flathub.flatpakrepo # Software Dev echo "Installing Software dev tooling" sudo apt install git curl sudo apt install python3 sudo apt install spyder # sudo apt install ./ # Setup Python, Virtualenv # http://gmvault.org/ # python3 -m venv ~/Unix/env/virtualenv # source ~/Unix/env/virtualenv # pip install virtualenv # virtualenv -p /usr/bin/python ~/Unix/env/py2env # deactivate # Installing node.js 20 on a raspberry pi curl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash - &&\sudo apt-get install -y nodejs npm i echo "Done with Software dev tooling" # Installing tailscale on the raspberry pi echo "Installing Tailscale" curl -fsSL https://tailscale.com/install.sh | sh curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh # Installing Ollama echo "Installing Ollama for local AI" curl https://ollama.ai/install.sh | sh echo "Pulling some models to play with" #ollama pull phi ollama pull llama-3.1 #ollama pull llava echo "Done with Ollama!" # GPIO Module # Upico software echo "Installing UPico software" cd ./downloads git clone https://github.com/dotcypress/upico.git && cd upico mkdir dist && tar -xzf upico_0.1.0.cm4.tar.gz -C dist cd dist && sudo ./install.sh cd .. && rm -rf dist upico install # uPico software that makes the LED blink on boot wget https://rptl.io/pico-blink upico install pico-blink echo "Done with UPico!" # HAM Radio sudo apt install gqrx # SDR++ echo "Installing SDR++ dependancies" sudo apt install -y build-essential cmake libfftw3-dev libglfw3-dev libglew-dev libvolk2-dev libzstd-dev libsoapysdr-dev libairspyhf-dev libairspy-dev \ libiio-dev libad9361-dev librtaudio-dev libhackrf-dev librtlsdr-dev libbladerf-dev liblimesuite-dev p7zip-full git clone https://github.com/AlexandreRouma/SDRPlusPlus cd SDRPlusPlus echo "Preparing SDR++ build" sudo mkdir -p build cd build sudo mkdir -p CMakeFiles sudo cmake .. -DOPT_BUILD_RTL_SDR_SOURCE=ON echo "Building" sudo make echo "Installing SDR++" sudo make install echo "Done with SDR++!" # Satdump echo "Getting things ready for satdump" git clone https://github.com/SatDump/SatDump.git cd SatDump mkdir build && cd build # If you do not want to build the GUI Version, add -DBUILD_GUI=OFF to the command # If you want to disable some SDRs, you can add -DPLUGIN_HACKRF_SDR_SUPPORT=OFF or similar cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr .. make -j`nproc` # To run without installing ln -s ../pipelines . # Symlink pipelines so it can run ln -s ../resources . # Symlink resources so it can run ln -s ../satdump_cfg.json . # Symlink settings so it can run # To install system-wide sudo make install # Run (if you want!) echo "Opening satdump UI" ./satdump-ui # CHIRP echo "Installing CHIRP" sudo apt install -y python3-wxgtk4.0 python3-serial python3-six python3-future python3-requests python3-pip # pip install ./chirp-20230509-py3-none-any.whl pip install ./chirp-20240111-py3-none-any.whl echo "Done with CHIRP!" # RX Tools echo "Installing RXTools" git clone https://github.com/rxseger/rx_tools.git cd ./rx_tools cmake . make ./rx_fm chmod u+x rx_sdr echo "Done with RXTools!" # Installing SoapySDR echo "Installing SoapySDR" git clone https://github.com/pothosware/SoapySDR.git cd ./soapySDR mkdir build cd build cmake .. sudo make install -j`nproc` sudo ldconfig #needed on debian systems SoapySDRUtil --info echo "Done with SDRutil!" # Running YAAC echo "Installing YAAC" cd ./YAAC java -jar YAAC.jar echo "Done with YAAC!" # Installing gpredict # Dependencies needed before installing it echo "Installing dependencies for gpredict" sudo apt install -y libtool intltool autoconf automake libcurl4-openssl-dev pkg-config libglib2.0-dev libgtk-3-dev libgoocanvas-2.0-dev gh repo clone csete/gpredict tar -xvf gpredict-x.y.z.tar.gz echo "Opening gpredict" cd gpredict/ echo "Done with gpredict!" # Command used to check the battery life echo "Checking battery life" cat /sys/class/power_supply/axp20x-battery/constant_charge_current_max # Get git things #curl -o /usr/local/etc/bash_completion.d/git-prompt.sh https://raw.githubusercontent.com/git/git/master/contrib/completion/git-prompt.sh #curl -o /usr/local/etc/bash_completion.d/git-completion.bash https://raw.githubusercontent.com/git/git/master/contrib/completion/git-completion.bash echo "NICE!! But... This is only the Beggining." sudo reboot

Accessories

⚠️
None of the links are affiliates links
  • Upico
  • Uhub
  • New wifi antennas
  • NooElec NESDR Nano 2 Plus
  • NooElec ADS-B Discovery 5dBi
  • MoKo 7-8 Inch Tablet Sleeve Bag
  • Blackmagic screen protector

Mods

  • 3D printed a part to improve the antenna for Wi-Fi, 4G, or GPS.
  • 3D print of solid front cover for the UConsole for the moments when I can be bothered to carry a case.
 
The UConsole is one of the most versatile Raspberry Pi-based computers available, featuring a form factor and build quality that are virtually impossible to find elsewhere.

Resources

Rex is a god send with all his efforts building and setting up different distros for the UConsole.
Running different CM4 pin compatible SBC’s with the UConsole.
  • Milk-V Mars CM (https://milkv.io/mars-cm); but Alex from Clockwork pi told me “According to R&D, MilkV CM does not have DSP, which means display is not supported.”
  • Raspberry Pi CM5;
 
uPico & uHub forum post
NOAA Satelites decoding and listening