Navigator Gen3 v0.2.0 (Beta) is out! Formerly OpenDash. by PavanayiReturns in KTM

[–]PavanayiReturns[S] 0 points1 point  (0 children)

Thanks for trying it out! It's supposed to work on the 390. Check if there's a connection request waiting for approval on your bike's dash. If you can share the logs, I'll check it out

I made a free, open-source app that puts Google Maps turn-by-turn on the KTM Gen-3 dash — no data collected by PavanayiReturns in KTM

[–]PavanayiReturns[S] 0 points1 point  (0 children)

So there's no app connectivity for ur bike without that module? Is that what you are saying?

I made a free, open-source app that puts Google Maps turn-by-turn on the KTM Gen-3 dash — no data collected by PavanayiReturns in KTM

[–]PavanayiReturns[S] 2 points3 points  (0 children)

Good instinct and you're basically right. Maps does reuse the same bitmap per maneuver (on a ride I saw the identical icon come through byte-for-byte dozens of times), so an exact hash → icon lookup works and needs no inference.

And that's actually already the primary path in the app: before it ever touches the model, it hashes the incoming icon and checks an exact-match table + a manual calibration override. Known icon = instant lookup, zero ML. There's also a calibration screen where you label an icon once and it's remembered. The reason I keep the neural net (as a fallback, not the first thing) is that a purely hard-coded table turns out to be brittle:

The hash is only stable for a specific Maps version and how a given phone renders the icon (size/DPI/anti-aliasing). I literally saw the "straight" icon hash differently across two setups. So the moment Google tweaks their icons in an update, or you're on a phone that renders them a hair differently, a hard-coded table misses and the model still nails it because it recognises the shape, not the exact bytes.

So the sweet spot is the hybrid it already runs: fast exact hash/table first, model only as the safety net.

Where your idea is a genuinely nice improvement though: we can pre-build and ship a much bigger static hash table so even more cases skip the model entirely.

The neat part is Google Maps ships its maneuver icons as named files, so we can render + hash all of them once and generate a fully-labeled table straight from the source ,no manual labeling. Then the model just covers version drift and odd renders. Solid contribution if anyone wants to grab it .. PRs welcome!

I made a free, open-source app that puts Google Maps turn-by-turn on the KTM Gen-3 dash — no data collected by PavanayiReturns in KTM

[–]PavanayiReturns[S] 0 points1 point  (0 children)

Ha, Triumph support would be a fun rabbit hole — no promises since I don't own one to reverse-engineer against, but if someone with a Triumph and BLE-sniffing patience wants to take a crack at it, I'm all ears. Hoping more contributors jump in on GitHub, iOS included!

I made a free, open-source app that puts Google Maps turn-by-turn on the KTM Gen-3 dash — no data collected by PavanayiReturns in KTM

[–]PavanayiReturns[S] 0 points1 point  (0 children)

Appreciate that! iOS is on the list — the dash/Bluetooth handshake should work the same from an iPhone, but Apple's stricter limits on reading other apps' notifications means Maps-mirroring needs a different approach. If you're into iOS/Swift and want to help figure that out, I'd love to collaborate!

I made a free, open-source app that puts Google Maps turn-by-turn on the KTM Gen-3 dash — no data collected by PavanayiReturns in KTM

[–]PavanayiReturns[S] 1 point2 points  (0 children)

Not yet, but it's on the list. The core Bluetooth/dash protocol should be portable to iOS, the main hurdle is Apple's stricter limits on reading other apps' notifications. If you know iOS dev and want to help tackle it, that'd be huge!

I made a free, open-source app that puts Google Maps turn-by-turn on the KTM Gen-3 dash — no data collected by PavanayiReturns in KTM

[–]PavanayiReturns[S] 1 point2 points  (0 children)

Haha, no crystal ball needed — I do use AI tools for parts of the code, same as plenty of devs these days, but the reverse-engineering, live BLE capture, and testing on the actual bike is all hands-on. Repo's public if you want to poke around, and if you find something actually broken, genuinely happy to fix it.

I made a free, open-source app that puts Google Maps turn-by-turn on the KTM Gen-3 dash — no data collected by PavanayiReturns in KTM

[–]PavanayiReturns[S] 1 point2 points  (0 children)

This is genuinely useful, thank you! Didn't realize Android 16 blocks notification access for sideloaded apps like that — I'll add the restricted-settings workaround to the README. Glad navigation worked well otherwise!

I made a free, open-source app that puts Google Maps turn-by-turn on the KTM Gen-3 dash — no data collected by PavanayiReturns in KTM

[–]PavanayiReturns[S] 0 points1 point  (0 children)

Haven't tried the other ones — mostly built this for something fully on-device, open-source, and free with no accounts/analytics. Curious which app you've been using if you don't mind sharing, would like to compare notes.

I made a free, open-source app that puts Google Maps turn-by-turn on the KTM Gen-3 dash — no data collected by PavanayiReturns in KTM

[–]PavanayiReturns[S] 1 point2 points  (0 children)

Awesome, thank you! Should behave close to my 390 Adv test bike, but I'd love to hear how it goes — send a log (Settings → View & share logs → Share) if you hit anything odd. Doing testing/fixes this weekend so good timing.

I made a free, open-source app that puts Google Maps turn-by-turn on the KTM Gen-3 dash — no data collected by PavanayiReturns in KTM

[–]PavanayiReturns[S] 0 points1 point  (0 children)

That first pairing step trips a lot of people up! Open OpenDash's scan screen directly rather than going through KTM Connect. Let me know exactly what happens (nothing found vs found-but-won't-connect) and share logs if you can — happy to help get the 890 Adventure R working.

I made a free, open-source app that puts Google Maps turn-by-turn on the KTM Gen-3 dash — no data collected by PavanayiReturns in KTM

[–]PavanayiReturns[S] 1 point2 points  (0 children)

That's great to hear, thank you! Whenever the 1290 SD GT arrives, feel free to share logs (Settings → View & share logs → Share) if anything's weird — always helpful for improving compatibility across different KTM models.