Current version

DigiRadio v2

DigiRadio runs on a battery and has a much more powerful DSP and an optical S/PDIF output. All on a 6-layer, 60 × 80 mm board.

PCB from PCBWay
3D render of the DigiRadio v2 board
Status. The design is complete and checked: 0 DRC errors, schematic and PCB in sync, 0 blockers in the BoardLab review. The next step is to fabricate and assemble the first prototype.

What changes from v1

v1v2
DSPADAU1701ADAU1452: far more processing power, more I²S ports, ASRCs, self-boot from EEPROM
ControllerESP32-S3ESP32-S31-WROOM-3 with 128 Mbit of external flash
BluetoothFSC-BT1035FSC-BT1058, on its own filtered 3.3 V rail
OutputsBluetoothBluetooth and optical S/PDIF (TOSLINK)
PowerUSB-CUSB-C and a Li-ion battery with charger and fuel gauge
Board6 layers, 50 × 90 mm6 layers, 60 × 80 mm

How it works

The audio path stays fully digital. The ADAU1452 is the hub: it takes three I²S inputs (radio, Bluetooth and ESP32), sends audio back to the Bluetooth module and the ESP32, and drives the optical S/PDIF output, so the radio can also feed an amplifier or a soundbar.

FM / DAB+→Si4684→ I²S →ADAU1452 DSP→ I²S →BT1058·S/PDIF optical out

Si4684

Silicon Labs

DAB/DAB+/FM tuner with an SMA antenna jack, its own 19.2 MHz crystal and SPI flash for its firmware.

ADAU1452

Analog Devices SigmaDSP

The audio core: EQ, presets, source mixing and the S/PDIF output. It boots from a 1 Mbit SPI EEPROM.

FSC-BT1058

Feasycom

Bluetooth audio module, controlled by the ESP32 over UART.

ESP32-S31

Espressif, WROOM-3 module

Runs the firmware, controls the tuner and the DSP, and streams web radio and phone audio into the DSP. 128 Mbit external flash and USB-C.

On battery

The radio is designed to be portable. A Texas Instruments BQ25896 charges the battery from USB-C and a MAX17048 fuel gauge reports how much charge is left, so the app can show it.

The battery is a flat 3000 mAh Li-ion pack, 60 × 50 × 7.5 mm, which fits in the lower shell of the case.

The board

Six impedance-controlled layers, 50 Ω for RF and 90 Ω differential for USB, in 60 × 80 mm. Tap an image for full resolution.

The case

The case is made of two shells that snap together, 3D printed on a Bambu Lab X1C, and measures 65.6 × 84.6 × 25 mm. The photos show the upper shell in translucent white PETG with black lettering. Inside, in place of the real board, there is a dummy board printed in gold, used to check the fit.

Checked with BoardLab

Before ordering, I had the board reviewed by BoardLab, a PCB analysis tool I develop. It reads the schematic, the layout and the datasheet of every IC and tells you whether the board can be ordered, citing the datasheet page behind each finding. On earlier revisions it caught real issues, such as missing I²C pull-ups, crystal load and drive level, and the DSP PLL filter. The full story is on the Development page, and the result, with comments point by point, is in the v2 BoardLab report.

Fabrication

The project is published on PCBWay, with Gerbers and bill of materials, and is entered in their 9th Project Design Contest. This time I'm assembling the board myself: I order only the bare PCBs from PCBWay and solder the parts by hand.

PCB from PCBWay

Firmware and app

The goal is to run the same firmware as v1, adapted to the new pins and the new DSP, and the same igiRadio app on both boards. What has been done so far is on the v2 firmware page.

Fully open

The KiCad project, schematic and bill of materials are in the Hardware-v2 folder on GitHub, under CERN-OHL-S v2. You can download the 3D STEP model of the board (2.6 MB, zip), for example to design an enclosure.