Project Route for High Number of Sensors

Hi everyone,

Very new to arduino but starting a project and would appreciate some suggestions on routes to take! Will eventually be taking someone on board with a bit more ardunio expereince to help…

I’m starting a project where I will need aprox 16 IMU sensors (Adafruit BNO055) which will eventually go to blender for real time movement tracking.

My intial plan is to have 2x IMU Multiplexers (Adafruit TCA9548A) and connect all IMUs to them and then to a single arduino nano for the data then to be taken off → python → blender in real time.

I’m curious whether there is a better way of doing this? WIll i run into problems having so many sensors connected to one nano? Especially when i need real time output for all sensors? No hardware purhased yet so open to change the route. Maybe multiple nanos which go to an ardunio mega as a hub to take the data from?

Thanks in advance!

Hello,
BNO055 has I2C on board, I2C is a bus that you can use to connect all your BNO55 devices to your processor with 2 wires.
And it is fast.
Arduino has standard support for I2C, so you can leave out the multiplexers and use the bus to “multiplex” (every BNO has its own address on the bus, and you can read and write the registers in each device by using the I2C address)
If you need to be fast, then you can use a MEGA with an Ethernet shield. Send telegrams to your PC using Ethernet – UDP, you will most likely not find solutions that are faster. The messages will end up in the PC faster than the pc can switch threads < 15ms. An alternative is to use a Arduino due with a native USB port, also this solution can be extremely fast.
An alternative that is a bit slower is the MKR1000/MKR1010 and WiFi-UDP. If you use TCP/IP, there it is much slower as it is stream and not message oriented.
Best Regards,
Johi.

Picked up via Google.

What is the default I2C address for bno055?
The voltage level out is 3V ADR: Set this pin high to change the default I2C address for the BNO055 if you need to connect two ICs on the same I2C bus. The default address is 0x28.

2 sensors can be used on the same I2C bus so You need to find I2C bus expanders...

How many transmissions per MCU w/sensor per second?

Transactions using http can take 4 or 5 seconds per transaction.

MQTT can handle a transmission every .1 seconds from a connected client.

Websockets, will be the fastest.

If each MCU was connected to a RPi serving as a MQTT Broker then Python can be used as a communications manager. That's how I do the thing.

@rosspj456

Other post/duplicate DELETED
Please do NOT cross post / duplicate as it wastes peoples time and efforts to have more than one post for a single topic.

Continued cross posting could result in a time out from the forum.

Could you also take a few moments to Learn How To Use The Forum.

Other general help and troubleshooting advice can be found here.
It will help you get the best out of the forum in the future.

Before you go all out, make sure that the BNO055 performs satisfactorily for your purpose.

The BNO055 does not work nearly as well as some other IMUs, as the automatic sensor calibration is rather poor, largely undocumented and cannot be shut off.

The BNO055 has only two possible I2C addresses.

This topic was automatically closed 120 days after the last reply. New replies are no longer allowed.