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

Multiple buttons devices controlling multiple output devices using BLE

Hi,

I have an application where I have for example 5 BLE transmitting devices . Each device has one push button and each device is assigned to a number 1-5. I also have 10 BLE receiving devices, each comes with a simple LCD. In my application, whenever a button is pressed, it should transmit to all the BLE receivers and display the button number on the LCD.

I need to implement this using BLE and not other wireless protocols. Can anyone advise on how this can be best implemented? I am using this in a small office environment (max distance between devices is 30m with 1 wall in-between). Will the multi-link-multi-role demo be a good starting point for this?

https://github.com/NordicPlayground/nrf52-ble-multi-link-multi-role

What BLE services do I need? Or what modifications to the example do I need to make?


Thanks in advance.

Parents
  • The softdevice can support up to 20 concurrent links in any role, so you should be able to do this with connections from each of the 10 LCD devices to each of the 5 button devices.

    You can start with the example you suggest, but this does not implement multi-peripheral features, only multi-central. You can also use the BLE Multiperipheral and BLE Multi-link Central examples in the SDK.

  • You can configure all devices in any role (peripheral or central), but having the buttons as peripherals and the LCDs as centrals makes most sense to me. Since we support up to 20 connections, each of the LCDs can connect each of the buttons, but you should be aware that each connection will increase the current consumption (more packets needs to be sent to keep connection alive with all connected devices). If you implement a central gateway (main powered), both buttons and LCDs only need to maintain a single connection, reducing the average current consumption.

  • Hi Jorgen,

    This is what I am intending actually. I want to implement a central gateway (main powered) and this relays the messages between the buttons and LCDs.

    In this case, the gateway should be configured as central, while the buttons and LCDs are configured as peripheral? So the gateway will be scanning for the buttons and LCDs. Then establish a connection with the buttons and LCDs. Once the connection is established, the buttons can send notifications to the gateway and the gateway will relay the message to the LCD? Is my understand correct?

    Can you advise which noridic examples should I use as a starting point for each of these devices (gateway, button and LCD)? Thank you so much!

Reply
  • Hi Jorgen,

    This is what I am intending actually. I want to implement a central gateway (main powered) and this relays the messages between the buttons and LCDs.

    In this case, the gateway should be configured as central, while the buttons and LCDs are configured as peripheral? So the gateway will be scanning for the buttons and LCDs. Then establish a connection with the buttons and LCDs. Once the connection is established, the buttons can send notifications to the gateway and the gateway will relay the message to the LCD? Is my understand correct?

    Can you advise which noridic examples should I use as a starting point for each of these devices (gateway, button and LCD)? Thank you so much!

Children
No Data
Related