{"id":8746,"date":"2007-04-25T23:36:00","date_gmt":"2007-04-26T03:36:00","guid":{"rendered":"https:\/\/nuxx.net\/blog\/2007\/04\/25\/hmliberator-works-mostly\/"},"modified":"2026-07-01T11:35:23","modified_gmt":"2026-07-01T15:35:23","slug":"hmliberator-works-mostly","status":"publish","type":"post","link":"https:\/\/nuxx.net\/blog\/2007\/04\/25\/hmliberator-works-mostly\/","title":{"rendered":"HMLiberator Works! (Mostly&#8230;)"},"content":{"rendered":"<p><center><a href=\"https:\/\/nuxx.net\/blog\/wp-content\/uploads\/2026\/06\/IMG_6973-scaled.jpg\"><img decoding=\"async\" src=\"https:\/\/nuxx.net\/blog\/wp-content\/uploads\/2026\/06\/IMG_6973-scaled.jpg\" height=427 width=640 border=0 alt=\"Parts on my workbench.\"><\/a>The EasyPIC4, iPod, Honda Music Link iPod Cable, and serial breakout cable,<br \/>all connected and ready for testing.<br \/>(Click for more photos of HMLiberator development.)<\/center><\/p>\n<p>Well, it pretty much works. By &#8220;pretty much&#8221; I mean that the Honda Music Link talks to it, the HMLiberator replies, and things seem okay. I&#8217;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&#8217;t seem to like the answer. I think I screwed up at least one of the packets, so I&#8217;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.<\/p>\n<p>I&#8217;ll try and fix it tomorrow.<\/p>\n<p>I uploaded a few more photos, which I&#8217;ll just mention here:<\/p>\n<blockquote><p>&middot; <a href=\"https:\/\/nuxx.net\/blog\/wp-content\/uploads\/2026\/06\/IMG_6967-scaled.jpg\">Inside of one of the MiniDIN 8 connectors, with fingerprints for scale.<\/a><br \/>\n&middot; <a href=\"https:\/\/nuxx.net\/blog\/wp-content\/uploads\/2026\/06\/IMG_6969-scaled.jpg\">Completed straight-through cable, to be split open for serial data testing.<\/a><br \/>\n&middot; <a href=\"https:\/\/nuxx.net\/blog\/wp-content\/uploads\/2026\/06\/IMG_6970-scaled.jpg\">Cut open data cable, ready to tap into the serial TX and RX lines.<\/a><br \/>\n&middot; <a href=\"https:\/\/nuxx.net\/blog\/wp-content\/uploads\/2026\/06\/IMG_6972-scaled.jpg\">Completed serial RX\/TX tap, except I forgot to connect the ground line. Whoops! It works when grounded through the sniffer, though.<\/a><br \/>\n&middot; <a href=\"https:\/\/nuxx.net\/blog\/wp-content\/uploads\/2026\/06\/IMG_6974-scaled.jpg\">My Honda Music Link sniffer. A level shifter, strip board, and some DB9 connectors.<\/a><br \/>\n&middot; <a href=\"https:\/\/nuxx.net\/blog\/wp-content\/uploads\/2026\/06\/IMG_6976-scaled.jpg\">Detail of the top of the HML sniffer.<\/a><br \/>\n&middot; <a href=\"https:\/\/nuxx.net\/blog\/wp-content\/uploads\/2026\/06\/IMG_6978-scaled.jpg\">Showing where the HML sniffer taps into the serial TX and RX lines which the HML uses to talk to an iPod.<\/a><\/p><\/blockquote>\n<p>This part is probably even less interesting to most people, so I&#8217;ll hide it behind a cut:<\/p>\n<p><!--more Click to see...-->Here it all is working:<\/p>\n<blockquote><p><tt>To HMLiberator from HML:<br \/>\nff ff 55 03 00 01 04 f8 ff 55 03 04 00 12 e7 ff \u00ff\u00ffU....\u00f8\u00ffU....\u00e7\u00ff<br \/>\n55 03 04 00 1c dd ff 55 04 04 00 26 01 d1 ff 55 U....\u00dd\u00ffU...&.\u00d1\u00ffU<br \/>\n04 04 00 26 01 d1 ff 55 04 04 00 31 02 c5 ff 55 ...&.\u00d1\u00ffU...1.\u00c5\u00ffU<br \/>\n04 04 00 2e 00 ca ff 55 03 04 00 16 e3 ff 55 04 .....\u00ca\u00ffU....\u00e3\u00ffU.<br \/>\n04 00 18 01 df ff 55 0c 04 00 1a 01 00 00 00 00 ....\u00df\u00ffU.........<br \/>\n00 00 00 02 d3 ....\u00d3<\/p>\n<p>To HML from HMLiberator:<br \/>\nff 55 05 04 00 13 01 0b d8 ff 55 0c 04 00 1d 00 \u00ffU......\u00d8\u00ffU.....<br \/>\n04 93 e0 00 00 59 d8 01 2a ff 55 06 04 00 01 00 .\u201c\u00e0..Y\u00d8.*\u00ffU.....<br \/>\n00 26 cf ff 55 06 04 00 01 00 00 26 cf ff 55 06 .&\u00cf\u00ffU......&\u00cf\u00ffU.<br \/>\n04 00 01 00 00 31 c4 ff 55 06 04 00 01 00 00 2e .....1\u00c4\u00ffU.......<br \/>\nc7 ff 55 06 04 00 01 00 00 16 df ff 55 07 04 00 \u00c7\u00ffU.......\u00df\u00ffU...<br \/>\n19 00 00 00 02 da ff 55 14 04 00 1b 00 00 00 00 .....\u00da\u00ffU........<br \/>\n00 48 4d 4c 69 62 65 72 61 74 6f 72 00 94 ff 55 .HMLiberator.\u201d\u00ffU<br \/>\n18 04 00 1b 00 00 00 00 01 46 72 65 65 73 20 79 .........Frees y<br \/>\n6f 76 72 20 69 50 6f 64 00 37 ovr iPod.7<\/tt><\/p><\/blockquote>\n<p>If you note the &#8220;Frees yovr iPod&#8221; string, you can see two typos there, as it should read &#8220;Frees Your iPod&#8221;. 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 (<tt>ff 55 0c 04 00 1a 01 00 00 00 00 ....\u00df\u00ffU.........<br \/>\n00 00 00 02 d3<\/tt> &#8212; Get items of named type 0x01, playlists. Starting at offset 00 00 00 00 get 00 00 00 02 items.)<\/p>\n<p>Regardless, I&#8217;m quite happy for now. Tomorrow I&#8217;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.<\/p>\n<p>Yay!<\/p>\n","protected":false},"excerpt":{"rendered":"<p>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 &#8220;pretty much&#8221; I mean that the Honda Music Link talks to it, the HMLiberator replies, and things seem okay. I&#8217;m stuck at one point, where the\u2026<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[6,11,34],"tags":[],"class_list":["post-8746","post","type-post","status-publish","format-standard","hentry","category-electronics","category-making-things","category-moved-from-livejournal"],"_links":{"self":[{"href":"https:\/\/nuxx.net\/blog\/wp-json\/wp\/v2\/posts\/8746","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/nuxx.net\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/nuxx.net\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/nuxx.net\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/nuxx.net\/blog\/wp-json\/wp\/v2\/comments?post=8746"}],"version-history":[{"count":2,"href":"https:\/\/nuxx.net\/blog\/wp-json\/wp\/v2\/posts\/8746\/revisions"}],"predecessor-version":[{"id":24565,"href":"https:\/\/nuxx.net\/blog\/wp-json\/wp\/v2\/posts\/8746\/revisions\/24565"}],"wp:attachment":[{"href":"https:\/\/nuxx.net\/blog\/wp-json\/wp\/v2\/media?parent=8746"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/nuxx.net\/blog\/wp-json\/wp\/v2\/categories?post=8746"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/nuxx.net\/blog\/wp-json\/wp\/v2\/tags?post=8746"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}