First, we start with the PakTrakr. I don't know why they hate the letter c so much; must have had a bad Sesame Street experience... This device measures the voltage on each battery in the system, battery pack temperature, current draw while in use and alerts when any reading goes out of spec. These are all of the values you need to know your % of charge and, after a few trips, your full-charge driving range and remaining driving range. The unit comes with a dashboard mounted display that does the job, but screams out for a sweeter display.
Where the awesomeness really comes in, is the PakTrakr has a serial port output. It spits out a CSV (comma separated values) data stream each second, with all of the relevant data. If I had a computer of some kind that read the data and displayed some graphs, that would be perfect. I did some investigation of "car PC" equipment and found most people go for a tiny PC with an LCD display. Of course, these car PCs normally have music, GPS, video, cellular telephone and other features included. I wasn't sure I wanted a dedicated, expensive device so I started thinking about using one of the new generation smart phones as my computer. Most phones have a USB connection and I can easily convert the PakTrakr's serial cable to USB. Writing an app that reads the USB port, parses the data and displays the graphs gets me what I want. There is one downside - I would have to plug the USB cable in each time, and hack the wire to deliver +5V to keep the phone charged. I suddenly realized that smart phones have a wireless Bluetooth facility, and I found serial-cable-to-Bluetooth adapters on the web. So all I need to do now is to write code that reads the Bluetooth connection, and I don't have to be hardwired into the car!
Now what phone to get. iPhone is the obvious choice due to market popularity, but frankly there are a couple of problems writing apps for the iPhone. First, you have to develop your code on a Mac, nothing else. I don't have a Mac or Mac development skills, but I'm willing to leverage my Java skills to get me where I need to be. The second problem is the bizarro-world of iPhone app approval. I don't like the way Apple is handling this, in typical mysterious we-know-what's-best-for-you style. So iPhone is out.
This leaves an Android-based phone. Android is Google's open-source Linux-based smart phone operating system and development platform. The whole operating system is completely open source, apps are written in Java, and there is no "approval process" for apps that developers write. Sounds like this solution is for me! There are several Android-based phones on the market now, and the latest is Verizon's Droid phone. I played with it at the store the other day and it's just beautiful and feature-packed. I installed the Android 2.0 development kit and there is support for reading Bluetooth serial port sockets. Now I just have to switch from T-Mobile to Verizon, sign up for the plans and get a Droid.
Aha! Another big project! I will visit this blog to see the progress every week.
ReplyDeleteBen, great to see you've found my little project! How are things in China?
ReplyDelete