This article provides some general guidance and advise on connection technologies used by sensorial accessories like GPS, OBD, and video. The article covers both the iOS and Android platforms. Please note this can get a rather complicated topic with many exceptions and caveats. This is the reason, I will start with a simple description and go into the details later. Problems connecting to external accessories are frequent and can be quite cumbersome - this article is to provide some help to you!
In case you are not too interested in the story behind, please visit our two compatibility pages listed below. However, in case you want to connect more than one accessory at a time, reading the details below is almost mandatory
Overview and Pros/Cons:
Wired / Plugged-in: the most obvious connection technology is using some cables / plugs to connect smartphone and accessory directly; wired connections are the most reliable and fastest connection technologies - but rarely used nowadays; the connection is mostly some serial protocol like that used in the USB standard; any wired connection made to an iOS device needs to be certified by Apple (Mfi = Made for iPhone program) and use either the outdated 30pin adapter introduced years ago for iPods and the recent, convenient, and expensive Lightning adapter. Android devices utilize the USB standard (including plugs) which can be accessed by any app that is prepared to do. Another advantage of wired connections is that it is possible to charge both the accessory and the smartphone using one cable. An example for this configuration is any iPhone up to the 4S and the Emprum Ultimate GPS. It is plugged into the 30pin port and provides an USB port to charge both the accessory (as far as necessary) and the iPhone. Disadvantages are wired connections are one to one connections and effectively limit connections to one accessory (assuming you do not want to run around with some kind of hub). As most recent GPS and OBD accessories are not wired, I will not go into more details here.
- Pros/Cons: fast, reliable, adds cables to your car, combined charging / connection, plug compatibility, limited availability, one connection only
Wi-Fi (IEEE 802.11 standards): all known smartphones can connect to one Wi-Fi network at a time; usually used to connect to some Internet routers for broadband communication, Wi-Fi can be used to connect to Wi-Fi supporting accessories too. Wi-Fi is not designed for typical smartphone/accessory scenarios and has several limitations you need to consider: Wi-Fi requires comparably much energy and drains your battery. Connections are limited to one counter part - which is not a problem as long the counter part is a router dispatching connections to other stations. It is getting a limitation as soon as the counter part is an "end point" - like all accessories. The most prominent example - where this limitation is getting obvious - are GoPro cams (HERO3 etc). Once you are connected to the Wi-Fi created by the cam, you are not able to connect to a second cam or another accessory (e.g. an Wi-Fi based OBD dongle). Again, there are certainly hub / router solutions - but they is too complicated to carry around. Advantages The advantage of Wi-Fi is it is pretty versatile and "open". This is making it easy for accessory manufacturers to provide cross platform support without dealing with Mfi programs et al. Wi-Fi comes at two modes of operation: In ad hoc mode, mobile units transmit directly peer-to-peer. In infrastructure mode, mobile units communicate through an access point that potentially serves as a bridge to other networks and allows connection of many devices. Most OBD accessories operate in ad hoc mode - which limits their use to iOS devices. Android does not support ad hoc network connections (solution to work around, require rooting).
- Pros/Cons: configuration required, versatile and open, limited for Android, energy consumption, not reliable (wifi conflicts), one connection only
Bluetooth: wireless connection technology designed specifically for low power mobile devices. Like Wi-Fi, all smartphones support some type of Bluetooth connection; using Bluetooth, a smartphone can make an arbitrary number of connection to Bluetooth accessories at a time. Connection making includes a authorization / authentication step named "pairing". Once a smartphone is paired with a Bluetooth accessory, both devices are trusted and can talk to each other using some services (profiles). When talking about pros/cons, Bluetooth is the best deal in theory (except the charging topic - you need to take care for all devices individually). In reality there are some limitations noteworthy: bandwidth is more limited than for the other technologies named, and all known Bluetooth stacks (the service that provides the connection technology to apps) suffer from problems - more or less. Finally, access is controlled by the Mfi program for iOS - which requires accessory manufacturers to certify with Apple again. This is the reason you cannot connect an arbitrary Bluetooth device to your iOS smartphone but need to stick with Mfi accessories.
- Pros/Cons: pairing required, convenient to use, not reliable (stack, conflicts), multiply, parallel connections, restricted to Mfi on iOS
Bridging Sensors to Harry's LapTimer:
Connecting an accessory to your smartphone makes it available to the platform, not necessarily an individual app. There are two types of bridging an accessory connection to Harry's LapTimer: either the accessory's services are made available to any app by the operating system, or Harry's LapTimer connects to the accessory directly. Connecting an accessory directly is usually the preferred type as it allows specific support of features and often results in higher reliability and predictability; on the other hand, it is an additional effort I need to take and requires some some investment.
Mfi (made for iPhone) has been named several times above - mostly as a restriction. But this is certainly not the whole story: firstly, certification is a type of quality assurance and chances are good iOS and the accessory will be well integrated; furthermore, Mfi bridges accessories to standard OS services, namely the Location Service: once you connect a Mfi GPS accessory to the device, the internal GPS will be turned off and any location information requested by any app will be sourced from the external (better) GPS. Opposed to this, one needs to add some helper apps on Android. This helper apps connect to the accessory (e.g. an arbitrary NMEA0183 GPS) and feed the information into Android location stack. Disadvantages are many: LapTimer relies on another app, the user is forced to configure another app and even enable some developer options (Allow mock locations), and some information is filtered and not available for LapTimer any more. The good news is LapTimer comes with direct integration for GPS accessories on Android as well as for several high end GPSes on iOS. So what are the take aways?
- Android: to install direct integration for OBD and GPS accessories on Android, follow the step-by-step description in the bottom of the Android Compatibility Guide on Harry's LapTimer; important: turn off helper apps you may have installed on your smartphone as they may conflict with LapTimer's access to the accessory!
iOS: bridging will work automatically; accessories supporting direct integration will show up in LapTimer's Sensor List and provide extra features; Mfi accessories not supported directly may get available through Mfi services. For the details, please check iOS Compatibility Guide on Harry's LapTimer.
OBD and video accessories require a direct connection as they do not represent standard OS services. So before adding one of these devices, check the compatibility pages!
Details and Caveats:
Starting with Wi-Fi accessories, there are several things that can make life difficult: the limitation to one connection to a Wi-Fi end point at a time does not allow the combination of e.g. a HERO3 and an OBD Wi-Fi dongle requiring its own network setup. So the take away here is you need to plan your accessories from the beginning and Bluetooth / wired connections should be preferred if possible.
- Exception: the OBDLink MX Wi-Fi allows joining an existing network - like the one created by the GoPro. This is better than nothing, but keep in mind it is complicated: e.g. you need to switch configuration - if the HERO runs out of battery...
Smartphones are designed to connect to the Internet in a convenient way. This means they will constantly search for known networks and switch silently. So you may have a connection to your Wi-Fi OBD dongle and come back to the pits: if e.g. you were connected to an Internet hot spot before, chances are good you will have lost the OBD connection when leaving the pits for the next session...
Another issue - common to both Bluetooth and Wi-Fi are multiple smartphones connecting to the same accessory. Most Bluetooth accessories and all ad hoc Wi-Fi dongles will be able to connect to one smartphone at a time. In case you are like me and use lots of devices - chances are good a connection issues is due to some other network participant disturbing a connection. So the take away here is to turn off any wireless service as long as you do not use it... This item by the way is the most frequent issue I personally run into.
- Exception: Dual's XGPS160 can provide data to several smartphones at a time. Although this is not recommended either as it uses up double the bandwidth, you at least will see there are multiple connections using connection LEDs on the top of the device.
Drop outs in Bluetooth connections are often due to some Bluetooth devices searching for peers (discovery mode). The most frequent source for problems (besides your co-driver's smartphone), are hands-free audio devices built into your car - they are a pain. To better understand what is going on: once connections are made, multiply Bluetooth devices can communication nicely side by side. The problem appears if one device searches for peers and switches to discovery mode: all available bands are scanned and any communication going on will be interrupted. This is critical for OBD Bluetooth dongles in particular as the data sent has no time stamp included. So once data arrives (probably late for seconds), LapTimer has no chance to align the data to the (well timed) GPS stream again.
This by the way is the reason you may see LapTimer not connecting to a second Bluetooth accessory on Android: once you have e.g. a Bluetooth GPS connected and drive, LapTimer will not search for an OBD BT dongle. This is simply to not create drop outs. To connect two Bluetooth devices at a time - establish the connections while in the pits - standing still (0 km/h or mph).
A lot of text again, but I hope it helps!