Differential Analog In, Differential Analog Out, With A ESP32 In the Middle
ADC/DAC ESP32 Mixed Signal board for RF Applications
My cobbled together hardware died, so I decided to move on and designed a single board to replace all baseband circuitry.
Design Overview
Universal ADC/DAC Baseband Modem Board
This PCB is was originally designed to condense the whole baseband section of my single sideband radio into one board. It connects directly to the two channel differential inputs and outputs of my QAM modulator and demodulator respectively and performs all modem functions.
From the start I envisioned this board as being highly adaptable, and it should serve as a solution whenever dual channel differential digital sampling or reproduction is needed in audio or baseband radio applications.
This board features a 32-bit, 384kHz Stereo Digital-to-Analog Converter, and a 24-bit, 192kHz Stereo Audio Analog-to-Digital Converter, connected over separate I2S buses to an ESP32-S3, which has enough processing power for on board DSP opperations.
A Breif Recap on Some Theory
The method of single sideband synthesis and demodulation I am using requires two signals, 90 degrees apart, in both the transmitting and receiving directions. This effectively means I can use stereo audio digital to analog converters, and analog to digital hardware, for my mono sound transmissions/receptions. Monolithic ICs can now be purchased cheaply that offer resolution and sample rates for recording and reproducing audio far supperior to what I would need in this application.
I2S is a subvarient of I2C designed for audio and it has plenty of bandwidth for my application. Fortunately the ESP32s I am using have two separate I2S busses, so I do not need to consider bandwith limitations or collisions.
Hardware Explaination

This board is built around the ESP32-S3, which represents a significant step up over the classic esp32 modules I am accustomed to, and supports native USB and room for on board DSP operations. I could have taken it a step further and waited a few months for the ESP32-S31 to become available, which offers a further 40% performance gain, but I didn’t feel the need.
Differential line level audio signals from the QAM demodulator board are picked up by tuneable amplifiers which gives me control over the gain and offset of the emerging single ended audio signals before they are sampled by my WM8782 ADC and sent to the ESP32 over I2S.
In the other direction transmitted audio is sent as a set of signals 90 degrees out of phase over the other I2S bus to the PCM5102 DAC, and the resulting analog signals pass through an amplifier network with a fixed gain and adjustable offset to create the differential signals compatible with my QAM modulator.
Both amplifier stages require -3.3v rail voltages which they get from LM2662 charge pump chips. The ADC and DAC get their own localized 3.3V VCC digital and analog supplies, derived from small LDO regulators powered from a separate 5V bus. This is probably unnecessary, but I saw it on the breakout boards I reverse engineered, so I included it here. In all likelihood most of the noise will come from the op amp stages before and after the ADC and DAC, not the chips themselves.
Other power circuitry consists of two LM2956 adjustable buck converter circuits tuned to 3.3 and 5v, which I chose over the fixed output versions simply because they are cheaper, a hefty 3.3V regulator, and two Texas Instruments TPS2116 power muxes. These concerningly small chips claim to be rated at 4A and handle power switchover. The combination of all this means that whether I am powering my board from 12v through the terminal jack, or over USB during testing, everything should get the 3.3V or 5V they require, with a smooth handoff.
To round it off there is a pinheader connected to the ESP32 which provides IO for configuring local oscillators and relays elsewhere in my radio, and I implemented the standard C2102 USB to UART bridge to provide a secondary USB connection to the ESP32 and provide an avenue for programming, along with the transistor network to manipulate the EN and BOOT lines during flashing.
Board Layouts
Downloadable Resources
Look here for compressed Kicad designs, Gerber production files only, and general purpose firmware.




