Controlling for test bay

Hi there,

i'm developing the controlling for a test bay for the research about comfortableness.

I have the following requirements.

  1. 64 Arduino devices, each controlling up to three 3-way valves
    2 options, at the moment not decided:
    1.1) Valve control with 2 relays each (3-point control), not mechanical, 24 VAC or 24 VDC
    1.2) Valve control with 3 analog out 0..10 V
  2. Communication with one Master-PC via Ethernet or other Bus-System (CAN, SPI, i2C, ...)
    2.1) receive target values for controlling
    2.2) transmit actual value
    2.3) program update function, it should be possible to flash new code via network for easy update

I have looked up some of the arduino. At first of course the ethernet one, because of the communication. But i would like to know, if its possible to use another bus-system for communication. Another special part is the flashing via network.
I didnt find a fitting shield for the 1.1) or 1.2) requirement, but we could also build an own board.

Right now we plan to realize this project with an Raspberry Pi, but i would really like to know about the ways of realisation with the arduino.

So its all about..
-getting the right output signal
-communication of several Arduinos with a Desktop-PC
-Flashing the Arduino via Network/Bus

Thanks for your help.

Do you really need all those separate Arduinos? (Why?)

The requirement to be able to reprogram the Arduinos takes you immediately towards a USB connection to the PC. (It's possible to achieve using other connection types but the solution becomes much more complex.)

How far will be Arduino be from the PC?

Tanks Peter for your attention!

How far will be Arduino be from the PC?

I think the Arduino most far away is about 15 to 20 m (cable length) away from the main pc.

Do you really need all those separate Arduinos? (Why?)

Well after all we want to control 3 - 3way Valves for up to 64 times and measure 15 temperatures for 64 times. So reasons for that many little guys:
-->the amout of devices that have to be controlled
-->the amount of sensors that have to be measured
--> an approach of building autonomous controllers
-->a simple way of structuring (one Arduino for one unit of sensors and valves)

A USB connection for flashing is not an option, since we have to use ethernet (or another BUS system) for the communication and since its laborious to run around and flash seperatly such an amount of Arduinos.

I just found this Bootloader - TFTP approach:

I guess this Bootloader is one of your mentioned options?!

Your reasoning for the use of multiple Arduinos seems sensible, but leaves you without an easy solution to upgrade them.

I hadn't thought of using a TFTP bootloader, but it definitely seems an interesting option. If you can make it work reliably and it doesn't introduce any other issues, I think that would be your best bet.

The other sort of approach I had in mind was to use the Arduinos in pairs, with one Arduino acting as an 'external bootloader' for the other. The job of the 'bootloader' would be to receive a new sketch over the network and act as an programmer for the other Arduino, which would do the monitoring/controlling work. I've never implemented this approach myself but other people have, so I'm confident it can be made to work. The TFTP approach seems more elegant, though, if it works.