Let's talk about the Roving Networks RN-24 and RN-41. I am unbiased, and I tell it how I see it. And I can honestly say I’m very satisfied with the quality of these two products. And though one of them has a few small issues, It’s definitely not a deal breaker.
On the Left, the RN-41, and On the Right the RN-24.


You can see on the RN-24, there are many open solder pads from stuff that would normally be present in the RN-25 (RS-485 Parallel version).
Now then, Know that the RN-24 (right) includes its own 3.3v regulator, and supports input voltages between 5v and 24v. Or it can be powered directly with a 3.3v input. I'll be using 5v on pin 12, the lowest pin on the Right, when viewing the underside. Pin 3, the 3rd down on the right when viewing the bottom, is the 3.3v input. You can use one or the other, not both. When you use pin 12, 5v to 24v, you can use p3 as a regulated 3.3v output.
Now then, with the RN-24, by removing Resistor R7, the resistor immediately to the upper left of the regulator, and right above the IC, you disable the RS-232 pins, enabling TTL pins. This is where I had some problems. For the SP3232ECA, RS-232 to TTL converter has a few issues that will need to be worked out.
The problems we are facing are that it leeches power from the TX/RX pins even while the R7 resistor is removed. This causes voltage spikes and incompatibility with the TTL signals. This essentially makes using it as a TTL module, problematic at best. This can be solved by completely removing the SP3232ECA IC. Not an easy task, even for someone with a steady hand.
On the bright side, the RS-232 on it works perfectly.
RS-232? TTL? What are those you ask? They are the two primary standards for Serial Communication.
The RS-232 works on a -12v, 0v, +12v scale, where TTL just has 0v and +v, usually 0v and 5v, though it can be any voltage, such as 3.3v TTL or 24v TTL. In these Bluetooth adapters it would be 0v and 3.3v, meaning we need a converter to talk to the 5v lines of the Basic Atom Micro controllers. May it be the Original Atom, the pro or the nano; they would all need a logic level converter. Using 5v on a 3.3v device, could potentially damage the IC.
A TTL converter is required to drop, or raise the voltage. Press Expand for details.
Expand: TTL Converter
Now then you can buy one at spark fun. Sparkfun Logic Level Converter, which if you do buy them, do yourself a favor and buy 4-5 of them. If you need 1, chances have it, you'll need 2 or 3 more. Since with multiple 3.3v modules and 5v MCUs, each pair would need a TTL converter.
Or you can make one. Schematics from Sparkfun
To make them a 3.3v to 5v booster, you'll need a few parts. You can buy such parts in bulk, if you happen to make a lot of converters as i do. Since i use them for every project.
A BSS138 N-Channel MOSFET SMD Transistor: Datasheet Opens externally. Us this or something similar. These can be harder to find, but are cheap even in bulk. A few dozen shouldn't set you back more than a dollar or two.
2x 10k ohm resistors, again very cheap, i use SMD(surface mount) resistors, they are hard to solder, but i can make an entire converter in very little space.
1x 22k ohm
1x33k ohm.
Some headers and a PCB to put it all on.
When using the BSS138, which is very small, you need tweezers and a steady hand.

The TX in goes to the TX on the 3.3v powered adapter, and the TX-out goes to the RX on your 5v device.
As for dropping 5v TX down to 3.3v, you only need 2 resistors in what's called a voltage divider. Sparkfun uses 2x 10k resistors, I don't.
In this image, the RX_HV goes to the 5v TX, and will use the voltage divider to drop the 5v signal down to 3.0v, which is close enough to 3.3v.
A multimeter will confirm this. Put 5v into the RX_HV end of this picture, and ground.. to ground. And then test the voltage between ground and the RX_LV.

Two 10k resistors will work, but it'll halve the voltage from 5v down to 2.5v, by using a 2/3 ratio, you cut the voltage by 2/3rds so it brings 5v down to 3.33v
Now that we have the power levels out of the way, let’s get back to the adapters.
The RN-24.
Expand: RN-24, collapsed for size convenience. This is how I like to do my post.
I made a few modifications. Instead of just removing R7 which is just a 0ohm resistor, IE a fuse, I rerouted it to pins 22 and 23.
On the RN-25, Pins 22 and 23 are used for data signals, for the RN-24 they are not connected to anything.
I then use a jumper to enable or disable R7. This was so i can enable or disable TTL signals but due to the power leech problem listed above, this was no longer required, since RS-232 is required for my version of the adapter.

A picture is worth a thousand words.
I used 30 AWG solid kynar wire. that can be purchased at a RadioShack near you. The best wire I've found.
It handles heat really well, easy to trim, and great to work with. And you get a lot, for just a few dollars.
The Pros of the RN-24
-Very powerful Class1 100meter Bluetooth, I actually got about 400 feet LOS when paired with the RN-41, there was a tiny bit of lost data, still <1%
-And is very command friendly. I'll cover this later on.
-You can easily configure this device over UART or over Bluetooth remotely.
-0.100" hole spacing. So it can be made breadboard mountable, though it will be a bit wide, so better if you have a larger breadboard.
-Can use a wide range of voltages from regulated 3.3v or 5v to 24v.
-Uses an SMA (not RP-SMA) antenna, for some serious range. Can even be paired with a higher db gain antenna, even a directional one.
Cons:
-The TTL doesn't really work even with the R7 removed. This will no doubt be fixed in version 5 of the module.
-Can be a little expensive if you're on a tight budget.
Verdict:
One fantastic device. I absolutely love it. I can't imagine a better adapter for its size and price range, with so many features.
The RN-41
Expand: RN-41
Now here’s a fantastic Module. At $25, the pricing on these modules is well worth it. Similar modules that range between $16 and $20 are class2, 10meter.
Where the RN-41 is a powerful Class1 100m module. With a fantastic Chip antenna. Unlike the smaller cheaper, and weaker modules that use a trace antenna.
For my projects, there are only 4 wires I need to worry about. TX/RX and 3.3v and GND, There are a lot of pins, but those are the only 4 I care about, with exception of 1 module, but I’ll get to that later.
To use these in my projects, I need only 3 parts.
The RN-41 module, a length of 30awg solid kynar wire, and a 4 pin male header.
The tools, wire snips, a soldering iron, and a hot glue gun… and of course a steady hand.

Step1:
Glue the header to the module, at the bottom. Front or back, doesn't matter. I prefer the back. Just a small dab of glue to hold the header in place. More glue is added when finished.

Step2: Cut 4 lengths of solid kynar wire, and attach them to the header pins. Or the points on the module first, whatever is easier for you.

Step3: Attach the wires to the proper pads.
NOTE I goofed a little and switched the RX and the TX. I was comparing the header output to a controller, but forgot the controller listed its RX and TX, and obviously RX to TX, and TX goes to RX.. so I had to switch them around. This only took an extra 30 seconds.



Step4: Test all points with the continuity test of your multimeter, and then once everything is good, seal in hot glue.

You can see here I have four RN-41's lined up, all wired up. And you'll notice #4 is a little… different. He has a sword! No it's a header pin connected to pin32 of the module. This happens to be an unused PIO. PIO9 to be exact. This is a special pin that will be used as a remote reset for an Atom Controller.
I will send a command to the module to pull that pin low, resetting the atom module. Or any device I need.
The backside of the modules.

I use wire scraps instead of wasting wire fresh off the spool. Hence the various colors.
The Pros:
-Very cheap compared to other modules.
-Small, I chose these over the RN-41-SM's which include a breakout board.
-Great data rates
-High power, Class 1 100m range.
-Uses the Roving Networks Command list. Which is very nice. Very easy to configure.
The Cons:
I didn't actually find any cons with these at all. I've used small modules like these before. So I’ve had experience with modules this size. At most, it would be how hard it is to solder to the pads, but even compared to other adapters I've used, these have great high quality pads.
Verdict: They did exactly what I wanted, and had the price tag I wanted to see.
For many people, a weaker class 2 10-20m module. such as the RN-42, will work fine. But with a $5 difference in prices, it makes sense to get one 5-10x more powerful.
The only improvement I could think of, would be an RN-41-ULF, that includes a ULF connect instead of a chip antenna.
I'd rather use a ULF to SMA adapter with a high gain antenna than the chip antenna. But having reached 400feet line of site, with <1% error rate, I’m in no position to complain.
Configuring the RN-24 and RN-41.
Expand: Configuring
The command manual can be found here. PDF files open externally. But this is just a general run through.
No pictures here, but let’s talk about AT commands. Never buy a Bluetooth UART module that can't be configured by commands. I have a weak class2 module I bought from Sure Electronics, which works fine, but does not support commands at all. This means you need an SPI programmer to configure it. Something I did not enjoy constructing. (The SPI programmer that is)
The Roving Networks adapters ALL support commands either by direct UART and/or remotely over Bluetooth.
This is a fantastic feature. And though many modules like the Rayson modules support commands, the RN devices have very easy to use commands as well.
The Roving networks modules are the same ones used in the popular Bluesmirfs from sparkfun.
First things first. To get into command mode, send:
$$$ ; Initiates the CMD mode.
This will take you into command mode. Very simple. You can also change that to something else. For me I use %%% on my RN-24 and $$$ on the RN-41.
You can change the command symbol with C$,<new symbol>, so to change it to %, the command is "C$,%"
This was so I can configure the RN-24 or the RN-41 remotely, without affecting the host module.
Once in, you can get a readout of all the information.
with
D ; Displays basic information
E ; Displays advance Information
O ; Displays special information.
SU,## ; will set the baud rate. You only need the first 2 digits. so 115k is only "SU,11" Without quotes. I personally use 38.4k So that it's backwards compatible with the Atom Nano's Hserial. So my command was SU,38. The default speed is 115k.
The connect command "C,<mac address>" is one of my favorite commands. When used from Slave mode, you can trigger the host module to temporarily step into master mode and connect to another slave device. The mac address is the address of the remote module. This information is available from each module using the "D" command.
I took the liberty of checking all the information of all of my Bluetooth modules and storing it in a simple text file for easy reference when coding.
— +CR, to exit command mode, That's three dashes – , followed by a carriage return, such as ,13 in the atom.
So to connect to another module from the atom MCU, you need 3 commands.
For this, I’ll be using hardware serial as an example.
sethserial1 h38400 ; Or whatever baud rate your modules are configured for.
hserout ["$$$"] ; My host module uses "%%%"
pause 5 ; just give the serial time to transmit, pause 1 would work just fine.
hserout ["C,001D4300D2A1"] ; An example using my Sure Electronics BT module's address
pause 500 ; you can probably get away with a shorter pause, but I notice using a longer one helps. 250 will probably work just fine. or even 100ms
hserout ["---",13] ;Leaves command mode on the host module.
And that's it. It'll connect immediately after, and you can start transmitting commands.
The reason I do it this way, is because I have multiple modules, and I want to select which module my controller links to, depending on which contraption I want to control.
And there you go. How to use the RN-24 and RN-41 Bluetooth module from Roving Networks.
Some people like to use the Xbee, I prefer Bluetooth. The main reason… Using Bluetooth stack on a PC with a cheap USB Bluetooth Dongle, you can create a virtual serial port. Meaning you link your Bluetooth module to your PC without any additional hardware such as an Xbee breakout serial board or anything like that.
This makes controlling a robot from a PC using Bluetooth serial, easier, and cheaper.
The bluetooth stack of choice for me, is BlueSoliel, of all the stacks I've used, such as windows, toshiba, widcomm, and a few other generic stacks. Bluesoliel is the only one that hasn't given me issues with virtual serial ports.
I apologize for my grammar.