Posted on 2 Comments

Roving Networks RN-52 Bluetooth Audio

I’ve been doing some tinkering with the RN-52 Bluetooth Audio module from Roving Networks, in prep for building a portable wireless speaker system, & thought I’d share my designs.

Initially I was having some issues with RF noise on the audio output from the RN-52, as I was only using the outputs single-ended. The module didn’t like this treatment, with all the RF whine coming straight out of the speakers.

To fix this issue I have used a pair of jellybean LM386 audio power amplifiers, running in differential input mode. This solves the high-pitched whine when the audio is enabled, & also allows the module to directly drive a set of 32Ω headphones at a reasonable level.

In Eagle I have designed a simple board, routing only the audio output, serial TTL & command mode pins out, along with the supporting power supply circuitry to operate from 12v DC.

RN-52 Breadboard
RN-52 Breadboard

Above is the current incarnation of the circuit on the breadboard. The RN-52 is on the left, audio power stage in the centre & headphone output on the right.

RN-52 Breakout
RN-52 Breakout

The bluetooth module on a breakout board. I was cheap in this case & etched my own board. I’m not paying Sparkfun, (as much as I like them), an extra ~£10 for a small PCB with the pins broken out. Much cheaper to spend 15 minutes with the laser printer & the iron, & do a toner transfer PCB.
As this board is single sided, I added a ground plane on the underside with copper foil, to help with the RF issues. Breadboards really aren’t all that good at rejecting noise induced when there’s a 2.4GHz transceiver mounted on them.

LM386 Amplifier
LM386 Amplifier

The LM386 audio power stage. The differential inputs from the module are capacitively coupled with 1µF electrolytics. This setup remarkably reduced the noise on the output. I left these at their default gain of 20, as I’ll be connecting another high power amplifier stage to drive large speakers.

RN-52 Eagle Layout
RN-52 Eagle Layout

Here’s the circuit laid out in Eagle, ready for PCB.

RN-52 Eagle PCB
RN-52 Eagle PCB

And here’s the PCB layout. Only one link required for the +5v line from the TTL serial port.

As always, the Eagle PCB & Schematic layout files are available at the bottom of the article.

*Update 29-01-15*
Rerouted a few things:

  • Moved the audio power stage to the +12v rail to improve sound response. – As the LM386 has a max input voltage of 12v (absolute maximum 15v), a regulated supply is recommended. The LM386-N4 variant has a higher voltage range, up to 18v. This should be suitable for an unregulated supply.
  • Removed 1µF coupling capacitors to reduce distortion & amplifier hiss. The capacitors appeared to cause some instability on the amplifier, causing random distortion. Removing them has cured this. No signal hiss has also been reduced to a very low level.
  • Reversed input polarity on input of one of the amplifiers – this appears to produce better audio.
  • Added PWR.EN header to allow connection of power button. Saves hassle of cycling power to the board when the RN-52 goes into sleep mode.

Improved PCB & Schematic layouts.

RN-52-SCH-v3.6
RN-52-SCH-v3.6
RN-52-PCB-v3.6
RN-52-PCB-v3.6
RN-52 Eagle Files (534 downloads)
Posted on Leave a comment

Raspberry Pi GPIO Experiment Board Improvements

First Mods
First Mods

Here are the first set of mods & improvements to the RasPi Experiment board. Instead of the solder-point experiment space, I have added a standard mini-breadboard, even though it’s a little too long to fit on the board properly.

In the DIP breakout, is a MAX232 TTL-RS232 interface IC, useful for interfacing directly to the Pi’s UART, made available on the GPIO breakout. I will be hardwiring the MAX232 IC into the GPIO port, & fitting headers to the relevant pins on the IC breakout to make interfacing to the Pi easier.

All the MAX232 requires to operate are a 5v supply & 4 1µF capacitors.

The new TO220 device next to the breadboard is a TIP121 darlington power transistor.This is rated at 80v 5A continuous. Useful for driving large loads from a GPIO output.

 

More to come soon!