Besides the pH and temperature, the Healthy pH Shield turns two pumps on and off. The purpose of these pumps is to allow the person writing the software the ability to adjust the amount of pH UP or DOWN depending on the pH measurement (adjusted for temperature) and the type of plant being grown.  Different plants are healthiest at different pH values.

Well guess what?  IT JUST WORKS! YIPPEE!!!

The Goal

The goal of this post is to determine if two peristaltic pumps connected to the Healthy pH Shield can be turned off or on.

Thanks to Those that Go Before

It is important to remember who has enabled me to do this stuff.  Thanks to Chris Gammell for his training and mentoring.  I highly recommend his Contextual Electronics course if you want to build PCBs.

The author of this post on a solenoid circuit.  It was clearly written.  This is the circuit I used for the pumps.

The Pump Circuit

The pump circuit can be found in the Pumps.sch kicad schematic at this GitHub location.

Pumps Schematic

The circuit design is basically the one in the image below.  There are two, one for pH UP and one for pH DOWN.  

Solenoid Circuit

I found this article covering the circuit to be extremely useful.  Refer to the article for a walk through of the circuit.

The pumps use connectors 5 through 8 of the 8 connector terminal block.

Pumps Relative To TB

While pins 5 and 6 reference the DownPump and pins 7 and 8 reference the UpPump in the schematic, it doesn’t matter if the DownPump is really hooked up the pH UP solution. I just use the naming convention to keep track of the wires and nodes in the circuit.  

The Tests

  • TP14 – Arduino’s 5V power source relative to Arduino GND.  Measuring this test point = 4.99 – 5V.  The readings would go between these two values.
  • Test the down and up pump circuits.  I attached a peristaltic pump to each and ran a simple sketch.  Here is the sketch for the down pump. The test code is located at this GitHub location.

Down Pump Circuit

  • The voltage across TP12 and TP15 will show that Q1 is drawing power.  Measuring this, on the DMM measurements jump around .4V.  Because of all the noise, I also measured on the scope:

   while (Serial.available () == 0) {


        Serial.println(“Down pump is ON”);



        Serial.println(“Down pump is OFF”);



Additional Cleanup

  • The Arduino has two GND pins next to each other.  Connect the GND pin that is not connected to the GND net (GND_ARD).
  • The Arduino 5V power source can be checked through the shield’s pins for GND and 5V.  TP14 duplicates this, but is further down the wire.  I don’t think being further down gives additional information, since the schematic/layout will show whether there is copper between the two points.  Given that, TP14 can be removed.
  • TP12 text is underneath D5.
  • I am not sure any of the test points are “interesting.” 
  • Put “1” close to the 1st connector of the 8 terminal block.
  • Along the way…tested the RGB LED.  255,255,255 turns off. 0,0,0 turns on.  This means blue = 255,255,0 but 0,0,255 goes blue as does 0,255,255.  Green does not seem to be working.  I could not determine the pin/wire placement.  This is most likely off.

What’s Next

Just a little more to do – test the RGB LED.  I also need to revisit the thermistor.  Then on to soldering the Healthy EC Dev-Rev1 Shield that arrived today.