# Garmin HUD support

## Purpose of this project

Garmin created fantastic Head-up Display, but they had it discontinued in 2015 [src](https://support.garmin.com/pl-PL/?faq=gJy4U1QaPL2gBs3AqQ7Lm5). Fortunately, whole protocol had beed [reverse engineered](https://github.com/gabonator/Work-in-progress/tree/master/GarminHud). This allowed community to createte their own works.

## Works

Project started in Aug'23 as simple solution to connect GMaps with Garmin. 
PoC was created with python (can be viewed [here](./python)) as it is the quickest known way to test protocol and create objects.
With the help of [Garminuino](https://github.com/skyforcetw/Garminuino) and [GMapsParser](https://github.com/3v1n0/GMapsParser) first version of application was created, which wasn't working at all. 

Two weeks later I switched to Mapbox as completely standalone solution. Despite some bugs and huge battery drainage some may say that it works.

### Stack

- Kotlin 1.9i
- Mapbox SDK 11.5.1
  - Navigation SDK 3.2.0
  - Search SDK 2.4.0

### Future works

- optimisation
- bug fixes
  - camera behaviour
  - search prompt graphics
  - reconnect button style
  - garmin connection fixes - socket behaviour on reconnect
  - maneuver processing (on long distances it refreshes every 10+ km)
- Android Auto integration
- create fork for first idea of proxying GMaps