When is the 12V too low for the Hairball?
Q: At what voltage do the 1223 and 1224 errors get triggered.
A: 1223 and 1224 errors relate to the 14V supply to the Hairball dropping too low for the Hairball to insure safe operation. 1223 is just a warning that you are getting low (if your check engine light lights when you hit the brake lights, check your DC-DC pretty soon!). When a 1224 error happens it indicates that the controller actually was shut down due to too little voltage on the 14V supply.
1223 // SLI battery below warning threshold. This should happen at about 10V
1224 // SLI battery too low and caused shut down of controller. This happens at about 9V.
If you are looking at the DAQ, these voltages should show up at about .0625V per bit.
At this time there is a known issue with Hairballs running code versions prior to 2.12 potentially corrupting their own settings if the 12V supply falls too rapidly while the key is on. The only time we’ve seen this is on cars with loose connections or those not running a 12V backup battery in addition to the DC to DC converter. This happens when the Hairball is in the middle of saving a low voltage error when the power fails completely. If you suspect this may have happened to yours then the repair is to reset the “Defaults” in the “Special” menu and then go back and reset the settings to those of your choosing.
-Otmar
2 Responses to “When is the 12V too low for the Hairball?”
I’ve seen similar EEPROM corruption issues on 8051 based processors. As the supply voltage dropped, the processor would start skipping “return from subroutine” instructions. It then walked through ALL of its code, eventually reaching the EEPROM write routines, which would *sometimes* write garbage data to random EEPROM locations. Moving the EEPROM subroutines to the beginning of the processor’s code space helped a lot, but only a proper reset circuit cured the problem.
Our problem was a bit different, it just takes so long to write the EEPROM that it would not complete writing the low voltage error code before the processor reset. I have since written new code in version 2.12 that avoids this issue with all data saved in two places.