Git Product home page Git Product logo

hunter-xcore-firmware's Introduction

Alternative firmware for Hunter X-Core controller

This firmware is intended to be used in Hunter X-Core irrigation controllers that are using PIC18F86K90 as main MCU. As far I know at least unit revisions 2.10 and 3.11 are using this chip. The first revision is using Samsung MCU based on Zilog architecture, but as is their custom, it's completely proprietary. On the contrary the PIC microcontrollers are pretty well documented by Microchip, many thanks to them for it.

Build

The project can be built in Microchip MPLAB X IDE.

Before the build, it's critical to configure correct unit revision by setting 2 or 3 in XCORE_VERSION macro in types.h file. It's important because Hunter changes the way how station triacs are driven - in revision 2 they are driven directly by MCU, but in revision 3 they are driven in opposite logic by additional transistors. If you choose wrong revision, after you power the unit up, all connected valves will be opened at the same time, so there is a risc of overloading the transformer. Also overcurrent protection is configured according the selected revision because of different power supply voltages. Check the revision on PCB, even better check PCB layout.

Install

After the build, firmware can be uploaded into MCU via ICSP - all signals and power rail is accessible on PCB either on edge connector or pads that are accessible even from outside (they're located under the front sticker with X-CORE logo on it). Use the Pickit, bitbang it or if you have built the remote access module, you can upload firmware directly via remote interface.

Remote access

The remote access module with ESP8266 can't be powered from the unit directly, because logic voltage regulation in X-Core unit is horribly inefficient. After the rectification from AC it's regulated down to 24V using zener diodes, then to negative -3.3 or -5V (depends on unit's revision) using linear voltage regulation wasting watts of energy in heat, just to power MCU that consumes mostly around 1mA. Powering ESP8266 which can consume 400mA at peak is simply impossible.

Because of that I choose the option to power the remote module from AC input, regulate to 3.3V with efficient switching regulator and connect to the unit via optocouplers. To communicate with MCU I use existing ICSP headers, this way I can do direct OTA updates of MCU firmware.

Firmware of remote module serves simple web-page that allows the user to start selected program, stations and adjust seasonal settings. It also allows update the current time of unit's RTC clock, which is also performed automatically at boot.

hunter-xcore-firmware's People

Contributors

gashtaan avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

hunter-xcore-firmware's Issues

Why a new firmware?

Hi @gashtaan,

Via your posts on the github repos of @ecodina and @anubisg1, I saw your github project on a alternative firmware.
Unfortunately, there is not much information in the readme about the why, how, what, ... :-)

Can you explain more about the why of your project?

My reason for the information quest is an integration with Home Assistant.
In Home Assistant you have access to rain forecasts that you can use in automations.
The Hunter-X controller has a rain sensor, but that doesn't stop it from spraying the dry day before while it's raining the next day.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.