Skip to content

Latest commit

 

History

1 Commit

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🚗🎶 TeslaBoomboxProject

Turn a cheap mini PC into your Tesla's offline music jukebox, network router, and ad-blocker — no Premium Connectivity required, and music streaming costs zero mobile data.

The problem

Two annoyances every Tesla owner with a homelab streak knows:

  1. The in-car browser refuses local networks. Tesla routes 192.168.x.x internally, so the browser can never reach a Plex server on your home LAN — you just get ERR_CONNECTION_REFUSED.
  2. Music in the car costs money. Either you pay for Premium Connectivity, or your phone streams over its data plan.

The solution

A headless Debian mini PC (powered by a portable power station) joins your car's Wi-Fi and becomes:

  • 🌐 A tiny router for a conflict-free 10.10.10.0/24 network — AdGuard Home provides DHCP + DNS with ad blocking, so the Tesla has working internet through your router's uplink
  • 🎵 A Bluetooth boombox: the server pairs with your Tesla like a phone and streams music directly from MPD to the car speakers over A2DP — zero mobile data
  • 🖥 A media backend: Plex and Pinchflat (YouTube archiver) in Docker
  • 📱 Fully remote-controlled: the myMPD web UI works from your phone (LAN) and from the car's touchscreen via a Tailscale Funnel URL

How it works

flowchart LR
    subgraph CAR["🚗 Tesla"]
        SCREEN["Car screen / browser"]
        BTSINK["Bluetooth A2DP sink"]
        SPK["Car speakers"]
    end

    subgraph PC["Mini PC — headless Debian"]
        MPD["MPD"] --> PW["PipeWire"]
        PW --> BTSRC["Bluetooth A2DP source"]
        MYMPD["myMPD web UI"]
        ADG["AdGuard Home - DHCP + DNS"]
        NAT["NAT router - 10.10.10.0/24"]
        FUN["Tailscale Funnel"]
        DK["Docker - Plex + Pinchflat"]
    end

    PHONE["📱 Phone"] -- "LAN" --> MYMPD
    SCREEN -- "Funnel URL" --> FUN
    FUN --> MYMPD
    FUN --> DK
    BTSRC -. "Bluetooth - 0 MB data" .-> BTSINK
    BTSINK --> SPK
    CARW["Tesla Wi-Fi"] --> HW["📶 4G router with SIM"]
    PC -- "Wi-Fi uplink" --> HW
    HW --> INET["🌐 Internet"]
Loading

Highlights — what this project documents

  • Why the Tesla browser can't reach private IPs — and how to prove it with tcpdump (spoiler: the SYN packets never leave the car)
  • The hidden WirePlumber "seat gate" that silently disables Bluetooth audio on headless Linux — and the one-file fix (monitor.bluez.seat-monitoring = disabled)
  • A router-on-a-stick over Wi-Fi that coexists with Docker's aggressive iptables management
  • Serving services to a car browser through Tailscale Funnel, including the data-volume math when your uplink is a SIM card

Hardware

Part Notes
Tesla (Model Y tested) any Tesla with the built-in browser and Bluetooth
x86_64 mini PC tested on an Awow box (Celeron N3350, 4 GB RAM) with built-in Wi-Fi + Bluetooth; anything similar works
Wi-Fi router with internet a 4G/SIM router works fine — the PC uplinks to it wirelessly
Portable power station optional — for parking-lot cinema sessions (tested: EcoFlow)
Phone for initial setup and as an alternative MPD remote

Quick start

Work through the guides in this order:

  1. Network router + AdGuard Home — build the 10.10.10.x network
  2. The Bluetooth jukebox — MPD + PipeWire + the seat-gate fix ← the fun part
  3. Plex & myMPD in the car browser — Tailscale Funnel setup
  4. Feeding the library — Pinchflat as your download pipeline
  5. Something broke? → Troubleshooting — every pitfall we hit, with fixes

Prefer scripts over copy-paste? Check scripts/ — idempotent shell scripts with all knobs as variables at the top. Tested on Debian 13 (trixie) with NetworkManager and PipeWire 1.4 / WirePlumber 0.5.

Repo layout

TeslaBoomboxProject/
├── README.md
├── docs/
│   ├── 01-router.md            # 10.10.10.x network, AdGuard Home DHCP/DNS, NAT
│   ├── 02-bluetooth.md         # MPD + PipeWire + WirePlumber seat-gate fix
│   ├── 03-tesla-browser.md     # Tailscale Funnel, Plex, myMPD, data-volume math
│   ├── 04-pinchflat.md         # download pipeline for music & audiobooks
│   └── troubleshooting.md      # every pitfall we hit, with fixes
└── scripts/                    # idempotent setup scripts (edit variables at top)

Disclaimer

This project involves software only — nothing inside the vehicle is modified. Tesla firmware updates may change browser/network behavior at any time. Use at your own risk. Not affiliated with Tesla, Inc.

License

MIT — do whatever you like, attribution appreciated.

About

Turn a mini PC into your Tesla's offline music jukebox, network router & ad-blocker — MPD over Bluetooth A2DP, zero mobile data

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages