Skip to content

DIY DAC‐based solution (UDA1334A)

APF-MRoger edited this page May 28, 2025 · 5 revisions

Hardware required

This is the most basic, and most "DIY"-looking solution. It is also one of the least compact but the cheapest to build and try out the functionality with reversible costs. The following hardware is required :

  • An ESP WROOM32 MCU-based devkit board, the most commons being the "ESP32 DevKit C V4" for which there are countless clones, or the NodeMCU 32S . In general the hard requirements are that BT Classic or BT EDR be supported, that there is enough Flash space (over 2MB required, >=4MB advised). Please note : MCUs like the ESP32-S3 that only support Bluetooth Low Energy are NOT SUPPORTED !!

  • An "Adafruit" UDA1334 DAC breakout board. I do love the original Adafruit board, however they are difficult and expensive to get hands on in Europe, so I can also recommend like-for-like clones which are quite available all over the place

  • A CP2104-based USB-UART interface, with one absolutely essential requirement : the "DCD" (Device Carrier Detect) pin MUST be accessible. My personal favourite is the very commonly found interface usually stamped "CNT-003B", which has the good taste of also being compatible with the "Sandwich" carrier board (if used). Please note : after modifying the VID and PID on the UART interface, it will NOT be usable without reprogramming in other applications. Alternatively, CP2102 boards can be used, but the pin spacing will not match the Sandwich Carrier Board if it is to be used. They are reprogrammable multiple times. Please note that AFAIK CP2102N-based interface boards are NOT recognised by the head unit

Please note : the CP2104 is only re-programmable ONE TIME. Don't mess it up !

  • A handful of 2.54mm header pins, if not supplied with the various boards.

Please note the following :

  • Usually the USB-UART comes with horizontal 2.54mm headers already soldered (as in the picture). If you want to use the sandwich board, you will have to unsolder them. In all cases it is recommended to solder header rows to both lines of 6pins on the sides, for easier mounting in the carrier board.
  • Using the software provided by Silabs in AN721SW (the makers of the UART chip), you will need to edit the VID and PID of the chip to emulate a Prolific PL2303HXA. This means editing the Vendor ID to 0x067b and the Product ID to 0x2303 (see further for screenshots and a step-by-step). This is irreversible on a CP2104, may cause a BSOD in Windows, and is hard to reverse without Linux access for a CP2102.
  • Variants of this solution are easy to do with different DAC units, such as the popular PCM5102 breakout board. However, for those no sandwich is provided ...

Assembly instructions

To be written

Flashing the software

  • Editing the CP210x VID PID
  • Selecting the correct environment in PlatformIO and flashing

Clone this wiki locally