Multiple Sensorboards blocking each other without synchronization

I'm currently working with multiple Metawear C sensors on Windows 10 (C#) and try to understand how the boards actually work to synchronize them.
I noticed that if I run mutliple sensorboards without synchronization after a short time only one will last stream data (from what I see in the debug window). What's wondering me is that every sensorboard has it's own object and it's own bluetooth connection (all on the same bluetooth device). Why are they blocking each other anyway? 


    • What do you mean by synchronization?
    • How fast are you running the sensors?
    • How many sensors are you using simultaneously?
    • Do you see the same behavior when using the MetaHub app?
  • I tried with MetaHub and no problems there. So I think it has to be something in my code causing this and not a behavior of the devices.

    To your other questions:
    - I thought when they blocking each other I have to synchronize it so that only one sensorboard is streaming at the moment. But if you have not done it in the MetaHub app it seems not necessary.

    - I tried different rates, but mainly accelerometer and gyrometer with 25Hz.

    - Till yet I used up to three sensorboards. But in the final version it will be up to maybe seven. 
  • Bluetooth LE cannot handle data throughput higher than 125Hz so you won't be able to stream high frequency data from 3+ devices.

    Your problem could be code related.  How are you setting up a stream?
  • As a fellow Windows programmer it may depend on how your particular compiler implements bluetooth. Mine creates anonymous threads each time data is returned (gatt_read) and because threads on Windows run when Windows wants them to, I did notice that without some sort of synchronisation one would start to starve the other. This could be seen when stoping both streams and seeing the starving stream get a short burst of speed as it caught up once the other stream was exhausted.

This discussion has been closed.