In a bunch of previous posts over the last 6 weeks or so, I have built up an open-source software stack for controlling Arduino-based gadgets. This was based on the use of serial communications to send/receive command-response queries to the Arduino via an EPICS IOC installed on a Raspberry Pi. Another Raspberry Pi on the same network was used to archive the data produced by the Arduino.
For a generic Arduino-based measurement/control device this could be set up from scratch in an hour or two by following my instructions, but there is still a lot of room for improvement in this set-up procedure. One particular avenue of exploration would be to move the details of the EPICS environment and serial communications “under the hood”, allowing users to concentrate on the functionality of the Arduino device. This would allow the user to ignore all the details of the control system, and to deploy multiple control/measurement systems very easily.
The idea is to think of this as a product that can be offered to people by providing a set of tools, blueprints, etc., that they can easily fit to their own needs. So, we need to develop an easily reproducible hardware platform, plus a software package that allows the user to build and deploy a working software stack. All we need assume about the user is that they are competent in Arduino programming, and that the system they want to set up involves setting digital voltages (including PWM signals), and reading/setting analog voltages (all of which should be within the capabilities of the Arduino platform).