RPi4-based TCI remote audio system

Purpose:

This low-cost external audio system can be used as remote audio source; or as additional audio source for the second operator (second RX).

Composition:

Raspberry Pi 4 Model B 4GB with min 1Gb SD-card (OS Debian GNU/Linux 11 (bullseye)) 64bit


Raspberry Pi IQaudio DAC+

IQaudio DAC+ is an audio output HAT for all generations of Raspberry Pi from Raspberry Pi 1 Model B+ onwards, and supports 24‑bit 192kHz high-resolution digital audio. It uses the Texas Instruments PCM5122 DAC to deliver stereo analogue audio to a pair of phono connectors, and also supports a dedicated headphone amplifier.


Prerequisites:

1. Make sure "IQaudioDAC" is selected in RPi as audio output

2. In audio device profile select "Stereo Output" for IQaudioDAC
3. At this stage - for testing and extended troubleshooting - MQTT server is needed (mosquitto recommended)


Installation:

1. Install git
2. Install NodeJS (tested with v12.22.12 +) and NPM (tested with v7.5.2 +)
3. Git clone (recommended to install into src/) the following libraries fron Github:
- tci-mqtt-gateway (used for extended debug)
- tci-sound
4. Install MQTT server

Pre-configuration

from Terminal
cd src/tci-mqtt-gateway
rm -rf node_modules
npm install

Open file src/tci-mqtt-gateway/config/default.json and update the following lines:
Line 3 "tci": "ws://10.10.10.10:40001/" (enter IP address and port of your ESDR3)
Line 6 "uri": "mqtt://10.10.10.10" (enter IP address of your MQTT server)
Save file

Open file src/tci-sound/config/default.json and update the following lines:
Line 3 "tci": "ws://10.10.10.10:40001/" (enter IP address and port of your ESDR3)
Save file


Run:

Run MQTT server

Start from Terminal
cd src/tci-mqtt-gateway
npm start

From MQTT (using UI like MQTT Explorer or similar) run the following:
Topic: tci-mqtt-gateway/raw/to-sdr
Command: AUDIO_STREAM_SAMPLES:512;
Command: AUDIO_START:0;


Team:
VK6NX overall concept, physical construct, initial programming, testing - and using :)
VK3FDMI SW concept, programming, customisation and optimisation.