{
  "$type": "site.standard.document",
  "bskyPostRef": {
    "cid": "bafyreifjcvn3ids5gxeebzbj63fexsgrowtnx2ksdbszzv7t6xaavwzaz4",
    "uri": "at://did:plc:4tuge3k3comfj4nfvqnwkemn/app.bsky.feed.post/3mgcvo2e7tk72"
  },
  "coverImage": {
    "$type": "blob",
    "ref": {
      "$link": "bafkreign5bgxjehqqy6hucynbjbaqnhl2rt4cikddalh2d42hhzfurgwxu"
    },
    "mimeType": "image/png",
    "size": 71266
  },
  "path": "/user/jo__/diary/408317",
  "publishedAt": "2026-03-04T20:47:22.000Z",
  "site": "https://www.openstreetmap.org",
  "tags": [
    "https://www.rigacci.org/wiki/doku.php/doc/appunti/hardware/gps_logger_i_blue_747",
    "https://www.technologyblog.de/2019/05/gps-rollover-zerstoert-gps-logger/",
    "https://wiki.openstreetmap.org/wiki/Holux_M-241",
    "mtkbabel"
  ],
  "textContent": "Taking info from\n\nhttps://www.rigacci.org/wiki/doku.php/doc/appunti/hardware/gps_logger_i_blue_747\n\nand\n\nhttps://www.technologyblog.de/2019/05/gps-rollover-zerstoert-gps-logger/\n\nand\n\nhttps://wiki.openstreetmap.org/wiki/Holux_M-241\n\na modified mtkbabel can set the time when reading from the device. That should probably go into some check whether it’s really a M-241 that is connected, but as long as the battery lasts the device shows the correct time again and logs tracks in this year and not dated 2006..\n\n\n    $ diff -u /usr/bin/mtkbabel ./mtkbabel\n    --- /usr/bin/mtkbabel   2019-10-12 12:23:29.000000000 +0200\n    +++ ./mtkbabel  2026-03-03 19:37:37.482923895 +0100\n    @@ -166,7 +166,7 @@\n     #-------------------------------------------------------------------------\n     my $debug    = $LOG_WARNING;     # Default loggin level.\n     my $port     = '/dev/ttyUSB0';   # Default communication port.\n    -my $baudrate = 115200;           # Default port speed.\n    +my $baudrate = 38400;           # Default port speed.\n     my $ro_weeks = 0;                # Weeks offset to fix Weeks Rollover Bug\n\n     # GPX global values.\n    @@ -356,6 +356,18 @@\n         set_data_types($model_id);\n     }\n\n    +# Set time to work around week rollover bug\n    +\n    +my ($sec,$min,$hour,$mday,$mon,$year) = gmtime;\n    +\n    +$year += 1900;      # year is years since 1900\n    +$mon  += 1;         # month is 0-11\n    +\n    +packet_send(sprintf('PMTK335,%04d,%02d,%02d,%02d,%02d,%02d', $year, $mon, $mday, $hour, $min, $sec));\n    +$ret = packet_wait('PMTK001');\n    +printf \"Set time string: $year, $mon, $mday, $hour, $min, $sec\\n\";\n    +printf \"Return for setting time: $ret\\n\";\n    +\n     #-------------------------------------------------------------------------\n     # Erase memory.\n     #-------------------------------------------------------------------------\n",
  "title": "Holux M-241, week rollover fixed with mtkbabel"
}