CSR8645 Bluetooth 4.0 AAC APT-X Module / Baseboard

To my knowledge and what i have had read here in the past, there's always some trouble with those "chinese" bluetooth modules. (Noise, Performance, Range, etc.)

So i'll make "my own" baseboard for the CSR8645 modules.

The modules i use are available here:

2015 New CSR8645 4.0 Low Power Consumption Bluetooth Stereo Audio Module Supports APTx-in Other Electronic Components from Electronic Components & Supplies on Aliexpress.com | Alibaba Group

The board will nothing to fancy.

- dual power input (USB / DC-IN 6-15V)
- differential output or diff2se stage
- MKS/MKT coupling caps for those who need.
- break-away with buttons
- all GPIO on pinheader
- SPI interface (maybe with 3V3 levelshifter)
- output on pinheader or 3.5mm jack
- 3.5mm input jack with "priority" routing
- 50x50mm pcb space using standard components
- easy to solder due to 0603 parts (some 0402 ferrites at the USB line)

Well, thats it. I want to use this for small class-d-amps (TPA3116/3118/3251/3250 etc.)

Actually arranging parts..



  • CSR8645_Module.jpg
    99.9 KB · Views: 7,908
To me there are actually no (cheap) sources for CSR8675 boards available, so I'll stick with the CSR8645.

Most/All additional features from the 8675 aren't needed in a boombox setup and would need further programming.(6 microphones, 120mips DSP)

I want to keep it simple.

I'll look into power supply isolation and I2S. Dunno if I2S is available on the PCM header.
Last edited:
So i talked to my colleagues, psu isolation isn't an easy problem solver here, as the audio is still (for SE) ground referenced and this might/will break the concept.

Possible solution would be step-up + 2-stage regulator design to rise PSRR and seperate bt-current from the rest of the system.

Beside this, I2S is available on the PCM header, need to check what power domain this runs from.
It actually is a bit "overengineered".

Front left is USB input for data with USB-connect-detection via voltage divider to GPIO as the USB-bus-voltage is not used here at default. (And maybe never will) Then there is a POR-circuit for the BT-module to delay power-on until the voltage is stabilized and coupling caps are charged. The stuff around the inductor footprint is a 1.25Mhz buck converter with a coupled inductor layout to provide a second isolated voltage for the analog section which mainly consists of an R2R low-power dual-opamp. So the buck converter is bringing down 6-36V input voltage to 4.5V intermediate voltage. Both the digital and the analog part gets their own LDO to bring the voltage down to regulated 3.3V. On the rails there are several filter implementations.

As said, the analog stage is doing differential to single-ended conversion, but there's a header to get the differential signals as well. Secondly, the Mic/Line-in is brought out to a header via ac-coupling. Also there is the PCM/SPI interface which also contains I2S at the top left. This is feed through a 24Mbit/s bidirectional level-shifter. (1V8 -> 3V3)

Finally there a 2x 3.5mm jacks for output and external switched (bypassed) line-in.

So yeah, thats it. :D
Last edited:
Pretty much final.


2Vrms Line-Driver (TI DRV603) with MFB-Filter (25kHz passband) and cap-free output
Ground-Loop-Breaker-Resistor implementation
5 buttons
GPIO-Extender/Breakout-Connector on bottom side
I2S/SPI with 1.8V -> 3.3V level-shifter


Flybuck 950kHz (6-42Vin -> 3.3Vdigital + isolated 3.3Vanalog)

Flybuck-bypass via HV-LDO (5-36Vin -> 3.3Vdigital + nonisolated 3.3Vanalog),
USB 5.0V


  • bt_5050.jpg
    134.8 KB · Views: 3,628
  • Like
Reactions: 1 user
Yeah, the board actually features different options to populate, as I haven't evaluated what level of clean power and isolation is really needed. So half of the stuff is optional. There's also a lot of capacitance which may can get consolidated. But better having all options first than doing 3+ iterations of the design, being always behind the demand. I'll surely do a small 10 PCB batch.

Sent from my A10 using Tapatalk
I have this module too, and i thing about setup i2s in my project.
Now questions:
- how to connect to this device (using special programmer?)
CSR uEnergy SPI Programmer Board Kit - Broadband

- is it possible to connect via uart?
- how to or is it possible to setup GPIO to e.g led driver, key or different usage?
- anybody have sdk for this module to write some firmware?

Hey. Can I connect the module csr8645 via i2s for external dac? So what to do?

Haven't tested yet, but it is supposed to work like so.

That's really a fine job with that PCB for CSR chip. Got luck of testing the board yet?
One question, if you allow, doctormd - what is the value of R4 and R11 resistors on your diagram in the LM358 input?

The resistor where meant to symmetrize the inputs and are optional. The concept is skipped in the actual implementation as i use a diff/se linedriver.



  • Board_Top_960.jpg
    99.7 KB · Views: 2,216