When I started driving, I wanted Bluetooth in my 2004 Jeep Grand Cherokee. Several years later, I finally got around to building a Bluetooth mod. My radio has a plug for a cd changer, so I used an Arduino and a Bluetooth module to make a pseudo cd changer. It took me about a month, however I procrastinated a lot. Here's a video of the prototype working (ignore the awful music).
- The arduino prototype code is in Jeep/ and the ATtiny version's code is in src/
- My radio model is p05064354aj.
- I'm using an Arduino UNO and a XS-3868 Bluetooth module
- Chrysler radios, made before 2004, use the car’s internal PCI bus for communication with other accessories (i.e. a cd changer). It’s a good idea to be careful when writing to this bus because you could damage your car.
- My car uses the J1850 VPW protocol.
- Some good vocabulary to know for this protocol:
- Frame : a packet of data
- Cyclical Redundancy Check (CRC) : it’s a checksum
- I used two optocouplers to communicate on the bus without frying my Arduino. Also, I put some LEDs on the optocouplers' outputs which was useful for debugging.
- This has a lot of information on what to send to the radio to trick it into thinking you’re a cd changer.
- This has good info on the J1850 protocol.
- A more technical document on J1850.
- This guy’s project uses the same protocol so it was helpful.
- Radio Pinout (there are also other radio pinouts here)
- Finish converting from the Arduino prototype to the ATtiny version
- CRC check (Frame Creation in general)
- Proper Responses to the radio
- In the current configuration, the relay is unreliable so that needs to be fixed
Benjamin Thomas - boydbt48@gmail.com - 2019