I've tested V12 this morning and IMA boost seems to work well. Makes it quite a bit more lively. I shall leave it installed in my Lithium car.
One minor issue after flashing
I could not cancel Autocancel until I was driving along at > 10mph, but once it was off it was fine. Not sure if that is my second counting going wibble or a little bug/logic error. Anyway everything else worked fine so I won't investigate that until the next version.
Now looking at the display code
The text data for the various screens will be stored in 255 bytes of EEprom we have available. This saves code space for the actual program.
In the old 16x2 serial lcd BCM gauge the eeprom was written like this.
The first two or four
bytes in each row are lcd control codes, the rest is ascii text.
We will have something similiar to the below for our 20x4 display.
Load EEPROM with text Data screens and menu options (255 bytes)
'124,157,254,128,"BCM Gauge V3.03"
I'm sure you get the idea.
The program will write the flag status for all the options to the eeprom and a background subroutine just transfers one byte from the eeprom per loop of the program to the lcd. The software will be able to write 30 characters a second to the screen. We may be able to just write the changed bytes to the screen with some cunning code for a quicker refresh rate. The EEprom has a million write lifecyles minimum so I doubt you are going to change the various options that often!
Now just need to decide on the text. I would like 8 options on the display, 2 per row like the OBDIIC&C gauge so that gives 9 characters per option plus a couple of spaces in the middle. I'm happy to see some ideas for the text layout or description.
e.g. Something Like this for option selection.
Ast Dis 1 Reg Dis 1
Ast Pro 1 Reg Pro 1
Ast Bos 1 Reg Bos 1
AutoCan 1 C&C Act 1
It would take 2.4 seconds to draw the screen at first turn on then updates would happen in the background without you noticing.
I'm going to try and run the lcd by piggybacking it on the Up button connection on the pcb so the led still operates as now.
We shall see how it goes. I can detect when the button is being pressed and simply pause the display output until it is released.
The lcd can be optionable