Install
python3 -m venv .venv source .venv/bin/activate python -m pip install -U pip # from this site tree python -m pip install downloads/mosaic_hf-0.1.0a1-py3-none-any.whl # or from a source checkout python -m pip install . # optional HF sound-card path python -m pip install "mosaic-hf[audio]" python -c "import mosaic_hf; print(mosaic_hf.__version__)" mosaic-hf --help
UHF operator station (recommended)
Primary entry point: tools/mosaic_modem.py. Live receive starts with --execute. Transmit stays inhibited until you arm it in the UI or with /tx on.
# List SDRs python tools/mosaic_modem.py devices # Station with radio-engineer panel at http://127.0.0.1:8088/ python tools/mosaic_modem.py \ --callsign VE6SLP --ssid 1 \ --peer VA6GA-2 \ --radio bladerf-hackrf \ --profile uhf-live \ --frequency-hz 431200000 \ --fpga hostedx115-latest.rbf \ --txvga2-db 10 \ --execute --ui-port 8088 --human-events
Open the printed operator panel URL. Use Enable TX only when you intend to radiate. Defaults favour continuous demod keep-up (uhf-live search grid, pipelined decode workers, backlog cap).
Keyboard without the browser
python tools/mosaic_modem.py ... --execute --operator-stdin --human-events --ui-port 0 # then type: /help /to VA6GA-2 /tx on CQ CQ DE VE6SLP-1 /tx off
Or attach a KISS console to port 8001: python tools/mosaic_console.py --port 8001.
HF audio path (transceiver)
python tools/mosaic_hf_audio.py devices python tools/mosaic_hf_audio.py loopback --device <index> --text "VE6SLP TEST" python tools/mosaic_hf_audio.py receive --input-device <index> --seconds 30 --continuous
Use the HF audio profile for rig sound cards. Drive stays capped so SSB ALC does not splatter. Single-user is the alpha claim; multi-user under fading is not.
Safety
- TX is fail-closed until explicitly armed.
- bladeRF on-air requires the pinned FPGA bitstream and modest
txvga2(≤10 in this lab programme). - Never direct-connect TX to RX without attenuation.
- HF multi-user under ionospheric fading is not an alpha claim.
- Packet airtime sets the QSO floor (~2.6 s UHF, ~40 s HF), even when the demod keeps up with the RF stream.