I have been anticipating this event for a while as I personally own more than one Mercedes-Benz vehicles affected by this event beginning at Week Number 1000. I have also been looking at the compiled code for some of the units to see to see if I could get any information regarding how the COMAND determines the date, what the artificial EPOCH may be, and if the Week Number 0 rollover would fix the problem. This is unfortunately an issue that is, based on information received from numerous sources, not something that could have been fixed easily and orchestrating a fix would be much more difficult.
As already mentioned, GPS Time and Date takes place in the Navigation Processor. In the W211/W219/W220, for example, this would be contained in the DVD Drive in the trunk that holds the Navigation DVD. Some vehicles show the year 1999, and some 197X, etc. Although it is easy to point the finger at Mercedes-Benz or Daimler, the supplier of the navigation portion of COMAND is the one to blame for the software bug. It affected the W210s from 2000, COMAND 2.5s from W220s and these were manufactured by Bosch. It is somewhat understandable that the engineers were not anticipating 19 years later (or if you consider the development probably started on these devices up to three years before we started seeing them in cars on the showroom floor). Although I think if one was working with GPS code, it looks like they would have known there are a limit of 1024 weeks, so let’s simulate what will happen when the obvious takes place and that changes to “0” and codes in an intelligent way to deal with the rollover (it could write data to flash memory when Week Number 999 was encountered, and when Week Number 0 was received by GPS time, look to see if the flag for Week 999 exists, and know that the “new” Week 0 would be the year 2019 and increment from there.
Many GPS manufacturers have their own EPOCH and code it based on the current date the firmware is written to extend the time until an issue regarding the Week Number is encountered. Some of the unusual dates we saw from the Week 999>1000 change was probably due to this.
What I find unusual, however, is that this bug beginning at Week 1000 affected units manufactured by Bosch, Harmon (Harmon/Becker) and others. I have not received any reports of the MCS II units found in the ML, GL, and R class with the dual disc slots behind the display which debuted in the ML in 2006 and was manufactured by Alpine was affected or not.
For those interested, here are some data from the GPS Processor from the NTG3, and although it is compiled and only so much information can be concluded without disassembly or source, it does provide enough to get a glimpse on some of the process the GPS portion of COMAND uses to calculated the Date/Time. Also, a glance at the COMAND NTG3 application code does confirm as most I am sure expected, there is indeed an Engineering Mode on the units. Actuating this is not currently known in the public domain to my knowledge, but due to the keys/hard buttons that the COMAND is receiving data from, it is likely a combination of keys from the Telephone Number Pad, and could be in addition to holding any of the four hard keys in which the two outer ones are shortcuts to NAVI, TEL, RADIO/DISC, and includes the ones such as Massaging/Lumbar Seat. It may even include pressing the Dial button. Even if one guessed the key combination, it is likely you would have to be on the correct COMAND screen in when you pressed them, which makes discovering this more difficult.
GPS3
!14!GPS4700!Version422!05.12.05!41!
$P_FLA,3,2 READING FLASHTYPE
$P_FLA,3,1 ST INTERN V05
$P_FLA,3,3 REQ_SIZE_CHKSUM
$PHEAD,
%li,%li,%li
@$P_FLA,3,4 REQ_FLASH_ERASE %li
$P_DEL
@$P_ACK
$P_NAK_T
$PDATA
$P_NAK_MOD4
$P_NAK_RS232ERROR %hi
$P_FLA,3,7 CHECKSUM ERROR,RESTARTING UPLOAD
$P_FLA,3,7 CRC CHECKSUM ERROR,RESTARTING UPLOAD
$P_FLA,3,8 CHECKSUM OK,ACTIVATING CODE
$P_FLA,3,8 UPLOAD READY,ACTIVATING CODE
$P_FLA,3,9 STARTING UPLOADED CODE
0@-
`BA02
0123456789ABCDEF
0123456789abcdef
@2
Unknown signal
Invalid Operation
Divide By Zero
Overflow
Underflow
Inexact Result
: Heap memory corrupted
Abnormal termination
Arithmetic exception:
Illegal instruction
Interrupt received
Illegal address
Termination request
Stack overflow
Redirect: can't open:
Out of heap memory
User-defined signal 1
User-defined signal 2
Pure virtual fn called
C++ library exception
@@@@@@@@@AAAAA@@@@@@@@@@@@@@@@@@
UHUI
`UHH`
QJPI
!NH$
`K!I
h@h``!`0
a+HI
main() : ERROR nvm_init failed
main() : ERROR gps_load failed
main() : ERROR NMEA_start failed
idle task
8@-
root task
@task with no name
@8@-
@xV4
hFhGi
`F`Ga!
h(
h#XC
!hYC
!hYC
gps_load: nav_launch_process failed
gps_load: tracker_launch_process failed
gps_sleep(%0.2d secs): suspending GPS
gps_sleep(%0.2d secs): restarting GPS
H08Ck
< o
HP1
0pGvK0
pGoH
}pGnH@}pGlI09`1
pGjH
jpGhH
0pGfH
@ipG
ch"h
=ih#
Ggps_get_sig_strength : ERROR SAT ID INVALID
(-DT
u"Agps_date : ERROR TIME INVALID
Ggps_date_time_to_gps_time : ERROR TIME INVALID
`HaK
%HC@
nvm_bank_reset %x
ERROR nvm_bank_reset : flash_erase_block ERROR
ERROR nvm_bank_reset : flash_write_word ERROR
nvm_check_bank : ERROR record invalid
nvm_check_bank : ERROR record checksum invalid
nvm_check_bank : ERROR item not blank
! 5(
aJa1
O0iAh
p=`
`B` xCPJ
h1!
]CUC
nvm_check_bank : ERROR incorrect filled tag
nvm_check_bank : ERROR incorrect valid tag
ERROR nvm_init : nvm_bank_reset ERROR
ERROR nvm_init : flash write test ERROR
rnvm_init() ERROR secondary bank invalid, erasing
NVM RAM usage = %d
xp}`2
yh"BCR
xp
#XC
$DC"H
nvm_ram_init() : ERROR nvm_init() failed
nvm_ram_init() : ERROR nvm_ram_format() failed
@ERROR nvm_ram_init : flash_write_word test ERROR
uH 8
eI 9Hx
aH 8@x
$#cC
!aC
>ph
nvm_create() ERROR nvm_create_bank() failed
nvm_create() ERROR nvm_ram_create() failed
nvm_copy : flash failure with no RAM backup
nvm_read : flash failure with no RAM backup
nvm_ram_write : id %d item %d key %d key no %d address %x
h)i(a
aia!
ERROR nvm_ram_write : Item Number out of range
ERROR nvm_ram_write : Record doesn't exisit
ERROR nvm_write_item_key : flash_write_word ERROR
ERROR nvm_bank_swap : flash_write_area ERROR
ERROR nvm_bank_swap : missing EMPTY item in secondary Bank
Erasing the parameter block
rErase time %dus
nvm_flash_write : id %d item %d key %d key no %d address %x
ERROR nvm_write : Secondary Bank is FULL no VALID item
** NVM Bank Full : Swapping Banks ** time %dus
@ERROR nvm_write : flash_write_area ERROR
ERROR nvm_flash_write : flash_write_area ERROR
ERROR nvm_flash_write : Couldn't write to new empty bank
$ 9Hx
TI 9Hx
$LH
ERROR nvm_flash_write : Item Number out of range
ERROR nvm_flash_write : Record doesn't exisit
nvm_write %d item %d
ERROR nvm_write : nvm_flash_write failed
ERROR nvm_write : nvm_ram_write failed
ERROR nvm_flash_set_item_invalid : Record doesn't exisit
> ?8x
nvm_set_item_invalid %d item %d
@ERROR nvm_set_item_invalid : nvm_ram_set_item_invalid failed
ERROR nvm_flash_copy: Record doesn't exisit
ERROR nvm_ram_read: No records exist
ERROR nvm_flash_read: No records exist
N7@6
8r0
77`
hkF
(zIO
!)r
!10
!E0
#T1[
"K!I
hr
Fifo Process
@debug_fifo_init : task_init failed
PaO"
"ZaXa
,4!c
C,0Aa
gps_receive_almanac : ERROR gps_set_almanac_params failed
,%02d,%08x,%08x,%02x,%02x,%04x,%06x,%01x,%01x,%01x ,%01x,%01x
,%02d,%04x,%04x,%04x,%04x,%04x,%08x,%08x,%08x,%08x
,%02d,%04x,%04x,%04x,%02x,%02x,%03x,%04x,%06x,%04x ,%04x
`tF
tE .
`]F@
`tC
`tP
u `tO
|S(&
entering load ephem
,%d,%d,%s
*%02x
Error, no checksum detected
calc %02x expect %02x
Failed ckecksum
gps_set_ephemeris_params failed!
,%2lf%6lf,%1c,%3lf%6lf,%1c,%5lf,%2d,%2d,%4d,%2d,%2 d,%2d
G"
$PSTMINITGPS
$PSTMINITFRQ
$PSTMCLREPHS
$PSTMCLRALMS
$PSTMRMC
$PSTMSLEEPON
$PSTMCOLD
$PSTMWARM
$PSTMHOT
$PSTMDUMPEPHEMS
$PSTMEPHEM
$PSTMNMEAONOFF
$PSTMGPSRESET
$PDEBUGOFF
$PDEBUGON
$PDEBUG2OFF
$PDEBUG2ON
$PGPSCOLDSTART
$PBEANTENNON
i@"P@
$PBEANTENOFF
$PBEEPH1
$PBEEPH2
$PBEEPH3
$PNEWFORMAT0
$PNEWFORMAT1
$PBETRACKRON
$PBETRACKOFF
$PBESETESTON
$PBESETESOFF
$PBEVERTESTON
$PBEVERTESOFF
$PBEALM
$PSTMGETFREQ
$PBEGETALM
$PBEINITGPS
,%6d
Initialising Cold Start....
invalid user position set ...
invalid rtc set ...
FOFH>p
Initialising Warm Start...
Initialising Hot Start...
start of dumpephems
end of dumpephems
parse_NMEA_msg : ERROR set_sat_ephemeris1 failed
parse_NMEA_msg : ERROR set_sat_ephemeris2 failed
parse_NMEA_msg : ERROR set_sat_ephemeris3 failed
C8C@"
4[Hm
| xC!\
%|'oC
@HzhT
<Hzi
1 pG
4 pG@
2 pG3 pG
parse_NMEA_msg : ERROR gps_set_time failed
ERROR DETECT
@*%02X
gps_transmit_almanac : ERROR send_msg_to_uart failed
$PCN0
,%02d
,%.2f
@$PBESTAT,HARMAN/BECKER V%04.2f,
,ANTENNA OK
,ANTENNA SHORTED
,ANTENNA OPEN
,NO POWER
_O^N
$,7l6
[L.
ah"h
,NOT AVAILABLE
$@,%02d,%1d,%05d,%02d,%05d
transmit_ephem_NMEA_status : ERROR send_msg_to_uart failed
$PBETRAC,%1d,V,%02d,%1d,%05d,%02d,%06d,
%01X%01X%01X,%01X,%01X
---,-,-
$PBETRAC,%02d,E
transmit_tracker_data : ERROR send_msg_to_uart failed
$PBESETE,
Y@ N
@1,%02d,%02d,%04d,%01d,V%04.2f
S#N"
W#E"
0,00,00,0000,0,V%04.2f
transmit_selftest_data : ERROR send_msg_to_uart failed
Mb@?
?BJ
Asend_new_format : ERROR gps_get_date failed
send_new_format : ERROR gps_conv_vel_to_course_speed failed
I@send_new_format : ERROR gps_set_pos failed
gps_set_centre_freq : ERROR gps_set_centre_freq failed
$PCOMM,Preset startconditions done !
WI$N
send_new_format : ERROR send_msg_to_uart failed
@send_new_format : ERROR gps_get_almanac_params failed
$PGPS1,
%02d%02d%02d%02d%01d
%02d%02d%04d,
%c%02d%02d.%04d,%c%03d%02d.%04d,
%02d,%02d,
?%05.1f,%05.1f,
%06.1f,
%04.1f,%04.1f,%04.1f,
%05.1f,
%03i,%02d
@$PBESTAT,HARMAN/BECKER V%04.2f
"kck
7|$tC8]
h#i(
"kck(
"lcl(
"mcm(
n#o(
@transmit_NMEA_status : ERROR send_msg_to_uart failed
$PBEVERS,Operating System Version: %s
transmit_NMEA_gps_header : ERROR send_msg_to_uart failed
@$PBEVERS,own GPS Software Version: %04.2f
$PBEVERS,Library %s
$PSTMSAT
@,%08.0f
,%04.0f
,%01d
@,%1d
,%.2f,
#XC
pHl8
HMl=(x
$ E
,%04d
,%011.4f
,%10d
$PSTMRES
*%02X
$PSTMRF,%1d,%1d,%02d
,%02d,%05d,%06d,%02d
,,,,
$GPGSV,%1d,%1d,%02d
,%02d,%02d,%03d
@$GPGSV,1,1,01,%02d,60,000
$GPGSA
,A,%1d
,%2.1f,%2.1f,%2.1f
S#N"
W#E"
S#N"
W#E"
S#N"
W#E"
$GPVTG
@,%03.1f,T,,M,%03.1f,N,%03.1f,K
@$GPGGA
,%02d%02d%02d.%03d
,%02d%02d.%05d,%c,%03d%02d.%05d,%c
,%01d,%02d,%01.1f,%06.2f,M,%01.1f,M,,
,%02d%02d.%04d,%c,%03d%02d.%04d,%c
,%01d,%02d,%01.1f,%06.2f,M,%01.1f,M,,,
|Hl8
vLl<
}LiO$x
cL~pw
$GPRMC
,%02d%02d%02d.%03d,%c
@,%03.1f,%03.1f
,%02d%02d%02d
,0.0,W
$PBERESP,
,COMMAND READY
((a)
XHkF
@"vO
%r]8
%/Ld>
@NMEA: entering SLEEP phase
NMEA: exiting SLEEP phase
NMEA output Process
@NMEA input Process
,%2d,%2d,%4d,%2d,%2d,%2d
gps_get_ephemeris_params failed!
$P%sEPHEM,%i,%i,
%02x
*%02x
$PSTFREQ,%06d
@gps_transmit_clock_offset : ERROR send_msg_to_uart failed
$PSTMTIM
,RTC
?MDLl=
0HiFl8
,VALID
,INVALID
,%2s,%02d
,6JG
$(15
i@%)C
C 0*
i C#
i@%(C
2S\cE
+1Hd
(CP`
3CS`
#CS`
p@xXp
p@-
h8D`
hFT9
T9hF
GPS time read from flash,
reset to NO_TIME
set to FLASH_TIME
GPS time set to NO_TIME
GPS time read from RTC,
set to RTC_TIME
set to NO_TIME
set to USER_TIME
08/A
xFN8
h+i0
L@<!
JH:@2
I8h@9
xh@9Ik@
H:8>
;I0"09
7HH8
/M.LH=(x
(IhF(9
(p
H880
.AMTB GPS time error %.6lf us
gps_time_set() : ERROR TIME INVALID
GPS Time updated
! 8Aa
HL8D`
0" `
U`b b`a
b w`c%a
d eZh
2`d"d
d`e"
f g`g
L9H`
dgd e
IIB@
HqC@
'gb l
{HiC
giI%
ha&a
pp
3Z`RJ
ZhEK
%3YC
ajpC
ajpC@
x0hC
```
` a`a
4'h9
BCyC
gchb
!jHB
bhk
hc h
wFxC
#YCIB
IBxB
ik@B@
iI j
2lsl
Ghk2!AC
AC2
dhkAC
``` a
!$5`a
`Ah0J
5(h2
(`ihrC&
(aia
HAh`h
"lcl
ajpC
ajpC@
x0hC
```
a`a
c iai
2#YC
c#YC
c#YC
2!yCB
2!TJyC
a`OIAC2
`gh2!
!!aaa!c
2lsl
zCqCQ
FsCxC
a`iaF@
a`i`D`a8
qCxC@
"baj
rCxC
jHi@
,"x0ob
bgb'b'`g`
`'aga
a7cwb
bgc'c
\ @]
Hin@h
1pj%
"lcl
x2sj
i!j@
2!qC
c#YC
c#YC
bQH
2!yCB
2!NJyC
bIIAC2
)kPC
pCyC
>]@~
"lcl
0!HU
x0nb
bfb&b&`f`
`&afa
bfc&c
kACQ
O!e=h
dzhSB
0`dI
`d#
}#ij
hx(
"iij
yCpC@
KCBC
``Fnc
"lcl
1Ha1
0@i1
0@i1
#XC-
0@i$#XC-
0@i1#XC-
0@i1#XC-
0@i$#XC-
#XC-
IBhh
`d`l
"i)h
5.jYCPC@
h`(h
!)bfl
`d`jij
"i)h
x87 6
p!X(
0^c`IK
!H@h
Aja`
iab\!
0! `
2!eS`
` wKK
CccUhGN
5`EM@5[
U l fgf
t<`g
gAgpG
a/w0
IPC 1E
}!`j
@B}!
#XCK!
!"h*
`j(a
H,8@h
"12 1
DmvO
)`)`
PpGdJ
PpGaK
pGZK
pGSI
4jFPP
GpG<I
T@61T
",8Dh
\ @\
0 @V
}&Hj
\#[\
0&vV
}&Kj
$,?@6
lCl!
0%+U
5fb.a
bcFkb
x0na
!ab
cocB`)c
`b^I
GIIB@
gbkal
`d`j
,"x0eb
$iF
hD"h
hDkDjD
kDXo
hD"h
hD}J
hDsJ
hDoJ
ZJZI!#
PLtI
HLmI
BHX0
?LcI
NAVIGATE...
Calculate all sat positions
Recalc satellites
nav_launch_process: ERROR navigation_init failed
Nav Process
@nav_launch_process: ERROR task_init failed
hHiI
XNWI0
pM`0
GOEI8
$8`0
9HppGp
9Jh
nav_set_pos_cmd : ERROR POSITION INVALID
u"A(
nav_set_time_cmd : ERROR DATE TIME INVALID
nav_set_freq_cmd : ERROR FREQ INVALID
nav_set_freq_range_cmd : ERROR FREQ INVALID
08/Anav_set_fix_rate : ERROR RATE INVALID
:Qh
@9Ih
FH00
<H0
9HppG
nav_disable_sat : ERROR SAT_ID INVALID
nav_enable_sat : ERROR SAT_ID INVALID
nav_is_sat_enabled : ERROR SAT ID INVALID
nav_set_elevation_mask_angle : ERROR ANGLE INVALID
SAT STATE TIMER FREQ PHERR SYNC ATMOS CN0LOG
TYPE AZIMTH ELEV
"D8ZI
BNBO
%>D?
0p8
(HL0
@channel idle
%3d%5d%8d%8d%7d%5d%7.1f%8.1f
E%-3d
alm
%8d%6d
n/a
!*!*! CROSS CORRELATION DETECTED: SAT %.2d
8E`8
G[M(
GNM(
&`(`
G<O8
:J h
&`(`
y(` h
8Dh(
8AhE
@visible_sats_get_list : ERROR visible_sats NOT INITIALIZED
List length %d
visible_sats_next_sat : ERROR visible_sats NOT INITIALIZED
visible_sats_in_list : ERROR visible_sats NOT INITIALIZED
visible_sats length %d:
: total sats %d:
.ynq
P8h(
IhC01@
IXC01@
IXC01@
|h=h
clear_sat_data: ERROR sat id invalid
zF|:
0i00
h@hR
h@h/
xF.8
xF88
l VIpCD
PIPO
jaj
jaj
iai
iai
eae)
$@sat_calc_almanac_extrapolation : ERROR ALMANAC INVALID
@sat_calc_almanac_extrapolation : ERROR SAT POS INVALID
@sat_calc_almanac_extrapolation : ERROR SAT POS VEL INVALID
sat_calc_almanac_extrapolation : ERROR USER PARAMS INVALID
xh<h
sL$h"
dJPh
}h>hZH)
yh:h
yh:h
?hCh7
l ;IpCD
5I5O
Lt@
_!Re6
sat_calc_ephemeris_extrapolation : ERROR EPHEMERIS INVALID
@sat_calc_ephemeris_extrapolation : ERROR SAT POS INVALID
jaj
jaj
kak
zO k
lal
lal
eae0
l!MJaC
@sat_calc_ephemeris_extrapolation : ERROR SAT VEL ACC INVALID
sat_calc_ephemeris_extrapolation : ERROR USER PARAMS INVALID
@@Ephemeris out of date
sat_extrapolation_update : ERROR EPHEMERIS CALC INVALID
sat_extrapolation_update : ERROR ALMANAC CALC INVALID
l <I`C@
`0Dy
Asat_almanac_update : Adjusting current time estimate week--
sat_almanac_update : Adjusting current time estimate week++
sat_almanac_update : Current time Ok
u"Asat_almanac_update : ERROR ALM TIME INVALID
sat_almanac_update : Adjusting almanac time estimate week++
@sat_almanac_update : ERROR ALM TIME DIFF INVALID
sat_almanac_update : Almanac time epoch %d %d diff %d
sat_almanac_update : Almanac time ok epoch %d %d
sat_almanac_update : ERROR SAT EXTRAPOLATION
Ephemeris updated (new iod): sat %d
sat_ephemeris_update : ERROR SAT EXTRAPOLATION
qXXC
I`CD
"kck
="j1
"ici
"lcl
(aia"k1
"jcj
(iii
l KI`C@
0`8`
l!6JaC
GEphemeris error : sat %d
extract_sv_health_1_24: ERROR sat id invalid
@sat_calculate_position : ERROR SAT POS INVALID
I`CD
"kck
"ici
I`C@
I`C@
l wI`C@
l kI`C@
kIP0
l _I`C@
l SI`C@
l EI`C@
>L h
0 ` (
`hF
iF h
}!(h
IxC@
sat_predict_params : ERROR sat id invalid
@sat_predict_params : ERROR gps time invalid
AIXC
5`8x
Satellite %d has same ephemeris as %d
Satellite %i is a cross-correlation. Removing..
almanac_init : ERROR nvm_create FAILED
almanac_get_params : ERROR SAT_ID INVALID
almanac_get_params : Error almanac not initialised
?333333
?(-DT
?ps-8R
almanac_check_validity : ERROR VALIDITY FAILED
almanac_set_params : ERROR SAT_ID INVALID
almanac_set_params : ERROR almanac_nvm_write failed
almanac_set_params : ERROR ALMANAC VALIDITY FAILED
almanac_available : ERROR SAT_ID INVALID
}!0h
~I~J
almanac_update : ERROR SAT_ID INVALID
almanac_update : ERROR ALMANAC NOT INITIALIZED
u"Aalmanac_update : ERROR time invalid
Almanac %d Health Bad %x
Almanac %d Not available
AAlmanac out of date by %d secs,updating flash
@Almanac preceeds by %d secs,updating flash
almanac_update : ERROR ALMANAC VALIDITY FAILED
Almanac Upate for Sat %d
almanac_update : ERROR almanac_nvm_write() FAILED
Almanac %d same as stored version : No Update
@almanac_get_orbit_params : ERROR EPOCH TIME INVALID
AJ`b
@(-DT
@(-DT
@almanac_get_orbit_params : ERROR SAT_ID INVALID
almanac_get_orbit_params : ERROR ALMANAC NOT INITIALIZED
almanac_get_orbit_params : no almanac available
almanac_reset : ERROR SAT_ID INVALID
almanac_reset : ERROR ALMANAC NOT INITIALIZED
ephemris_init : ERROR nvm_create FAILED
ephemeris_get_params : ERROR SAT ID INVALID
ephemeris_get_params : ERROR EPHEMERIS NOT INITIALIZED
ephemeris_check_validity : ERROR EPHEMERIS NOT INITIALIZED
?(-DT
?ps-8R
ephemeris_set_params : ERROR SAT ID INVALID
ephemeris_set_params : ERROR EPHEMERIS NOT INITIALIZED
ephemeris_set_params : ERROR EPHEMEIRS VALIDITY FAILED
ephemeris_available : ERROR SAT ID INVALID
ephemeris_available : ERROR EPHEMERIS NOT INITIALIZED
p6I}'
ephemeris_reset : ERROR SAT ID INVALID
ephemeris_reset : ERROR EPHEMERIS NOT INITIALIZED
ephemeris_week_adjust : ERROR EPHEMERIS NOT INITIALIZED
u"Aephemeris_week_adjust: ERROR EPOCH TIME NOT VALID
AEphemeris week valid
ephemeris_week_adjust : ERROR CURRENT TIME NOT VALID
Saturday night ephemeris correction: incrementing week no.
ephemeris_week_adjust : epoch diff not valid
ephemeris_get_iode : ERROR SAT ID INVALID
ephemeris_get_iode : ERROR EPHEMERIS NOT INITIALIZED
C``(j
UNHEALTHY SATELLITE!!!
ephemeris_update : ERROR SAT ID INVALID
ephemeris_update : ERROR EPHEMERIS NOT INITIALIZED
ephemeris_update : ERROR SUBFRAME ID INVALID
New ephemeris data
ephemeris_update : ERROR EPHEMERIS VALIDITY FAILED
C `(
epehemris_update : ERROR nvm_write() FAILED
ephemeris_update : nvm_write succeeded
ephemeris_update : ERROR WEEK ADJUST FAILED
NOT a new ephemeris iode %d
epehemris_update : ERROR ephemeris_nvm_read() FAILED
Ephemeris different ERROR
c@!
Ephemeris the same
Different iode %d
All subframes NOT available sf1 %d sf2 %d sf3 %d
ephemeris_get_orbit_params : ERROR SAT ID INVALID
ephemeris_get_orbit_params : ERROR EPHEMERIS NOT INITIALIZED
@ephemeris_get_orbit_params : ERROR EPOCH TIME INVALID
@ephemeris_get_orbit_params : no ephemeris available
ephemeris_get_health : ERROR SAT ID INVALID
ephemeris_get_health : ERROR EPHEMERIS NOT INITIALIZED
@ephemeris_get_epoch : ERROR SAT ID INVALID
+H}&0
}! h
ephemeris_get_epoch : ERROR EPHEMERIS NOT INITIALIZED
@ephemeris_get_epoch : ERROR EPOCH TIME NOT VALID
ephemeris_epoch_valid : ERROR SAT ID INVALID
ephemeris_epoch_valid : ERROR EPHEMERIS NOT INITIALIZED
ephemeris_epoch_valid : ERROR CURRENT TIME NOT VALID
0p<`
0hiF
ephemeris_epoch_valid : ERROR EPOCH TIME NOT VALID
u2A(-DT
@(-DT
?error = %.1lf
@?\(
sAMean Anomaly Error = %.2lf
`@jJh
bBiKi
CKaBi
"CJb
n0HC
n0hC8
sF#`
#n3kC
BKaDYC
ZC<#XC
date_time_from_gps_time : ERROR GPS TIME INVALID
GPS Week %d Time %d
%2.2d:%2.2d:%2.2d on %2.2d/%2.2d/%2.2d
GPS Week %d Time %d
%2.2d:%2.2d:%2.2d on %2.2d/%2.2d/%2.2d
Ai6
p}! h
Cx`(
IK!hYCA
HHBh
<L`h
C```h
C```h
MJYC
:P`!
@J:
RTC time Invalid %d %d
RTC time restored from backup week %d tow %.1lf
RTC time Not available in backup
RTC time Valid %d %.1lf
RTC read params time validity %d
RTC ERROR: Previous RTC Write NOT COMPLETED
RTC Process
@rtc_init : ERROR nvm_create FAILED
clear RTC
RTC cleared to %d %d
?RTC time Not available in Flash
1IJh
%*CJ`
Z`"C
CH`Hh
RTC time Difference %d
rtc_write : ERROR nvm_write() FAILED
rtc suspend DONE
rtc restart DONE
utc_init : ERROR nvm_create FAILED
utc_unpack_subframe : ERROR UTC NOT INITIALIZED
utc_unpack_subframe : ERROR nvm_write() FAILED
(@utc_get_params : ERROR UTC NOT INITIALIZED
utc_get_params : ERROR nvm_read() FAILED
utc_set_params : ERROR UTC NOT INITIALIZED
utc_set_params : ERROR nvm_write() FAILED
"iF
aaa(h
babhh
cachh
iono_init : ERROR nvm_create FAILED
Ionospheric Params
A0 %d
B0 %d
B1 %d
B2 %d
B3 %d
iono_unpack_subframe : ERROR IONO NOT INITIALIZED
Iono Not available in Backup
Iono Different in backup
iono_unpack_subframe : ERROR iono_nvm_write() FAILED
KHDh
(-DT
@(-DT
Aiono_get_params : ERROR IONO NOT INITIALIZED
iono_get_params : ERROR nvm_copy() FAILED
iono_set_params : ERROR iono_nvm_write() FAILED
RHRI
<!AC
nco_init : ERROR nvm_create FAILED
nco_set_range : ERROR nvm_write() FAILED
Default NCO range min: %d max: %d
nco_set_value : ERROR NCO NOT INITIALIZED
nco_set_value : ERROR NCO INVALID
NCO %d
NCO %d saved to flash
nco_set_value : ERROR nvm_write() FAILED
nco_set_range : ERROR NCO NOT INITIALIZED
'`/p
Hh `
(pHh6I@
/p'`
'`/p;H
OIJB
2`)`
)`2`
nco_set_range : ERROR RANGE INVALID
@NCO range changed min: %d max: %d
nco_get_value : ERROR NCO NOT INITIALIZED
nco_get_range : ERROR NCO NOT INITIALIZED
@nco_set_test_value : ERROR nvm_write() FAILED
pi1i
<%EC
xpGp
hN0`j
<!AC
pp
HM(`J
!4H4LDJ
Lat : %02d:%02d.%03d %c
Lon : %02d:%02d.%03d %c
Height : %d
Vel : N %.3lf E %.3lf V %.3lf
>user_init : ERROR nvm_create FAILED
user_set_position : ERROR nvm_write() FAILED
user_reset_position : ERROR nvm_write() FAILED
!ibi
< aba
diff_set_params(%d, %d, %.1lf, %.1lf, %.1lf
diff_set_params() : ERROR Bad parameter value
r@Sat %d Diff Not Available: (tow diff %f) iode %d
Sat %d Diff Available: tow diff %f
IHh'\
0H` (
!H@x
$(alp
Orbit list : Add Sat %d
Orbit list : Add Sat %d, fast search
remove waas sat chan %d
Add WAAS sat %d
Chan State LOST, Remove sat %d
Remove sat %d health %d enabled = TRUE
Remove sat %d health %d enabled = FALSE
(p`i
`(pahs
ahbiz
MLTI
DLKI
9HppG1I
9HppGmK
iL#h
pG$H
"L(I
DSP Acquire
Sat %d Acquire Passed at Freq %d
Sat %d Acquire Failed at Freq %d
tracker_launch : dsp_launch failed
Tracker Process
@tracker_launch : task_init failed
tracker_start
tracker_start sent
kJPh
0P`Qx
pS`pG
[IZH
aRO
&DM#
xpBHCI
~ph`
.p4H!
G@+Q
Top 6 Predict Freq : Add Sat %d
Top 6
Startup Predict Freq : Add Sat %d
Startup Predict Prn : Add Sat %d accuracy %d
Accurate Predict Prn : Add Sat %d prn acc %d
&9R)
H@ !
`3IQ
/H-I
`@h C@1
C$I@1
Satellite %d not handled
!43(0
!=(
gag
">0
(aia
82h0)
08a }
`}NI
"oco
J42
INVALID RESIDUALS
@Diff Status %s
Pos Shift: %.2lf %.2lf %.2lf, dt: %.0lf
'p/p x
p/p
k'lKh
RHEh
B}|1
$,
?P Res :
%.1lf
(-DT
80-a`
h@h``!`
|#XC@
6Hk
B}|1
oH@h
!kF
$,
1Nri
Residual number: %d
RMS_Pos_residual %.5lf
Confidence: %.5lf
?V Res :
$,
80-a`
h@h``!`
$r}
?Hk
nH@h
"L60
lal
lal
~HAh
TXALx
ki*i
$,
"!&
2(p!
`j!j
G.p*
%|#kC
--
|#SC
Calculated DOPs p %1.2f, h %1.2f, v %1.2f
Invalid DOPs
b|%,T
ML5(
|#CC[
| xCA
?/
'|!ACI
8"WT
@Diff ON
Pos P
Pos x
(ii!
0p!
( }S
182
x`!}
OHAh
JHiF<0
0r(i
ppG;H
!kF
$)H!
08/A
-----------------------------------
KALMAN |
-----------------------------------
Large Position Shift Detected
LMS |
(8(00
jx`9`
i@ix`9`
cac
h@h`b
!b u
'gu
s|!AC
!dbd
!ebe
h@h`f!f84
(r
!(0
!P0
!<0
L(4
HP0
L(4
HP0
hp
npjIjJ18
XN kak
c1d"kckpm
F)ua}iu!i)a
Ij=)s@ibFPa]"9
0ppx
L(4
H<0
L(4
H<0
p@-
Mutex already blocked
mutex_signal : ERROR Cannot unlock this task
I@60
8p0
8p"
h"ici
!ibi(
I@78
h"ici
pf`
pM`
pe`(
p1
0L@4
)L@4
G"H@xpG
$(I0
DSP Process
@dsp_launch : task_init() failed
h"ici
hp!
!T#CC
rpGT"
T PC
C `!i
!a {
hX@ `C
H@ ` h
`a%a
%s%w h
hH@ ```
( hE
`chC@c` h
%s%w`h
%s%w {
H@ ``h
b h c
%w%s
hP@ `B
H@ `ai h
bgb
H@``%a
`a st
&2hF
8'gC
8 `C
r`
C$ `C
mDhh
$ `C
8"bC
P0j$6
C(bhj
Sat %d Parity Failed
$"jC
P0j$6
C c`k
IXC@
pGT#
IXC@
ipG8
`hF
`!a(
`hF
h+i
08/A
p=JR
VApredict update : PREDICTION is now COARSE
~Fz>
wp
`<H
DH(`
N@Predict State changed to PREDICTION_COARSE
~@Predict State changed to PREDICTION_COASTING
pG@h
XCpG
Almanac Page ID %d
Almanac subframe
Bad Almanac Subframe Error, Subframe rejected
Health 1 - 24 subframe
Iono / UTC subframe
Health 25 - 32 subframe
sat %d
sf_id = %d
Bad Ephemeris Subframe Error, Subframe rejected
subframe: new ephemeris bad sat removed
iFhF
iF h
$iF
Subframe not decoded : Tow Difference %d
?Time changed by > 30s : Calculate all sat positions
Health not decoded : Large tow Difference %d
hd %d sat %d tow %d health %d
u"AWeek %d
Candidate %d matches found
G@h@
e`&`
-`b'b
r<
Candidate Rejected
?xN
Time difference > 30s
Time confirmed with previous subframe time
Time difference > 30s : Time not set
subframe
%08x
Candidate Time Set
Candidate Time Not Set : Only Ephemeris sats used
@BpG
eMXL
iai
Disable sat chan %d
P Res :
%.1lf
(-DT
?Residual number: %d
RMS_Pos_residual %.5lf
Confidence: %.5lf
2ksk
(iii
qIHh
iai
:k{k
0iqi
Pos shift: %.2lf %.2lf %.2lf
p=JR
%.2lf,
ave : %.2lf
"xh!
sh2h
si2i
"xh!
PU| hC1\
| `C1\
pL4
lL$4
ZI@x`1
]#09XCA
=+i=
`NrT
$@Chan %d same freq as chan %d
5 sats needed
@Posn Status : %s Diff Status %s
Calculated DOPs p %1.2f, h %1.2f, v %1.2f
LMS: Invert failed
kDYi
X`@j
h@h_
3Yi
JAjd
kDXh`
yBj]
u`
3a}XoJ
kD`u
)I 9
pG'I 9
\STpG
@NO FIX
V Res :
%.2lf
w0i`cpi
bab
a w&
860x
c1d(
h@h0c
j3I(a
,I`C
Z| `C@
r9sAc
get_position_data : Error sat id invalid
l0oqo
c!du
AH<0
faf(
iai
?0iG
%?chan %d time error %.6lfs removing sat
?ERROR : gps_set_time() failed
mean error IS NOT acceptable : %e
?position_set_user_coord to %.3lf %.3lf %.lf
@j^X
@j^XAposition : ERROR User ECEF position invalid
02uO
cH8
aH8
?^I
[I98
SL<
NJhzi!
zpG2I
iai
chan %d bad sat removing
POSITION: correcting receiver time First Fix
$@POSITION: correcting receiver time
cac
ci"i
iai
"ici
8aya
8byb
{i:i
BR5e
ci"i
iai
YhJC
2s`5`Eh
7hvh
dhgFt`5`
vFf`'`
rFbC
hRhJ`
rFbC
hRhJ`
|F6<
h@hh`)`
hjh
7IoD
hbh
0j`+`
pCYC
0r`3`
hpG@hpG
F^C5
vFVC6
7hvhn`/`
n`/`Nh
F^C5
vFVC6
7hvhn`/`
n`/`
H6(0h5
bj#j
bj#j
bj#j9
bj#j
bIBAb
0(ZP
UCACI
F^CEC
fFFC_C
zCpC
AC8H
!`F@
0(ZP
'#x!
LL`}
pGp
0pG0
+H @
(H @
$H @
!H @
Parity Failed Word %d %x
6hAh
'GCh
(|V@
s}!
&D pC
ECQCi
WCCC
qFIB
FqD #
D"BC
cFKCVC
cFOCSC
pGpG
G G(G0G8GxG
@D
( R"
`BA02
?v<y5
PC6+
RBL@;x
+`;x
:xl*
:xh*
;x@"
h@h0c
h@h0c
h@h0c
h@h0c
aq`ra
`!a!!
0123456789ABCDEF
0123456789abcdef
@\<(
`F+(
`F0(.
`Fx(
`FX(
"ZPqF
PP(x
&HiFxD
`@BpGAh
?v<y5
=UUUUUU
;1cb
$>ED
IUUUUU
cUUUUU
08 #
0!1T
0x0(
3\r\sT2T
hF\(
x"pBxbp
0""p
hIBB
)a)
0""pfp
0""p<"fp
9)a!
>"bT
0##p
ax!pfp
[xcT
0#cT
C)a!\
{0)!
>#cT
fp(i
-!@BU
Z 0b
8x-(
>-"c
$ @
3IyD
h?@B
Z 0b
`F0'H
(R '
(R '
(R '
~}|{zyxwvvutsrqqponnmllkjjihhgffeddccbaa``__^^]]\\[[ZZYYXXWWVVUUUTTSSRRRQQPPPOOONNMMMLLLKKKJJJIIIHHHGG GGFFFEEEDDDDCCCCBBBBAAA
pGAhQ
A`Ai
>pb1b
4#Bq
!Bp@
~}|{zyxwvvutsrqqponnmllkjjihhgffeddccbaa``__^^]]\\[[ZZYYXXWWVVUUUTTSSRRRQQPPPOOONNMMMLLLKKKJJJIIIHHHGG GGFFFEEEDDDDCCCCBBBBAAA
: R
@ERROR nvm_set_item_invalid : nvm_flash_set_item_invalid failed
,%02d,%02x,%04x,%02x,%04x,%04x,%04x,%06x,%06x,%06x ,%06x,%03x,%03x,%01x,%01x
$PBEALM,%02d,%02x,%04x,%02x,%04x,%04x,%04x,%06x,%0 6x,%06x,%06x,%03x,%03x,%01x,%01x
OS20_02.06.02 ARM - Oct 07 2005 14:54:18
visible_sats_get_list_length : ERROR visible_sats NOT INITIALIZED
Satellite %i rejected: Perigee in almanac and ephemeris did not match.
Satellite %i rejected: Omega in almanac and ephemeris did not match.
Satellite %i rejected: Mean Anomaly in almanac and ephemeris did not match.
dx2d(d
DIFF_OFF
DIFF_ON
GPSLIB_04.23.04 ARM - Oct 20 2005 14:31:04
$c%=&
)}*U+-,
/a081
4a556
9S:$;
=g>6?
AoB=C
EmF8G
I_J(K
L~MEN
SgT)U
VlW,X
YhZ&[
aqb(c
o_pq
POS_INVALID
POS_APPROX
POS_2D
POS_3D
DIFF_OFF
DIFF_ON
time %.1lf search type %d Sat %d IQ phase %d IQ pwr %d IQ freq %d
"!"3+
%/<=:/)
1A<9/0*
-?>;40#(!
!;43$
5<:.$
!:IJ?2
#4DL@4$
-:9?3
!"-.
"'--&'
UUUUUU
/lj,D
UUUUU
?n L
v$K{
v<y5
=v<y5
>UUUUU
ri7f>LUUUUU
UUUUU
?DR>
?1cb
"mm?
?sS`
@@@@@@@@@AAAAA@@@@@@@@@@@@@@@@@@
Ha^O8i
NN$>
8i@
#:iR
pa0h