External OTG GPS support for Android

Hi there.
I read in a post that for now you don't want to add RaceChrono support for external OTG gps dongles like the one in the link?
I'm interested to know why that it? Is it a software issue? I'm a developer and I'm interested. I hope I can convince you to change your mind 🙂
It would be great to be able to use cheap U-Blox dongles like this ... (especially because it is proving difficult to get good Bluetooth GPS devices)

https://www.amazon.com/HiLetgo-G-Mouse-GLONASS-Receiver-Windows/dp/B01MTU9KTF/ref=sr_1_5?keywords=usb gps receiver&qid=1642833508&sr=8-5&fbclid=IwAR3b3pV3nFY62QbrtUOUZg8VDkAe876a98laqOAdAdqM-36VyJA9HqNdFeA

Comments

  • I can only guess, but those devices will have different drivers, protocols and proprietary software.
    Some phones offer USB host functionality, others don´t.
    This would lead to lots of support requests.

    Why don´t you get an ESP32 and a USB host shield (Or an ESP32 S1,2 or 3 with OTG onboard)? Then you can communicate with the GPS, translate it´s data to NMEA 0183 and submit it via bluetooth?
    As a developer, I´d go for it :)
  • edited January 2022
    It's tricky. There's several reasons why it hasn't already been done:

    1) This would be a feature only for Android users, as this is not possible on iOS

    2) This does not work on all Android phones. So potential added load to the nightmare Android already is to support...

    3) The only library that I found only supported two USB UART chipsets. So only some USB GPS would be supported. I bought three different ones to test this and only one worked. Writing my own code for this is absolutely not going to happen :)

    4) The library that I found, didn't have any license declared. I haven't checked the current status, but this is big no no when developing software professionally.

    So for those reasons it's not done (yet). Especially 2) and 3) mean the feature would be only moderate gain.

    As a developer you could change my mind, if you prove me wrong with points 3) and 4) for example. Situation might have improved since I did my research.
  • @aol. No no, you've convinced me. Thanks for the reply.

    @TriB, it would probably be easier to find or write a driver that created a mock GPS feed that RaceChrono could likely pick up as the spoofed internal GPS.
  • Just to revisit this, it seems this library may solve your issues with 3 & 4 at least (device support listed in the README, i'm assuming MIT would be friendly to your dev)
    https://github.com/mik3y/usb-serial-for-android

    I'd be very interested in this feature, if only as an expert option to begin with. I will be experimenting with a GPS module with L1/L5 support for improved accuracy, and would like to use this method to test / debug vs. dealing with Bluetooth bandwidth limitations on a 25Hz+ GPS. I'm sure it could be useful for others as well.
  • @adamdoehling thank you, we will have a look at it!
  • Hello - just curious if you guys had a chance to evaluate whether this has potential. Thanks!
  • @adamdoehling It looks promising but unfortunately cannot fit this to the product roadmap
Sign In or Register to comment.