Comparing iPhone’s GPS to a Real GPS Tracking Device

by Dennis Baldwin

GPS, Random Thoughts, iPhone 2 Comments »

In a couple of previous posts I used the term “iPhone GPS” and then went on to describe that it’s accomplished through doing cell tower triangulation. Let me state that I’m well aware that there’s no GPS chip inside of the iPhone, but for the purposes of my posts I state “iPhone GPS” meaning that the iPhone can get it’s current position (regardless of whether it uses satellites or not). Okay, with that being said I’d like to share some more of my recent discoveries.

Previously, I stated that the iPhone is not a viable solution for GPS tracking for several reasons. Right now, I’d like to ignore the current limitations of the OS (app can’t be started automatically and run in the background) and focus on retrieving the device’s current location. This is done with limited accurancy, but I’ve explicitly coded our iPhone tracking application to provide the most accurate readings as possible. There’s also a property that can be set to tell the device to report continuously when it moves.

If you’re unaware, we sell GPS tracking products for small fleets and families. All Ublip employees have a fleet tracking device installed in their car and we track each other 24/7 (because we’re geeks like that). This morning as I drove to work I decided to compare the accuracy of the iPhone’s GPS to our fleet tracking device. The Ublip fleet tracking device reports several times a minute while moving and I only let the iPhone report once/minute. This was done manually so there were a couple instances where I missed the mark. When I got to work I logged into our web application and compared my car’s breadcrumbs to those of my iPhone. Here are the results:

iphone_tracking.gif

The red blip represents our office, where my trip ended. You can see the consistency of reports (evenly spaced) from our fleet tracking device, while the iPhone was somewhat spotty (due to human error). At a quick glance you’ll notice that the breadcrumb trails in both cases are very similar. We’ll be working to continuously improve our iPhone tracking application as well as continue to test against a more accurate and reliable device. With that being said I’m more optimistic about the possibilities of using the iPhone as a GPS tracking device, but this is only one part of the equation. There are still many, many things to figure out.

What do you think? Based on the image above does the iPhone provide enough detail for the types of applications you would use?

More on iPhone GPS Tracking

by Dennis Baldwin

GPS, iPhone No Comments »

I recently posted about using the iPhone as a GPS tracking device. After doing more testing today I’ve come to the conclusion that using the iPhone (in its current state) for a traditional fleet tracking device is out of the question. Let me explain by first providing a visual:

ublip_iphone1.jpg

The first thing you’ll notice is that the speed as displayed by our GPS tracking system is zero. The iPhone uses cellular triangulation to estimate the device’s current position. With that being said there’s no speed information that is accessible from the CoreLocation API. That doesn’t necessarily mean it can’t be done, but currently its next to impossible.

If you look at the map image you’ll see a bunch of blips within a 2-3 mile radius of my house. I drove around today and frantically pushed the “Update Location” button within the Ublip iPhone application. You can see there’s no way to discern a real route between location readings. I had the thought of using Google’s directions API to get a route between two points, but I’m skeptical this will provide the level of detail necessary. I’ll be sure to post my findings once I run a few tests. Overall, the accuracy of location information isn’t bad if you need to know the whereabouts of your iPhone (or iPhone owner) and there’s still a few things I’ll be testing to improve the results.

I can think of a few circumstances where knowing the vicinity of the iPhone can prove useful, but most are consumer or socially oriented:

- Knowing the whereabouts of my friends and family

- Searching for businesses/information within a vicinity of the iPhone

- Geocaching: finding geocaches within a vicinity of the iPhone

- Publishing location information from the iPhone to FireEagle (this ties into the first item listed above)

- Geotagging: taking a photo and sending the whereabouts of the photo to Flickr (although there are more accurate ways to do this)

Those are just a few appliations that come to mind and I’m sure there are several others, none of which rely on GPS accuracy to the meter. I’ll be experimenting with sending location data to the Ublip system on an automated interval and share my findings here. For now I can press the “Update Location” button on a one minute interval while driving to work. 1, 2, 3, 4, 5…..60 press. 1, 2, 3, 4, 5….60 press.

The iPhone as a GPS Tracking Device (A Developer’s Perspective)

by Dennis Baldwin

GPS, Random Thoughts, M2M, iPhone 4 Comments »

It’s been a while since I’ve been heavily involved with mobile phone development. About 5 years to be exact. During that time I’ve hacked all sorts of projects together in search for the ultimate GPS tracking phone. One project was called BlueGPS for both Symbian and Windows Mobile. Both of these mobile GPS apps depended on an external Bluetooth GPS receiver. There are many other devices that have built-in GPS receivers, some of which I’ve programmed, but most have limitations. One of the more capable devices was the basic Motorola i415 that runs on the Boost Mobile network. This phone is programmable in Java (J2ME) and costs a mere $29 with no contract. This should be a sign of where the industry is headed when you can get a mobile phone with GPS capabilities for such a nominal fee.

The main reason behind this post is to evaluate using the iPhone as a GPS tracking device. As you’re probably aware, Ublip sells low-cost GPS tracking solutions with a focus on simplicity. Our goal is to provide a Foundation that makes it simple to integrate practically any GPS tracking device with our core software stack. The term Foundation (with a capital “F”) is a product that we’re getting ready to publicly launch and we believe it provides tremendous value to any developer or organization building location based M2M applications. For more details on our Foundation check out this post.

Over the past couple of weeks I’ve been dabbling with the recently announced iPhone SDK. I’m a Mac fanboy and purchased the iPhone to help minimize the number of devices I carry around in my backpack (phone, iPod, GPS receiver, digital camera, and PowerBook). With the latest version of the iPhone firmware all iPhone users have the ability to triangulate their current location using cellular towers and WiFi access points. It’s not true GPS, but for a lot of applications (such as location based search) it’s good enough. So when I downloaded the SDK I was optimistic that Apple would expose the iPhone location API to developers. Thankfully, my assumption was correct.

Downloading the SDK was a beast. A 2GB beast. After my 8 hour download (mainly because Apple’s servers were getting hammered at the time) I had the installer sitting on my desktop. My first hurdle was the fact that the iPhone SDK was designed to run on Intel based Macs. Unfortunately, I purchased my PowerBook in 2005 and was frustrated that I didn’t have the latest hardware to run the iPhone SDK. If you’re a Windows developer then you had better switch or continue developing J2ME, Windows Mobile, and Symbian applications. The thought of having to spend $2,500 to upgrade to a MacBook Pro was out of the question, but the thought definitely crossed my mind. Luckily I stumbled across this great blog post about running the iPhone SDK on a PowerBook. About 4 hours later my iPhone dev environment was up and running.

At this point I was a bit skeptical that anything would actually work since this was an unsupported hack. But lo and behold, I was able to compile and run the good ole “Hello World” application in the iPhone simulator. As with any mobile phone development project the next logical step was to see the actual application running on the device. There’s something to be said for the instant gratification you get when holding a mobile phone in your hand with the application running on it (even if you only changed one line of code). I quickly found out that developing on the real device costs money and requires Apple’s approval. The registration fee is nominal ($99 for developers and $299 for enterprises), but the approval process takes time. Just this past week our application was approved and we now have the ability to deploy applications to our company iPhones.

During the beta period Apple limits developers to test on five iPhones. I think this is due to the fact that you have to reflash the iPhone with the beta version of the 2.0 iPhone firmware. So I went through this process, which scrubbed all the data from my device (not a big deal since everything was backed up in iTunes). There are some nifty enhancements to the 2.0 iPhone OS, but I won’t go into detail right now. After loading the new firmware, signing the application, and creating a provisioning profile for each iPhone, I was able to load the “Hello World” application on my device. Instant gratification.

The next logical step for me was to figure out how to integrate the iPhone with our web-based GPS tracking software. After several hours of hacking (spanning multiple evenings), learning a bit about Objective C and Xcode, I was able to get my iPhone integrated with the Ublip system. Now when I’m on the go I can report my location to our system just like any other GPS tracking device (Enfora, Orbit One, Digi, and CalAmp to name a few).

After getting the data into the system I was interested in seeing the accuracy of the location reading. If you look at the image below you can see the blip my iPhone reported (the one with the bubble window), while the blip below and to the right represents my actual location (as reported by my car). So the accuracy is within a couple hundred meters. Not too shabby. You actually have control of the accuracy through the iPhone CoreLocation framework, but for testing purposes I set this to 100 meters.

ublip_iphone.jpg

As for using the iPhone as a GPS tracker I think we’ll need to tweak, test, tweak, test and possibly wait for the next hardware version, which could possibly have an internal GPS receiver. Or maybe they’ll find a way to provide better accuracy using WiFi access points. There are a few other limiting factors that I’d like to point out:

- 3rd party applications developed for the iPhone cannot be run in the background
- When a user presses the home button on the iPhone the application is automatically terminated
- 3rd party applications cannot be automatically started when the iPhone boots

The reality is that each of the items mentioned above are essential for any successful GPS tracking application, but can be addressed in a future firmware update. That’s one of the beautiful things about the iPhone platform: a majority of limitations can be addressed in software. I’d also like to point out that all location readings that I’ve generated from the iPhone have been indoors. Because of using cellular and WiFi positioning technology the device doesn’t need a clear view of the sky. All in all, the iPhone SDK has tremendous possibilities and we’ll be working hard to tightly integrate it with the Ublip system.

If you’re interested in becoming a beta user of our iPhone application feel free to contact us our post a comment below. Also, if you have any suggestions on what type of location based applications you’d like to see on the iPhone then please feel free to share your thoughts.

GPS Tracking for Red Birds

by Dennis Baldwin

GPS, Random Thoughts 1 Comment »

The title may be deceiving, but it did cross my mind. We have a Cardinal that has been hanging around our house for the past couple of days and it would be interesting to know if it was the same one that was INSIDE our house this weekend. If you watch the video below you’ll see that I could have easily installed our portable GPS tracking device on the bird. Yet even if I had installed our portable tracking device, which weighs less than a pound, it would have prevented the Cardinal from going anywhere. This reminded me of the pigeon tracking project we saw at the Where 2.0 conference last year.

UPS Didn’t Ask For GPS Package Tracking, But They Got It

by Dennis Baldwin

GPS, Products, Bidness 1 Comment »

About six weeks ago our MacBook Pro was stolen by a UPS employee during transit. At least that was our suspicion, but evidence points out that it may have never left the UPS store. Either way, I’d rather not lament the fact that it’s gone and last week we decided to have a little fun. UPS is a mammoth company and there’s a chance they’ll never know (or care) about the fact that our MacBook Pro was stolen by a UPS employee. This is a story of how a little tech company took the power into their own hands.

It all starts with another little M2M company in Austin called Critical Wireless. Critical is a partner of ours doing some very interesting things in the remote data acquisition space. They came to us and asked if they could have access to an instance of our off-the-shelf GPS fleet tracking solution for one of their customers. I suggested we ship them a couple of our portable tracking units that are battery operated and about the size of a pager. During our conversation I asked Critical if they would have any objections to leaving the units on during shipment. This would allow them to track the package in realtime as it traveled from Dallas to Austin. Now that’s what I call service!

I mentioned to our packaging department to leave the shipping boxs open so that I could pull out the GPS tracker before I took it into the UPS store. My reasoning was that I would need to give it a clear view of the sky to get a fix. As I drove to the UPS store I called a friend and had him log in to our web-based GPS tracking system. He immediately said to me “I can see you and you’re speeding!”. At this point I was a bit more optimistic that we might get a few readings while the GPS tracker sat boxed in the back of a UPS truck. Here’s a screen shot showing a few blips of my drive to the UPS store:

ups_tracking1.jpg

As I pulled into the UPS store parking lot I took a few photos and got everything ready to go. Here’s a pic of the store (yes this is the same store we shipped the MacBook Pro from) that was going to be “blessed” with our technology:

ups_tracking2.jpg

Here’s a pic of the GPS tracker before I put it in the Ublip product box:

ups_tracking3.jpg

and another with the GPS led on:

ups_tracking4.jpg

I apologize for the quality of these pics as they were taken inside of my car with an iPhone. Here’s another box photo and let me explain the purpose of this pic. Our GPS trackers normally ship inside the nicely designed product box and then in another shipping box. So I’d like to point out that the tracker is already inside two boxes before it gets put in the back of a UPS truck:

ups_tracking5.jpg

I went into the UPS store and dropped off the box to be shipped via ground. As I left the store I started thinking of all the technical obstacles that would prevent us from ever seeing any data in the Ublip system. for one, there are concerns of battery usage since our devices are configured to report several times a minute. The other was the fact that the box would be sitting in the back of a UPS truck, which is essentially a metal container. I did come to later find out that UPS trucks have some sort of window on top of the truck.

On Saturday morning I get an email from Jeff with screen shots of the device traveling down I-35. The amount of data and resolution was incredible. Here’s a screen shot of the truck in Temple, about an hour north of Austin:

ups_tracking6.jpg

After a long, hard day of work the GPS tracker stopped for a little R&R at the UPS facility on Tuscany Way in Austin (at a little after 6:00 PM). You can see the address within the Ublip system labeled as 9012 Tuscany Way, Austin, TX:

ups_tracking7.jpg

After digging around on the UPS site I came to find out that there is indeed a location at this address, but it’s actually 9020 Tuscany Way. Close enough!

ups_tracking8.gif

The GPS tracker honored the Law of the Sabbath and did no work on Sunday. On Monday morning it began the work week in full effect and arrived at its destination. You can see where the tracker left the Austin facility and made it’s way onto Loop 1:

ups_tracking9.jpg

During the three day process there was tremendous excitement from both the shipping end (Ublip) and the receiving end (Critical Wireless). I never thought our little experiment would actually produce such interesting and accurate data. We have information regarding their routes, speed, stops, and other interesting data points. What’s even more interesting is the fact that UPS had no clue. Our intention was not to do anything mischievous, but to determine if there would be use of our service in this industry as well as find ways to protect ourselves when shipping valuable goods.

The lesson for me is simple. The technology exists to create better customer experiences and provide information to users in realtime. A perfect example is the fact that just today I was waiting the arrival of my belated birthday gift to myself. I went to the UPS site this morning and the shipment was out for delivery at 7:30 AM. I then proceeded to visit the site about 10 times throughout the day until I saw it was delivered at 5:30 PM. Yes I was a tad bit obsessive about this gift. How inefficient.

The other lesson I learned is that we should have used our own product when shipping the MacBook Pro a few weeks ago. How sweet it would have been to analyze the data for any exceptions to the normal shipping routine and possibly find out where the notebook was stolen.

Have you ever been in a situation where you wanted to know the whereabouts of a shipment in realtime? Or did you lose something valuable during the shipping process? We’d love to hear about it.