OpenSprinkler Forums OpenSprinkler Unified Firmware ESP8266 Use native GPIOs Reply To: ESP8266 Use native GPIOs

#72025

Chassy33
Participant

Ray,

I got it to work! I set the address to 0x21 (A0=0, A1=0, A2=1) which would be the AC Driver board, but if I only connect that single board to the ESP-8266, it sees it as the expansion board and utilizes its GPIOs for zones 9-24. this is perfectly fine with me as I just need to drive 8 zones and 1 master. But it just seemed like I would have to set the address to 0x24 for it to think it was an expansion. Regardless It is now working.

I was able to modify the firmware and reverse the OUTPUT state to make them all HIGH on the expansion board. Below is what I changed for anyone else that faces this issue:
https://github.com/OpenSprinkler/OpenSprinkler-Firmware/blob/3c388712494393498b9fbdb2fa2725dc189f0a32/OpenSprinkler.cpp#L1129

for(int i=0;i<MAX_EXT_BOARDS/2;i++) {
uint16_t data = station_bits[i*2+2];
data = (data<<8) + station_bits[i*2+1];
if(expanders[i]->type==IOEXP_TYPE_9555) {
expanders[i]->i2c_write(NXP_OUTPUT_REG, data);
} else {
expanders[i]->i2c_write(NXP_OUTPUT_REG, ~data);
}
}

I edited the line “expanders[i]->i2c_write(NXP_OUTPUT_REG, data);” and reversed the “data” so it is now “expanders[i]->i2c_write(NXP_OUTPUT_REG, ~data);”

Thanks for you help!