6
\$\begingroup\$

I am putting together a simple project where my ibeacon (or a small BLE device) causes the receiver to trigger an alarm when inside the range of the receiver (5 ft max). The receiver will not be smart phone/app based.

The examples I've seen online are almost exclusively based on a cell phone app detecting the beacons. I'd greatly appreciate any suggestions on what hardware to use as a receiver and the BLE beacon.

Would an Bluetooth Module for Arduino detect the sticknfind beacon?

Thanks!

\$\endgroup\$
0

2 Answers 2

1
\$\begingroup\$

The majority of BLE chipsets can function in the central (detector) role as well as the peripheral one. A noted exception however is the NRF8001 used on some Arduino BLE shields, which cannot be a central (detector) - but something based on an NRF51822 or CC254x with the right firmware could.

The module you link is plain bluetooth, not BLE at all.

Finally, an embedded board which can host a USB BLE adapter can probably detect advertising transmissions - there is coverage on StackOveflow for doing this with a raspberry pi, but in a way that is portable to most embedded Linuxes.

\$\endgroup\$
1
  • \$\begingroup\$ Sorry, this was originally posted with the NRF51822/NRF8001 interchanged. Fixed it now. \$\endgroup\$ Nov 11, 2014 at 21:16
1
\$\begingroup\$

Dimitry Grinberg did the opposite; he used a Nordic nRF24L01+ to fake BLE GATT transmissions. It won't ever connect as a BLE device, but smartphones can see his advertisements.

You could take his research and easily detect the beacons. You won't be able to interact with them since the nRF24L01+ isn't up to the task, but your question stated that you merely wanted to detect them.

To paraphrase his excellent posting:

  • BLE advertisements occur only on three channels.
  • Data whitening and CRC are done in software

Your microcontroller (a little AVR or possibly even something like an Arduino) could hop between these three advertisement channels, listening for packets. When you think you've found one you de-whiten the payload and compare the BLE destination address to to 0x8E89BED6 (the destination address for unsolicited advertisements).

It's not point and click, but it should be doable.

The Nordic nRF24L01+ modules are available everywhere. Most look something like this: nRF24L01 module. They're just simple SPI devices and as mentioned, libraries exist to drive it already (just google links, not endorsing any particular library).

Brennan Ball wrote a fantastic tutorial on using these devices. Highly recommended reading if you're going to roll your own software.

Good luck!

\$\endgroup\$
2
  • \$\begingroup\$ As pointed out in that article, the NRF24L01 buffer size is smaller than many BLE packets, both those of the unidirectional iBeacon-formatted advertising type, and the some of those required to set up the bidirectional BLE proximity mode. It might be possible to detect that there is "a" device out there, but not necessarily to differentiate it from others of similar type. \$\endgroup\$ Nov 11, 2014 at 23:02
  • \$\begingroup\$ Right, I am aware that you won't be able to grab the entire packet, but you may still be able to grab enough to differentiate. I read the question as whether you could detect a BLE beacon, not interact with it or identify a particular one. \$\endgroup\$
    – akohlsmith
    Nov 11, 2014 at 23:05

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

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