what is the best protocol to connect more than 512 devices to an arduino??

Hi everyone!

Now i'm arranging a project that involve connect around 512 stepper motors each one connected to one micro controller with one master arduino as master.

The problem comes with the max distance from the main controller to the last stepper is 300 meters.

I'm planning to reduce the cost to use the nema17 step motor with polulu a4898 driver, and connected to Attiny85 as intermediate microprocessor.

The idea is send the order through on data bus (i was think i2c with some p82b75 extenders in order to avoid the distance problem of the i2c bus and use the 10bit address to connect a maximum of 1000 devices)....

Each atinny85 will have one different address by program, and will listen to the master in order to receive their number and the number of steps to transmit to the nema step motor, and return O.K. when finish the process...

so my question is what will be the best approach in order to drive this huge quantity devices... (i2c bus or other...)

Thanks for your time to read this and regards

I think you will have trouble using any bus with 500+ loads hanging off it.

How fast do you need to update the nodes?

Can you split them into a few groups?

What about daisy-chaining as that has no practical limit to the number of nodes (or the distance between them depending on the speed required).

Does it have to be a single motor per node? Can you say have 4 to reduce the number of nodes to 128?


Rob

I2C only has 127 addresses and some of those are reserved for other purposes and really aren't available.
The limitation of I2C comes from bus capacitance. That includes also the capacitance each device on the bus adds. Even with a bus extender you have to find a balance between overall bus length and number of devices 100+ devices AND 300 ft of bus lengt is rather unrealistic aside from falling sort for the number of devices you want to connect.

I am not aware of any low cost bus system that can accommodate 512 devices.

why not using wireless? No problem with the load!
XBEE to the rescue ! - 16 (or even 64) bit addressing mode should do it

Question is which bandwidth do you need?
How often the positions change per second per steppenmoter