Oracle Blog

David G. Simmons' Weblog. Mostly about Sun SPOTs

Bluetooth SPOT

My latest "Stupid SPOT Trick" has been to connect a Bluetooth board (from Sparkfun.com, of course!) to a Sun SPOT. It is both easier than it looks, and harder than it looks. Huh? Let me explain.

In a previous post I wrote about doing bi-directional Serial port access to a Sun SPOT so that I could talk to a device attached to the UART on the eDemoBoard of a Sun SPOT. So, of course, when my BlueGiga Board arrived, I immediately wired it to the eDemoBoardUART on pins D0 and D1. Seemed like the reasonable thing to do. At the time anyway.

Turns out that, according to the datasheet on the BlueGiga board (and don't try to buy one right now, I bought the last 2), it wants to communicate at 115200 baud, 8-N-1. Not being one to read the documentation all that thoroughly, I was unaware that the UART on the eDemoBoard will only go as high as 38400. So all my attempts to communicate resulted in garbage out (to be fair, garbage in, garbage out).

Turns out what you need is an eProto Board. With that, you can put Tx to pin A5 and Rx to pin A6, power to +3v and ground, and voila ... almost. There is one more trick to getting this board going. You need to connect the BTEN pin on the BlueGiga Breakout board via a 100k Ω resistor, to Vcc as well or the board, while powered, will not actually come up. Once I had all that done, of course, it was easy.

So I now have a Bluetooth-enabled Sun SPOT that can talk to other Bluetooth devices over the Serial Port Protocol (SPP) profile of Bluetooth via RFCOMM. I have it doing discovery (to find other Bluetooth devices), Authentication exchange, and full-duplex serial data exchange. Nice!

[ The generation of random numbers is too important to be left to chance. ]