First, disconnects the solenoids wires from the controller (you can simply remove the common wire, which effectively disconnects the solenoids from the circuit). Make sure the solenoids are the correct type, this can be done by measuring the resistance from the common wire to each zone wire. The resistance should be somewhere between 20 to 50 ohm. If it’s too small, your solenoids may be of ‘latching’ type, which is not compatible with DC-powered OpenSprinkler.
Next, with the solenoids disconnected, and the controller powered on, measure voltage from VIN to GND, this should be 5V. Earlier you said it’s between 3.5V to 5V. If it’s noticeably below 5V, something is wrong — it should be a fairly stable 5V.
Then, turn on a zone (e.g. zone 1), and measure voltage from COM to that zone. This should be slightly before your input voltage. For example, if you use 12V DC power supply, this voltage should be maybe 10 to 11V. It’s important that the solenoids are disconnected when you measure this voltage, otherwise, if the solenoids have a shorting, or are of the wrong type, it would interfere with the voltage measurement.