OpenSprinkler firmware is unified and can compiled under both Arduino environment and any Linux-based system. The instructions on this page are for the Arduino-based OpenSprinkler (OS 2.3, 3.x) only.

If your controller is OpenSprinkler Pi (OSPi), please follow the OSPi firmware instructions to compile and run the firmware code. 


NOTE: instructions are provided for Linux only. If you use Windows or Mac, we strongly recommend you to install VirtualBox so you can run Linux. Compiling the firmware code requires technical skills. Instructions are provided as is, we will not be able to help you with compilation issues, nor can we help you with modifying the code.


Firmware Compilation Instructions for OpenSprinkler 3.x (ESP8266-based)

  1. Download or git clone OpenSprinkler Firmware Code.
  2. Install ESP8266 Core for Arduino. Specifically, in Linux, open terminal and run (the most recent core version at the time of this writing is 2.5.2):
    cd ~
    git clone https://github.com/esp8266/Arduino.git esp8266_2.5.2
    cd esp8266_2.5.2

    git checkout tags/2.5.2
    cd tools
    python get.py
  3. Install necessary libraries, including SSD1306, RCSwitch, pubsubclient, and UIPEthernet. Download and unzip or git clone these into ~/Arduino/libraries folder. Depending on whether you downloaded or git cloned them, you may have to change the folder names to match the directory names in the makefile below. For example, the capitalization of folder names may be different, and in Linux folder names are case sensitive.
  4. The easiest way to compile is to use the makefile provided in the firmware code folder:
    make -f make.lin32
    this makefile assumes the ESP8266 core and the additional libraries are in the path as described above. In case you installed esp8266 core into a different folder, or in case the library folder names don't match what's in the makefile, open make.lin32 and modify ESP_ROOT variable and/or library folder names accordingly. Similarly, if you installed the additional libraries in a different path, modify the makefile accordingly. The makefile will compile the program into your system's temporary folder, as a bin file (e.g. /tmp/mainArduino/mainArduino.bin).
  5. Now you can upload the firmware using the OTA firmware update instructions.
        

Firmware Compilation Instructions for OpenSprinkler 2.3 (ATmega1284p)

  1. Download Arduino Software (we have only tested version 1.8.5, but more recent versions should also work).
  2. Run Arduino, and install the following libraries and atmega1284 core:
    • Sketch->Include Libraries->Manage Libraries, search and install UIPEthernet, SdFat, and pubsubclient libraries.
    • Follow MightyCore instructions to install the atmega1284 core (basically, copy a link to the Additional Board Manager URLs, then install the board in Board Manager). We have only tested version 2.0.5 of mightycore.

  3. Download or git clone the OpenSprinkler Firmware Code.
  4. The easiest way to compile is to use the makefile provided in the firmware code folder:
    make -f make.os23
    if your mightcore version is not 2.0.5, modify the path in the make file accordingly. The program will be compiled into the build-1284 subfolder under the firmware code folder, as a .hex file.
  5. Now you can upload the firmware using the OS 2.3 firmware update instructions.