Show HN: DashPack – Turn a car window switch into a family‑friendly soundboard

2 NathanCordince 0 5/7/2025, 8:31:55 PM github.com ↗
Here is the hacked together *DashPack*, a tiny CAN‑bus interface that listens for the window‑up switch in my 2018 Porsche Macan and plays movie quotes through the car’s AUX input. It gives passengers (especially kids) something fun to do that doesn’t involve touching any “unsafe while driving” controls.

---

### Why?

* The only controls reachable by back‑seat passengers that don’t affect driving are the seat and window switches. * A single, familiar control with two modes:

  * **Short press** – triggers a *random* clip (e.g. a “pew‑pew” laser sound).
  * **Auto‑up hold** – triggers a *known* clip (e.g. Spaceballs: “Thank you for pushing the self‑destruct button”).
* Adds a bit of shared, in‑car comedy without screens or Bluetooth headaches.

---

### How it works

1. *Hardware*

   * Raspberry Pi (or any Linux box with `socketcan`)
   * USB‑to‑CAN adapter (I used an InnoMaker USB2CAN)
   * 3.5 mm audio out → car’s AUX jack (I used a cheap 2.4 GHz TX/RX pair to hide the Pi in the cargo area)
2. *Wiring (Macan 2018)*

   * Comfort CAN at the gateway under the rear bench

     * Pin 5 = CAN‑L
     * Pin 15 = CAN‑H
   * Posi‑tap, run two wires through the stock conduit, DONE.
3. *Software*

   * Python (`python‑can`, `pygame`, `playsound`)
   * Reads CAN ID 0x3D0 and decodes the *window‑up* bits
   * Picks a WAV/MP3 from `sounds/`, launches `mplayer`
   * Autostarts via a `.desktop` file so it survives key‑off/on cycles
4. *Testing*

   ```bash
   # virtual CAN
   sudo modprobe vcan
   sudo ip link add vcan0 type vcan
   sudo ip link set up vcan0
   # simulate a window‑up frame every second
   cangen vcan0 -I 3d0 -D 0000140085 -g 1000
   ```
---

### Caveats

* *Vehicle‑specific:* Only confirmed on a 2018 Macan Base. Other Porsches → new CAN IDs & pins. * *Hackish:* No guarantees, warranty, or safety claims. Tap the wrong wires at your own risk. * *Audio:* I avoided Bluetooth on purpose; AUX + analog TX/RX has 0 pairing issues and \~0 latency.

---

### Repo / Docs / Pics

[https://github.com/your‑user/dashpack](https://github.com/your‑user/dashpack) – full wiring photos, CAN logs, and a list of quote clips in `sounds/`.

---

### What’s next?

* Hooking HVAC and seat‑vent messages for more “passenger superpowers” * Car‑agnostic bus sniffing to auto‑learn switchgear IDs * Maybe an “Arduino‑only” build so folks don’t need a Pi

---

I’d love feedback on:

* Better ways to detect switch events across different Porsche models * Safer/cleaner CAN tap ideas * Creative sound clip suggestions (short lines that always get a laugh)

Comments (0)

No comments yet