Machine control + ethernet + many serial connections


I am trying to determine the best way to incorporate many sensors and serial connections in an arduino project, and if it is feasible to run so many things on 1 uC. The project is a pressure testing vessel that uses 24v hardware to feed pressure into a chamber as well as 24v sensors to read the pressure. I already know that the arduino’s 10 bit dac is too low of resolution for my application so i will be using an i2c 18 bit DAC to feed a 4-20ma interface which goes to the pneumatic controller. I will also need an 18 bit ADC to read the pressure from a transducer (1-5v analog)

For the interface, I really like the smartgpu2 as it seems to only take serial commands from the arduino and does all the graphics processing on its own. Basically the interface needs to graph/plot the pressure over time (smartgpu2 has a RTC) and log the data to a file, which the smartgpu2 does have the capability for. The smartgpu2 api uses points and lines and should be able to make a decent plot in realtime (< 10hz sampling) Does anyone have any experience using the smartgpu2? Is there anything else someone would recommend? The machine also must be able to serve the data over ethernet (maybe using webserver?) and if requested print the data on a serial thermal printer.

The biggest question is will an arduino uno (or mega) be able to handle all the serial connections simultaneously? Do serial connections interfere with timing or datalogging (or reading i2c DACs and ADCs?) Obviously alot depends on the programming but will I run into any physical limitations like memory (arduino mega) or processing power? I have seen each of these things work with arduino (ethernet, thermal printer, smartgpu2, DACs, ADCs) but does anything quirky happen when they are all used (at the same time)?

Here are links to the hardware I plan on using, I am open to any suggestions as well:

Pressure hardware,
using something like this to interface,
obviously some other circuitry necessary for the 4-20ma loop,

Interface hardware,

Thermal printer,

Ethernet interface,
From what I’ve read the shield with the wiznet 5100 chip is less demanding on the arduino than a enc28J60 type ethernet as the wiznet chip does all the tcp handling.

24v interfacing is going to be done with a dedicated circuit using optocouplers and solid state relays, there seems to be quite a bit of information on arduino interfacing with 24v industrial gear.

Thanks in advance for any help or guidance, I have some experience programming with arduino and have done some datalogging projects/PID stuff but never as many sensors at once.

Nice I/P and P/I, but the P/I is 0.25%FS. your 18bit ADC will be much higher accuracy than the device.

Can you multiplex the P/I ? seems like 10hz would allow that to happen.
that could eliminate multiple inputs and have one sensor, two if you like redundancy.
your post did not state how many sensors are used or how many outputs.

high accuracy for the 4-20 signal is not an issue, an op-amp will be needed to increase the span from 1-5 volts to 0-5 volts.

our of curiosity, what pressures are you planning on using ?

Yes maybe 18 bit is a little overkill, I think I need better than the arduino's 10 bit however. I think its possible to multiplex but the arduino mega has so many digital i/o that I was under the impression I wouldn't need to multiplex. I'm pretty sure i can interface via i2c between the dac/adc and an i/o pin(s) on the mega, maybe not? Yes just 1 i/p and I would need 2 P/I's as both the internal pressure and external pressure are measured, both values need to be read and logged.

I know that there is some other hardware needed to interface with the 4-20 guy, some of the dacs/adcs I've seen also have opamps built in. Pressures will rarely exceed 60 psi but it would be good to have everything rated for 100 psi.

After looking at the smartgpu2 some more, I saw it can work with a raspberry pi. I don't know if that would be preferable as it already has ethernet and can be interfaced with most of these sensors. However the goal of this machine is a simple one and I don't think it would be great having to wait for the pi to boot up.

Good call on the 18 bit adc though, I will try and find something more suiting.

one P/I, multiplex the pneumatic lines.

we did that for room pressurization for a lab. back then a low pressure sensor was over 2 grand !

I have gone with 12. 16 bit when I wanted super resolution.

16 bit ADC is very common and super high resolution. not excessively priced.