Special date encoding

I have here data in the form of letters that represent a date. Here is a sample:

| EEIWMNE | 2018-05-25 22:59:40 |
| EEIXOOJ | 2018-05-26 00:12:06 |
| EEJDYGK | 2018-05-27 22:56:24 |
| EEJEAVR | 2018-05-27 23:47:04 |
| EEJMTFL | 2018-05-30 02:29:16 |
| EEJMTGW | 2018-05-30 02:30:26 |
| EEJMWEJ | 2018-05-30 03:27:51 |
| EEJMWEM | 2018-05-30 03:27:56 |
| EEJMWOC | 2018-05-30 03:35:46 |
| EEJMWOD | 2018-05-30 03:35:47 |

The letters on the left translate to the dates on the right, but I don’t see how. Has anyone seen this particular encoding before?

That’s…bizarre. No hints anywhere on what it could be?

It’s coming from a GPS-connected device and this is part of the data that was captured in the serial stream. Beyond that…

Do you know WHAT GPS device? That might help some.

It’s the Digitool DBI3.

http://digitoolusa.com/digitoolusa/digitooldocuments.html

You should probably contact the manufacturer.

That’s in the works, just curious if anyone here had seen it.

Because we all like a good puzzle, right? :slight_smile:

Some how that letter sequence is # of seconds from some point

note that the last two examples

there are 5 seconds apart and 5 letters

| EEJMWEJ | 2018-05-30 03:27:51 |
| EEJMWEM | 2018-05-30 03:27:56 |

these are 1 second apart, and 1 letter
| EEJMWOC | 2018-05-30 03:35:46 |
| EEJMWOD | 2018-05-30 03:35:47 |

Yes, but in other cases (not shown) the difference is 2 seconds but 1 letter.

I agree that this probably represents total seconds, but I don’t know the base date or how to interpret the encoding. Assuming base 26 (they appear to be only uppercase letters) didn’t do the trick.

That may be due to a difference in rounding between the two formats.

If it’s a pure count of seconds, and you assume base 26, then EEIWMNE works out to the value 1287239542. Dividing by 86400, the number of seconds in a day, you get 14898 days, or about 40 years, which would make the starting date 1978 or thereabouts. I suspect that it’s not a pure count of seconds, because 1978 is a strange starting year (except that it’s right around the time that the GPS satellites were launched).

GPS standard is around Jan. 1980, I think, but regardless, the difference in “letters” gets more pronounced the further the dates are. For example, using an arbitrary base date:

EEIWMNE : 2018-05-25 22:59:40
1,287,239,542
2020-10-15 14:32:22

EEJMWOD : 2018-05-30 03:35:47
1,287,527,543
2020-10-18 22:32:23

We see that the represented dates are 5 days apart, but the calculated dates are only 3 days apart.

BTW, here’s the code I’m using to decode into a value.

  dim chars() as string = s.Split( "" )
  
  dim ttl as integer
  for i as integer = 0 to chars.Ubound
    dim base26 as integer = chars( i ).AscB - AscB( "A" )
    dim power as integer = 26 ^ ( chars.Ubound - i )
    dim value as integer = base26 * power
    ttl = ttl + value
  next

The GPS epoch is 0000 UT (midnight) on January 6, 1980. GPS time is not adjusted and therefore is offset from UTC by an integer number of seconds, due to the insertion of leap seconds.

I found the answer. See here:

https://www.forensicswiki.org/wiki/FAT#FAT_date_and_time_values