December 2016

S M T W T F S
    123
45678910
11121314151617
18192021222324
252627282930 31

Style Credit

Expand Cut Tags

No cut tags
Thursday, January 15th, 2015 06:56 am
I did not post any updates for some time, but I made good progress on the project.

First of all - the controller code now supports multiple stations! Primary use of this capability is to support remote stations (connected via Xbee RF links), but it also supports multiple types channels connected directly to the controller - Parallel, Serial (OpenSprinkler-style etc). All types of interfaces (parallel, serial, RF-connected) can be used simultaneously, in the controller UI they show up as multiple stations.

To support this facility I had to add the notion of Station, list of stations, mapping of Zones to specific stations/channels etc. Also this required lifting restrictions on the number of zones (original sprinklers_pi code supports only 15 zones), as one of the goals of the multi-station support was to handle larger installations.

Remote stations also allow connecting sensors (e.g. temperature, humidity etc), just like the Master controller.

System topology and configuration is stored in EEPROM, but is bootstrapped from an INI file. I.e. now there is an INI file (device.ini) that defines the configuration - types and number of channels connected, pin assignments, types and number of remote stations etc, and on EEPROM reset this configuration is imported into the system. This is a lot better than hardcoded pin assignments of the original sprinklers_pi.

The master controller is still running on Arduino Mega, but I'm planning to move it to HP Stream 7 as the controller. Arduino system resources are really too limited, and this is becoming a problem. (I'm planning to use HP Stream 7 instead of Raspberry Pi because Stream 7 includes 7" touch screen and built-in WiFi, cost-wise it is a lot better, and much better hardware specs than RPi).

Currently on Arduino Mega the Master controller is limited to 64 Zones, and 16 Stations. Number of sensors is not limited, but practically I'm assuming it is within a dozen or so.

This was quite a lot of work, and required re-writing core parts of the sprinklers_pi code. Remote station actually does not use any sprinklers_pi code at all, the Master controller still uses WEB server and few other parts from sprinklers_pi. But when moving to HP Stream 7 I might re-write it as well, because I can take advantage of the core WEB server provided by the platform. But there is also some benefit in having stand-alone, portable code. I have not decided on it yet.