Sony Unilink

My Atmel AVR based Unilink interface

Something about my own development for an Sony Unilink interface.

-controller Atmel ATmega8 at 7,3728MHz (up to 16MHz)
-some external components for signal converting

Version: 1.2
876.4 KB

Version: 2.05
123.3 KB

Unilink Logger
Unilink Logger
Version: 1.04
30.2 KB

Possible ATmega8 PCB layout:




Simon Wood´s GNUnilink interface

Many thanks to Simon Wood for his great support!

Some informations about the Unilink dongle.

– PIC16F628 at 10MHz
– RS232 input/output

Schematic: HERE

What the dongle can do:
– emulate an CD or MD changer on a Sony radio with changer support
– set and display disc number (CD/MD: 0-14)
– set and displaytrack number (CD: 0-99, MD: 0-255)
– set and display track time
– set and display disc name in CD and MD mode (8 or 16 characters)
– set and display track name in MD mode (8 or 16 characters)

RS232 output on the following radio functions:
– CD/MD changer select/deselect
– Next/Previous disk and/or track
– Direct disk
– Shuffle, intro, repeat
Recommended Links:

GNUnilink homepage

homepage by Simon Wood, developer of GNUnilink

Sophana´s GNUnilink page

the most up-to-date GNUnilink page. Find new sourcecodes and improvements for Simons interface here.

This project is not endorsed by Sony.
Sony and Unilink are registered trademarks of Sony Corporation.

23 thoughts on “Sony Unilink

  1. ve an MD Changer. All works fine but now ive buy an new XAV Headunit from Sony. 🙁 But now it detect my CD Chander devices but my MiniDisck Changer…. no chance…
    Have you an Idea how i can mod that MD-Chaner that the Headunit will detect it as CD…..
    LG from Germany

    • You can not modify the MD to get detected as CD. This works only through manipulation of the data frames send to and from the MD. A microcontroller is required in the middle to perform such manipulation.

      Propably you will loose functionality then since CD changers usually have less features than MD.

      Anyway isn´t a good at all.

  2. Hi Michael,
    have been looking around the web at sony Unilink interfaces and came across your´s which seems to be the best and very indepth so thought I would have a go at building it. Also noticed you have interfaced it with the Yampp, very impressive, so I may have a go at that as well later.
    A question if I may regarding your interface, a friend has kindly produced a pcb for me but looking at your circuit I´m a little unsure of the value of R4? It states the value as Rx on the PDF I have downloaded, so not sure what it should be and was wondering if you could tell me the value please?
    Many thanks
    PS is there a user manual for the Yampp 3USB that you know about? I have tried to log onto the forum but without success, I do realise that these are old projects and maybe not supported anymore? Any help would be gratefully received.

    • R4 is good with 10KOhm maybe even higher. If the relay circuit doesn´t work properly you may experiment a bit.

      There is no manual for the Yampp3 USB all informations are in the forum.
      And you are right, the projects are old and it seems nobody is in development anymore.

      What help do you need?

      • Hi Michael,
        thank you for your quick reply and also for your offer of help.
        R4 was the main issue at the moment so I could try and get your interface built.
        Regarding the Yampp3usb, I was thinking of integrating it into an old car stereo single DIN unit, so was wondering how difficult it would be to change the display to a 2×16, 2×20 or even slightly longer if I could find one? Unfortunatly I,m an electronics test engineer and not a programmer,so I have very little experience with programming micro controllers so this may be a problem for me? Can the Yampp3 be easily configured for different displays?
        Also, are you still using your Yammp and did you find any long term issues with it?
        Many thanks again,

        • No big deal. The original displays used with the Yampp3 were 2×16 or 2×20. All you need is to flash the controller with the right firmware.

          I can compile one for you if needed. It´s just a change in config file.

          • Ok thanks Michael, I will see how I get on with your interface first and let you know if I need any help.
            Many thanks again,

          • Hi Michael,
            well I finally managed to get the unilink built and have programmed the AVR using AVRDude and an ISP.
            Unfortunately I can´t get it to work, the crystal isn´t running so I´m wondering if I have to burn the fuses in any particular way?
            I would be very grateful for any help.
            Many thanks

          • Fuses bytes for ATmega8

            HIGH 0xFF
            LOW 0x2E

            * Brown out level 4.0V
            * Brown out reset enabled
            * External Crystal/Resonator high frequency, start up 1k cycles + 0ms

          • Hi Michael,
            success, my HU is seeing the unilink adapter.
            The only problem I´m having is send info to the display from Hyperterminal… not sure how to do it.
            I´ve tried sending txt docs with the info in but nothing. It receives info ok from the HU in the form of your ascii letters.
            Any ideas?
            Many thanks
            ps again sorry if this is a bit simple but I´m not a software guy as mentioned before.

          • See the readme.txt file which comes with the firmware zip file. The serial commands are described there.

          • Hi Michael,
            Thanks, have read the Readme.txt, had a little success, managed to change the Track No. on the HU display but that was it!
            To me it seems like a timing issue? As the HU talks to Hyperterminal ok, I´m wondering if I have a setting wrong in Hyperterminal? I´m using a baud of 115200, any ideas about the ascii setup ie, Line Delay or Character Delay or anything else?
            Many thanks

  3. I´m trying to connect my sony head unit to my cars remote and screen.

    I have a renault laguna from 2001, the remote is a simple resistor switching device and the screen uses i2c.

    I want to connect an arduino barebone board.

    What signals do i need to send to the head unit for the remote to function?
    What signals do i receive from my head unit which i could send to my cars standard display?
    On Which lines i can allready see in your drawings, but the software is the problem now.

    thank you for your help, if I get it working you will receive the neccesary files for others with the same problem.

    greetings from holland

  4. Hello,

    Excellent markup and project. Although it was done some time ago, I hope that you still check comments every so often. That being said, I also have Arduino related questions. My intention was to use an atmega328p to enable me to use the cd player as a kind of display for the vehicle. I have minicom on my iphone which has a ttl serial port that I know can send ascii characters to the microcontroller for changing stuff or other debugging, I was hoping to have the microcontroller prepare some track names with variables like “Voltage: 14.1v” or “Temp: 116f” and was also curious if it is possible to implement a sort of menu system by selecting the track and fast forwarding or rewinding selects on or off. I have no experience with the AVR IDE, although have made several complicated projects happen with the Arduino IDE. Do you think you could point me in the right direction on a few of these issues?


    • I see no problem with such implementation. It just depends on your headunit (HU), if there is support for track and disc names or not.

      A few things you should keep in mind:
      – You can not use the HU for in another mode than CD/MD while displaying stuff
      – You need to implement the full changer emulation otherwise the HU will disconnect from the changer/emulator

      Can´t help you with Arduino, I use only ANSI C.

  5. Hi, I hope you are still checking this site. I have a question about the cicrcuit between unilink bus and atmega. Why is this there? AFAIK unilik uses 5V logic and atmega as well. Can be these parts skipped? It seems to me that they are just invertors. Thanks for any help.


  6. Hi Michael,
    thank you for you answer. I have some knowledge about op amps, I even recognized the comparator. It also works as an invertor, am I right? What I don`t understand whay this circuit. But myabe, after some playing with my radio, I start to undrestand even this. I connected the lines directly to atmega 328p and I am getting only one clock pulse per byte. Because you use SPI, I would expect 8 clock pulses per byte. One explanation is that my improvised “logic analyzer” doesn`t catch those beacuse it`s slow, but I don`t think so, beacause the data pulses are catched all and they match, what I found on the web. Other explanation is that the pulses are not detected by atmega, this could explain the comparators. Or am I wrong? This is also an explanation 🙂

    Many thanks for any advices.


  7. Hey there, thanks for the great instructions. I have a Sony XR-7072 and this one has the older cd changer port from Sony.

    The cable has following commections:
    •CD-AAC Cont (12Volt power)
    •CD Data-In
    •CD-Clock In
    •CD Data Out
    •CD Dspl Select
    •CD Clock out
    •CD Reset
    •and the audio input l+r channel

    Don‘t get me wrong, great instructions, but i need some help wiring the radio up to the emulator.

    It would be really nice to hear something.


Leave a Reply