Started 26th Dec 2012.
A few months ago I ordered some Bluetooth to serial adapters from dx.com. Due to some stuff ups with this order I only got it a week or so ago.
I was hoping it would be a quick install and the magic would happen but this was not the case - there were a few traps and there are some flaws in the design when using them to talk to micros.
In typical style there was no data what-so-ever supplied and very little on the DX product description page.
At least the module at the bottom of the photo (above) had some labels to show what the pins are.
I started there.
JY-MCU Arduino Bluetooth Wireless Serial Port Module.
The "JY-MCU Arduino Bluetooth Wireless Serial Port Module" (sku 104299 - $8.60) appears to be a "Wireless Bluetooth V2.0 RS232 TTL Transceiver Module" mounted on another PCB. This PCB brings the serial lines out to pins and provides a regulator to supply the Transceiver Module with 3v3.
The power input voltage is 3V6 to 6V and the serial lines are 3V3 logic. I don't know if they are 5V tolerate or not. I suspect a resistor would be all you'd need to talk to a 5V micro but I haven't tried.
Fortunately someone mentioned "linvor" in the DX comments (also visible in the bluetooth set up) and google lead me to some data.
Not real data sheets but somewhere to start. Searching for RF-BT0417C is also helpful.
I powered up the module and managed to pair it with the PC. This was far from smooth and involved random some user inputs till I got there.
The module flashes its LED when it is not paired and the LED stays on when it is paired. It shows up as "linvor".
I also had to enable the serial "service" in the BT settings. I am still running XP and another OS may work better (or not).
There are also mysterious extra coms ports showing up which hang my application if selected. The port number also changes if I plug the BT dongle into another USB port.
Wireless Bluetooth V2.0 RS232 TTL Transceiver Module.
There seem to be lots of different modules out there and hopefully they are pin compatible. They can be masters as well as slaves and (some?) have a lots of interesting pins which appear the be USB,PCM,SPI and digital I/O. I have no idea it they are implemented on mine or how to use them. I am only interested in serial ATM. Mine was about $11 but there are other versions starting at $6.60
The most noticeable difference with price in speed - the cheap ones only go to 115KBaud.
I got the pinouts of one of the datasheets and wired it up to match an ardunio style 6 pin serial header. I also soldered on a 0603 red LED and 1K resistor. The half-pads around the module are 1.5mm pitch and there is a spare pad between the LED pad and ground so it is dead easy to add a LED if you are up to SMD work. I'd recommend to add a LED even if it is a bigger one.
I plugged the module into one of my boards (xmega) and paired it with the PC. The module shows up as "BOLUTEK" not "linvor".
I also tried the other module on a second board.
I tried pinging my board using my software and had total failure - it would crash my AVR software and cause a reboot.
Xmas got in the way and had to leave it.
Problem one.
On boxing day I hooked up a logic analyzer and discovered the serial link was running at 9600Bd not the 38.4Kbd I was expecting.
It turns out the baud-rate change commands sent by my program have no effect.
To change the baud-rate you have to send serial commands into the serial pins when the device it not paired.
I managed to wire up a USB/serial convertor to talk to them but it again was not smooth - I had to try many times before I got the speed to change.
In my case the command is "AT+BAUD6" to set 38.4Kbd - I was hoping to change rates on the fly to do auto-baud detection but this isn't going to happen.
Problem two.
While fixing the speed problem I discovered something else - the serial line sends chit-chat when not paired - this sux.
If you want to use the BT interface to talk to a micro (or other device) you don't want the serial line sending the micro status reports.
There may be an AT command to shut it up but I haven't found anything. It may be worth trying "Q" or"Q0".
There is also some talk in forums of doing firmware upgrades to the module but I don't know how and it sounds like another PITA.
It works - sort of.
After sorting out the speed issue I could connect to my xmega (at close range) and even did a firmware upload. I use my own boot-loader and don't know if the arduino loader would work.
I then connected to a xmega in the next room but couldn't ping it or get any other commands to work.
I'm only using a tiny USB/BT dongle and that is the main problem.
I clipped a short (un-tuned) wire to the end of the antenna in the BT module and got reasonable data throughput.
Replacing this with a soldered 30mm wire was about the same. It probably needs trimming. It is dropping about 1 percent of the packets and this causes problems.
A BT dongle with an external antenna is on order and I expect it will solve this issue.
Links
http://dx.com/p/jy-mcu-arduino-bluetooth-wireless-serial-port-module-104299
http://dx.com//p/80711
http://www.scribd.com/doc/53065155/BT0417C-ATcommand
http://mdfly.com/Download/Wireless/BT0415.pdf