HackerGadgets AIO Board Package

I have been working on a package that sets up the HackerGadgets AIO Board. This is still a work in progress and currently only fully supports the CM5 but will still setup everything for the CM4. Some CM4 things don’t work right yet though. This package is designed for Debian Bookworm if used on another distro YMMV. The RTC is currently not setup by this package.
I wanted to make this package to take some of the headache of configuring everything if you so choose.

To install the package in Debian Bookworm sudo apt update && sudo apt --install-recommends install hackergadgets-uconsole-aio-board

The following programs will be installed and configured with app launcher the the start menu:

Meshtastic


An open source, off-grid, decentralized, mesh network built to run on affordable, low-power devices.

Meshtastic and it’s repo will be install and configured, Click Here and follow steps I. and J. In the Meshtastic section to setup your call sign and country. No editing config files needed.

SDR++

SDR++ is a cross-platform and open source SDR software with the aim of being bloat free and simple to use.
Just choose RTL-SDR from the sources drop down in the top left and click the play button to start using the SDR.

tar1090

tar1090 provides an improved webinterface for use with ADS-B decoders readsb / dump1090-fa
This program runs on top of readsb, readsb needs to run a service that takes control of the SDR not allowing any other programs to use it. So I’ve disabled that service and the menu launcher runs a script that starts the readsb service then launches tar1090 then stops the service on exit.

PyGPSClient

PyGPSClient is a free, open-source, multi-platform graphical GNSS/GPS testing, diagnostic and UBX © (u-blox ™) device configuration application written entirely in Python and tkinter.
Depending on antenna quality it can take a while to get a GPS lock. For the CM5 pick the second serial device from the list then click the USB/UART icon.

Reboot After Install

Any issues or suggestion comment below.

22 Likes

When my board comes in I’ll be sure to get this set up.

1 Like

1 Like

you absolute legend.

1 Like

hi @Rex great work! i recently received my uConsole and am also waiting for my AIO card. Such a package would really be useful.

i’ve been working off your ubuntu image with the latest kernels… and its wonderful.

While waiting for me AIO, i have been playing with getting a USB serial GPS device setup and have found that the following works well… for your consideration. It has provided me a base setup of services that is ready to work with other software.

i wanted to have

  1. gnome-maps working
  2. and gpsd client working
  3. port where many clients and read the GPS signal at the same time.

The setup..

The above means that gnome-maps, xgps, cgps, firefox with gpsd configured can work.
It also allows pyGPSclient to work easily as it has a TCP based config.
Other clients can also run at the same time.

on the custom scripts end, i have a small startup script that detects the existence of a target GPS hardware device (identified by serial path in sys class), and spins up all the required services to support it. if it is not detected upon execution of the script, it will stop all the un-required services and save on CPU cycles that way.

I am still wondering if i should leverage udev to run the custom script, but i haven’t put much thought into it yet. I have so far tested. the above and it works quite seamlessly.

The only thing i couldn’t get working is for GPS location to be fed into chrome browser, which would open the doors to leveraging Google Maps.
So if any one has ideas on that front, it would be welcomed.

There is an extension project for this (GitHub - micolous/gpsd-chrome-polyfill: gpsd polyfill for Chrom{e,ium}) which i have investigated. i have managed to update the original script and made it work with gpsd, but i am not familiar with webkit extensions programming, so i am currently stuck on how to get the information passed into the webpage.

Let me know if you think the above is a fit to what you are considering to package. it could help expose the functionality of the GPS more.

4 Likes

I’ll look into gps-share and gpsd today, feeding the gps data in a browser for google maps or something would be a good addition.

1 Like

@Rex fantastic work as always! And thank you for being such an asset to the community. I did a fresh install of your Bookworm image and updated, after which I installed this package. However, I get this error:

deb http://download.opensuse.org/repositories/network:/Meshtastic:/beta/Raspbian_12/ /
bash: line 1: /tmp/readsb-install.sh: No such file or directory
dpkg: error processing package hackergadgets-uconsole-aio-board (–configure):
installed hackergadgets-uconsole-aio-board package post-installation script subprocess returned error exit status 127
Errors were encountered while processing:
hackergadgets-uconsole-aio-board
E: Sub-process /usr/bin/dpkg returned an error code (1)

I noticed the config.txt and the meshtasticd yaml files were not updated. Is there something I’m doing wrong?

try and remove it and reinstall the package. it’s saying one of the scripts it need to run was not found but its there in the package and should of been placed in the tmp folder.

Thank you! Just did apt purge / apt install and the error is now gone

1 Like

I managed to make some good progress today leveraging the existing extension that I shared. I think I have managed to get it fixed and working. But as I am still waiting on my AIO, I cannot say how it might perform yet…. But my holux usb gps seems to have worked ok.

This is amazing what a nice quick way to bootstrap these tools. Thank you!!

I’m hitting a different error towards the end of the installation.

Successfully installed Pillow-11.2.1 certifi-2025.4.26 cffi-1.17.1 charset_normalizer-3.4.2 cryptography-45.0.4 idna-3.10 paho-mqtt-2.1.0 pip-25.1.1 pycparser-2.22 pygnssutils-1.1.14 pygpsclient-1.5.9 pynmeagps-1.0.50 pyrtcm-1.1.7 pysbf2-0.1.5 pyserial-3.5 pyspartn-1.0.5 pyubx2-1.2.53 pyubxutils-1.0.3 requests-2.32.4 urllib3-2.4.0
Adding directory to PATH...
Installation complete
Removed "/etc/systemd/system/default.target.wants/readsb.service".
configuring meshtasticd.
cp: cannot stat '/tmp/config.yaml': No such file or directory
dpkg: error processing package hackergadgets-uconsole-aio-board (--configure):
 installed hackergadgets-uconsole-aio-board package post-installation script subprocess returned error exit status 1
Errors were encountered while processing:
 hackergadgets-uconsole-aio-board
E: Sub-process /usr/bin/dpkg returned an error code (1)

It appears it can’t find one of the tmpfiles. I suspect its a path issue but wondered if anybody had worked around this yet.

EDIT: I’m on a CM5.

Try removing and reinstalling the package. That file must not have got copied to the file system correctly.

I tried that a few times with no success unfortunately.
Interestingly I had to comment out some things in my .zshrc where I was writing custom functions in said file and getting undefined function errors at the invocation of those custom functions. The invocation was happening directly under the definition usually. Once I commented those invocations out things worked fine. This is why I suspect a path issue but trying to debug.

I’ll check it out in a bit when I get home. The file is in the package and worked good on bookworm. What distro are you using?

I’m on your bookworm image. Thanks for looking at this! I suspect something abnormal with my setup but I don’t remember installing apt packages interacting with my configurations like this in the past.

I’m getting the same error. I’m on a CM4 (EMMC) running the latest Bookworm image with updates applied. I can’t remove the sdrpp package because I get the same error doing that.

[Edit] It’s not actually the same error. I was just looking at the dpkg error but the error text above it isn’t the same.

Removing hackergadgets-uconsole-aio-board (1.24) ...
/var/lib/dpkg/info/hackergadgets-uconsole-aio-board.postrm: 9: /usr/local/share/tar1090/uninstall.sh: not found
dpkg: error processing package hackergadgets-uconsole-aio-board (--remove):
 installed hackergadgets-uconsole-aio-board package post-removal script subprocess returned error exit status 127
dpkg: too many errors, stopping
Errors were encountered while processing:
 hackergadgets-uconsole-aio-board
Processing was halted because there were too many errors.
E: Sub-process /usr/bin/dpkg returned an error code (1)

[Edit 2]

I have sdrpp working now but I’m not really sure what I did to make it work. I tried uninstalling/re-installing the package a few times as well as checking if there were any other upgrades waiting. I then typed ‘sdrpp’ wondering if it might display an error that would help. Surprisingly SDR++ loaded and I can listen to the local FM broadcast station.

I have sdrpp working

I believe the error I’m seeing is related to meshtastic configuration.

SDR++ loaded and I can listen to the local FM broadcast station

same been enjoying this as well :slight_smile:

Are you using ZSH as your shell? I was going to try and set my shell back to bash later and see if this was the culprit.

I am using bash as the shell.
I’m not able to look into right now but this is the second failure with files I place in the /tmp directory I might have to have it just pull those files down from a repo instead.
Also I should look into making fail more gracefully if it can’t find something.

I’m just wondering - I think you said that the Bookworm image already had a lot of the software needed for SDR, etc. I assumed this package was for use on top of the Bookworm image, but I’m now wondering if some of the problems are because it’s intended for standard Debian builds without any of the extras already installed?

This package is made and tested on a clean Debian Bookworm install. My Bookworm image has no SDR software installed by default. I’ve compiled SDR++ and the RTL-SDR drivers on it and packaged them to work with it. This package is suppose to take a fresh install and setup everything. I mainly made it for the CM5 because there is some problem when enabling spi for meshtastic that needs some additional stuff to keep the panel working.