Facts: Bluetooth 5.2 introduced Isochronous Channels (ISOC) capability. In the context of BLE, it means supporting (1) data transmissions that are time-sensitive and (2) synchronized rendering of these data streams across multiple receivers.
I have purchased two ItsyBitsy Adafruit that each comes with a nRF52840 microprocessor. nRF52840 supports Bluetooth 5 but not 5.2. In addition it does not support Piconet and Scatternet support .
Goal: My goal is to connect each nRF52840 to a tactor and then the two tactors simultaneously play a pattern of vibrations.
User experience: The activation of the pattern could be done through an iPhone app or through a button on each of the ItsyBitsy boards. There are four scenarios to play a pattern: 1) iPhone is present and plays a master role for the two slave ItsyBitsy boards. 2) iPhone is absent and so one device plays the role of master and the other, the slave role. 3) iPhone is present as well as one of the ItsyBitsy boards. 4) iPhone is absent while an ItsyBitsy board is present.
Scenarios 3 and 4 are easy to implement. The difficulty is to ensure synchrony for scenario 1 and 2. In scenario 1, the activation of the device can be done through a phone or through a button on one of the boards. In scenario 2, the activation can be done only by pressing a button on one of the boards.
Potential Solution Sending a periodic time status packet between the Masters and slaves. The slaves will always conform to the master's time. When a button is pressed, either on the phone app or on the boards, it send a command to play a pattern in sometime in the future. If all the devices are in synch, then they will all play at the same time. That is the premis.
How viable this solution is? Tradeoffs I should be concerned about pursuing this option? Are there any alternatives?