Ok, this is now implemented.
On startup, it reads the EEPROM contents into factory_config_t struct (which should be the same across projects).
I've removed reading of LTC & GPS - I only need the PPS coming from the GPS.

When the GPS's PPS comes in, I take the hardware cycle count (@168MHz) and compare them to what the previous' PPS was at. This difference is then averaged and written to the config. It is then used to create a 32bit timer with very fine compensation.

This project is now a relocated project - it's located 128kB in, so it can be flashed using the bootloader just like a usual KuroBox. This allows us to re-calibrate things on the field.

Next up is to write a menu system to be able to automate this.