nuxx.net
Making, baking, and (un-)breaking things in Southeast Michigan.

HMLiberator Works! (Mostly…)

Parts on my workbench.The EasyPIC4, iPod, Honda Music Link iPod Cable, and serial breakout cable,
all connected and ready for testing.
(Click for more photos of HMLiberator development.)

Well, it pretty much works. By “pretty much” I mean that the Honda Music Link talks to it, the HMLiberator replies, and things seem okay. I’m stuck at one point, where the Honda Music Link (HML) asks the iPod (really, the HMLiberator) for information about the two playlists it reports containing, and the HML doesn’t seem to like the answer. I think I screwed up at least one of the packets, so I’ll look into that tomorrow and do a bit more testing. The good news is that it all generally works and right now the problem is software related.

I’ll try and fix it tomorrow.

I uploaded a few more photos, which I’ll just mention here:

· Inside of one of the MiniDIN 8 connectors, with fingerprints for scale.
· Completed straight-through cable, to be split open for serial data testing.
· Cut open data cable, ready to tap into the serial TX and RX lines.
· Completed serial RX/TX tap, except I forgot to connect the ground line. Whoops! It works when grounded through the sniffer, though.
· My Honda Music Link sniffer. A level shifter, strip board, and some DB9 connectors.
· Detail of the top of the HML sniffer.
· Showing where the HML sniffer taps into the serial TX and RX lines which the HML uses to talk to an iPod.

This part is probably even less interesting to most people, so I’ll hide it behind a cut:

Here it all is working:

To HMLiberator from HML:
ff ff 55 03 00 01 04 f8 ff 55 03 04 00 12 e7 ff ÿÿU....øÿU....çÿ
55 03 04 00 1c dd ff 55 04 04 00 26 01 d1 ff 55 U....ÝÿU...&.ÑÿU
04 04 00 26 01 d1 ff 55 04 04 00 31 02 c5 ff 55 ...&.ÑÿU...1.ÅÿU
04 04 00 2e 00 ca ff 55 03 04 00 16 e3 ff 55 04 .....ÊÿU....ãÿU.
04 00 18 01 df ff 55 0c 04 00 1a 01 00 00 00 00 ....ßÿU.........
00 00 00 02 d3 ....Ó

To HML from HMLiberator:
ff 55 05 04 00 13 01 0b d8 ff 55 0c 04 00 1d 00 ÿU......ØÿU.....
04 93 e0 00 00 59 d8 01 2a ff 55 06 04 00 01 00 .“à..YØ.*ÿU.....
00 26 cf ff 55 06 04 00 01 00 00 26 cf ff 55 06 .&ÏÿU......&ÏÿU.
04 00 01 00 00 31 c4 ff 55 06 04 00 01 00 00 2e .....1ÄÿU.......
c7 ff 55 06 04 00 01 00 00 16 df ff 55 07 04 00 ÇÿU.......ßÿU...
19 00 00 00 02 da ff 55 14 04 00 1b 00 00 00 00 .....ÚÿU........
00 48 4d 4c 69 62 65 72 61 74 6f 72 00 94 ff 55 .HMLiberator.”ÿU
18 04 00 1b 00 00 00 00 01 46 72 65 65 73 20 79 .........Frees y
6f 76 72 20 69 50 6f 64 00 37 ovr iPod.7

If you note the “Frees yovr iPod” string, you can see two typos there, as it should read “Frees Your iPod”. I think these typos may have led to an incorrect checksum for one of the packets, which is why the HML sort of hangs at repeated requests to get the playlists (ff 55 0c 04 00 1a 01 00 00 00 00 ....ßÿU.........
00 00 00 02 d3
— Get items of named type 0x01, playlists. Starting at offset 00 00 00 00 get 00 00 00 02 items.)

Regardless, I’m quite happy for now. Tomorrow I’ll try and fix up the software, keep working on laying out the PCB, and (hopefully) get the whole thing talking to the car properly and music flowing. After that I can figure out the details of what commands are sent during what button presses and in which modes, get some test cases going, and things like that.

Yay!

Leave a reply