Have been working at the Firmware for the past week or so. Seem to be making progress, but of course nothing can be tested until we can get to our Mail Drop at the end of December and pick up the parts and PCB.
But in pulling together the software I have found one design error: I need to swap the VBat+ and VBat- designated sensor wires. Currently the INA220 which measures AMPS is designated VBat-, while the VBAT+ goes to the EGT INA220. This totally defeats the internal ability to calculate Power (Watts). Simply swapping those two connections fixes this issue.
So the batch of PCBs will need to be marked up swapping VBat+ and VBat- connectors.
I have to date ported the LCD library over to the new I2C fault resistant driver, and it seems to be working well. In a test run I was able to freeze the Arduino system by grounding the SDL line (Serial Data) using the default "wire" library while when using the I2C lib the system will continue to loop and once the induced fault (grounding the SDL) is removed things pick back up. Very nice!
For reference, here is the update lib: http://dsscircuits.com/articles/arduino-i2c-master-library.html
And you need to make sure to add: I2c.timeOut(TimeoutMS); to the startup section. This will enable the fault / restart capabilities of the new lib. By default those are turned off, and the I2C lib will hang up the system during the induced fault, just like the default Wire lib!
Once I make a bit more progress on the software, will get a draft posted. Along with the modified LCD lib.