Why Fast Running Friend?
I am a competitive distance runner. I have always wanted to have a device that would tell me more about my running than anything currently available on the market. First, I want better precision in measuring distance. I want to know my leg turnover and ground contact time. I want to take my heart rate intelligently with automatic detection of when it is bogus. I want to have a device that I can trust. Given that most runners are perfectly happy to believe that if their favorite GPS watch tells them the USATF Jones-counter certified course is of a different length it must be so, or if their HRM says their heart rate at a jogging pace is 30% above normal in the first mile and then drops to what it should be then they must have been nervous at the start that day, the chances of what I want appearing on the market are slim.
I considered creating a device like this myself, but I lacked the resources on the hardware end of it. Finally, Motorola delivered exactly what I needed in the form of MotoACTV watch minus the fact that you have to root it to make it work, but that's OK for me as a proof of concept. In the future, I hope there will be similar and even compatible devices that will run the Fast Running Friend without such tricks.
It is wrist wearable, has a GPS, and ANT+ capability to talk to a footpod or HRM, and most important, it is possible for the user to run custom apps on the device. It is internally running Android. Rooting it is as simple as replacing the boot image via fastboot utility from Android SDK. After that you have adbd and you can load custom apps with adb install.
- Warning - you void all kinds of warranties, etc. You will be able to use the Motorolla App but you will have to start it manually from the launcher
- Install Android SDK - there are a number of packages there, anything that gives you ADB and Fastboot command-line utilities will work.
- Download Fast Running Friend system image and unzip it obtaining system-frf.img and boot-frf.img. system-frf.img contains EXT3 filesystem image for the /system partition and the latest version of FastRunningFriend. boot-frf.img contains the boot image that gives you root. You will use those images to modify the default ones.
- Root your MOTOACTV device:
- Power down the device
- Hold Start+Power buttons for 3 seconds, then release - you should the Fastboot screen
- Execute the following commands from the shell (Windows command line, Linux, or Mac, depending on your OS) in the directory containing boot-frf.img and system-frf.img:
fastboot flash boot boot-frf.img
fastboot flash system system-frf.img
- Your watch will boot and start the Honeycomb launcher. Touch the little squares near the Apps text, and it will give you a menu of apps including Fast Running Friend. You can drag the Fast Running Friend icon to the main screen so you do not have to take this step next time you reboot.
Instructions if you do not want to use Fast Running Friend system images
- Root your device whichever way you prefer
- Download the APK
- adb install -r FastRunningFriend-1.6.apk
- Now we need to be able to capture Start and Music keys for full happiness. I have not yet figured out how to disable their binding to the default Motorola fitness app without editing config files. So here were go.
- Download Modified sholes-keypad.kl
- Backup your original in case you want to use the default Motorola app (adb pull /system/usr/keylayout/sholes-keypad.kl and save it somewhere safe)
- adb remount
- adb push sholes-keypad.kl /system/usr/keylayout/sholes-keypad.kl (make sure you push the right file, the one you downloaded)
Brief Usage Instructions
- Find the Fast Running Friend in the launcher and launch it
- When you start it it does not start acquiring the GPS signal, press Music to activate GPS acquisition. If you change your mind, you can press it again to stop it.
- Press Start to start, Start to pause, Music to split. Press the Back menu button for the popup menu
- The popup menu allows you to stop/start GPS, stop/start WiFi with the configuration web server running on the device, review workouts, and reset/exit the app.
- The first time you run the Fast Running Friend it will create a directory /mnt/sdcard/FastRunningFriend and a file default.cnf in it. Edit this file in a text editor (you fetch it via adb pull and put it back via adb push), and enter your WiFi credentials in the wifi_ssid and wifi_key fields. Do not use quotes. After that, when you start WiFi the Fast Running Friend will start a configuration web server on the device and will give you a URL you can use to connect to it, e.g http://192.168.1.165:8000. You can go to that URL in a browser to finish the configuration, to review/edit workouts, and post them to the Fast Running Blog website.
- If you do not feel like hacking sholes-keypad.kl you can use Volume Up and Volume Down keys instead of Start and Music
- The APK can be installed on any Android if you do not have a rooted MotoACTV. The Android does not have to be rooted. Use Volume UP and Volume Down keys instead of Start and Music on Android.
- Report bugs. The code is still very much alpha, but good enough for me to take it on my runs without a backup watch.
- If you want to contribute to the development, see Build Instructions
Release 1.6 New Features: - automatically turn on/off WiFi and start the management daemon when connected to/disconnected from power - system images (ROMs) with Fast Running Friend pre-installed Release 1.5 Fixes: - Fixes for the web management/configuration daemon shutdown New Features: - Work in progress for SiRF GPS driver Release 1.4 Fixes: - numerous bug fixes - longer battery life New Features: - web configuration/workout review/editing - ability to post workouts to the Fast Running Blog website Release 1.3 Fixes: - correctly handle pause when the runner re-positions himself during the pause New Features: - configuration file support Release 1.2 Fixes: - time of day really works at 12pm and at 1pm New Features - new GPS distance/pace algorithm - logging of the route to file, as well as debug logging to another file (in /mnt/sdcard/FastRunningFriend) - set time of day using GPS if permissions on /dev/alarm allow it (adb shell chmod 666 /dev/alarm then start Fast Running Friend and press Split to start the GPS but do not start the watch until you get the signal) Release 1.1 Fixes: - back button is disabled when the timer is paused, only works if it is reset - disable GPS signal on exit - correctly display 12pm time of day - bigger fonts for the status message and time of day - do not disable GPS signal on timer pause New features: - battery status display Release 1.0 - initial release