FYI it really depends on your local setup (municipal water line pressure or in your case pressure from the pump, length of vinyl tubing, the minor imperfections in each watering nozzle, it all adds up).
I’ve done some extensive testing with a measuring cup and using different timings opening the solenoid valve and figured that for a 50 millilitre shot, I need 150 milliseconds, but for a 100 millilitre shot it doesn’t mean 300 milliseconds (it’s 750 milliseconds), and for a 150 mL shot it’s not 450 ms (it’s 1500 ms).
I had to re-do this when I put tie-wraps around my vinyl tubing because every time the solenoid opened it would squirt some water and the UTM would flood.
All is to say that every FarmBot owner should figure out what works for their setup. I personally like being quite accurate in dosing my water. I live in a very dry area so rain rarely interferes, which allows me to water the garden very precisely (which helps with weed control).
It looks linear but near the beginning it bends down slightly. Also, as you can see, it really seems impossible to give less than 30 mL (even with opening the valve for 10 ms).
I suspect either it’s not possible to have millisecond control over the solenoid valve (but rather in “steps” of, say, 50 ms), or it’s the stored initial pressure in the line that pushes out more water in the first few milliseconds.
It’s probably a combination of both.