Saturday, January 9, 2010

Launch of Development of the PakTrakr application

Sorry for the long wait between posts.  I spent a week at the insanity called Disneyland, then had a very relaxing week between Christmas and going back to work on January 4.  I didn't do any physical work on the car in that time, but I did spent a lot of time on the development of of a program that reads the data out of the PakTrakr battery monitoring system that I'll be buying later on in the process.  The PakTrakr has a small dashboard display, but it also outputs a data stream each second on a serial port.  My idea is to read that raw data and build an application that would show the data in an improved manner, and also derive important user information like distance to "empty".

See this blog post for the details on my choice of device.

I first had to download and install the free software development kit.  Then I started playing with sample code, and slowly build up the features of my application.  After a couple of weeks of learning, searching and experimentation, I've got a lot of stuff done.  I ported the PakTrakr parsing code from Doug Teeple.  I then built the application skeleton based on a series of tabs.  The first tab will exploit the GPS and mapping functionality to track the progress of each trip:

The next tab will show the readings of the battery pack as a whole, in analog gauge format.  I couldn't find any gauge controls in the Android toolkit or on the web, so I wrote my own.  There's a Percentage of Charge gauge, pack temperature, pack voltage and another custom gauge I wrote that shows the flow of current into the pack during charging, or out of the pack during driving:

The next tab will show the details on each battery in the system, with voltage readings and any errors:
The next tab will show a list of current and past problems with the batteries.  I'm still working on that so there's nothing to show.

The last tab will show the settings controls.  Right now, most are used only during development of the code, but others will be used in the course of running the app during driving and charging.

More updates on the code as things progress.