It is all in the question really, I would like to possibly have up to 100 slaves talking to a master over a network but I am unsure on what kind of data rates we would be talking about per slave. At the moment my solution is using RS485 and Modbus and I can get data rates to each slave of around 115200 Baud.
Has anyone managed to get a large number or even any number of slaves communicating, do you have any information on how speed changes per amount of slaves on a network?
I should have said this is all within one room, not spead out on a factory floor or anything. Distances should be open air and probably all under 30 metres.
Unfortunately you can make up only one BLE connection at a time. Only way out could be to connect to one module after the other in a sort of polling. An additional "Whitelist" would help when the devices are static and do not change. In the 100 projects for BLE is an example but it only uses a few connections.
Looks doable, primary issue seems to be latency to connection .
BLE connection rates look like -
A single master can address ~231 slaves
~ 2 billion addressable slaves per master
Max Connection Interval = 4.0 seconds
Can address a slave every ~ 5 ms (assuming 250 ppm clocks)
~ 800 active slaves per master
Some useful references -
http://www.cypress.com/?id=5509 100 Projects in 100 Days with Bluetooth
http://www.cypress.com/?rID=102512 AN91445 - Antenna Design Guide
http://www.cypress.com/?rID=102505 AN94020 - Getting Started with PRoC™ BLE
http://www.cypress.com/?rID=110007 AN92584 - Designing for Low Power and Estimating Battery Life for BLE Applications
http://www.cypress.com/?rID=109900 AN91162 - Creating a BLE Custom Profile
http://www.cypress.com/?rID=110107 AN91184 - PSoC 4 BLE - Designing BLE Applications
http://www.cypress.com/?rID=102504 AN91267 - Getting Started with PSoC® 4 BLE
Hi Dana, Thanks for that invaluable information.
So if I understand this right, BLE is capable of sending 0.2Mbps to the slaves, so in bytes 25kBps
At ~5ms per connection we can address 200 slaves a second and at 25kBps we are talking a transmission of maximum 125 bytes per slave for 200 slaves.
What I don't understand is the 4 seconds figure, does that mean I can't stay connected to one slave for more than 4 seconds?
Also as someone with no RF experience whatsoever, is there anything stopping me from having say 4 BLE masters next to each other -each talking to 50 slaves or will the comms interfere with each other and go haywire?
The modulation rate of the Bluetooth Low Energy radio is set by the specification at a constant 1Mbps. This sets the theoretical upper limit for the throughput that BLE can provide, but in actual terms, this limit is typically lowered significally by a variety of factors, including but not restricted to bidirectional traffic, protocol overhead, CPU and radio limitations, and artificial software restrictions.
To illustrate some of these practical restrictions, consider the following basic preconditions we’ll use for a calculation:
- A central (master) device has initiated and established a connection with a peripheral (slave) accessory.
- While in an active connection, the specification defines the connection interval to be the interval between two consecutive connection events (a data exchange before going back to an idle state to save power), and this connection interval can be set to a value between 7.5 ms and 4 s.
According to Bluetooth Low Energy specs, the connection interval determines the time between the start of the data packet exchange sequence called connection events, and it can be from 7.5 ms to 4 seconds. This value is closely linked with the power consumption, being higher the consumption when the value is smaller.