BT747 on Android? Volunteer?

mdeweerd's picture

I installed the Android SDK and had a closer look.

It looks relatively easy to make a port of BT747 to the Android platform: it does look like plain Java.  The fact that some libraries are not the same is not an issue: that is already the case with the three platforms that BT747 can run on: J2ME, J2SE and SuperWaba.

Porting BT747 is a matter of:

  • Creating the Adapter class to connect through bluetooth;
  • Creating (=Adapting) the system translation classes (= Bridge);
  • Setup the GUI (which is most of the work), which could be 'simple' at first.

If you volunteer to do most of the work, let it know.  I'll assist where needed.Kind regardsMario

mdeweerd's picture

Hi Bastiaan Rather than

Hi Bastiaan

Rather than building a new app from scratch, why not try to port BT747 to Android directly.

Apparently Android is Java based and BT747 already runs on 3 different Java platforms, so why  not another one.

Basically you would need to adapt one of the system layers (starting from the system that is closest to Android) in BT747 and the GUI layer.  The core features of BT747 would simply be available for use.

Hi, I unfortunatelly don't


I unfortunatelly don't know a lot about java and Android. It seems like Android uses java but I think it is not so easy to just port java code to Android. It would ofcourse be very nice if bt747 could be ported to Android.

I wrote a small text about my Android app on my blog. It is a very basic app, if anyone wants to know more leave a message on my blog.


mdeweerd's picture

Hi Bastiaan BT747 is already

Hi Bastiaan

BT747 is already built to be portable and I've ported it to three platforms using the same core code.  To kick off, an initial build environment has to be set up.  In that environment the system library bridge has to be ported first which will mainly be a copy of one of the other bridges I've built which some adjustments for Android. The main difficulty will surely be with the bluetooth communication setup itself.
Once that is done, the BT747 core code can be 'dropped' in and a 'fixed' download can be tested (i.e., connect to the device and download to a predetermined file).
From there, the GUI can be built up little by little.

If you want to take up that challenge, I will guide and even resolve blocking issues.  I natively speak Dutch (although I live in France) so even if the programming language is new to you our communication language does not have to be.

mdeweerd's picture

I discovered that I had

I discovered that I had actually already started something with the system classes (partially) adapted.

So I'll set up a new project, put it under SVN, drop in that system code, drop in the core code and and empty serial communication class, setup a fixed file conversion (a single button GUI or something like that), build it.  If it builds and it converts, its a good start to setup the serial communication handler and extend the GUI.

I do not really have the time for it so I'll do it "tussen de soep en de patatten" as they say in Dutch.

mdeweerd's picture

Hi I've set up a new


I've set up a new development environment after getting the latest SDK and eclipse ADT (as per ).

I dropped in the common source, the previously adapted system classes, a 'dummy' serial connection class ( a stripped down version of what is used for RXTX), and a stripped version of BT747cmd (to actually reference the usefull classes and avoid potential optimisation) which I instantiate in the main class.

It is not functional as is, but all of it compiles to an Android application - no modification of the common source was needed.

Next step is setting up a conversion from a prefetched bin file.

You can fetch the setup from: .


cusaro's picture

anything new here? i own

anything new here? i own since a few day a android what can i do to help? (sadly i think my programming skills are not helpfull but anything else to do?)

mdeweerd's picture

Hi I have launched a poll

Hi I have launched a poll regarding porting BT747 to a paying VM platform.

Please vote here: .

cusaro's picture

Hi,   do you know



do you know ?



mdeweerd's picture

Hi Cusaro I've heard about

Hi Cusaro

I've heard about integrating adds in mobile apps, but did not know about this one specifically.

However, I you indicate this as an incentive to port BT747 to the iPhone/Android using ads, then I am afraid that the incentive is small.

Putting ads on this site ( was/is kind of a test.  The revenue is just above 70 EUR/year.  That is just about what is needed to keep this site running.  If 1% of the site visitors would install it on their iPhone/Android, then that would be less than 1EUR/year I guess.

Beyond that, it is a matter of time.  I can't spend the time needed to do the 'native' port to Android, and there are no other volunteers.

So the only option is to do the easy port to TotalCross (which is not fully bluetooth compatible yet, so the quantity has to be an incentive for Totalcross's maker too).

I have just uploaded my

I have just uploaded my android app to the android market as AndroidMTK. It is now also capable of converting the binary log to GPX file.

I agree it would be nice if bt747 could be ported to Android but this is a bit above my skills. If anyone wants the source of my app just let me know.


mdeweerd's picture

Hi Bastiaan Porting BT747 is

Hi Bastiaan

Porting BT747 is likely easier than you think.

A while ago I did part of the work to get an idea about the feasibility and it is in SVN:


I've modified the main class to show how GPX conversion would work (using the default conversion parameters, but a more or less "complex" output filename determination method):

To get the serial communction work, this class has to be adapted:


Other than that, there is the GUI dévelopment (you could use your current GUI probably) and call simple methods in the Controller and the Model.


The code doing the hard work (in common with the other platforms) is here (same trunk):

You should not have to touch that code.


So if you feel up to it, check it out (literally ;-) .

mdeweerd's picture

Here is another

Here is another suggestion:

Java can run on Mono:


Mono can run on Android:


That could be a way to go to (and I am posting a similar note for the iPhone)

supergreg's picture

thank you for linking me to

thank you for linking me to this thread. I also have BT747 an my Samsung Galaxy Ace minus BT connection.

here's what my log says:

please let me know if I can be of any help (no porting/coding skills though).

supergreg's picture

I just installed the

I just installed the AndroidMTK app from Bastiaan on my android device and it works great! would be even better if one could specify the output directory where the file is written. but it does its job pretty well already! thanks.

now what if BT_J2ME would be modified to read local .gpx files?

Any news on this topic?

Any news on this topic?

Hi, I have built an Android

Hi, I have built an Android app initially for use with GPSgate servers but have now made it useful for inLieu... I think. The app is in beta right now and not available on the android market - only through password protected download from my website...  and I could use a tester from this forum. Please see my website for more information: Please send me an email if you wish to test...I do not plan to monitor this forum for a response so email please.

username and password are not supported right now, only phone IMEI is used at this time as tracker identifier. Not sure if that will help. Also, app is currently only in English.


mdeweerd's picture

I've been looking into

I've been looking into Android a bit again.

It seems taht since Android 3.1 there is native USB support ( ).

Further, I also found a port of the RXTX library to Android .


So either could allow talking to a device over usb.

Hi,   any news on this



any news on this ?




androu's picture

Use AndroidMTK, as discussed

Use AndroidMTK, as discussed above.  It works well

C'est cool comme histoire !

C'est cool comme histoire ! ;)

Here is my weblog - surendettement

The AndroidMTK is a great

The AndroidMTK is a great approach and it seems to work very well with my devices but the it would be the perfect solution for me if it would be possible to set the logging conditions of the i-blue 747 with it.

This feature in the BT747 made me PC independent if the way of moving changed and I wanted to adjust the logging conditions.

Steve8x8's picture

I've got a Holux M-241as a

I've got a Holux M-241as a backup device for my old and trusted G***in, and had to find the hard way that
- changing the setup (currently using my laptop) won't survive a power-off of the logger, and a single AA cell doesn't have unlimited capacity - I might use a USB battery pack to keep it powered though (?)
- BT-J2ME seems not to work on my "old" phone (a Samsung E-250) although it claims to be CLDC 1.1 and MIDP 2.0: arrow keys don't work and after some seconds the phone hangs, I have to remove the battery to get it going again :(

I have installed AndroidMTK which can read the Holux's internal recording but cannot set any recording parameters (I'd like to have PDOP instead of Speed, etc.) - here BT747 for Android would fit in, but the last version seems to be 3 years old :( Is there still any hope? Bastiaan?

altauber's picture

published MTK logger

published MTK logger utility

I was using AndroidMTK to download log files, but this wasn't enough functionality to let me leave my Windows laptop at home. Needed to be able to update the AGPS data. Without this the first fix was taking more than half an hour in Africa. When I discovered AndroidMTK was open source, I decided to put my development background to work, learn Android Java, and create a program that would let me leave my laptop at home.

I don't want to count the hours, but I am happy to report success. I published "MTK logger utility" to Google Play today. Works great with my Samsung Galaxy Note and Qstarz Q1000x logger. My app has 4 tabs:

  • the startup (Main) tab that displays the NMEA sentences sent by the logger and provides for NMEA sentence settings
  • the Download tab - incorporates Bastiaan Naber's AndroidMTK code
  • the Settings tab - checkboxes for all the MTK logging options and input fields for log point frequency settings
  • the AGPS tab - EPO source file settings and AGPS data refresh

This covers off what I see as the most important aspects of GPS logger settings. Since my testing resources are very limited, I have no way of knowing how useful this app is in the market place. What I need is Beta testers and am hopeful some of you in the BT747 community are interested.

This Bluetooth nowadays have

This Bluetooth nowadays have improved a lot, keep using it.