I recently updated one of my photon devices to 1.2.1 and noticed that an interrupt that reacted based on change of a button click gives an SOS now. I was wondering if there was any change between 1.1.1 and 1.2.1 that might’ve caused this to start happening? I tried looking at the chagelog but other than some mentions of ISR, I’m not too sure I’ll find anything there. They’re a bit too technical for me unfortunately and I dont understand the majority of what they mean.
Might be related to this i think https://github.com/particle-iot/device-os/pull/1761
The SOS code is a heap error (14 blinks).
Yup, that's the cause and (also impacts some libraries - see last "comment" in the PR comment thread)
Maybe if you post your code (or at least the ISR) we might see which instruction may be triggering the issue.
Thanks for directing me in the right direction. I took out a digitalwrite that was happening in the interrupt. I’m guessing thats not the best practice.
digitalWrite() should not be a problem inside an ISR.
However, when speed plays a role (and using interrupts for pin control usually means that) then you could use digitalWriteFast() or even pinSetFast() and pinResetFast() to save some time.