Sail Buddy is a light-weight sailing app designed to do a few things well. When it comes to sailing I’m mostly a day sailor or a short-trip cruiser. I wanted a light-weight app that would show course, speed, and wind data from my SailTimer wind instrument without a lot of fuss, and without tripping around other features which 90% of the time I don’t use or want.
Sail Buddy is not a navigation app. There are many other apps that are better at navigation than Sail Buddy could ever be. No sense reinventing the wheel.
Here’s what Sail Buddy does:
- Displays course and speed in a large, easily read display
- Displays NMEA data the same way: TCP and UDP connections are supported
- Route tracking with full capture of GPS and NMEA data (a feature I couldn’t find in other apps). Saved trips can be viewed on a map or exported in CSV, KML (for Google maps), GPX/XML, JSON or GeoJSON formats
- Saved trips can be transferred between iOS devices that support AirDrop. Click the Share icon and choose “JSON (native)” format to transfer the trip to Sail Buddy running on a different device. This feature is nice for sharing trips with a friend, or viewing a trip on an iPad or larger display.
- iPhone, iPad and Apple Watch are all supported (Android is not, sorry)
Tell me what you think!
Sail Buddy is a work in progress with lots of room for new ideas. I am very interested in making it more useful so long as I can keep it fast and light. If you have ideas or are experiencing issues, please contact me.
Sail Buddy can read and display instrument data transmitted in NMEA 0183 format over a TCP or UDP connection. Here are some typical setups:
WiFi-based hardware such as the Brookhouse iMux multiplexer, the SailTimer AirLink or the SailTimer wind vane (discontinued in 2013) create their own WiFi networks.
- Go to iPhone settings and choose the wifi network created by your hardware
- Tap the Settings icon in Sail Buddy, then tap the NMEA Configuration button and enter the network settings for your hardware
- Also enable the appropriate options under Hardware Support for your hardware
- Tap the NMEA button in Sail Buddy’s Instruments tab
SailTimer Wind Instrument
The SailTimer wind instrument connects directly to your iPhone via Bluetooth using a custom app.
- Download the SailTimer API from the App Store
- Launch the SailTimer API, connect to the wind instrument, and confirm it is receiving data
- Launch Sail Buddy, tap the Settings icon, then tap the NMEA Configuration button and enter these settings:
- Connection Type: UDP
- Port: 55554
- Displayed Data Types: Wind Speed & Direction
- Hardware Support: SailTimer Wind Instrument
- Tap the NMEA button in Sail Buddy’s Instruments tab
Sail Buddy supports the following NMEA sentences:
|Location||??GGA||GPS Location (if location source is set to “NMEA Data”)|
|Location||??RMC||Recommended Minimum Navigation Information (if location source is set to “NMEA Data”)|
|Wind||??MWV||Wind speed and angle|
|Wind||??MWD||Wind direction and speed (relative to true and magnetic north)|
|Wind||??VWR||Relative wind speed and angle|
|Wind||PSTW||Wind direction and speed (relative to current heading). See SailTimer wind instrument|
|Wind||WIBAT||Battery level (for SailTimer wind vane)|
|Depth||??DBT||Depth below transducer|
|Depth||??DBK||Depth below keel|
|Depth||??DBS||Depth below surface|
|Depth||??DPT||Depth (below surface or keel)|
If your device is not supported, please contact me and we can try to work something out.
- Sail Buddy can obtain your location either from your iPhone/iPad’s built-in GPS (i.e., Location Services) or from your NMEA devices. The switch is in Settings/NMEA Configuration.
- NMEA mode works best if GPS mode is also enabled. Otherwise, data may not be monitored correctly if the app is running in the background. Also be sure to enable “Background Location Services” in your iOS settings.
Sail Buddy for Apple Watch displays the same information as the iOS app. Swipe left or right to switch between information types.
You can also control Sail Buddy via the watch, for instance, start/stop route tracking. Force-press the display to access the menu.
Sail Buddy doesn’t display NMEA data
Check the following:
- Your NMEA device is turned on, sending data, and hasn’t crashed
- Your iPhone is connected to your NMEA device’s wifi network (if your device creates its own network), or your iPhone and your NMEA device are connected to the same network
- The NMEA button is “on” in the upper right corner of the Instruments tab in Sail Buddy
- Try receiving data in another NMEA app, or the device’s native app if any
- Use the “Data Log” feature described below to save your session data to a log. Generate an email, and take a quick look; don’t send it yet. If you see “syntax error” messages, it’s possible that one or more of your NMEA devices is sending non-standard NMEA data. For example, one user’s setup did not include the required “checksum” attribute at the end of sentences (an asterisk/* followed by 2 characters). If your data is missing checksums but is otherwise okay, go to Settings > Sail Buddy and turn off the “Enforce Checksums” option.
I get a network error when I turn on NMEA data
- Your iPhone is not connected to your NMEA device’s wifi network (if your device creates its own network), or your iPhone and your NMEA device are connected to the same network
- Check to make sure your iPhone is not in airplane mode
- Try turning off “Monitor Network Status” in Settings > Sail Buddy (from your home screen). This disables Sail Buddy’s default check for network availability, which may be incompatible with the custom hardware of some networks.
I’m receiving some NMEA data, but not wind angle
Some devices transmit wind data relative to compass north, while others trasmit relative to your current heading. An option in the Settings tab lets you specify which reference point to use, and uses your current heading to convert one to the other if necessary. But if you’re not moving, Sail Buddy can’t make this calculation. To correct for this, your boat should be moving, or you should change the option in Settings to match the native data sent by your device.
Nope, none of that solves my problem
Use the “Data Log” feature described in the next session to log your session data, send it to me, and I’ll try to help you out.
Raw Data Logs
Sail Buddy has an option to save raw NMEA data and other information to a log file. This is primarily intended so that you can send the log file to me in case you encounter technical issues and need some support. Go to Settings > Sail Buddy (from your home screen), scroll down a bit, and turn on the “Log Status Messages” option. Sail Buddy will subsequently log NMEA sessions when you turn on NMEA data in Sail Buddy (it only keeps data for a day or so). Then go to the Settings tab in Sail Buddy and click the “Share Status Logs” button to email me your data. If you just want to view the log data, follow the same steps but don’t click Send.
All personal information collected by Sail Buddy, including your location, data logs, and any metadata you enter yourself, is only stored on your iOS device. Sail Buddy does not interact with a data server and does not access or store information remotely.