Skip to content

Latest commit

 

History

10 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Thar Deck

A wireless Android Auto head unit built from a spare Android tablet. No head unit, no subscription, no proprietary software.

This started with a 2016 Mahindra Thar, which came with essentially nothing: no screen, no navigation, no Bluetooth, no Android Auto. The factory options were a single-DIN slot and your own sense of direction.

Aftermarket Android Auto head units cost real money and mean pulling a dashboard apart. Thar Deck is the other route: a tablet you already own, suction-mounted, receiving Android Auto wirelessly from your phone, while the car stereo keeps playing the audio.

It is not Thar-specific. Any vehicle with a 3.5 mm AUX input and a 12 V socket can run this. The Thar is simply the vehicle it was built and debugged in, and a car that shipped with nothing is a good proof that the approach needs nothing from the car.

This repo is the complete engineering record of a working installation: architecture, exact settings, the protocol details that are not documented anywhere else, diagnostic tooling, and every dead end so you do not have to walk down them.

Status: Daily-driven and stable. Video, touch, navigation, media control and a car-only automatic audio profile all work. See Known Limitations.


What it actually does

flowchart LR
    subgraph PHONE["📱 Phone - the brain"]
        AA["Android Auto<br/>(gearhead)"]
        WH["AA Wireless Helper"]
        HS["Wi-Fi Hotspot<br/>(SoftAP)"]
        BT["Bluetooth A2DP"]
    end

    subgraph TAB["📺 Tablet - the screen"]
        OHU["Open Headunit<br/>receiver :5288"]
        SCR["Display + touch"]
    end

    subgraph CAR["🚗 Car - the sound"]
        DGL["BT→AUX dongle"]
        ISO["Ground-loop<br/>isolator"]
        AMP["Stereo → amp → speakers"]
    end

    AA -- "H.264 video + touch events<br/>over TCP/IP" --> OHU
    WH -.->|discovery| OHU
    HS -.->|carries the link| OHU
    OHU --> SCR
    BT -- "audio only" --> DGL --> ISO --> AMP

    style PHONE fill:#1e3a5f,color:#fff
    style TAB fill:#1e5f3a,color:#fff
    style CAR fill:#5f3a1e,color:#fff
Loading

The key design decision: video and audio travel on completely separate paths. The tablet gets picture and touch over Wi-Fi; the car speakers get sound over Bluetooth, straight from the phone. The tablet never plays a sound. This is deliberate - see Why audio is split off.


Bill of materials

# Item Role Approx. cost
1 Android phone with Android Auto Source - runs Maps, Spotify, calls owned
2 Android tablet, Wi-Fi only is fine Display + touchscreen owned / used
3 Open Headunit (FOSS) The receiver app free
4 AA Wireless Helper Phone-side discovery free
5 Bluetooth→AUX dongle Audio into the car stereo ~₹600 / $8
5 3.5 mm ground-loop isolator Kills 12 V electrical noise ~₹300 / $4
6 Tablet mount + USB-C car charger Physical install ~₹800 / $10

No paid software. No rooting. No dashboard disassembly.

The reference build used a Galaxy Tab S9 FE+ and a Galaxy S25 Ultra, but nothing here is Samsung-specific except the automation recipes, which are called out where they appear.


Documentation

Document What's in it
01 - Architecture System diagrams, network topology, connection sequence, state machine
02 - Hardware Specs Every component, every measured number
03 - Setup Guide 👈 Start here. Step-by-step build manual
04 - Audio Chain Ground loops, isolators, and the car-only EQ profile
05 - Protocol Notes Reverse-engineered AA wireless internals
06 - Diagnostics Drive logging, what the numbers mean
07 - Troubleshooting Symptom → root cause → fix, including dead ends
08 - Roadmap Smart dash cam and what comes next

Also: CHANGELOG.md · build/README.md - the PDF pipeline · docs/manifest.json - the document register


Documentation as PDF

Every document is also issued as a controlled PDF - cover page, document ID, revision history derived from git, and an exact table of contents. Diagrams stay vector, so they are sharp at any print size.

cd build && npm install && npm run build

Output in dist/: nine individual documents plus Thar Deck-Technical-Manual-v1.0.0.pdf, all of it bound as one 81-page volume. Pre-built PDFs are attached to each release.

How the pipeline works - including why the page numbers are exact rather than estimated - is in build/README.md.


Quick start

If you just want it working and don't care why:

  1. Install Open Headunit on the tablet, AA Wireless Helper on the phone.
  2. On the tablet: Settings → ADVANCED → Helper Connection Strategy = Phone Hotspot (Host).
  3. On the tablet: Audio Sink = OFF, Screen orientation = Landscape, Pixel density = L (218).
  4. On the phone: hotspot Band = 2.4 GHz, and pair the Bluetooth audio dongle.
  5. In the car: turn on the hotspot, open Open Headunit, tap Wi-Fi.

Then read 03 - Setup Guide properly, because steps 2-4 are each there for a reason that cost a drive to learn.


The three problems that nearly killed this project

Every one of these presents as "it just doesn't work" with no useful error message. All three are solved in this repo.

1. Discovery deadlock - the phone never finds the tablet

Both sides sit in "SEARCHING" forever. The cause is a discovery protocol mismatch: the tablet defaults to Google Nearby while the helper uses Shared Wi-Fi / Hotspot, so both ends listen and neither advertises. One setting fixes it. → Troubleshooting §1

2. Video corruption - the screen smears into garbage while driving

Macroblock smearing that made the display unreadable at highway speed. The instinct is "weak signal" or "bad decoder". It was neither - signal was −25 dBm, point-blank while throughput collapsed to 1-6 Mbps. The real cause: single-radio STA+AP channel collision. The phone was serving its hotspot on the exact same channel as the home Wi-Fi it was still joined to. → Troubleshooting §2

3. Flat bass - fixing the noise broke the sound

A ground-loop isolator cured a PWM whine from LED strips on the 12 V rail (100% → 5%) but its undersized transformer rolled off the low end. Fixed with a compensating EQ curve that is scoped to the car only - it must not follow you to your headphones. → Audio Chain


Known limitations

Limitation Why Workaround
Orientation is fixed at connect time Android Auto negotiates screen geometry once during handshake and cannot renegotiate Lock the app to Landscape; rotating mid-session requires a reconnect
Tablet battery percentage can't show in the AA UI A head unit cannot inject a battery sensor; the icon shown belongs to the phone Swipe down on the tablet
Tablet can't be the hotspot on Wi-Fi-only SKUs No cellular modem, so no tethering Phone hosts the hotspot
An armed-but-idle receiver is not free Measured ~1177 device-wakeup events with zero wakelocks held Press the tablet's power button when parking
Bass recovery is partial An EQ pushes more signal into the transformer; it can't restore what the transformer blocks Isolated DC-DC supply is the permanent fix

Contributing

Different phone, different tablet, different car - results will vary, and that's exactly the data this project needs. Please open an issue with your hardware combination and what did or didn't work. Diagnostic captures are especially welcome; see 06 - Diagnostics for the tooling.

Scrub your logs before posting. They contain SSIDs, BSSIDs and MAC addresses.

Safety

This is a screen in a moving vehicle. Mount it where it does not block your view or sit in an airbag deployment path, set it up while parked, and check your local law on screen placement. If the picture corrupts while you're driving, ignore it and pull over - don't debug at speed.

License

MIT - see LICENSE. Not affiliated with Google or any device manufacturer. "Android Auto" is a trademark of Google LLC.

About

A wireless Android Auto head unit built from a spare Android tablet. Built for a 2016 Thar that shipped with no screen, no navigation and no Bluetooth. Free and open source only.

Topics

Resources

Contributing

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages