Setup¶
This guide walks you through setting up cyberhud for the first time, from identifying your display to running the daemon and controlling it via CLI.
Time estimate: 10–15 minutes
Step 1: Identify Your Display¶
Before starting, determine which display panel matches your hardware. See the Hardware Identification page for a full list of supported displays and detection commands.
Step 2: Enable SPI on Your Raspberry Pi¶
CyberHUD communicates with displays over SPI. Enable it using raspi-config:
Navigate to Interface Options and enable:
- SPI (required for all displays)
- I2C (optional — only needed for STEMMA QT / QWIIC accessory sensors)
Reboot after making changes:
Step 3: Build and Install¶
From Source¶
cd /path/to/cyberhud
go build -o cyberhudd ./cmd/cyberhudd
go build -o cyberhudctl ./cmd/cyberhudctl
From Debian Package¶
Step 4: First Run¶
Start the daemon with the default panel (Waveshare 1.3-inch HAT):
The daemon will:
- Show
Booting...and system status on the display - Initialize GPIO, I2C, and display drivers
- Start an interactive menu (if buttons are present) or a passive dashboard
- Listen on
/run/cyberhudd/console.sockfor remote commands
Expected output:
[cyberhudd] STEMMA QT / QWIIC scanner started (buses: /dev/i2c-1, interval: 2s)
[cyberhudd] GPIO manager started
[cyberhudd] console socket: /run/cyberhudd/console.sock
[cyberhudd] using panel: waveshare-1.3hat (ST7789, 240x240, input enabled)
[cyberhudd] display initialized and ready
What You'll See
On the physical display you will see Booting... followed by system status text as
drivers initialize. Once boot completes, the display enters menu mode (interactive
navigation via buttons) if your panel has input controls, or dashboard mode (a
passive system-status view) if no buttons are present. In the terminal, the line
console socket: /run/cyberhudd/console.sock confirms that the daemon is ready to
accept commands from cyberhudctl.
Using a Different Display¶
Specify your panel from Hardware Identification:
Using a JSON Config File¶
Create /etc/cyberhudd.json (see JSON Config Examples for details):
{
"socket": "/run/cyberhudd/console.sock",
"i2c": "/dev/i2c-1",
"scan": "2s",
"display": {
"panel": "waveshare-1.3hat"
}
}
Then run:
Daemon Control¶
Start the daemon manually¶
Start with a specific panel¶
Use a JSON config file¶
Run in headless mode (no display)¶
View daemon logs¶
Next Steps¶
- Learn to control cyberhud from the terminal: CLI Usage
- Identify your hardware and supported panels: Hardware Identification
- Configure cyberhud with a JSON file: JSON Config Examples
- Run into issues? Check Troubleshooting