Skip to content

Releases: OpenSprinkler/OpenSprinkler-Firmware

2.2.0(3)

04 Nov 21:12
613efae
Compare
Choose a tag to compare

This is a minor revision. It adds support for OpenSprinkler hardware revision 3.3 that uses W5500 wired Ethernet module. The firmware supports both ENC28J60 and W5500 modules. It fixed a rain delay display issue on arm64, and it also adds the std=c++14 flag for the firmware to build correctly on most recent Raspbian.

2.2.0(2)

04 Jun 17:52
Compare
Choose a tag to compare

Fix a bug that causes master zone to turn on when off adjustment is negative. Add explicit platformio espressif version number to indicate using esp8266 arduino core 3.0.2

2.2.0(1)

30 Dec 16:13
Compare
Choose a tag to compare

IMPORTANT REMINDER: this is a major firmware revision. Update firmware from any previous version to this version will trigger a factory reset, including resetting Wifi settings. Before proceeding to update firmware, it's always a good idea to export your current configurations to a file so you can recover your programs and settings later. Also, for this firmware (2.2.0) we've made a new video tutorial (the third video on the page).

For OpenSprinkler 3.x only

Support for OpenThings Cloud (OTC) connection: this allows remote access without the need of setting up port forwarding.

Updated ESP8266 core library to version 3.0.2: the adoption of ESP8266 WiFi Core 3.0.2 and lwip as wired Ethernet library. This unified the handling of WiFi and wired Ethernet. Over the air (OTA) firmware update is now supported under either WiFi or wired Ethernet (previously it's only supported under WiFi).

For All of OpenSprinkler 2.3, 3.x and OpenSprinkler Pi (and Linux-based systems)

Support for Sequential Groups: this generalizes and replaces the previous per-zone sequential attribute. Zones in the same sequential group are automatically serialized, while zones in different groups can run simultaneously. Any zone in the parallel group can run simultaneously with any other zones.

Support for setting a date range for each program: each program can specify start and end dates. For example, you can set a program to run from May 15 to Sep 15 only, or from Nov 10 to Feb 20 the following year.

Support for pausing stations: you can pause station runs for a specified amount of time. During pausing, zones and programs will stop until the pause timer counts down to 0. The pause can be canceled (i.e. stations resumed) at any time.

Shift zones forward: when a zone is manually turned off, you can choose to shift the start times of all remaining zones in the same sequential group forward. This way, the next zone waiting to run can start immediately instead of waiting for its originally scheduled start time.

Negative master on adjustment and positive master off adjustment: this firmware also supports a negative master on adjustment time, as well as a positive master off adjustment time. Previously the master on adjustment must be positive, and off adjustment must be negative. The new feature allows a master zone to turn on before an associate zone turns on, or turn off after an associated zone has turned off.

Support for device name: a custom device name can be configured and included in all IFTTT notifications, to help distinguish between multiple OpenSprinkler devices.

Support for Monthly water adjustment: this firmware also added a new water adjustment method -- Monthly adjustment, which is similar to manual adjustment but allows you to set a different watering percentage value per month.

2.1.9(11)

09 Nov 15:12
Compare
Choose a tag to compare

This minor revision fixes the following issues:

  • Improve send_http_request function to accommodate larger incoming packet. Previously incoming packet larger than 512 bytes is not handled correctly, which may affect weather query result.
  • For OS 3.x using wired Ethernet and OS 2.3, replace EthernetENC library by UIPEthernet, which has more recent updates and fixes.
  • For OSPi, replace wiringPi (now deprecated) by raspi-gpio (available on the latest Raspbian). This is used to enable internal pull-ups on sensor pins.

2.1.9(9)

22 Aug 14:20
2b293a1
Compare
Choose a tag to compare

IMPORTANT REMINDER: firmware update across major revisions (e.g. from 2.1.8(x) to 2.1.9(x)) will trigger a factory reset, including resetting Wifi settings. However, firmware update across minor revisions (e.g. from 2.1.9(x) to 2.1.9(x)) does not trigger a factory reset. Before proceeding to update firmware, it's always a good idea to export your configurations to a file so you can recover your programs and settings later.

Main changes:

  • Support for OpenSprinkler Latch 3.2

  • Changed wired Ethernet to use the new EthernetENC library (https://github.com/jandrassy/EthernetENC), replacing the previous UIPEthernet library. EthernetENC library has a few major bug fixes, which hopefully improves the wired Ethernet functions.

  • Improves NTC sync by using multiple NTP servers and cycle through them if one is not available. Also improves handling of RTC in case RTC doesn't exist or doesn't work.

  • Improves factory reset function for OS 3.0, forcing flash reformat in the case of flash corruption.

  • Allows program's interval day to be as small as 1 (previously the minimum is 2).

  • Support for using a program to trigger controller reboot on a regular basis. A program with name :>reboot will trigger a reboot when the controller is idle (i.e. no program is running). A program with name :>reboot_now will trigger a reboot regardless of its running status. Both reboot will be delayed by 1 minute or so from the start time to avoid the action triggered again right after rebooting. As an example: create a program that starts every day at 2:00am with name :>reboot will trigger a reboot every day at 2am. When creating the program, at least one zone must be selected to run but it will be ignored because the firmware recognizes the special program name and does not actually run any zone included in this program.

2.1.8

23 Jul 02:37
a15e5e1
Compare
Choose a tag to compare

IMPORTANT REMINDER: firmware update will trigger a factory reset. Before proceeding to update firmware, please export your configurations to a file so you can recover your programs and settings later. In addition, for OS 3.0, the WiFi settings will be erased too, so after firmware update, please follow the OS 3.0 Getting Started Guide to repeat the WiFi settings steps.

NOTE: This firmware only affects OS 3.0 (and OSPi whereas specified below). It does NOT affect OS 2.x controllers. OSPi users should ONLY update if you need larger number of expanded zones or programs; otherwise we recommend you NOT to upgrade.

Main changes:

  • Compiled OS 3.0 firmware with ESP8266 Arduino Core 2.4.1, 4M3M flash profile (increasing capacity for logging file to 3M from the original 1M), 160MHz CPU frequency and 80MHz flash frequency (both doubling the previous firmware).

  • Added support for OS 3.0 hardware revision 1 and expander revision 1. Hardware revision 1 uses white injection molded enclosure, and circuit-wise primarily involves changing IO expander chip to PCA9555 (from PCF8575 previously), as PCA9555 has higher current sourcing ability, eliminating the need of PNP transistor per zone. Revision 1 expander requires firmware support, which is addressed by this firmware.

  • Added support for OS 3.0 AP mode operations -- all firmware features are now supported under AP mode, without requiring external WiFi router.

  • For OS 3.0 and OSPi, increased maximum number of zones to 72 (from 56 previously), and maximum number of programs to 35 (from 17 previously).

Minor changes and bug fixes:

  • Improved WiFi setup process: once it's connected to WiFi router, it automatically saves the configurations and reboots (previously it had to wait to report to UI).

  • Added suport to reset OS 3.0 to AP mode while preserving programs and settings: either by using buttons (B3+B2), or through HTTP API.

  • Bug fix: buffer overflow issue in view logs.

2.1.7

07 Nov 07:31
Compare
Choose a tag to compare

Main changes:

  • Program water time now supports full precision down to seconds, from 0 to 64800 (18 hours). Previous firmware uses a compression method to nonlinearly scale the water time, that limitation has been removed in this version.
  • To make space for the increased program data, the maximum number of programs has been reduced to 17 for OS 2.3 and all Linux-based OpenSprinkler (e.g. OSPi), and to 8 for OS 2.0, 2.1 and 2.2. Users with a large number of programs should take this into account when deciding to upgrade firmware.
  • Added push notification support using IFTTT. Please check firmware 2.1.7 user manual and support articles at www.opensprinkler.com for details. This feature is only available for OS 2.3 and Linux-based OpenSprinkler.
  • Added support for GPIO station and HTTP station for OS 2.3 (this has been previously available only for OSPi).
  • Added an additional type of sensor: Program Switch. This allows connecting a switch / button to the sensor port and use it to trigger Program 1.
  • Added HTTP GET API to start a specific program (see 2.1.7 API document for details).

Minor changes and bug fixes:

  • Integrated Robert Hillman's implementation of flow sensor to log flow rate after each station run.
  • Added support for custom DNS (available when DHCP is turned off).
  • Added new option to enable/disable special station auto-refresh.
  • The range of station delay time is now -600 to 600 seconds (in steps of 5 seconds).
  • The range of master-on adjusted time is now 0 to 600 seconds (in steps of 5 seconds).
  • The range of master-off adjusted time is now -600 to 0 seconds (in steps of 5 seconds). Because the scheduler does not allow a positive master-off adjustment, this parameter can only be negative or 0.
  • Enables LCD backlight to stay on (by setting a non-zero idle brightness).
  • Allows weather checking when program is running.
  • Made the firmware code compilable with Arduino 1.6.9.

2.1.6

15 Sep 22:34
Compare
Choose a tag to compare

Major changes:

  • Improved run-time scheduling algorithm.
  • Added support to allow program's repeating start times to go over to the next day.
  • Added flow sensor support. NOTE: only dry contact flow sensors (two wires) are supported.
    • Details: to use a flow sensor, wire it up to the rain sensor port, and in Edit Options -> Weather and Sensors, select the sensor type to 'Flow'. Then specify the flow pulse rate (i.e. volume per click). Once flow sensor is enabled, the UI/app will display real-time flow rate, and the flow count will be logged at the end of each program run. The LCD will display a FL icon.
  • Added support for 'remote stations'.
    • Details: this allows a master controller to send commands to remote controllers to turn on their valves. Each remote station is specified by the IP, port number, and station index on the remote controller. The master controller and remote controllers must have the same password. Remote controller should be set in 'remote extension' mode (the UI/app will automatically prompt you to enable this mode when adding a remote station).
  • Fine tuned RF station signal timing, and improved its support on OSPi/OSBo.
  • Remote and RF stations are now part of 'Special Station Data' attributes, which are stored onto the microSD card.
  • Support for longer names, more stations and programs on OpenSprinkler 2.3, OSPi and OSBo.
  • Maximum number of stations: 56 (previously 48)
  • Maximum station name length: 24 (previously 16)
  • Maximum program name length: 20 (previously 12)
  • Maximum number of programs: 28 (previously 14)
  • For OpenSprinkler 2.0/2.1/2.2, these numbers remain the same as previously.
    • Added support to change weather script url in /su page.
    • Added support for /ja, which outputs the combined JSON data of /jc, /jn, /jp, /js, /jo.
    • Fixed negative duration time in some log records.

OSPi/OSBo/Linux:

  • Added support for auto-update, which allows updating the firmware through the UI/app.
  • Added support to store all data files in the executable program's path

Special Notes for OpenSprinkler 2.1:

  • For OpenSprinkler 2.1, this firmware can no longer be uploaded through the USB port, due to the size of the bootloader. To upload this firmware to OpenSprinkler 2.1, you will have to use an external programmer (e.g. USBasp, USBtiny).

2.1.5

07 Jun 23:10
Compare
Choose a tag to compare

Bug fixing:

  • Fixed a major DHCP bug that causes repeated dhcp requests when leaseTime is infinity.
  • Fixed a bug that causes the controller to get stuck in 'Connecting...' when the last successful weather call expires.
  • Fixed a bug that causes master station to not run when rain sensing or rain delay is in effect.

New features:

  • Added support for changing parameter weights in the Zimmerman algorithm (requires microSD card and app 1.4.4)
  • Added support for DC powered OpenSprinkler (with built-in boost converter)
  • Added support for I2C LCD (to be used with future OpenSprinkler hardware)
  • Added firmware minor version number
  • Added support to display hardware version and type on start-up

2.1.4

04 May 16:45
Compare
Choose a tag to compare

Major changes:

  • Support for California Watering Restriction.
  • Support to use sunrise-to-sunset time, or sunset-to-sunrise time as the watering time/duration.
  • Support for two independent master stations and any station can be defined as a master station.
  • Support to skip a station if the resulting water time is too short.
  • Fixed a bug that causes the controller to stop responding when there are a large number of stations with long names.
  • No longer requires manual password hashing when using /su page to change script location.

OS specific changes:

  • Fixed a bug that causes the LCD to display wrong day of the week.
  • Support to re-initialize Ethernet controller if the last received weather call is more than 12 hours ago.
  • Support to display external ip and last received weather call to LCD display.

OSPi/OSBo/Linux specific changes:

  • Switched to use Zimmerman's wrapper classes for sockets. This improves the robustness of the Ethernet server and fixes the server crashing issue.
  • Added support to automatically detect RPi rev. 1 (the oldest RPi) and use the correct GPIO pin number (for backward compatibility).
  • Improved build script. The build script now compiles the firmware and also sets the firmware to auto-start upon booting.
  • Added sync() before reboot to prevent file system corruption.