Ublip Foundation and Agile Development

by Byron Appelt

Random Thoughts, M2M, Products No Comments »

Here at ublip, we are fans of Agile Software Development. Although we don’t follow any particular flavor to the letter, we definitely like to work in short iterations with a usable product at the end of each one. Shortly after releasing our Ublip Foundation product it occurred to how perfectly suited this product was for agile development.

When you order a Ublip Foundation Instance and at least one device, you get an end-to-end functioning application on day one. We provide you with all of the source code for the web application. What better starting point is there for the first iteration in an agile project? Usually the first iteration or two of projects that involve as many separate components as an M2M application are difficult because it is so hard to achieve end-to-end functionality without a lot of mocking up or an unusually long iteration in which case you tend to lose a lot of the value of the agile development methodology. But with Ublip Foundation, those problems are gone. The application is not exactly what you want, but it is already working; device, network, carrier, webapp, everything. And it is easily customized in small development iterations to get it to where you want it to be.

If you can’t or don’t want to do the development yourself, Ublip Professional Services is there to do it for you. We can do customizations in small chunks, usually 1 week of work at a time. At the end of each iteration, you get a functioning application and you have no commitment to do any more work. You can even decide to switch to an outside development team if you like. We will, of course, work with you to estimate the total size of the project. And we will do a fixed price contract for everything if that’s how you want it, but we really believe that the iterative approach reduces risk for both sides since it is easy to make adjustments for whatever reason.

Comparing iPhone’s GPS to a Real GPS Tracking Device

by Dennis Baldwin

GPS, Random Thoughts, iPhone 4 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?

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.

The 700MHz band in details

by Austin Mills

Random Thoughts No Comments »

Heard a lot about the FCC’s 700MHz auction but want more details about what exactly is being auctioned? Phonescoop has a great article on the 700MHz band, and how Verizon, AT&T, and others benefited from it.

Is LoJack better than GPS tracking solutions?

by Austin Mills

Random Thoughts 5 Comments »

I get asked this somewhat often (usually by friends who know I work at Ublip and are getting a new car) but I didn’t really know enough about LoJack to answer, so I decided to look into it.

LoJack is not a vehicle tracking system, in the sense that you couldn’t use it to find your vehicle yourself, or figure out where it’s been. It is instead a vehicle recovery system. In the LoJack system, a car has a LoJack transmitter inside it. In normal use, that transmitter will transmit a signal on frequency 173.075 MHz every 10 seconds. When the car has been stolen, the owner calls LoJack, who then sends out an activation signal from one of their base stations. After the car receives that activation signal, the transmitter will now transmit a signal every second instead of every 10 seconds. This will alert any police car or helicopter with the LoJack system installed whenever they are within the 2-3 mile range of the transmitter’s signal, and tell the police which way to go to get to the stolen car, allowing them to track it down and recover it.

This system has been around since the late 80s, and can be very successful in recovering your vehicle if you’re in an area where LoJack is effective. Unfortunately, since the system depends on equipment installed in police vehicles, their coverage area is dependent on which state or local agencies decided to sign up with LoJack. LoJack has full coverage in only three states (Mass., NJ, and RI) and in other states it’s dependent on which county you’re in. If the thief takes the car to a county that doesn’t have LoJack in their police cars, then LoJack will be unable to recover it.

Also, as it does depend on a police vehicle passing nearby, it’s possible that the car thieves (some of who can completely strip a car in under an hour) will have already taken everything of value by the time the car (or what’s left of it) is recovered.

So how does it differ from GPS tracking systems?

Functionality:  LoJack is only useful when your car has been stolen. Most GPS systems allow you to at the very minimum actively locate your car (log into a webpage and query for the current location) and others allow tracking (keeping a historical record of where your car has been as well as where it is right now).

Coverage:  LoJack has a limited coverage area, based on whether the local police force has the equipment in their vehicles. GPS tracking systems generally use either cellular or satellite networks to communicate their position, and have coverage depending on their chosen network.

Signal Reception: The LoJack signal can be used by police to report a vehicle’s position from 2-3 miles away, even if the vehicle is inside or parked in a parking garage. GPS-based tracking systems generally require the vehicle to have a clear view to a decent portion of the sky (although some are able to use locations of cell towers they communicate with).

Cost: LoJack is (depending on where you buy it) anywhere from $600 to $1000 (one-time cost). A GPS tracking solution will generally have a lower initial cost, but will likely include a monthly fee due to the airtime charges from the cellular or satellite carrier. As they send more data, tracking services (seeing where a car is and where it’s been) will usually cost more than locating services (only finding where it is now).

So… is LoJack better than GPS solutions? If the only thing you’re interested in is recovering your car after it’s been stolen, then probably yes. However, by trading off a little bit of that theft-recovery capability, you can get a GPS-based tracking solution which offers you the ability to know where your car is, where it’s been, whether the car was speeding, etc… and also be notified in multiple ways when a car enters or leaves certain areas (like your house, or your teenager’s school).

If I’m only going to get one of the two, I find the GPS system much more compelling — it can potentially help recover your car if it’s stolen and provides you a useful service all the time until that happens.