Interested hackers, find attached a new Arduino EEPROM .ino file. This one recalculates all the checksums (there are quite a few) in the various data areas of the EEPROM. I have worked out how to calibrate the speedo...
But that damn tacho, nothing yet, even with the unit now not complaining about any edits I do.
Things I've noticed:
Speedo needle not moving (and digital readout of 0) is because the checksum doesn't match the calibration data.
Lights in the digital readout not working, you may have a corruption in areas between 0x19A to 0x1DB (checksum didn't match).
Speedo calibration table values are 1/2 the KMs actual value. EG: 0x0014 (20) really means decimal 40. 0x82 (130) really means 260 (max speed).
There's a +1 difference in one table vs another, that makes a +2 difference in KMs speed - but I've played around a bit and set them to be the same (except for that 320KMs image I posted, where I went wild) like what you get in Police mode. Seems to be working well.
The FG2 and FGX differs at around 140 KMs (and you can see the fascia's are slightly different at 140).