This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts

point to multipoint with UART (multilink on the S120)

I'm interested in using BT LE to collect data from a number of serial based devices -- a point-to-multipoint configuration. I'm familiar with the UART examples and have seen the multilink example.

The "devices" would be connected to a BT "remote" via the UART (+ level shifter etc), any serial traffic needs to be sent over the BT LE link to a single master BT device connected to a PC which can read the data (probably via the UART again).

However, I'm not 100% sure of the model, maybe it's just the terminology. In the multipoint example, there is a central (Softdevice 120) and peripheral (Softdevice 110). The central connects to the peripheral(s) to collect data, which is the opposite to how I need it to work (or is this just convention and can either end initiate the xfer?).

Finally, what are the limitations, I think the multipoint allows up to 8 simultaneous connections, can I have more "parked" connections? i.e. how many device+BTLE "remotes" combinations can I associate with a single BT LE master? (even if only 8 can communicate concurrently).

Thanks!

Parents
  • First and foremost, be aware that the S120 limits the throughput of each link to one packet per connection interval, and it can hence not do 128 kbps, even with a single link.

    You'll most likely also have use in reading this question, as well as nAN-36, which tries to cover some basic BLE terminology (on-air operations, data structuring in services).

    There isn't really any limit to the number of bonds a Central can have apart from storage for encryption keys, but if you want to use whitelisting in the Central role, you'd be limited to 8 devices.

    Edit: Considering your additional questions, you should first decide whether you want to use BLE or not. Do you for example need any of the devices to have smartphone connectivity?

    If the answer to that is yes, then you should use BLE and keep the device you call "uplink" as the Central, and the "remotes" as Peripherals. If 8 remotes are sufficient, each remote can be connected to the Central by default, and transfer data as needed. If you need more than 8, you'll have to make the remotes be disconnected by default, and only start advertising to be connected when they have new data to transfer. After finishing data transfer, they'd have to disconnect to make room for new connections to the Central.

    The primary reason for having it this way is that Central is a more current-intensive role than being a Peripheral, and that a Peripheral can only be connected to one Central at a time, which may be problematic for the uplink.

    However, if the answer to the initial question is no, you could consider using Gazell instead of BLE. This is a proprietary radio protocol, that was initially made for wireless desktop scenarios, but that may also be useful here. In that case, the "uplink" would be what Gazell calls a Host, while the "remotes" would be Devices. Gazell supports any number of devices, as long as the data throughput of each of them is relatively low.

    Gazell is explained in our online SDK documentation here.

    If you don't need BLE, you could also consider building your own protocol right on top of the RADIO peripheral, but that may easily get complicated.

  • For both the "uplink" and "remotes" current isn't an issue, so I can use the smallest possible interval (20ms) and I'm using nRF51822's on both ends so I can use a 7.5ms connection interval. Thinking about it, it really doesn't matter how long it takes if I can have 8 simultaneous connections. Even if it took 1s, I can still handle 8 concurrent connections per-second. If it was 500ms, I can handle 16/sec (with a 0-500ms latency before being able to initiate the connection).

Reply
  • For both the "uplink" and "remotes" current isn't an issue, so I can use the smallest possible interval (20ms) and I'm using nRF51822's on both ends so I can use a 7.5ms connection interval. Thinking about it, it really doesn't matter how long it takes if I can have 8 simultaneous connections. Even if it took 1s, I can still handle 8 concurrent connections per-second. If it was 500ms, I can handle 16/sec (with a 0-500ms latency before being able to initiate the connection).

Children
No Data
Related