Repository navigation
Integration Guide: Windows
| Model Name | SKU | Bluetooth | USB | Configuration & FW Updates |
|---|---|---|---|---|
| Bad Elf Flex Mini | BE-GPS-2500, BE-GPS-3500 |
NMEA (out) RTCM (in) |
NMEA (out) RTCM (in) |
NMEA command via COM port Flex app (iOS/Android) |
| Bad Elf Flex | BE-GPS-5500, BE-GPS-6500 |
NMEA (out) RTCM (in) |
NMEA (out) RTCM (in) |
USB key w/ OTG adapter Flex app (iOS/Android) |
| Legacy/EOL Models: | ||||
| Bad Elf GNSS Surveyor | BE-GPS-3300 | NMEA (out) | NMEA (out) | USB FAT drive mode Bad Elf GPS app (iOS) |
| Bad Elf Pro+ | BE-GPS-2300 | NMEA (out) | NMEA (out) | USB FAT drive mode Bad Elf GPS app (iOS) |
| Bad Elf Pro | BE-GPS-2200 | NMEA (out) | --- | Bad Elf GPS app (iOS) |
Bad Elf's external GNSS receivers can be connected to Windows tablets/laptops via:
-
Bluetooth: the user must first complete the pairing process via the standard Windows Bluetooth settings screen. This creates a pairing record that can be used for all future connections. Pairings can be "forgotten" by either side, in which case the user will need to pair again.
-
USB cable: the user turns on the Bad Elf GNSS receiver and connects it via USB cable to the Windows device. Windows may display a hardware detection dialog on first connection, but subsequent connections will be less obtrusive.
In both cases, once the Bad Elf GNSS receiver has been paired/connected, Windows will assign one or more COM ports that can be used by apps to communicate with the GNSS receiver. The COM port assignments are visible via the Windows Device Manager utility.
A Bluetooth pairing will result in two COM ports. The first is for outgoing connections (from the Windows device to the GNSS receiver), and is the one that apps should use. The second COM port is for incoming connections (from the GNSS receiver to Windows). This flow is not supported by any apps or Bad Elf receivers, so the 2nd COM port should be ignored.
Once paired via Bluetooth, or connected via USB cable, your app can access the external GNSS receiver in one of two ways:
- Use Windows Location API with (paid) 3rd party utility app
- Use COM port to connect directly to the external GNSS receiver
Windows provides a Location API for any location-based app to request position updates. For tablets and phones with an internal GPS receiver, the device manufacturer typically provides a device driver that will make the GPS data available via Location APIs by default. If a GPS signal isn't available, Windows will provide less-precise location data based on Wi-Fi or cell tower triangulation.
To use Bad Elf GNSS receivers via the Windows Location API, a 3rd party utility app such as GPSComplete is required. This utility will read the NMEA from the COM port and act as a GPS sensor for the Location API.
In the case where you have multiple Windows apps that all need position data from the Bad Elf GNSS receiver, or need to also support the internal GPS, this method can be a good approach.
To use access the NMEA feed directly from the GNSS receiver, one (and only one) app can open the COM port assigned to the USB or Bluetooth connection. In the case of USB, the port will open immediately and start streaming valid NMEA by default. But in the case of Bluetooth, opening the port will trigger Windows to open the Bluetooth RFCOMM connection, which can often take 5-20 seconds, or even timeout if the GNSS receiver is not in range. Once the Bluetooth connection is open, the NMEA data will start flowing.
As mentioned above, your app should gracefully handle the case where the COM port completely disappears (in the case where the USB cable is disconnected), is closed (due to the GNSS receiver powering down or going out of Bluetooth range), or a timeouts while opening the COM port. These are all very normal and common scenarios for users in the field.
Implementing logic to automatically re-open the COM port on app launch, or perdiocally attempting to re-open a dropped connection, can provide a great user experience. However, you app should provide an away for the user to disable this logic in the case where they might be switching between data collection apps and don't want your app to get in the way.
If Bluetooth is turned OFF, Windows will hide the COM ports entirely. When turned back ON, the COM ports will appear again.