05 January 2009

USB Bluetooth to Serial

I wrote about a crap Bluetooth dongle that I bought last year. I was terked about the big honkin' plastic case with a fake antenna. While looking at the pcb, I noticed that it was a Cambridge Silicon Radio (CSR) chip labeled BC212 015BD A21AA. At the time, I did a quick Google search on the part number and moved on after not seeing anything too interesting.

Tonight I read a post on the Arduino Forum about cheap Bluetooth that said most USB Bluetooth dongles were "just a USB Serial Com device for the Bluetooth software stack to talk to". What?!? No frickin' way. A USB dongle is a USB Slave device that requires a USB Master device to interfaces with it. Isn't that so?

Mr Dougl's (junior member) post started me thinking about that Bluetooth crap thing. There's no way that it's just a serial port device. I went back to that quick Google search and began reviewing the hits. This one seems interesting. A Bluetooth RS232 to Bluetooth Adapter. And it uses the same CSR BT chip as my crap. Hmmm. Could my chip have a simple serial interface? And if it does, can I interface this crap to the simple serial rx/tx interface of an Arduino?

A little more digging uncovered the CSR BlueCore DataBook that says the BC212 has both a USB and UART interface.

First thing I noticed here is the module uses CTS/RTS handshaking, which is currently a bit of a rough spot with Arduino. Another deal breaker may be the words above that say "requires external RS232 transceiver IC". I dunno. I'll look at this again soon and see if any progress can be made.


abulmagd said...

this girl has hookes arduino to computer through USB bt dongle (my dream)

Niels Brouwers said...

The dongle you have has external flash (you can verify this by popping it into a linux machine, something like `sudo hciconfig hci0 revision` should yield a string containing 'bc2-ext' afaicr). There is an alternative firmware floating around that turns it into a bluetooth sniffing device.

As for the serial port thing, a good start might be to look for serial test pads, solder and FTDI chip to it and hook it up to you linux box. Bluez supports BCSP (bluecore serial protocol) so you should be able to use the dongle like that.

Have a look at http://code.google.com/p/btstack/, and I believe there was also something called lwBT, which is/was part of the mulle sensor node project. There's loads of code for using bluecore chips via serial.

Finally, note that there are extremely cheap ($4) usb dongles that use BC4-ROM chips, which is basically the evolved version of the BC2 with mask rom instead of external flash. They support the same protocols and interfaces (usb, serial). Making it possible to use them with Arduino might be fun.

Anonymous said...

Cool post you got here. It would be great to read something more about that theme. The only thing it would also be great to see here is some pics of some gizmos.
Alex Stepman
Cell phone jammer

francisroan said...

i gotta a gr8 question !

like u said can we connect those small cheap 4$ dongles chip to the arduino with some rs232 changes ????
coz i got an rs232 to usb cable can i do something with that????
and the arduino uno it has an atmega8u2 chip which can act as a usb host device so can i connect the dont to the arduino via the atmega8u2???
or just connect the serial pins together ?????