Interfacing a Kenwood KR-8090 with a PC

Now you've got this nice Kenwood-Receiver, and it even has a remote control unit. Nice. You can hear Music, and to switch it on/off, louder/softer etc. you didn't have to go to the receiver, you can sit on you chair, and use your RC.

But what's about your PC?
You can make a big playlist of all your MP3s, and hear them. But what's about the not-so-good tunes in your playlist?
You have to hear them, unless you want to go to the PC, switch on the monitor, search the Win***-window, and press "next".
Couldn't this be easier?
What's about the nice RC, which got all the buttons you need?

I had the same problem, so the "KR-Device-Project" was born. Target was a combination of hard- and software to control my favourite MP3-player with the Kenwood's RC.

So the first thing was to choose the hardware. There are enough projects on the net on how to use an IR-receiver and connecting it to the PC. But this is the hard way, I think, because the Kenwood-devices got a "system-control"-bus plug. The normal use is to connect Kenwood CD-Players and stuff to it. But why not plugging a PC into it? :)


Requirements for this project:

the HARDWARE

Because I've got no information about the bus, I connected the plug to an oscilloscope (ok, it was my old soundcard, but who cares ;) and pressed a key on my remote control. It looked like this:

OK, this is a reconstructered output, as my old soundcard doesn't sample so sharp edges, it's a SoundBlaster, so what? ;)
Anyway. We'll ignore the "left" channel, because there are no information in it we desperately need. To get the right channel, we use a very small hardware. You could connect the right channel and GND just to some signal on the printerport, but we don't know which voltage they got (and I still got no real scope ;).
But it can't be so much, so we will use a simple TTL to protect the printerport.
Because I was to lazy to buy a new one from the electronic-shop, I searched for some old TTLs. After a lot of useless crap I got a CD74HCT32E, which seems to be more or less compatible to a 74LS32, a simple "Quad 2-Input OR Gates".
The IC costs less than $1, so if it gots broken because you killed a pin, lost it somewhere etc., you can simply buy a new one. It got 14 pins, with the following layout:


          VCC B4 A4 Y4 B3 A3 Y3
           14 13 12 11 10  9  8
            |  |  |  |  |  |  |
          +-+--+--+--+--+--+--+-+
          |                     |
          |)                    |
          |*                    |
          +-+--+--+--+--+--+--+-+
            |  |  |  |  |  |  |
            1  2  3  4  5  6  7
           A1 B1 Y1 A2 B2 Y2 GND
         
(Sorry for this bad painting.)
A and B are inputs, Y is the output, 4 times. The result-table is: (as you could guess)

A  B | Y
-----+--
L  L | L
L  H | H
H  L | H
H  H | H

We simple connect the "right" channel to, say A2 and B2, then we got the output on Y2. So the final connection will be:
printerport74LS32Kenwood receiverDescription
D0 (2)VCC (14)-power supply
D1 (3)A1 (1)-to test the device
D2 (4)B1 (2)--
/BUSY (11)Y1 (3)--
ACK (10)Y2 (3)-the "right"-channel
-A2 (4) AND B2 (5)"right"-channel from
the system-control-bus
-
GND (18-25)GND (7)GND from the SCB-

Using the A1 and B1 together with Y1 connected to /BSY, we can check if the device is actually plugged into the printerport, and if everything else is correct.

The reason why I used ACK is easy. Everytime the level toggles at ACK, an interrupt is generated. We don't have to poll the signal, since it's got a frequency of about 200Hz (we'll come to this later). So it's nice to have an IRQ, in combination with the timer we could have an accuracy of more than 0.8 microseconds with no cpu power used. Nice, isn't it?


NOTE: As said, this is old. Today i would use for example an Atmel AVR or so, and do the decoding there, as writing low latency irq handlers isn't really what i would call funny, especially on systems like windows.
the second thing is that i finally understood that normal TTL-ICs don't offer *any* protection about high voltages, because of the clamp diodes. Using LVC styled ICs should help, but there are sure better methods.
Finally i got a scope now (since several years now), but i don't have the kenwood receiver anymore (i replaced it by a HK AVR 3000...)