External BLE GNSS receiver for iPhone and Android

Discussion related to external and internal GPS / GLONASS / Galileo / BeiDou sensors
Post Reply
Borsoft
Fewer than 10 Posts
Fewer than 10 Posts
Posts: 9
Joined: Wed Sep 19, 2018 12:59 pm

External BLE GNSS receiver for iPhone and Android

Post by Borsoft »

Hello! I working on my device for vehicle performance and sport measurements and want to implement LapTimer support. My device receive NMEA GNSS data with 16Hz rate and can retranslate it by UART. So now I want to find proper BLE module for both iPhone and Android. Few modules already tested and some issues exist:
1. HC-05 module. Only SPP plofile. Works properly on Android but not supported on iPhone.
1. HM-13 module (http://wiki.seeedstudio.com/Grove-BLE-dual_model-v1.0/). It has 2 profiles SPP and BLE. I used only SPP and it works ok on Android phone. BLE profile is not tested yet on iPhone.
2. HM-16 module (https://www.fasttech.com/product/477710 ... erial-port). It supports only BLE profile. It works on iPhone but for some reasons it is very unstable so I loose connection every 20-30 seconds but then it reconnects again. Android phone doesn't see this module at all, despite I'm using the same Expert settings (name and uuid's) as on iPhone.
Do you have any ideas how to fix stability issue on iPhone and make it visible on Android with HM-16 module?
User avatar
Harry
Site Admin
Site Admin
Posts: 10516
Joined: Sun Sep 12, 2010 10:32 am
Location: Siegum, Germany
Contact:

Re: External BLE GNSS receiver for iPhone and Android

Post by Harry »

Hi,

Please do not forget to turn on Bluetooth Low Energy accessories for LapTimer's Android version. It is an Expert Setting. It is turned off by default because many Android phones have a quite buggy BT LE stack.

For the drops in connection to your iPhone: the reason is either some hardware incompatibility, or some problem with the NMEA stream sent to LapTimer. I can't help with the former. For NMEA: if LapTimer receives something not considered a valid NMEA sentence, it may drop connection and reconnect again.

As transferring 15 Hz using NMEA through BT LE will not leave a lot of available bandwidth, you may consider joining our developer program and implement some binary protocol for you device instead of using NMEA. You can add a script to LapTimer reading your binary stream and feeding it into LapTimer's engine. See the announcement on the developer program for more details. You can usually save 50% or more of bandwidth used by NMEA.

- Harry
Image Image Image Image
Borsoft
Fewer than 10 Posts
Fewer than 10 Posts
Posts: 9
Joined: Wed Sep 19, 2018 12:59 pm

Re: External BLE GNSS receiver for iPhone and Android

Post by Borsoft »

Thanks. I finally run stable BLE connection on both iOs and Android phones via HM-10/11 BLE module. Some observations:
1. Seems that 16Hz full NMEA stream is too much for BLE. It supports 16Hz only if I keep only 1 message (i.e. GNGGA or GNRMC), and if I add 1 more message (i.e. GNGGA + GNRMC) - update rate drops to 5-6 Hz, and I see red dot over the GPS device.
2. I made all tests in GPS Buddy. For some reasons I cannot find my GPS sensor device in LapTimer or Dyno even I used absolutely the same BLE settings (name, UUIDs). Do you have any ideas about it?

And probably yes, I should join your dev program, it seems that NMEA over BLE is not a best idea...:)
User avatar
Harry
Site Admin
Site Admin
Posts: 10516
Joined: Sun Sep 12, 2010 10:32 am
Location: Siegum, Germany
Contact:

Re: External BLE GNSS receiver for iPhone and Android

Post by Harry »

Hi,

A red dot means the NMEA sentence arriving is considered malformed. This can occur when BTLE packets are dropped due to bandwidth limits. Here are the recommended sentence combinations:

// RMC+GGA+GSA+GSV complete
// GGA+GSA+GSV+ZDA complete

GSA and GSV can be transferred at a far lower rate that RMC and GGA without losing content. You may use this to optimize bandwidth use.

For the Buddy / LapTimer thing: both apps use the same implementation. So I recommend to double check your settings. For Android you need to enable BT LE sensors in Expert Settings before you can use them. So please check this too.

- Harry
Image Image Image Image
User avatar
Mateusz
20 or more Posts ★★★
20 or more Posts ★★★
Posts: 89
Joined: Mon Jul 03, 2017 8:32 pm

Re: External BLE GNSS receiver for iPhone and Android

Post by Mateusz »

Just to confirm - with a binary protocol, including position, speed, elev, heading, time, HDOP you can easily get to 20Hz over BTLE, still leaving bandwidth for 6-8Hz engine data feed.
Post Reply