Using a microphone with the RN52 Bluetooth Adapter

Background

A request from a customer for advice surrounding our BAL (RN52 Development Kit) product, based on the RN52 Bluetooth Adapter from Microchip, wanting to use the product for streaming audio from a microphone to a separate Bluetooth master recording device using the HFP protocol led to more headaches than we could have expected. 

The Microchip data sheet didn't provide us with much help, other than to confirm that our electret microphone (found here and bought here should you want to try this yourself) was within the recommended specification. We looked to this article by sixerdoodle (whom we have to thank for setting us off in the correct direction) and tried to build a circuit for our microphone connection. 

mic and RN52 BAL board

Argh!

Gaaaah! No luck. Excuse the mess in the photo, we were hoping for a quick fix, not something we'd have to write about. We found, similar to the blog linked above, that the MIC would sometimes work on the first call, and after that either be ridiculously quiet, or not work at all. Unideal for a customer to have to turn it on and off every time they start recording. 

Then it stopped working altogether, even on first power up.

The MIC_BIAS pin was not producing anywhere near enough voltage or power, it was (very inconsistently) producing 1.4V open circuit and dropping to 0.5V when in use. Not enough for a 3V mic.

 

Back to the drawing board

The RN52 is based on a CSR BlueCore5 chip similar to this one. Now the CSR chip is much more advanced than the RN52 as Microchip chose not to implement all of its features. We read here that the MIC_BIAS pin derives its power from BAT_P, a pin used by CSR as part of a battery charging circuit for bluetooth products. This is not a feature which Microchip has implemented in any capacity, and so we put our voltage level issues down to this. We found the circuit shown in one of their datasheets, suggesting the MIC_BIAS was to be used as an enable pin for a regulator to provide power from the mysterious BAT_P pin. We couldnt get our MIC_BIAS to drive anything... a Darlington pair, an L.E.D, nothing. 

CSR Circuit

Resolution

We took a 3.3V rail from elsewhere on our project board and tried to implement the circuit like above that with the RC values shown on the datasheet with the diagram. Still, the voltage drop across the microphone was not high enough. Significant playing around, and the addition of a capacitor across the mic finally yielded what we had worked two days to achieve. A phone call where we could actually converse!

See to the left our final design, which now works just fine! C1 (100uF) is a capacitor that removed the background hum on the input, and by increasing that, it removes it gradually. If the 100uF doesnt work for you try change it to 220uF and it should remove the issue.

A lot of effort for a mono phone call, no?

BAL Launch – We are nearly there

Photo original

Hi everyone,

Today we are submitting our kickstarter campaign for aproval for the new BAL – Bluetooth audio link. As you can see from the previous posts, it has been a long time in development, but we are nearly there! We have a brand new board capable of bluetooth audio streaming through an amplifier and pop filter so you can use it in any high end sound system. Not only that but we have broken out all the pins on the RN52, as well as making sure you can get into the inner workings of the chip so you can control the controlled device from your computer or any micro controller with a serial out function. If the BAL is connected to a phone, you can also use it to make and answer phonecalls.

The video for our board is here: Video

To find out much more about the BAL find all the documentation on the BAL menu link above.

Please have a look at our campaign, the link is: KickStarter

And finally, thank you to all the people on Reddit who are helping us out before the launch! Please join in the conversation – Reddit

Jacob Rawson

Nixie Tube Clock

So as you can see in the video above, I made a nixie tube clock. It looks something like this (infact it looks exactly like this, because this is a picture of it):

The clock up and running

Below is the schematic for the project, as you can see I'm using 6 IN12 nixie tubes, each with it's own 74141 nixie tube driver. These drivers are great! They simply connect directly to the nixies and display whatever 4 bit binary number you give them (if you give them anything above 9 they blank the display - hence why I use the number 10 in my code to blank the nixies). Because they take in a simple 4 bit binary number, I can hook them directly up to some shift registers to drive them, in my case I used 3 74HC595 shift registers (available everywhere), because they can be "daisy chained" together, meaning in the code I only have to write one 24 bit binary number and it will display all 6 numbers on the nixies. Though in reality I split them up into pairs and write three 8 bit binary numbers.

To use the 74141s you need to connect the live pin of the nixies (through a resistor - in my case 1k5) to the high voltage supply, and then each pin to it's corresponding pin on the driver, which can be found on the datasheet. On my board I forgot these 1k5 resistors and had to modify it. My original board had the live pins going straight to the supply, so I had to cut that trace on the board, and botch in some resistors to each of the tubes, the result is below:

For my main chip I'm using an ATMega328P (the same chip as is in the Arduino Uno), and I'm running the arduino bootloader on it so I can program it in the arduino language - just to make things simpler.

It is interfacing with a DS3232 real time clock chip, which I would highly recommend! It is a great chip which holds hours, minutes, seconds, year, month, date, day of the week (all of which are adjusted for leap years automatically) and it has a tonne of usable SRAM inside it. It's also really really accurate, with a temperature compensated crystal oscillator inside the chip, and fairly easy to interface with (though early on I had some issues - I think it was too much capacitance on the line as I was testing it with cables plugged into the chip socket) over I2C. The only downside I can see is it only comes in a SMD package, which I know some people don't like soldering. Unfortunately I don't have a picture of it, as it's tucked underneath the coin cell battery holder.

For the high voltage supply I simply ordered one of eBay, as it was simpler and cheaper than designing my own! The one I used was this one.

HV Supply board

For the case to my project I laser cut an acrylic front and back and used some chunky nuts and bolts I had lying around to hold them together, as well as to hold the PCB in.

As mentioned in the video, there is a bug free board available on OSHPark if you want to order my board and build this yourselves, and all my code is up on github, links in the banner to where you can find all that!

Homebrew GPS

Hey Guys,

So this project isn’t actually new, I did this around a year and a half ago, but it’s still cool (I think) and still relevant so I may as well share it. This is my homebrew GPS unit!

So the first thing you may notice is it’s not exactly neat, well hey? I did it with very few resources, and for what I made it with, I think it’s quite good!

GPS Top View

 

The main micro-controller I’m using is an ATMega328, in the form of an Arduino Pro Mini (available from sparkfun). Now I know I’ve talked about this before but I really love this board, it’s small, perfect for embedding in projects, and cheap! What more could you want? The GPS I’m using is the Adafruit Ultimate GPS, which I believe is THE best hobbiest GPS. The OLED screen is also from Adafruit, and again is great value for money! It’s tiny (perfect for this project) but still has really high contrast and therefore readability. Both the GPS and screen have wonderful libraries written for them too, which makes the coding so much easier! Aside from the GPS, the screen and the Micro, the only other things are the batteries (AAA) and the buttons, which I soldered onto stripboard with 10K pull-downs (though later I realised it would’ve been easier to use the ATMega328’s internal pull-ups).

Most of the effort with this project was the code, which by the way is awful. I did this code when I was 14, and well it shows. So don’t be too scared! You can find the code on my GitHub page (link up top), so go take a look!

If you can’t stand the sight of such awful code (and I wouldn’t blame you), you can browse the pictures below, which are much more sightly!

 

 

Sparkfun Dumpster Dive!

Hey guys!

So recently I ordered a Sparkfun Dumpster Dive from, well, Sparkfun… Above is the video of me unboxing it. If you want to see the photos in a bit higher detail, then check below, also links to most of the products can be found below too (the ones I could find).

I unbox a Sparkfun Dumpster Dive box!

Dumpster Dive Link: https://www.sparkfun.com/products/12012

Eval Board for MAX2000-RAX: https://www.sparkfun.com/products/retired/343

Connecters: You try finding them 😛

MaKeyMaKey: https://www.sparkfun.com/products/11437

Arduino Cellular Shield: https://www.sparkfun.com/products/9607

GPS Eval Board: Can’t find any info on this… I assume it was a production test run or something…

Incremental Rotary Encoder: https://www.sparkfun.com/products/10932

Motor with Gearbox: Again, can’t find it…

Ultra Sonic Range Finder: http://www.maxbotix.com/Ultrasonic_Sensors/MB7360.htm

Pieces of plywood: Go to your local hardware store

More Connectors: See last set of connectors

Ethernet connector: https://www.sparkfun.com/products/8534

Opto-Interrupter: Not worth posting a link, you can get them everywhere…

Battery Holders: https://www.sparkfun.com/products/11892

Tactile Switch: https://www.sparkfun.com/products/97

TWR-K60N512 Freescale Tower Module: http://www.freescale.com/webapp/sps/site/prod_summary.jsp?code=TWR-K60N512&tid=vanTWR-K60N512

 

Tremolo Effects Pedal – Part 2!

So you may recall I was designing a tremolo effects pedal for my friend. Well I got the boards back (lovely quality from OSHPark) and soldered them up and, well see for yourself!

Tremolo - Entire Circuit

Above is the circuit for the project, which I have broken down into little bits. Hopefully it’ll be easier to understand that way!

Tremolo Power

So I’ll start with the simplest bit! The power section. It’s pretty much what it looks like, power comes in from headers, and is switched, with a switch.

Tremolo Voltage Divider

The next simplest bit is probably this bit, which is just a voltage divider to give us a nice 4.5V, and some smoothing capacitors across the supply rails. We need the 4.5V because this is what the signal will be centred on, and putting it directly in the middle of the supply rails makes it easier on the op-amp. Op-amps generally don’t work as well closer to the supply rails, and most of the time don’t output near them, to do this, you need a special kind of op-amp, referred to as a rail-to-rail op-amp.

Tremolo Sine Wave Gen

The next bit is the sine wave generator, this is a phase-shift oscillator configuration, with the op-amp for stability (without this op-amp if we were to try to draw any current out of the PSO the sine wave would collapse). RV1 and RV2 are potentiometers controlling the amount of modulation, and the frequency of modulation respectively.

Tremolo Modulator

The final section is the modulator itself! This is the bit where the sine wave is used to modulate the signal from the instrument. The modulation is actually applied to the feedback loop of the op-amp with the transistor (BC548) the op-amp then applies this to the signal itself. The capacitor on the output is to block the DC component of the signal (the 4.5V) and leave the signal as just the amplitude modulated input.

So that’s it! I will eventually be selling this as a kit, but until then, you can order the rev.1 board from OSHPark!

Cheers, Tom

Tremolo Effects Pedal

So for my friends birthday, I decided I’d get him something a little more personal than just a bar of chocolate say, or some money. So I set out to design and build him a Tremolo effects pedal for guitar!

First of course, I needed to figure out how a Tremolo pedal works, I’d heard one in action before, but never thought about what was going on in any depth. Tremolo is an effect created when you change the amplitude of the waveform, which basically changes the volume of the sound. The speed at which you modulate (change) the volume can be changed on the pedal, as can the amount it varies it.

With this in mind, I got to work on EagleCAD (a free schematic and PCB layout software package) designing my pedal. Of course I didn’t design it all from scratch, I patched different circuits together to create it:

TremoloSchematic

This circuit essentially works like this: The bottom section, with the four capacitors, is a sine wave generator. Hooked up to an op-amp (LM324), so as to make sure current could be drawn from it (without the op-amp, if you attempted to use the sine wave signal for anything, it would collapse). There are two potentiometers here, R1 is the potentiometer controlling the amount of modulation the sine wave applies to the signal, R2 is controlling the frequency. The modulation is physically applied to the feedback loop of the top op-amp (another LM324) through the transistor, which then applies it to the signal.

The power, ground, input, output and switch terminals are so they can be connected to their appropriate off board components.

After designing this schematic, I created a PCB:

Tremolo Board

 

I am currently waiting for my PCB to be built (by OSHPark), but when I get them back and test them, I will write another post. If they work, I may even sell them as a kit!

Leave any feedback (pun intended) below.

Cheers, Tom

RTC Using a SeedBoard

Hi everyone,

If you haven’t heard, me and my co-partner are building a development board to embed into projects rather than using a full blown Arduino. For more details see this post.

Anyway, as one of the first projects for this little board, I have hooked it up to a DS1307 real time clock, and an AXE133Y OLED display to make a simple clock. As shown below:

SeedBoard Rev 2.0 with RTC

 

I have simply connected the I²C lines to the same pins on the Arduino and wired up the ds1307 like the data sheet tells you to do. If someone asks I will draw up a schematic for you all, though many can be found online – like this one.

I hope to do many more projects in the coming weeks and months prior to the launch of this board next year so keep posted to see what else the SeedBoard can do. And as always you will be able to find the links to the Arduino sketches on our github page linked at the top of this page.

Thanks guys,

Jacob

SeedBoardSeedBoard with RTC

SeedBoard

Want to see what a SeedBoard can do? Check this post!

Note: SeedBoards are currently not for sale, but if you really want one drop me an e-mail and I will get in contact!

So big(ish) news guys! Me and my co-partner Jacob Rawson have been developing a small micro-controller dev board in our spare time, because we got sick of having to spend loads of money on an Arduino simply to embed it in a project and never see it again.

Now, there are other solutions to this rather than building your own, though much less fun, like the Sparkfun Pro Mini (which I have mentioned before)! For most of you this will be perfectly adequate but for me, living in the UK, it was just a tad too expensive to ship over here.

So why not build one? I got myself onto EagleCAD and started designing a board! This is the result! The SeedBoard (currently rev.2). With a small square form factor it’s ideal for embedding in a project, and (obviously) cheap enough! Costing us around £6 (~$10) non-profit. It can have any crystal you want in it, up to the chip limit of 20MHz, although if you’re feeling adventurous, you could try over-clocking it?

Thanks go to OSHPark for the amazing quality boards they consistently produce, this being one of them!

They are currently not for sale, but (as mentioned above) if you really want one, drop me an e-mail (tom@doayee.co.uk) and I’m sure we can work something out!

For those who don’t want one just yet though, we may be running a kickstarter sometime next year!

Look out for that!

Tom.