diy BLE device for iOS version

Was wondering how hard it would be to add support for a diy BLE source or sources to Racechrono. I am sure that others will also want this feature now that there is an iOS version. I will admit I know nothing about BLE and what is required to get communication working with iOS. There are people from the Arduino community and others who have gotten this to work with their own custom iOS apps. I was hoping that one of the cheap modules that support serial data input could be used with Racechrono, like the HM10, HM11, etc. I currently have a HM10 to try things out.

Here is a link to two different sites with different modules.
This site shows the HM10 with flight controller working with iOS.

This site sells a different BLE module that also allows serial input.


  • edited March 2017
    From what I've experienced from implementing a client for a few BLE devices, I'd advice against any streaming over BLE. It is a kludge as BLE is not intended to be streaming. I think any streaming over BLE is doomed to be very slow. At least the client code gets very complicated. And when you think of it, all data sources are just sending periodical packets with same format anyway, why would we introduce streaming on that.

    The right way to do it IMHO is write binary (not text!) data frames to Characteristics.

    Problem is that the default maximum transmission unit (MTU) is only 20 bytes. I hear larger can be unreliable. You can fit 4-5 channels to 20 bytes, so it's not enough for all DIY devices. Options would be either have larger MTU or several Characteristics. To be able to define the details how to make this "multi-characteristic" transmission (or any other solution) reliable and fast, would need either some deep BLE knowledge and/or lot of testing.

    Also to support I'd need to build one my self. I don't mind buying Arduino and some parts but I don't really have time to write the code for it. So for this to happen would be someone writing shopping list, build instructions, Arduino code and client code (Android or iOS) for testing the bandwidth and reliability...
  • Sorry to revive this but it would be pretty nice to get this.

    Default BLE Service on it is UART and you can stream NMEA pretty quickly. I wrote the code to simulate a GPS and stream the data. And sample code to read it on android is here,
  • edited October 2017
    But can you stream quickly enough? Like over 20 kbit/s? I'm willing to build a prototype if someone confirms this UART really streams that quickly. I'm a little bit doubtful, and think this DIY support should be re-implemented in binary protocol using a raw BLE characteristics.
  • I'll do the test with location mock see how that goes at 5hz and 10hz.
Sign In or Register to comment.