Welcome to GNUnilink

This is a project to build a PIC to emulate the responses of a Sony CD MultiChanger, so that the Phono/RCA's on the rear on Sony head units can be used for a portable CD or MP3 player.

As you might suspect:-

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

Most of the code here was based on the information on Cleggy's Unilink pages, if you're interested in finding out more then go here.


This project is in a 'beta' stage, so unless you have the skills to build and test it please don't email me requesting one.

If I were to send you one it would probably be a waste of your money. If you would like one in the future you'll just have to keep an eye on this page. I shall post when as and when it's working on each type of head unit.

How it works

The code listens to the propriatory Unilink bus, and responds with the commands that trick the headunit into believing that there is a CD multichanger connected. The headunit then allows this 'fake CD' to be selected (with the source button), you will be informed that it is loading a disk and the AUX inputs will be enabled.

By default the display show 'Disk 1', 'Track 1' and the counter show a time of '0:00'. If your headunit supports text then the display will read '<AUX-IN>'.

These values will remain fixed unless the optional serial code is enabled (see below). In which case you will be able to change them using a series of simple 'commands' on the serial port.

Another option that can be enabled is for the button presses on the headunit to be reported to PC, via the serial port.

This completes the loop and enables people to build 'MP3/OggVorbis Changers' by putting a PC in the trunk of their car. 40GBytes is an awful lot of driving music!!

Compiling the code

As mentioned above this code is for the Microchip PIC series of microcontrollers, but there is no reason why you (i.e. not me!!) can not port it to another processor. It is licensed under the GPL, see the file 'COPYING' and the note below.

Each release of GNUnilink contians pre-built binaries for various PICs (at various clock speeds).

You can use either the official Microchip compiler, or the Free equivilant GPASM which can be downloaded from:

The code will need to be 'adjusted' for the specific PIC you are using and the options that you wish. This is done by editing the GNUnilink.asm file, these should be the only changers required.

So far the code has been tested on 16F84A and 16F627/628. Porting it to another PIC should be trivial.

Serial Commands

The PC can also control what is seen on the headunit, by sending simple 'commands' down the serial link it can set the Disk, Track, Counter, Disk Name and Track Name as follows:

The 'track name' only works when the code is compiled to emulate a MD changer (see options in GNUnilink.asm).

The headunit reports back to the PC with pre-defined words, these can be changed (look at the start of functions.asm) to match your requirements. By default it reports:

There are some more commands, but these are the basics...

Sucess stories

Not all the features work at present, but I believe that you should get at least the Aux-Inputs working (i.e. usable as a sound input) and the disk/track numbers when compiled as a CD changer.

I've had reports of success on the following units:

Downloading the Code

The code can be downloaded from sourceforge:
Download Code.

Or the latest development code can be taken from the CVS archives, this is code as it's being developed so it has the habit of changing and not working sometimes.
CVS archives.

Please report any success or failure to me Simon Wood. I may be able to get you (or others) working with the information you provide.

Building your own hardware

This is a small board that I have built up... click on images for more detail.

Picture of underside Picture of topside

The schematic is pretty simple:

Schematic Diagram

file can be downloaded here ( '.dia', '.pdf', '.ps')

I have also added a switch in the power line, so that it can be reset by hand. The code sometimes get stuck and this is a quick/easy solution.

Note on GPL

This project is released under the GPL, you may use it, give it away or sell it.

But please remember if you make any changes or improvements and you are distributing these, then you are obliged to publish them under the GPL license.

If you want to build and sell these 'magic dongles' you may, but please drop me a link as well and I'll stick it on these pages (free advertising!).

And finally...

here's a picture of it running with my headunit:
Picture of head unit

Thanks to

Thanks goes to Sourceforge for hosting this (and many other) open source project(s).

SourceForge Logo

Last updated 9th May 2002
(c) Simon Wood