Which Bluetooth module
Moderators: adafruit_support_bill, adafruit

Please be positive and constructive with your questions and comments.

Which Bluetooth module

by chevelle on Thu Feb 14, 2019 12:17 pm

Hi. I am working on an IMU Head Tracker. For the prototype, the IMU data is acquired by the Teensy and relayed to the main software running on a PC via a cabled USB connection. I would like to replace the USB cable with Bluetooth. After looking at your breakouts, the nRF51822 based Bluefruit LE SPI Friend seems to the right way to go for experimenting.

Is this what you would recommend? If not, which one?


IMUTracker2.jpg (80.92 KiB) Viewed 49 times

Posts: 3
Joined: Wed Feb 06, 2013 4:57 pm

Re: Which Bluetooth module

by adafruit_support_mike on Sat Feb 16, 2019 1:15 am

A computer can talk to the BLE SPI Friend, but different from what's now known as Bluetooth Classic. They're different and incompatible protocols that happen to be managed by the same working group (which seems to love confusingly-similar names).

Bluetooth Classis is more or less a wireless replacement for a USB cable, but that protocol isn't friendly to hackers. Devices can only belong to specific, pre-defined categories, every device has to identify the category it belongs to, and also has to transmit a Vendor ID number. Getting a VID involves giving the BT Working Group a lot of money.

Most of the programmable BT-C devices you'll find are wireless Serial connections, like the HC-05 module.

BLE is more hacker-friendly. You don't need an expensive VID, and there are only some general rules about how the messages to a computer are arranged.

That's less convenient at the computer end of the connection though.

Programmers writing code of an operating system can build a library that supports every possible BT-C device, and can knit support for those devices into other parts of the OS.. keyboard input, wireless mics as audio inputs, wireless speakers, and so on. That doesn't work for BLE devices becase anyone can develop their own set of BLE messages.

All an OS can do is provide basic support for talking to the BLE radio, and some support code for dealing with the structure of BLE messages. The problem of finding, connecting to, and communicating with BLE devices is left to programs written by the people who create a BLE device.

The upshot is that a BLE connection won't just show up as a Serial port that you can use in your code. You'll need a program that knows how to find and connect to a BLE Friend, then knows how to handle the BLE version of a Serial connection.

Posts: 57131
Joined: Thu Feb 11, 2010 2:51 pm

Please be positive and constructive with your questions and comments.