Skip to content
Albert edited this page Nov 26, 2013 · 18 revisions

The source code of the Arduino firmware can be found in tropfprojekt/Arduino/tropf_control/

Schematics and layout files of the PCBs are in (Target3001 format) are located in tropfprojekt/Hardware/Pumpensteuerung

Hardware overview:

hardware overview

A DC/DC-converter (ASA01A18-L) supplies the circuit with 5V/1A from a 24Ah lead acid battery. A 5V solid state relay (34.81-9024) is used to switch the power supply to the raspberry pi on and off.

Two 74HCT595 shift registers in series are used to get 16 output channels from the Arduino Uno. For every pump a separate pump controller containing the high voltage drive for the piezo pump is used.

Analog pressure gauges (MPVZ4006GW7U) are used for measuring the fill level of the dye tanks but not shown in the schematics.

Schematics of the shift registers and pump controller:

tropfprojekt schematics

Layout of the pump controller used for each pump:

pump controller layout

Full list of commands available over the serial interface:

  • "startop" - starts operation, puts Arduino in "pumping-mode"
  • "stopop" - stops operationg
  • "gettime" - current time from the real-time-clock module in unix format - answers with "time: 1372621814"
  • "settime x" - syncronizes the real-time-clocksynchronisiert die RTC, x="unix timecode in seconds", get it with the command "date '+%s'"
  • "getconfig" - answers with full configuration of the pump controller
  • "rconfig" - resets configuration and saves it to the EEPROM
  • "getstatus" - gets the status of the battery and the dye tanks
  • "chginterval x" - x in ms, sets the time between two rows of drops
  • "chgontime x" - x in ms, sets the ontime of the pumps (equiv. to 100%)
  • "chgpf n x" - pump n, x in %, changes the pump ontime individually
  • "rpf" - resets all pump ontimes to 100%
  • "ptime" - prints the current time, answers with time code and bit pattern
  • "ptext foo" - prints text foo, answers with time code and bit pattern
  • "pvert on/off" - configures vertical or horizontal printing of time
  • "ptwo on/off" - configures printing one or two numbers
  • "mirrortext on/off" - configures mirroring of printing text
  • "autoprint on x" - x in s, activates automatic printing of time, waits for next full minute for the first print
  • "autoprint off" - deactivates automatic printing
  • "aop on/off" - configures automatic operating hours as configure in the firmware
  • "aswpi on/off" - configures switching raspi on and off automatically with operating hours
  • "swpi on/off" - switches raspi on and off immediately
  • "getlevels" - answers with levels of each dye tank
  • "chgplmin n x" - ADC-value x, channel n, sets the minimum ADC-value of level measurement using gauges
  • "chgplmax n x" - ADC-value x, channel n, sets the maximum ADC-value of level measurement using gauges
  • "getbat" - answers with battery voltage
  • "dpump on/off" - switches all pumps on/off for debugging
  • "dpump on n" - switches only pump n on for debugging
  • "dtiming on/off" - activates timing mode for debugging
Clone this wiki locally