Limits of Arduino ethernet connections?

Hey there,

I'm planning a project where I need to control a lot of Arduino Unos from a single PC. I'll need to send commands to the Arduinos and receive responses, as well as have the ability to update each Arduino from the PC, preferably without Arduino IDE at some point. Connecting via USB is out of the question, as I have already tried this and got miserable results, in part because of the number of Arduinos I need to control. So now I'm considering connecting the PC to an ethernet switch and then from there connect each Arduino with an ethernet shield.

Which brings me to my questions. Are there any limitations I should be aware of, if I want to pursue this setup? Will controllings tens, or even a hundred, Arduinos at the same time be a problem? How about stuff like updating a specific Arduino on the network?

My current working prototype uses a Windows PC that connects to one of multiple Raspberry Pis, which then in turn communicates with a number of Arduinos via I2C, and updates them via USB. But if I'm able to do all this directly from the main PC to the Arduinos via Ethernet, that would be fantastic.

Thanks for reading, looking forward to any answers.

Hello,

What do you mean control? What do you mean PC? What do you mean update?

Eithernet cabling can send data between 1,000 Mbs at 100 MHz up to 10,000 Mbs at 600 MHz. As long as each of these Arduino's are not streaming someone's HD video library; Eithernet can carry enough data to control them.

Why do you need a single PC to control the Arduinos? Each Arduino has a micro controller on board. Have you built an interface on a PC that you would like to use to communicate with the Arduinos?

Do you mean update the firmware on the Arduino or do you mean update the Arduino with data received somewhere else?

What I like to do is have my micro controller send HTTP requests to an HTTP server. This interface allows for data collected by the micro controller to be sent to a server and likewise the micro controller can receive data from the server. I then store the data on the server via SQL database which allows for the data to be used in numerous standard ways allowing for intricate UI's or plain old processing on the server.

With this setup, httpUpdate() allows for updating the micro controller's firmware from a binary file at a remote location on the server.

In everything you describe, Eithernet will definitely not be your limiting factor. Your bottle neck depends completely on the application you are implementing with your army of Arduinos.

Are there any limitations I should be aware of, if I want to pursue this setup? Will controllings tens, or even a hundred, Arduinos at the same time be a problem? How about stuff like updating a specific Arduino on the network?

An UNO doesn't have an Ethernet interface so you need an Ethernet shield or something similar. So the limitation may be cost factors.
Also keep in mind that many cheap Chinese W5100 boards are not correctly designed and won't connect to most switches on the market. This may increase the costs significantly as you may be forced to buy "working" hardware as p.e. the Original Arduino Ethernet Shield.

Based on your expectations of "at the same time" you may fail too. In the IT world at the same time almost never exists, so you should give a more detailed definition of what time difference is acceptable to you.

Updating the Arduino's sketch is possible over the network but not using the standard boot loader. But if you're willing to replace the boot loader and use specific tools to do that upload this is possible.

An inclining of the project would help - I’m wondering what you do with a hundred Arduinos? - There maybe other solutions.