0

To test bluetooth scalability, I want the same device (a Raspberry Pi or a laptop) to emit several BLE advertisements. So far, I have tried using bleno (NodeJS), hcitool and CoreBluetooth for OSX, but I can not setup more than one.

Is this a hardware/system/bluetooth limitation? Has somebody managed to do this?

Sergio
  • 3
  • 1

2 Answers2

1

That's not possible by the Bluetooth specification. However you can start off with one data then set a timer in your app that stops advertising. Then you start off again with the next data. And so on.

Emil
  • 16,784
  • 2
  • 41
  • 52
1

Different bluetooth devices have different maximum advertising rates. These typically range from 10Hz to 40Hz. Some bluetooth devices have the ability to spoof their MAC address so different advertisements appear to come from different physical devices. This is often important for scalability testing, because some receivers keep track of unique devices by MAC address.

As @Emil says in his answer, it is possible to "interleave" advertisements such that you change the advertisement (and ideally the MAC address) every few hundred milliseconds so it appears by receiving devices that there are multiple advertisers around. I have done this with both Raspberry Pi and iOS transmitters, but in neither case could I alter the MAC address.

It is important to understand, though, that the actual number of packets received when you do this does not change. So while you may be testing scalability of unique advertisements detected, you will not be doing the same thing as testing with multiple physical advertisers.

davidgyoung
  • 63,876
  • 14
  • 121
  • 204
  • You can generally not alter the public Bluetooth device address (at least not using the standardised HCI layer), but you can usually set a new random address. Of course this depends on platform if that option is available. – Emil Aug 17 '16 at 18:51