SpeedFreq / WifiLapper FAQ

SpeedFreq / Wifi Lapper Q&A

What is SpeedFreq / WifiLapper?

  • SpeedFreq is an updated version of the venerable Wifilapper lap timer described below. It contains a much improved GUI, bug fixes, plus many enhancements to the Android application. SpeedFreq Home Page
  • WifiLapper is a GPS-based lap timing and data logging app for Android phones intended for endurance car racing. Most uniquely (at least for things costing less than $30k), WifiLapper is capable of transmitting your

    lap times, speed-distance traces, and OBD2 data to a pitside laptop via a Wifi or cellular connection from the racing car. WifiLapper also stores your lap data on the phone, and it can be analyzed later.  Car to pit data transmission via Wifi has been successfully tested in actual racing conditions in a 1993 Civic, 1992 325i, and an early-90s CRX.

Do I need a phone/data/text plan to use SpeedFreq / WifiLapper?

  • No.  There are some features that use text messages for communication, but they're optional.  The author of WifiLapper (me!) is legendarily cheap, and didn't want to spring for a data plan, and didn't want anyone else to have to, either.  An android phone with working GPS is the bare minimum that is required.  Data transmission (optional) occurs through a normal consumer router, not through a cell network.
  • As of version 1.28, data transmission can also happen through a cell network, if you've got the benjamins to spring for a data plan.  You should be able to transmit to any internet-accessible computer from the car.

Where can I get WifiLapper?

Where can I get the Pitside Data-Viewing Application?
  • Right here. (Windows PCs only for now.  Probably works in virtual machines on a mac or linux)

What is the minimum I need to run SpeedFreq / WifiLapper?

  • At its most basic, SpeedFreq / WifiLapper only requires your phone. It will display your lap times, your real-time time-slip (how far ahead or behind of your best lap you are), or a few 

    other display types. You can step up to the full SpeedFreq / WifiLapper experience by adding a high-rate GPS, bluetooth OBD2 reader, and a wifi setup or data plan in the pits.  Even without a pitside laptop to receive data, you can use the Pitside app to analyze data later.

What Phone do you recommend for using SpeedFreq / WifiLapper?

  • SpeedFreq / WifiLapper's development was done on a Motorola Droid 2 running android 2.3 and a Samsung Galasy SIII. Our beta testers are running an LG Optimus 2X (2.3) and a Sony-Ericcson “Anzu” (2.3) and haven't had any problems. Rumours on the internet are that some HTC phones don't have the proper bluetooth stack for the GPS and OBD2 features, so I might avoid those until confirmed otherwise. Some future features I'm thinking of (heart-rate monitor support or bike-computer support) will require ANT+, so you might want to get one that supports that. 

Does this thing do 2-way transmission too?

  • You can text WifiLapper with a special text message (must be prefixed with your privacy prefix, which defaults to "wflp") to display a message for the driver.  When the driver taps the screen to clear the message, you can optionally have WifiLapper send a SMS back to you to inform you the driver got the message.  
    • For example, you might send "wflpBlack flag, pit now" and it would show up as "Black flag, pit now" to the driver.  When the driver taps the screen, you would receive "Driver acknowledged 'Black flag, pit now'" on your phone in the pits, letting you know that the driver got your message.
  • One of our beta testers has tried leaving his phone on auto-answer and using a bluetooth headset, and that works for him (but requires the racetrack to have cell reception).
  • SpeedFreq does not have this capability.
Can I just use a pre-existing webserver to store data instead of hauling my laptop to the track?
  • One of our forum users is running Pitside on a webserver.  You can check it out here:  Also, if you want to use that as a server for SpeedFreq / WifiLapper and have a data plan, just point your phone at when setting up WifiLapper/SpeedFreq. You can retrieve the data using any web-enabled device that is using an HTML5-compliant browser by pointing to


How do I set up the Wifi data transmission feature?

For a 60-second video of these instructions, click here.

  1. Install the Pitside application on your laptop and run it. If Windows asks permission to let it through the firewall, allow it. SpeedFreq / WifiLapper uses TCP/IP port 63939 to transmit its data (but you hopefully don't need to know that).  Start Pitside (if Pitside is already running, the auto-find feature on the phone will work)

  2. Set up your router and get your laptop connected to it.  We recommend a WRT54GL due to its replaceable antennas and nerd-friendly firmware.  Pictured is a WRT54GL with +9dbi omnidirectional antennas.

  3. Connect the phone to the router through the android wireless manager and make sure all the security settings are working properly.  If the router has internet, try to browse to a webpage to make sure everything is working.

  4. Start SpeedFreq / WifiLapper on your phone.

  5. In the “New Race” screen, select your network's SSID (network name) from the drop down box.  Wait for a message indicating that the phone is connected to the network.

  6. Click "auto find IPs" and select your PC's name when it shows up. If you are unsure, click help->show IPs in the PC Pitside app to find out what its IP address is and enter it manually.  An IP will look like ""

  7. Click apply and go racing! SpeedFreq / WifiLapper will continuously attempt to connect to the router, and when it is in range, new lap data should appear in the pitside application, ready for analysis.

I want to use my data plan instead of this ridiculous wifi router setup!

  • As of 1.28, WifiLapper now supports cellular data plans for transmission.  Simply enter your PC's internet-facing IP (you can get it at whatismyip.com), start pitside, and it should work.  You will need to forward port 63939 through your router/firewall.  For more help, you can check out the forum thread on this feature.
  • SpeedFreq also supports data transmission via a direct internet connection such as a hotspot or cell phone.
"My phone takes too long to connect" or "I'm out of range before my phone connects!"
  • Cgorton on our forums has found an amazing trick that makes any phone rocket-fast at connecting to wifi.  It turns out that most phones only re-attempt to connect to wifi every 45 or 90 seconds (depends on the phone).  You can read it here.
  • SpeedFreq has internal coding modified to optimize for fast connect times without the need for rooting your phone and modifying connection times.

Where should I put the router?

  • The best place to place your router is a few feet from the track, near a slow speed corner to maximize connection and data transmission time.
  • Note: EnduroRacer on our forums has done some research into setting up repeater routers, so that you can widen your coverage area.  You can check out his instructions here.

Can multiple teams share a router?

  • Yes! Just make sure everyone uses a different IP address, or else you might get phones sending lap data to the wrong laptops.

Can multiple teams share a single computer?

  • Yes!  You should be able to get multiple cars transmitting to the same computer using Pitside and SpeedFreq / WifiLapper.  You can switch between cars by going data->switch races within the Pitside application.  Make sure to set the car number in the phone app. There is even the option of collecting lap times for up to 25 different cars at the same time to act as a Hot Laps timing system.

How should I power the router at the track?

  • A small 12V motorcycle or garden tractor type lead acid battery will power your router for at least 12 hours. SpeedFreq/Wifilapper has been used successfully with the Linksys router shown above for 24 hour races with this type of battery. You may need a power inverter if your router requires a voltage other than 12V, and your battery life may be less.

My router broke or I didn't bring one. How do I get at the data on the phone?

  • Method 1: Go to the load-race screen.  Set up the wifi connection parameters (see above), then long-click the race and select "retransmit DB to pitside".
  • Method 2: Export the DB to your SD card (WifiLapper->Import/Export, enter name and export), plug the phone into your PC, and open the .wflp file with the Pitside application.


Do I need a bluetooth GPS unit?

  • Absolutely not. Your phone's internal GPS unit should be just fine. Most phone GPS sensors function at about 1 sample per second, while a bluetooth GPS unit can be had cheaply that samples up to 10hz (pictured).  See the "what to buy" section for details on phone and GPS selection.

What do you recommend for a bluetooth GPS unit?

  • WifiLapper has been tested primarily with the Qstarz BT818XT 10hz bluetooth GPS unit (pictured). Any NMEA-outputting GPS unit should work, but we're certain that the Qstarz will work.

  • SpeedFreq has worked successfully with the above GPS as well as with the Dual brand bluetooth GPS unit. It even has the capability of collecting GPS data through the IOIO board, with the appropriate hardware.

How do I set up my bluetooth GPS unit?

  1. If it's a QStarz, configure it to have VTG enabled by using these steps. Note: SpeedFreq uses the default settings for the QStarz, so no modification of settings is required.
  2. Turn the GPS unit on.
  3. Pair the GPS unit with your phone: Settings->Wireless Settings->Bluetooth Settings->Scan for Devices.
  4. Click on the entry your phone found for the GPS unit and enter the password (try 0000 or 1234)
  5. It should say “Paired but not connected” underneath the entry now
  6. Go to SpeedFreq/WifiLapper, and go to the options screen
  7. Check the “use external GPS” checkbox and select your GPS from the drop-down menu
  8. Go to New Race or Load Race, and go racing!
  9. Note: You can check the update rate of your GPS by tapping on the GPS icon in the racing screen.


What do you recommend for a bluetooth OBD2 unit?

  • WifiLapper has been tested primarily with this ELM327 clone unit. Any ELM327-based bluetooth OBD2 reader should work, but we have been pleased with the price and performance of this unit. Performance can range from 3.5 parameters queried per second (2002 WRX) to 26 parameters queried per second (2010 RAV4). Various sources on the internet say that the more expensive bluetooth OBD2 units like the PLX Kiwi will get higher query rates, but we haven't confirmed that for ourselves yet.

  • SpeedFreq has been shown to work with more ELM327 units successfully than does Wifilapper.

What kind of query rates can I expect?

  • Unfortunately, the OBD2 feature is at the mercy of your car's ECU. Some car's ECUs will take 200ms to respond to WifiLapper's queries (4-5 samples per second), and some will respond nearly instantly (25 samples per second). The result of this is that if your car has a slow query rate, you'll probably want to select fewer parameters to query (in the options screen), and avoid the ones that are only useful at high sample rates like throttle or clutch position. The cars we've checked have broken down like this (all using the same cheap bluetooth OBD2 unit):

  • 2002 WRX: 3.5 parameters per second
    1999 BMW 325: 4.0 parameters per second
    2005 Lexus IS: 4.5 parameters per second
    2000 Ford F150: 16 parameters per second
    2010 Toyota RAV4: 26 parameters per second

How do I set up my bluetooth OBD2 unit?

1. Go to your car. Plug in the OBD2 reader, and turn your ignition to ON (you don't have to actually start your engine)

2. Turn the OBD2 unit on, if it has an on/off switch (the recommended cheap OBD2 unit turns on as soon as your car does)

3. Pair the OBD2 unit with your phone: Settings->Wireless Settings->Bluetooth Settings->Scan for Devices.

4. Click on the entry your phone found for the OBD2 unit and enter the password (try 0000 or 1234). It should say “Paired but not connected” underneath the entry afterwards.

5. Run SpeedFreq / WifiLapper and go to the options screen

6. Tap the "configure OBD2" button

7. Check "use bluetooth OBD2 reader"

8. Choose the OBD2 device you own (the recommended cheap one shows up as "CBT.").  If no devices show up, make sure you've got bluetooth turned on (android settings->wireless & networks)

9. Click "scan device for supported parameters" - after a short while (maximum 30 seconds), parameters will show up.  If it doesn't work, try again.  It sometimes takes a couple tries.

10. Select parameters that you will find useful. Note that each parameter will be queried less often the more parameters you select.

11. Go to load race or new race, and go racing!

How do I tell what my query rate is?

  1. Do the above steps to set up your OBD2 unit.

  2. Go to new race, and start a new race.

  3. Once in the new race, wait until the OBD2 icon indicates it is working (doesn't have a red or yellow icon in front of it), then tap it to get an idea of what your sample rate is. A little message box will appear with the number of parameters WifiLapper is receiving per second.

What data parameters does SpeedFreq / WifiLapper support?

  • SpeedFreq / WifiLapper supports nearly every standard parameter in the OBD2 spec. The only ones it doesn't really support are the ones that are unlikely to change over the course of a race like “fuel type” or any of the bitfield parameters. You can still select them if you're certain they matter, but they'll look pretty funky in Pitside.


What is an IOIO?

  • An IOIO is a little circuitboard with analog inputs that you can connect to your phone via USB.  It has many digital and analog inputs, and you can read up to 5 of them with SpeedFreq / WifiLapper.  You can buy it here: Link
  • Note: although the IOIO claims to be able to power your phone via the USB port, some of our forum users have found that the power supply on the IOIO is not quite up to the task and may break if you try to drive too much through it.
How do I wire my IOIO?
  • SpeedFreq / WifiLapper can sample any pin from 31-39 at any sample rate from 0.1hz to 10hz.
  • It is advisable to use an external 5V power supply for the IOIO board, as the built-in one has been found to be weak, leading to board failures. The image to the right shows a custom power supply, but you can use a USB-type one as well.
  • Wire your sensors to a pin - I am leaving it to the intelligent reader to wire their sensor correctly and not fry their IOIO or sensor.  I can offer no advice (since I fried both my IOIO and sensor)
  • A topic has been started on the forums, where more electrically-inclined people are discussing best practices with respect to their IOIOs: link
How do I connect my IOIO?
  • Get a USB data cable that fits your phone, then plug it into the IOIO and your phone.
  • If you power your IOIO and your phone isn't charging, then you need to rotate the tiny potentiometer beside the USB port slowly until the phone starts charging.  Apparently some phones are more sensitive than others.
How do I set up SpeedFreq / WifiLapper with my IOIO?
  1. Wire your sensors to your IOIO.
  2. Connect IOIO to phone via USB.  Make sure the phone starts charging from it (this is how you tell it is connected)
  3. Start SpeedFreq / WifiLapper
  4. Go to options tab
  5. Click the "Configure IOIO" button
  6. Check the "use IOIO board" checkbox, then select the pins you've connected.
  7. Done!  The WifiLapper app doesn't directly expose the IOIO values - you need to either transmit or export to pitside to view them, or have them be sent during a racing session via wifi.
General Features

What are all these speedometer styles I find in the options menu?
  • Speed/Distance: This will draw a speed/distance graph on the left 2/3s of the screen comparing your current lap with the current-best lap.  On the right side, it will display how far ahead or behind you currently are from the best lap.  This is the best style, FYI.
  • Comparative: This will display your current speed in the top half of the screen, and the speed that you were going at that point during your best lap in the bottom.  This could be useful on a straight to determine if you're carrying more speed than the best lap.
  • Speedometer - Simple: This displays your current speed and nothing else.
  • Live +/-: This displays how far ahead (green, negative numbers) or behind (red, negative numbers) you are from the best lap.  So if it took you 11 seconds to get to a spot on the track that it took the best lap driver 10 seconds to get to, it would display "+1.0" (if it took you 9 seconds, then you'd get "-1.0".  Note that this is also displayed in the "Speed/Distance" mode as well.  The Live +/- mode just makes the number way bigger.
  • Lap Timer: Will work in either portrait or landscape mode.  It shows an extra large +/- display, as well as your last and best lap times.
I don't think my OBD2/Bluetooth GPS/IOIO is working!  How can I tell what's wrong with it?
  • Tap the icons at the top of the racing session.  A little message will come up with the most recent status for that item.
My bluetooth GPS or OBD2 unit isn't working.
  • Make sure that bluetooth is turned on
  • Make sure that the unit is powered (for OBD2, this means make sure your car is on)
  • Make sure you selected the correct name for the bluetooth unit when you configured WifiLapper's options page
  • If none of those work, complain on the forums.

Hacking Around

I think your application is awesome, but I've got an old OBD1 car! Is there anything I can do to get at engine parameters?

  • Try hooking up an IOIO (see above)
  • Method 2: Although WifiLapper will probably never support OBD1 cars since just about every car had a different proprietary communication standard, there are ways you could still interface your car's with WifiLapper. One approach is to take a bluetooth-enabled arduino and hook it to your ECU or fuel injectors (don't ask me how, but it is possible). Then, implement the bluetooth side of things so that your arduino appears to the phone to be an ELM327-compliant OBD2 reader. So if your arduino reads your fuel consumption rate, you would make it so that it responds appropriately to the “01 5E” ELM327 query (5E being the parameter ID for “fuel rate” according to the OBD2 spec). If you get the ELM327 stuff right, then it should just work with WifiLapper (as well as many other OBD2-enabled android apps). There's a little more to it implementation-wise than just that, so if you're interested for more details fire an email to art.hare@gmail.com.
Subpages (1): QStarz Setup
Keith Jones,
Jul 20, 2015, 4:40 PM
Keith Jones,
Jun 12, 2014, 12:11 PM
Keith Jones,
Jun 12, 2014, 12:12 PM