pleriche, thanks for posting that info for future people searching the web. 6 years later, this thread appears to be the only place on the internet where this info is available. I have some more info for whoever else ends up here.
I've got a JVC KD-AHD79 head unit. It has a blue with yellow stripe wire for the wired remote instead of the 3.5mm jack that JVC used to use. The wire is pulled up to 3.3V (measured as 3.278V) through a resistor that seems to be exactly 22.0k ohms. I was assuming they were using a tight-tolerance resistor to work as part of a voltage divider for resisitive input, but the unit gave no response to a wide variety of resistors. Then I found this thread.
I haven't attempted interacting with the head unit yet, but i do have some new codes and some exact timing info that I learned from the infrared remote that came with the headunit (The JVC RM-RK52).
I suspect the nominal modulation frequency is 38212 Hz. Normally we wouldn't care for a wired application where there is no modulation frequency, but measured in terms of modulation periods, the timing structure of the data seems simpler.
A modulation period is 1/38212Hz or roughly 26.1968 uS. A 'mark' is 20.5 modulation periods of high output. A 'space' is 20.5 modulation periods of low output. A zero bit is represented by one mark and one space. A one bit is represented by one mark and three spaces. I'll use the symbols ~ and _ for mark and space.
~ is a mark, 20.5 periods (about 536.5 uS)
_ is a space, 20.5 periods (about 536.5 uS)
~_ is a zero, 41 periods (about 1.073 mS)
~___ is a one, 82 periods (about 2.146 mS)
The timing on the AGC period is 323 periods high followed by 161 periods low, but the timing on that probably isn't critical. It's just there to give the receiver a bit of time to figure out how strong the infrared signal coming in is. With the wired remote, you might even be able to leave it out completely.
And as already explained, after the AGC comes one start bit '1', seven bits for the address, always 0x47, seven bits of code, the first '1' stop bit, and the final stop bit which could be a '1' or a '0'.
And here are the button codes on my remote:
0x04 Vol +
0x05 Vol -
0x08 Source
0x0D Sound
0x0E Mute
0x12 Right
0x13 Left
0x14 Up
0x15 Down
Unlike pleriche's InCarTek stalk adapter, when you hold down left or right on my remote, it just repeats the same code as you get when just pressing. The 0x14 and 0x15 pleriche got from holding the skip buttons, are assigned to up and down on my remote.
Also notable: When holding buttons on my remote, the repetition pattern is much more regular and steady than what pleriche's mp3 shows. The InCarTek adapter apparantly will do an AGC pulse, repeat the code three times, wait for a rather long period, and then repeat starting with the AGC pulse. With the JVC infrared remote, there's only a single AGC pulse and then only the code repeating.
The .rar file I'm attaching is actually in zip format and contains oscilloscope screenshots. If you have trouble opening the file, rename it to .zip. But all of the images in the file are currently available here, and hopefully they'll last well into the future:
JVC Infrared Car Audio Remote RM-RK52 - Imgur
Realize those readings were taken directly off of the pins going to the infrared LED. So the absolute voltages aren't meaningful. And the modulation frequency doesn't belong there at all on the wired remote interface.
Also, regarding my 38212 Hz number: I do wonder about that being a strange looking number. But I do have a very good measurement of 9 '1's and 7 '0's taking 26.82165ms. That works out to extremely close an even 466 Hz for repeating ones -- off by only 0.009% . Dividing a 'one' into 4 equally spaced parts (a mark and three spaces), and counting 20.5 periods per mark gives 38.212kHz. Even if the 38.212kHz rate is not the ideal modulation frequency, the math works out that you're hitting the actual data symbol rate exactly, assuming that 466 Hz for repeating ones is the actual nominal timing.
Anyway, the start bits are there to synchronize the data words, so you can be off by a few percent and it'll still work.