lördag 17 december 2011

Pioneer CJ-V50 and PD-MV55

I have been working a bit with the cabinet of the Star trip but also started a new project, not really pinball related but interesting anyway.

I have been helping a friend to repair some Pioneer PD-MV55 CD changers used in the jukebox CJ-V50 and some other models. The problem is that the most common fault in these is worn out laser and the laser is no longer available as spare part. So I would instead try to replace the CD player with an MP3 player. There are already such kits to buy, but to build it my selves is more fun.
The jukebox consists of three main units: amplifier, control unit and CD changer. The control unit can handle up to three changers. The communication between the control unit and the CD changers is done by a serial bus. So the first step was to analyze the data sent through this bus and see if it is possible to understand it.

Analyzing serial data can be quite complicated, the first thing to find out is the baud rate used. I used an oscilloscope and measured the timing of the start bit of a data package and got it to 4800 baud.
To be able to see the data transmitted I tapped the Rx and Tx of the PD-MV55 to the Rx of serial1 and Rx of serial2 of an Arduino Mega and wrote a short program that eco the data received to the USB port of the PC and in to the Arduino serial monitor and, all I got was crap. I rewrote the program to also eco out the data received at Rx to the Tx of the same port to be able to measure the timing with the oscilloscope and verify that I had chosen the proper baud rate. When I started looking at the Rx and Tx from the Arduino I immediately saw the problem. The serial data in the jukebox are inverted, inactive state of the line are 0 v instead of the usual 5v in a TTL serial communication. Consulting the service manual of the jukebox I found that the data was inverted by an IC in the control unit and then inverted once again by a transistor in the CD player. I added a 74HC14 inverter in serial with the data to the Rx of the Arduino and suddenly I had ASCII characters streaming in to the serial monitor.

I have now made some tests and I am quite sure that I understand most of the messages passed between the two units. There are still some question marks, but I don’t think they are important for the functionality of what I want to do.
Next step in this project is to write an Arduino program to emulate the PD-MV55. It does not have to actually play any music yet, just communicate with the control unit, receive disc and track selections and give the proper feedback to the controller. But that’s for another day.

Inga kommentarer:

Skicka en kommentar