Firmware v1.61 Patch around MPLAB mktime() Bug
This release patches around a defect in the MPLAB C30 mktime() sub-routine.
mktime() is supposed to take the current date, and translate it to an epoch timestamp. Unfortunately, there is a bug in the MPLAB C30 gcc compiler that appeared when time changed from 12/31/2020 23:59:59 --> 01/01/2021 00:00:00, causing mktime() to return -1 (error), instead of the actual timestamp.
In our application, that means that every time you power up a VOTER/RTCM and it get's lock, the date always starts counting at January 1, 1970 (epoch 0). That also means that you can never get the time to be the same on any device, and therefore they will drop out of being voted (due to time mismatch with the host). They will still connect to the host, just never be voted.
The accepted fix was a patch supplied by David Maciorowski, WA1JHK. David's fix is to take the known number of epoch seconds up to 01/01/2021 00:00:00, and add the offset to current time, as supplied by the GPS. Since we aren't doing any date/time math, and don't care about anything but the time now, this works just fine.
This patch breaks Debug Level 128 in the VOTER/RTCM, which will likely be removed in a future release (it generally isn't required anyways).
Note this release is being created solely to track binaries already in the repository for historical purposes. Do not rely on commit history for changes. Building from source is not recommended.