The GPS system has few flaws. The week rollover is one of them. From the Trimble Thunderbolt manual:
This field represents the current GPS week number. GPS week number 0
started on January 6, 1980. Unfortunately, the GPS system has allotted only 10-bits of
information to carry the GPS week number and therefore it rolls-over to 0 in just 1024
weeks (19.6 years,) and there is no mechanism built into GPS to tell the user to which
1024 week epoch the week number refers. The first week number roll-over will occur as
August 21, 1999 (GPS) transitions to August 22, 1999 (GPS). The ThunderBolt adjusts for
this week rollover by adding 1024 to any week number reported by GPS which is less that
week number 936 which began on December 14, 1997. With this technique, the
ThunderBolt will provide an accurate translation of GPS week number and TOW to time
and date until July 30, 2017.
There is no fool proof way to automatically correct the wrongful information, unless you have another independent source of accurate timing. Since that is usually not the case for a small system like the TB Monitor kit, we have to come up with a manual patch.
The TB Monitor firmware version 4.0.0 and up will be upgraded by providing a new menu entry allowing you to select the epoch number applied to correct the date coming from the Thunderbolt. By default, this correction will only apply to the time displayed on the LCD display. If you are using the WiFi option, the data stream from the Thunderbolt will be unaffected. The reason being that the GPS data stream coming from the Thunderbolt simply has no provision for the extra epoch information. The majority of the GPS satellites currently in orbit do not send that information either. The good news is that any software that will use the WiFi data (like Lady Heather), most likely will already have a correction routine since this software has access to the current approximate date/time through the computer's operating system.
After the rollover of July 30, 2017, you will have to flash the new firmware in your kit and use the menu to select the appropriate epoch. Detailled instructions will be available here.
Firmware versions 1.3.1 and earlier (those that apply to the older form factor kit) can also be upgraded but the v1.4.0 firmware upgrade for those kits does not offer the new menu options, simply a fixed "1 epoch" correction factor which will carry you another 19.6 years after which you will be back to square one.
New firmware versions ares available. Information about how to upgrade your kit is available below.
For those who are planning or considering (or just curious) to upgrade the firmware themselves, I recommend buying a Silabs compatible debug adapter like the U-EC6 available on eBay:
If that link no longer works, search eBay for "U-EC6 adapter".
Note that the adapter costs about as much as one way shipping for the kit in the continental US, or half your cost if you are planning to return the kit to me for firmware upgrade.
This adapter has an internal jumper than can be set to output 3.3V or 5V, or no output with the jumper removed. I recommend the latter as it minimizes the risk of supplying the wrong voltage. In that case, you will have to apply normal power to the kit while programming (the kit's microprocessor operates from 5V.)
The adapter works with the Silabs Production Programmer software, available on the Silabs web site. You need to register and the current version is a large download. Alternately, I can provide you with a copy of the previous version of the Production Programmer software with the firmware. It is a much smaller and simpler package.
The EC6 Programming adapter has a 10 pin cable while the latest TBMonitor kits have a 4 pin header for programming, so a simple Adapter Board is needed.
You can easily build one yourself but I have made a small PWB that you can buy from OSHPark.com using the following link:
In addition to this PWB, you also need a 2x5, 0.1" pin header (to plug into the EC6 cable) and a 1x4, 0.1" socket header (to plug into the kit's J3 header) of the type used with the Arduino, Raspberry Pi and other projects.
Here is the style of female socket you need:
and here is the style of male pin nheader you need:
Here is the programming adapter assembled:
Make sure the headers are installed on the correct side. Refer to the silkscreen. The markings J1 and J3 are on the respective side of the plastic header. For J1, pin 1 corresponds to the red wire on the EC6 Adapter and pin 1 on J3 is ground, on the right side of J3 on the kit board, near the mounting screw.
The older kits (those with firmware version 1.3.1 and earlier) do not need the Adapter Board, only the EC6 programming adapter. When upgrading one of these older kits, the 10 pin cable from the EC6 adapter plugs directly into J3. The red wire will be to the left.
To obtain the hex file ready to be programmed, send me an email preferably using the email you used to originally purchase the kit (that would be your Paypal email). Make sure to indicate which firmware version you currently have.
The programming Procedure is available here (procedure refers to firmware 4.2.0 but is usable with other versions):
Please note that your settings will revert to default after the firmware update. Also note that changing the Time Zone setting has no effect unless Local Time is selected.
See below for current status.
You will need to send me the kit and pay for return shipping. I have been using the USPS Priority Mail 2-Day™ Small Flat Rate Box and I suggest you do the same. The cost is $7.15 + insurance so I would expect a payment of $10 via Paypal to firstname.lastname@example.org for return shipping.
I will send you the address where to ship the kits via return email.
Check back here for details when it's ready.
The firmware is complete and the manual has been updated. I have shipped the orders I have pending therefore when you read this I will be ready to accept returns for upgrade.
For those who prefer to reflash their own kit, the firmware upgrade procedure is linked above.
v4.2.0: Initial release with GPS Week Rollover fix
v4.2.1: fixes issue with WiFi module not being able to obtain IP address from router (only required when WiFi option is used)
v4.2.2: fixes error in the date calculation routine. This version is required regardless of WiFi option.
v1.4.0: Initial release (uses portions of the v4.2.2 week fix code)