2020 update of the nvtk_mp42gpx.py script

Surprisingly to me the script that I haphazardly put together turned out to be very popular.
I decided to quickly update it (after multiple feature and bug fixes requests)…

The highlights are:

  • Automatic finding of the correct position of the data block (more on that below).
  • Introduction of -m flag, which creates separete GPX file per input file (default behaviour is a single GPX output file for multiple input files).
  • More robust argument parsing (now it should always display help if wrong arguments are used)
  • Introduction of -d flag, which allows to de-obfuscate GPS coordinates.
Continue reading 2020 update of the nvtk_mp42gpx.py script

SJG Forester – tracking down noisy wheel bearings

Our Forester has developed a noise that is similar to a turbo-prop aircraft. This is not the first time it did, as the front bearing have been recently replaced.

Unfortunately this time the noise was not as directional as with the front wheel bearings. The whole cabin was filled with roar above 70km/h, and sometimes it appeared that the noise would come from the front.

Continue reading SJG Forester – tracking down noisy wheel bearings

Converting DeWalt DCB101 110V charger to 240V

Here is how I converted north American Dewalt DCB101 to proper supply voltage (warning: do it at your own risk).
I have made this conversion based on many internet forum posts and youtube videos.
Note: there are at least two versions of this charger and newer version requires rewinding the transformer (at least according to internet).

Why? For some stupid reason 240V chargers locally cost 2 to 3 times more than in USA.

Continue reading Converting DeWalt DCB101 110V charger to 240V

Opus BT-C100 reverse polarity protection

I recently bought an Opus BT-C100, as unlike my other Lithium Ion chargers, has a discharge test feature. It also fairly quickly estimates internal resistance of the cell, which is a good health indicator.

Unfortunately due to A123 26650 cell being of upside down construction I released the magic smoke out of the Opus BT-C100 by reversing polarity. The smoke escaped through the battery holder slit.

Continue reading Opus BT-C100 reverse polarity protection

Unbricking Asus Chromebox CN60

Asus CN60 is a good platform to re-purpose to run vanilla Linux on, since they come with decent CPU, while RAM can be upgraded to 16GB, and SSD to 512GB.

Unfortunately out of the box they come locked down by Google, with non-standard BIOS/UEFI, making it not possible to wipe the useless ChromeOS in favour of something like Ubuntu.

Fortunately there is a way to un-Google-fy it.

Continue reading Unbricking Asus Chromebox CN60

Dealing with data obfuscation in some Chinese dash cameras

This is post relates to the extracting GPS coordinates form Novatek based dash cameras.

About an year ago I was contacted by someone who tried to use my script on MP4 files generated by their camera, only to get garbage data out. It appeared that the camera was obfuscating the coordinates stored in MP4 (the speed and heading was recorded correctly). It was not a bug because provided player was decoding them correctly.

Continue reading Dealing with data obfuscation in some Chinese dash cameras

GT06E GPS Tracker Part 2: Establishing connection

This is a continuation from Part 1.

As of writing this I already had complete solution (as far as getting tracking data is concerned), a multi-process TCP server with a mysql database back-end.
The server code itself is not pretty thus I am cautious about sharing it at this stage (I will “open-source” it once I cleaned it up).

One caveat: my solution does not support batch mode (where the payload contain multiple concatenated location and other packets).

The assumption is that the reader is somewhat familiar with python and sockets.

Continue reading GT06E GPS Tracker Part 2: Establishing connection