How do I know which version of OpenSprinkler hardware I have?

When submitting a support ticket, you should indicate which version of OpenSprinkler hardware you have. There are several ways to find this out.

  • If you can access the controller via mobile app or web browser: at the homepage, swipe left to right to open the left-side menu, then click 'About'. It shows the hardware version.
  • If your controller has a label at the back panel, it shows the hardware version there.
  • If neither of the above is available, you can take a picture of your controller and attach it with your support ticket so that we can identify which version it is.


How do I know which version of firmware my controller runs?

When submitting a support ticket, you should also indicate which version of firmware your controller runs. There are two ways to find this out:

  • If you can access the controller via mobile app or web browser: at the homepage, swipe left to right to open the left-side menu, then click 'About'. It shows the firmware version.
  • If your controller has an LCD and runs a fairly recent firmware, when the controller boots up the firmware version will show up briefly on the LCD.
  • If your controller has buttons and LCD, you can: 1) power off the controller, then power it back on, and as soon as you see the OpenSprinkler logo or the word OpenSprinkler, press and hold the third pushbutton (B3) and continue holding it until the LCD shows 'Setup Options'. Then click B3 a couple of times until it shows Firmware Version.


The difference between Hardware version, App version, and Firmware version

At the 'About' page, you will see three version numbers:

  • App version: this refers to the mobile app a.k.a UI (User Interface) version. For example, the app version may be 2.2.0. It's usually updated automatically on your phone, whenever a new version becomes available
  • Firmware version: this refers to the software version that's running on the controller. For example, the firmware version may be 2.1.9(4) where (4) refers to a minor revision of major version 2.1.9. Firmware update is NOT automatic: you need to follow Firmware Update instructions.
  • Hardware version: this refers to your OpenSprinkler's hardware version/revision. For example, the actively supported hardware versions are 2.3, 3.0 (including variants 3.1 and 3.2) and OSPi. 

The OpenSprinkler Unified Firmware can run on all actively supported hardware versions.


Solenoid resistance testing

It can happen sometimes that the sprinkler solenoid has a shorting somewhere, either because the solenoid itself is defective / shorted inside, or there is a shorting in the wirings. This should be fixed before switching on the sprinkler controller, as it can cause the controller to malfunction or even get damaged. The basic diagnostic step is to perform a solenoid resistance testing. To do so:

  1. Make sure the system is powered off (i.e. remove power);
  2. Use a multimeter to measure the resistance from the COM (common) wire to each zone port or zone wire. A typical sprinkler solenoid has a resistance of 20~50 ohm. If the resistance is too small, that indicates a shorting. If the resistance is too high, that indicates an open-circuit (i.e. wires not connected reliably or at all).


WiFi connection issues

If your controller has trouble connecting to WiFi, here are some steps to follow in order to troubleshoot. To begin, you need to know what's your controller's hardware version. Depending on the hardware version:

  • If you have OpenSprinkler 2.3: it does NOT have built-in WiFi, so likely you are using a WiFi adapter to provide WiFi capability. If you have recently changed your WiFi router, or changed its SSID and/or password, you need to follow the WiFi adapter's user manual to have to log onto your WiFi router again. This usually involves performing a factory reset on the WiFi adapter. If this doesn't help, we suggest that you bring your OpenSprinkler 2.3 to your main WiFi router and use a wired Ethernet cable to directly connect it to your router, and test the connection. This way we can decouple issues with OpenSprinkler itself from issues with the WiFi adapter.

  • If you have OpenSprinkler 3.0: the first thing to check is whether your controller is still in Access Point (AP) mode or it's in WiFi station mode. It's very easy to tell them apart: in AP mode, you will see that the LCD screen shows 4 lines: the first line shows the SSID of the OpenSprinkler AP (it looks like OS_ followed by 6 letters); also it has a rapidly blinking dot on the LCD screen. If your controller is in AP mode, that means you have not configured it to log onto your WiFi router. Just follow the user manual -- WiFi setup steps -- to configure it to log onto your WiFi.

    If you have recently changed your WiFi router, or changed its SSID and/or password, you will need to reset OpenSprinkler to AP mode so that you can configure it again to log on to your WiFi network. This can be done by either performing a factory reset (instructions are below), or assuming your controller runs a fairly recent version of firmware, you can reset it to AP mode by pressing B3+B2 (in the same way as you press Ctrl+C on a keyboard, specifically, press and hold B3 then while holding it, within a second or two, click B2). Follow LCD screen to confirm the selection.

    If the above doesn't help, you should submit a support ticket. There have been cases where the WiFi chip isn't fully compatible with certain WiFi routers, causing intermittent connection issues. If this is the case, then perhaps the best option is to change the WiFi router.

  • If you have OpenSprinkler Pi: because WiFi is managed by your RPi and not by OSPi, generally you should direct your questions to RPi forums and see how to resolve WiFi connection issues. One situation where it may have to do with OSPi is: OSPi is only designed to output 500mA current to RPi. If your RPi (particularly if you are using RPi 3 or 4 or above) draws a significant amount of current, it's possible that the current draw exceeds what OSPi can provide, causing WiFi issues. One work-around is to additionally plug in a microUSB cable connected to a USB power adapter, to provide additional power to RPi -- this way 24VAC only needs to provide power to drive solenoids, while USB provides power to RPi. 



Wired Ethenret connection issues

If your controller has trouble connecting to wired Ethernet, here are some steps to follow in order to troubleshoot:

  1. Check the Ethernet connector (NOT the cable, but where the cable is plugged into): there are usually two LEDs at the bottom of the connector, one green, one orange. The green LED should be on constantly, and orange LED blinking occasionally. If this is not the case, you should make sure the cable is plugged in reliably, on both ends of the cable.
  2. Check your OpenSprinkler settings to see if you may have disabled DHCP (thus selected to use static IP). Setting static IP incorrectly can result in the controller losing connection. Generally we recommend you to keep the controller in DHCP mode, so it can obtain IP address automatically assigned by your router. If you need static IP, you can always use your router's DHCP reservation feature to reserve a fixed IP for your OpenSprinkler.
  3. If the problem is still not resolved, submit a support ticket.



I got a blank page when accessing the controller's homepage

This is likely due to corrupted data. We have a useful script for diagnosing this type of issues. Please check this forum post for how to use the script. In particular, you want to start with the Json All (ja) API and see if you can get any return data, and if the return data is valid Json. If you encounter a IP not reacheable / timeout issue, then the controller has lost connection to your router, you should check the IP address (clicking the first pushbutton on the controller to display the IP). If you receive return data but it reports INVALID Json error, then there is a corruption somewhere. It can be fixed by directly resetting that corrupted item, or the more straightforward approach is to perform a factory reset.


My controller's LCD went bad. How can I get it replaced?

If you purchased your OpenSprinkler within one year, it's covered under warranty and you can just submit a support ticket to receive a replacement LCD free of charge.


If your purchase is beyond one year, you can buy a replacement LCD on Aliexpress.com or Amazon.com. We use common, off-the-shelf LCD parts so it's easy to find replacements. For example, if you have OpenSprinkler 3.0, the replacement LCD is "I2C OLED 0.96" type. Search it on Aliexpress or Amazon, you can find plenty of options for only a few dollars. The pin ordering is GND VCC SCL SDA (the most common type). Do NOT use the VCC GND SCL SDA type as that's not compatible.



My OSPi (OpenSprinkler Pi) stopped working. How should I diagnose the problem?

The first step is to remove power, and also remove RPi from OSPi. Then, use a multimeter to measure the resistance between VIN and GND (red probe on VIN, black probe on GND, these pins are available at the top-right corner of the circuit board). The resistance may fluctuate but as it stablizes the value should be at least 4.5 Kohm (kilo-ohm). If the resistance is significantly below kilo-ohm, that means something on VIN line has shorted. You should submit a support ticket.


If resistance testing passes, the next step is to plug in 24VAC (the orange terminal block), and see if the LED on the circuit board lights up. Then, use multimeter to measure DC voltage between VIN and GND. It should be roughly 5V (no less than 4.7V and no more than 5.2V).


If the voltage testing also works, then most likely the issue is in your software setup. We recommend you to wipe out the SD card, and reinstall Raspbian, and also OpenSprinkler firmware, and try again.



Saving configurations

We recommend you to periodically save a copy of your current configurations, to make it easy to recover programs and settings in case you need to perform a factory reset, or allow us to replicate your settings and reproduce any software issues when you submit support tickets. To do so: at the controller's homepage, swipe left to right to open the left-side menu, then select 'Export Configurations' to a file. This will download your configurations to a .json file. 



Factory Reset

Before performing a factory reset, if you can still access the controller, we highly recommend you to follow the 'Saving configurations' step above to save a copy of your configurations, in order to easily recover your programs and settings after the reset.


For microcontroller-based OpenSprinkler (versions 1.x, 2.x, 3.x), you can perform a factory the following way:

  1. Power off the controller. Then power it on, and as soon as you see the OpenSprinkler logo or the word OpenSprinkler, press and hold the first pushbutton (B1) and continue holding it until the LCD shows "Factory Reset"?
  2. Click button B1 or B2 to make sure the answer is 'Yes'. Then, press and hold the third pushbutton (B3) until the controller reboots itself and completed resetting.

For OpenSprinkler Pi, you can perform a factory reset by going to the firmware folder (by default the folder is called OpenSprinkler-Firmware), and run

sudo rm done.dat

which deletes the file called done.dat. Then reboot your OSPi, or run:

sudo /etc/init.d/OpenSprinkler.sh restart

This will trigger a factory reset.


Timing issues

If you observe the controller displays incorrect time (either on the LCD or on the homepage), here is what you should do:

  1. The controller uses your location to automatically obtain your local time, assuming you have Internet connection. The first thing to check is to go to Settings, at the top, check 'Location', make sure it's set correctly. Also make sure the router that the controller is connected to has Internet connection.
  2. If Step 1 doesn't fix the issue, go to Settings -> Advanced, check whether 'NTP sync' checkmark is on -- if it's off, the controller will NOT automatically obtain network time, which could explain why the time is incorrect. Also check if NTP IP is correct: from firmware 2.1.9(4), the default NTP IP is 0.0.0.0, which is ok as this is used as a place holder to signal the firmware to use 'pool.ntp.org' as NTP server. If you want to customize the NTP server, you can modify the NTP IP but please make sure it's a valid NTP server, otherwise the controller will fail NTP sync.
  3. If you intend to use the controller WITHOUT Internet, or steps 1 and 2 don't fix the issue and you must set time manually, you can go to Setting -> Advanced, uncheck the 'NTP sync' checkmark, then at the top the Device Time will become editable. You can manually set time that way.

If you have OpenSprinkler Pi, only step 1 is relevant; steps 2 and 3 are irrelevant as NTP is managed by Raspberry Pi operating system and not by OpenSprinkler firmware.