Fixed the Screen Edit bug. Changed the guinosig byte to be different from the previous guinosig and guinosigold bytes. Stored a 24-bit signature value at the beginning of EEPROM, that will be different for any combination of bells 'n' whistles in the 1.86tav code. Reworked the display value calculation routine to not recursively call itself for "remaining" items (remaining time, remaining distance). Split out idle/EOC tracking data into their own separate Trip elements. Added automatic trip save for activity timeout, and added separate stored settings to enable normal trip auto-save and idle/EOC trip auto-save data. Added a really simple general EEPROM data viewer. Increased the number of stored trip slots from 6 to 10.
Slot 0: Auto-saved Tank (if selected)
Slot 1: Auto-saved Tank Idle/EOC (if selected)
Slot 2: Auto-saved Current (if selected)
Slot 3: Auto-saved Current Idle/EOC (if selected)
Slot 4: Available
Slot 5: Available
Slot 6: Available
Slot 7: Available
Slot 8: Available
Slot 9: Available
If auto-save is not enabled, or if the code is compiled to not include idle/EOC tracking, then the affected slots become just ordinary trip storage slots. Oh, yah - idle/EOC tracking and datalogging are now configurable bells 'n' whistles, too.
These code changes ought to make it a lot simpler to add my proposed A-B-A analyzer, as well as that other really neat feature that a few others here have coded in - A graphical display of MPG per speed range.
The table below summarizes the current performance specs.
. | Code size | RAM usage | CPU utilization |
Original 0.86 | 17178 | 1195 | 45.58% |
Bare | 12232 | 1552 | 2.32% |
Configured as 0.86 | 12508 | 1376 | 11.75% |
Everything except MAP Correction | 17470 | 1160 | 4.21% |
Everything | 18928 | 1080 | 4.21% |
This is the current list of bells 'n' whistles:
Code:
#define trackIdleEOCdata true // Ability to track engine idling and EOC modes
#define useDataLogging true // Ability to output 5 basic parameters to a data logger or SD card
#define useBufferedSerial true // Speed up data logger
#define useCalculatedFuelFactor true // Ability to calculate that pesky us/gal (or L) factor from easily available published fuel injector data
#define useBufferedLCD true // Speed up LCD output (probably going to go away)
#define useWindowFilter true // Smooths out "jumpy" instant FE figures that are caused by modern OBDII engine computers
#define useClock true // System clock, and means to set it
#define useSavedTrips true // Ability to save current or tank trips to any one of 10 different trip slots in EEPROM
#define useScreenEditor true // Ability to change any of 8 existing trip data screens, with 4 configurable figures on each screen
#define useBarGraph true // Ability to display Prius-like Fuel Economy bar graph
#define useSpiffyBigChars true
#define useChryslerMAPCorrection true // Ability to perform on-the-fly fuel injector data correction for late-model Chrysler vehicles
#define useEEPROMviewer true // Ability to directly examine EEPROM