3
\$\begingroup\$

I need to put multiple bluetooth modules in various places so that they trigger something on a smartphone.

Of course the smartphone has to grant access to the bluetooth device at some point, but I would like to avoid this by stating that every bluetooth module that is broadcasting "my secret key" must be handled as virtually the same device. That way the user does not have to accept the pairing each time he/she encounters one of my devices.

Does the bluetooth specification allow me to do so, or is the authentication based on the unique address of each chip ?

EDIT : From a pure design point of view, I plan to use this chip together with an ATMega and all the usual stuff that are needed to power up the board (battery holder + DC/DC regulator + buffer capacitors, pullup resistors, etc.), but that is not relevant for this question as I am still considering the feasibility of the project.

\$\endgroup\$
  • \$\begingroup\$ You could probably make the addresses non-unique, so the ultimate question might be more if the pairing depends on exchanging information, which the alternate BT devices would not have. BLE is designed to fit your use case better than classic BT, but is only present on newer Android devices, and the implementation there is still a bit buggy. \$\endgroup\$ – Chris Stratton Aug 4 '14 at 16:10
  • \$\begingroup\$ I assume BT and BLE refer to BlueTooth and Bluetooth Low Energy respectively ? Basically my application does not need bidirectional communication. I only want my bluetooth modules to shout something and the smartphone to get the message. The smartphone does not want to answer. \$\endgroup\$ – Buddyshot Aug 4 '14 at 16:19
  • \$\begingroup\$ @Buddyshot Do you have any local access to each remote device, such as being able to change their name to something unique via a serial interface? \$\endgroup\$ – tcrosley Aug 4 '14 at 17:18
  • \$\begingroup\$ @tcrosley Yes I do. Actually I have to design a small PCB that powers the bluetooth modules (I am thinking of this chip for instance) so I can access any of the remote devices through any kind of interface that is supported. \$\endgroup\$ – Buddyshot Aug 5 '14 at 10:17
1
\$\begingroup\$

The module you have chosen is using a very common TI CC2541 chip inside which is a Bluetooth 4.0 single mode (aka Bluetooth Smart, BLE, BTLE, Bluetooth low energy, Bluetooth LE) chip.

That chip is capable of broadcasting ("advertising" in Bluetooth 4.0 terms) packets which phones such as any Android 4.3+ and any iPhone 4S and newer are capable of picking up. This requires no connection to form and no authentication.

This is extensively already used by what are called Bluetooth beacons, basically products doing exactly what you describe. They are Bluetooth transmitters you can configure with IDs which will trigger events on the phone. There are multiple hardware vendors for such devices like:

and many more.

The triggering is currently most commonly used for advertising, Macy's for example is deploying 4000 of these to trigger marketing messages on phones.

The iBeacon is a Bluetooth beacon where Apple has specified what format the advertisement packet, advertising interval etc should be in. iOS has a special iBeacon API in addition to the normal Bluetooth API to make working with iBeacons easier.

So in summary: To achieve what you want, you don't need to have the phone think the devices are the one and the same, you don't need to worry about authentication and connections. Just having the devices broadcast data packets where the contents indicate to the software what to trigger will work fine. Also there are already literally hundreds of devices on the market that do exactly that.

\$\endgroup\$
1
\$\begingroup\$

Unfortunately, it is impossible with regular bluetooth. During pairing, secret cryptographic keys are exchanged between the phone and device; even if you could make few bluetooth devices have the same address, the keys will not match.

BLE (Bluetooth Low Energy) has a "Broadcaster" profile, which seems like exactly what you want:

https://thenewcircle.com/s/post/1553/bluetooth_smart_le_android_tutorial

One really cool feature of Bluetooth LE is this role of a Broadcaster, or a device that does not accept incoming connections, but rather pushes out the data is has inside its device discovery, or advertisement, data

Unfortunately, using BLE requires a Bluetooth 4.0-capable chip as well as a BLE-compatible smartphone.

\$\endgroup\$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.