Lately, I’ve been trying to combine a bunch of functions onto one single Raspberry PI somewhat making it the hub of my house for multiple things and I ran into an issue with AD2PI (Alarm Decoder with on RPI). After some painful debugging sessions, I managed to figure out that the issue stems from the fact that OpenSprinklerGen2 toys with GPIOs that I was relying on but not using for OSPI. To be more specific, my alarm decoder required the serial pins and OSPI initializes these in case there are any RF stations. While digging into the code, I found that a bunch of other unwanted configurations were also being done and affecting the other app.
I changed the code myself so that it wouldn’t touch a few pins if nothing was expected to use them (at boot time). List:
I modified the code to guard the initialization against any GPIO configuration related to that. It’s not production code since one would probably want to make sure that a change in the app would either force to restart the daemon or apply it live and I out-right disabled RF since I didn’t want to bother scanning the list of stations to see if any of them were using it, but this seems like a pretty small change that we should make to the code to help it be conservative about which GPIO it pokes at & also allow other apps to inter-operate with OSPI.