During all the work surrounding #72, it was discovered that the TCA8418 keypad IC sometimes comes up in a weird state. This usually happens if the device is turned off and on in quick succession, and results in the IC returning results that confuse the bootloader logic. The impact is a ~10s startup delay.
While there are many possible causes of the behavior, there is one simple fix that should lead to a more robust system. That fix is to give the MCU control over the TCA8418's reset signal, so it can explicitly reset the controller on bootloader and firmware startup. This way the keypad IC will always be in a clean and known state before being initialized, hopefully mitigating all sorts of possible startup issues.
The plan is to bodge this into the Rev E hardware, then implement it directly into the Rev F hardware.
During all the work surrounding #72, it was discovered that the TCA8418 keypad IC sometimes comes up in a weird state. This usually happens if the device is turned off and on in quick succession, and results in the IC returning results that confuse the bootloader logic. The impact is a ~10s startup delay.
While there are many possible causes of the behavior, there is one simple fix that should lead to a more robust system. That fix is to give the MCU control over the TCA8418's reset signal, so it can explicitly reset the controller on bootloader and firmware startup. This way the keypad IC will always be in a clean and known state before being initialized, hopefully mitigating all sorts of possible startup issues.
The plan is to bodge this into the Rev E hardware, then implement it directly into the Rev F hardware.