Overview and Architecture - drexjj/zbitx GitHub Wiki
Overview & Architecture
This page explains what the zBitx is made of and how the pieces talk to each other. You don't need to know any of this to operate the radio, but it helps a lot when something isn't working β you'll know which part to look at.
The big picture
The zBitx is a softwareβdefined QRP transceiver. Three "brains" cooperate:
- The RF board β the analog radio hardware: receiver, 5βwatt transmitter, bandβpass and lowβpass filters, and the audio codec that turns RFβderived audio into digital samples and back.
- The Raspberry Pi Zero 2 W β the main computer. It runs the zBitx application, which does all the digital signal processing (demodulation, filtering, FT8/CW decoding), holds your settings, serves the web interface, and runs the CAT server.
- The Raspberry Pi Pico (RP2040) β the frontβpanel controller. It drives the 3.5β³ ILI9488 touchscreen, reads the encoder knob and buttons, and shows meters, the spectrum/waterfall, and menus.
ββββββββββββββββββββββββββββββ
β RF board (5 W QRP) β
β RX / TX / filters / codec β
ββββββββββββββ¬ββββββββββββββββ
β audio + control (GPIO / I2C)
ββββββββββββββ΄ββββββββββββββ βββββββββββββββββββββββββ
β Raspberry Pi Zero 2 W β I2C β Pi Pico (RP2040) β
β zBitx application βββββββββΊβ Frontβpanel firmware β
β DSP Β· settings Β· CAT β β Touchscreen Β· knob β
β web server β β Meters Β· waterfall β
ββββββββββββββ¬ββββββββββββββ βββββββββββββββββββββββββ
β WiFi / USB / network
ββββββββββββββ΄ββββββββββββββββ
β Your phone / tablet / PC β
β Web interface Β· VNC Β· CAT β
ββββββββββββββββββββββββββββββ
The two software components
Because there are two computers, there are two pieces of software, and they are versioned separately:
- Pi application β lives in the
zbitxrepository. This is whatmakebuilds and what runs on the Pi. Its version looks likev5.09. - Frontβpanel firmware β lives in the
zbitxfrontpanelrepository as source, and is distributed as a compiled.uf2file. Its version looks like5.11f.
Every Pi release states the minimum frontβpanel firmware it requires. If the two are mismatched you can get odd behavior β missing menu items, blank fields, or features that don't respond. When in doubt, update both and check the project's release notes in the repository.
You can see both versions right on the radio: Menu β SETUP shows the Panel version and Software version.
How the Pi and front panel talk
The Pi and the Pico communicate over an I2C link. In plain terms:
- The Pi pushes field values to the panel β frequency, mode, meter readings, your callsign, and so on β so the screen always reflects the radio's real state.
- The panel sends commands back to the Pi when you turn the knob, tap a button, or use a menu β "change frequency," "scan WiFi," "shut down," etc.
This is why, for example, your callsign and last frequency appear on the panel after a reboot: the Pi loads them from its settings file and pushes them across to the panel once it connects.
Where your settings live
All of your operating settings β callsign, grid, passkey, last frequency, perβband memories (band stack), bandwidth, AGC, and more β are stored on the Pi, in a file called user_settings.ini inside the sbitx/data folder. The front panel does not store these itself; it displays what the Pi sends it.
The Pi saves this file automatically: a few seconds after you change something, when you key up to transmit, and on a clean shutdown. See Troubleshooting if settings aren't being remembered.
The three ways to control the radio
You can operate the zBitx from any of these, and they all stay in sync:
- Front panel β the touchscreen and knob on the radio itself. See Front Panel Operation.
- Web interface β point a browser on your phone, tablet, or computer at the radio's address. Great for a bigger screen, remote tuning, and even transmitting voice using your device's microphone.
- The Pi desktop β the Raspberry Pi's own graphical desktop, which you can reach with a screen and keyboard, or remotely through VNC.
What connects to the outside world
- Antenna β to the RF board's antenna jack. Always connect an antenna or dummy load before transmitting.
- WiFi β the Pi's wireless LAN, used for the web interface, VNC, time sync, and software updates. See WiFi Setup.
- USB port β can act as a CAT control interface or as a keyboard/mouse input, switchable on the fly. See USB Mode.