MTKDownload

MTKDownload (formerly AndroidMTK)


Purpose of the app


The app is used to load a log from a GPS logger (with MTK chip set) via Bluetooth onto an Android device.
There are numerous GPS loggers with the MTK chip set. The ones I am familiar with operate under a similar framework: the log is recorded in internal memory, and to free up space and access the log, it needs to be downloaded. I would have expected that the logger could be connected to a computer or similar via USB  and behaves like a USB stick. Unfortunately none of the devices I know can do that. The download by USB only works with special software, which is not available for Android., so if for example if you have only one Android device available on vacation, only the second way, via Bluetooth is possible. However, this is not supported by the manufacturers, the Bluetooth interface actually only serves to use the logger as a GPS mouse. But it is possible and at least three APPs offer this possibility. This app, like two other similar ones, first transfers a binary file and then converts it to a GPX file in a second step.

Current status

The original programmer, Bastiaan Naber,has discontinued further development of the app.The final catalyst was the app's removal from the Play Store by Google. This action was not due to any content-related issues or deficiencies, but rather because new regulations prohibit the use of
 "Android" in an app's name. Consequently, with Bastiaan's consent, I renamed the app to MTKDownload upon taking over its development. The app is of course still under the GPL. My version is based on Bastiaan's version 0.25, as far as I know version 0.26 differed only by the solution of the GPS-Week-Rollover problem. But we both had a pretty similar solution for that. Even with my old logger, an i-Blue 747A + Bluetooth GPS Trip Recorder, but even more with my new Qstarz GPS data logger BT-Q1000XT, the download via Bluetooth was repeatedly interrupted. At times, multiple restarts were required, and the process of downloading an entire day's worth of logs took over an hour. In the meantime I have found a solution that works at least on my constellation (Samsung Galaxy S 8 / Samsung Tab A7 Lite with the Qstarz). The App is now available at Play Store. Additionally, I have uploaded the source code to Github and would be happy to receive comments / suggestions for improvement. I am also in contact with the programmer at MTKUtility.

Operation:

1) Pair your GPS recorder in the Bluetooth settings of your Android device.
2) Go to the settings of MTKDownload and select the GPS device.
3) Choose whether to generate a GPX file and adjust other settings if necessary.
4) Press the "Download Log" button on the main screen to transfer the log to internal storage.
5) Press the "Delete Log" button to erase the storage of the GPS device.
6) Copy the log file and/or (if enabled in the settings) the GPX file to your PC.
7) Use BT747, GPS Babel, or similar tools to convert the files to other formats.

Depending on the Android version, you may receive prompts to enable specific permissions. If so, the corresponding function may need to be restarted. However, this is only necessary during the initial usage. In the case of interrupted transfers mentioned earlier, often the app automatically detects the interruptions and solves it by restarting the connection. However, if the logger freezes, the app cannot take any action. In such cases, if nothing happens for an extended period, simply turn off and then turn on the logger, after which the process should resume. With each new Android version, new security features are introduced, and their usefulness varies, requiring individual judgment. These constant changes make life more challenging for developers, especially those still learning Android, like myself. Currently, the main problem is the limited ability to save files anywhere. In version 1.05, I found a solution to store the files in the "mtkDL" subfolder within the download directory. I have tested this on Android 9 and 13. The approach used can certainly be improved, and it should be possible to change the directory in the settings again. However, given that version 1.04 does not work at all on newer Android versions and my current lack of time, my priority was to create a version that works at least. This way, I can focus on developing a more optimized version later.