GPS Data Loggers are given to us to remember our whereabouts...
I started the BT747 project somewhere in April 2007. I had decided to buy an iBlue 747 to be able to geotag my pictures mainly. I also wanted to be able to manage the logger on the road. At the time I had, and I still have, a Palm Lifedrive.
Following some research, I decided that SuperWaba was the best platform to go ahead with to build the program needed to download logs while traveling. I ruled out J2ME at the time because my Palm did not have the JSR82 module for bluetooth communication. Further, I wanted to be able to develop and debug on my PC using the application there too. J2ME was simply too difficult to set up.
After some trials, I managed to get serial communication working on my PC in the SuperWaba setup and to make a bluetooth connection to my phone using the same set up. I did not have my iBlue 747 unit yet!
From the information I gathered on the web, I built a specification of the communication protocol. And from that specification, I built a Java Model of the device. I used that model for about one month until the actual GPS Data Logger arrived. Aside from a few small problems, the initial version of BT747 did its work.
I discovered that the 'official' application from Transystem had bugs and that data conversion was not really handy. Further, having the device at hand, I was able to detect more of the NMEA packets available and implement all those advanced feature that the manufacturer did not share with us.
BT747 got stuffed with features, but a lot of people labeled it as 'ugly'. Considering that it had to work on handheld devices and on the desktop, I did not have a lot of choices. BT747 was already available for PCs, Linux, MacOS, Palm and PocketPCs.
While building the app, I took care to keep my possibilities open for future extension to other Java platforms. While it did require some work to separate the 'system calls' out, I succeeded fairly well and a prototype of the Desktop application saw the light.
I hoped to get some help from other people to build the Desktop version and initially another volunteer started on another GUI version. That never got finished. Later, somebody else had plans to integrate BT747 in JOSM, but that also got stuck. I did get some usefull help along the way: users reporting problems and trying the solutions. Dirk Haase has been a big contributer in documenting the application for the German Community and in providing feedback on the application, especially during the development of the Desktop version where I coded and Dirk tested.
Finally, in the August 2008 timeframe, I started working on the Java version for mobile phones (J2ME). A lot of people have a Java Capable Phone today so that would be interesting - and I got one of those too in the meanwhile. It did not take too long to get the main features (download and some configuration) up and running. The core code still is the same, but the system layer and the GUI layer is very different.
After that, I took on the challenges of 'finishing' the desktop version and creating a 'command line version'. The desktop version proved to be quite some work - mainly to get the GUI right. Netbeans does not handle the big files it created very well.
Anyway, the application now probably runs on more than 50% of the platforms in use today.
If I tell you that this is my first Java program, you probably do not believe me, but it is true! I produced about 60000 lines of source. I do it for fun and to give something back to the community that provided me with a lot of other freeware in the past.