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

Category making things

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:

Continue reading: Click to see…

electronicsmaking thingsmoved from livejournal

HMLiberator First Draft


HMLiberator Schematic First Draft
(Click for 150dpi version.)

Well, there’s that. I think that’s the appropriate first draft of the schematic for the HMLiberator. All parts are SMT, including the SOT-8 voltage regulator and crystal. I’m still not sure how the cables running to the Honda Music Link and iPod will be terminated, but for now I’m thinking that the wires will simply be soldered into the board, then the body of the cable strapped down to the board for strain relief.

The whole board is intended to be considerably smaller than the Honda Music Link itself, capable of being strapped to the HML and sort-of piggyback on it. It will likely be cased in simple shrink-tubing, as being all SMT and low profile this shouldn’t be difficult to do at all.

The ICSP connector will be a right-angle .100″ connector on the dev board, and just holes on the production ones (if I do any production runs). I figure the right angle connector can be set in the holes and held in place during programming, and any purchaser who has the means to flash it themselves likely has the means to add the ICSP connector itself.

Now, to fix the FIFO problem and lay out the board. (Hopefully I’ll get both done by the end of the week.)

Oh, and if any of you can see any problems with that design, please let me know.

electronicsmaking thingsmoved from livejournal

PIC16F688

EasyPIC4 w/ PIC16F688EasyPIC4 w/ PIC16F688 at 12MHz with
rigged connection from hardware UART to on-board level shifter.

After some jiggery to get the PIC16F688 sample I received today talking to the built-in level shifter on the EasyPIC4 I had no problem getting the basic software for the HMLiberator running and responding to commands. It’s currently running at 12MHz, but as soon as I get some 20MHz crystals it’ll run there. This will give a baud rate just about 0.16% skewed from the specified 9600 baud rate, and I think that’s close enough.

I still have one problem to sort out before I try plugging it into the car, and that’s with the receive FIFO. With it set at the default of 40 bytes I can get five commands sent and responded to, and then the sixth just fails. As I was testing with a seven-byte command (and 7×5 = 35, just below 40), I think I’m hitting point where the FIFO wraps around (or something — I don’t understand it well enough yet). The incoming commands are of varying size, so I’m not really sure how to work around this yet.

At least I know where the problem lies. Once that is sorted (or whatever) I’ll plug the thing into the car and see what it does. If that goes well, which I expect it will after some basic software changes, I’ll finish up the v1.0 circuit / board design and order a run of boards and make up a first batch of five or so.

electronicsmaking thingsmoved from livejournal

HMLiberator

Hmm, the software for the HMLiberator is (almost) working. It seems to respond as I hoped five out of six times. The next time it just seems to not do what I want. I’m not sure how to debug it, though, as I can’t really trigger an interrupt with the device in hardware debug mode.

This might take some thinking.

That said, it’s time to go home and build the appropriate cable so I can actually sling it in between an iPod and the HML itself for once.

The HMLiberator is the PIC-based device I’ve been cobbling together to sit between the iPod and the Honda Music Link, translating the Mode 4 remote commands into Mode 2 commands. This will allow the user to keep using the controls on the face of the iPod, while the HML thinks it has one locked down and under its control.

electronicsmaking thingsmoved from livejournal

Skynet SNP-9F40Skynet SNP-9F40

Oh, tonight I also threw out an old (unused) SCSI disk enclosure I had in the basement. I figured that the power supply in it might be useful, so I opened it up. To my surprise I found two of the power supplies pictured above. (Side by side photos of the two here.)

That there is a Skynet SNP-9F40 (PDF), and it’ll take (according to that PDF) 90~264VAC as input, and spit out +5VDC (4A), +12VDC(3A), -5VDC(0.3A), and -12VDC(0.3A). I’m thinking this could be quite handy for both some of the music stuffs I’ve been working on (maybe even the 9090), or just as a benchtop supply. (I’ll probably mount one of them in an enclosure with terminals and a switch on it or something.)

There was also a filtered IEC-type mains input on there which I grabbed, some PC-type Molex power connector harnesses designed for connecting the power supplies to drives, brass stand-offs, and plastic clip-type spacers, all of which which may come in handy. All in all, a good salvage.

electronicsmaking thingsmoved from livejournal

It works.

When this…

sendCommand(mode2, 0)
sendCommand(playButton, 0)
sendCommand(relButton, 0)

Which supposedly sends these commands…

const mode2 as byte[5] = (0x03,0x00,0x01,0x02,0xFA) 'Simple iPod Remote
const playButton as byte[5] = (0x03,0x02,0x00,0x01,0xFA) 'Play Button
const relButton as byte[5] = (0x03,0x02,0x00,0x00,0xFB) 'Release Button

Gives me this in the serial console…

Received: 0xFF 0x55 0x03 0x00 0x01 0x02 0xFA 0xFF 0x55 0x03 0x02 0x00 0x01 0xFA
Received: 0xFF 0x55 0x03 0x02 0x00 0x00 0xFB

…I know it’s time to go home.

And yes, as suggested earlier I just went ahead pre-calculated the checksums. I also just bundled the packet lengths in there too, and I read that first bit to determine how many bits have to be sent so that packets of arbitrary length may be sent simply by defining them as a constant.

It’s sending back to the PC properly, but not to the iPod. I think that’s because of some weirdness with the pins I chose to use. It worked fine on the PIC16F88, but for some reason that thing cooked this morning. (It now reports itself as some 12F part, likely indicating that some of the bits which indicate the part type have failed.)

Now to get the part running from the internal oscillator instead of a crystal and responding to commands from the serial port. (Both of these should be fairly easy.)

After that I can start building the list of responses I want sent to the Honda Music Link (initial by-hand decoding of a sample conversation between my iPod and the HML can be seen here). Then once that’s all set it’s time to plug it into the car and hope things work as designed. If that works it’s time to design the PCB and see about producing a dozen or so.

Thanks very much and for directing me to pointers, structures (even though I didn’t use structures) and the unknown-to-me mikroBasic manual.

electronicsmaking thingsmoved from livejournal

8 Conductor Stranded Cable

Would any of you happen to have any eight-conductor stranded cable, preferably shielded?

I need to make some cables for part of the Honda Music Link stuff I’m working on, and I’m having difficulty finding this sort of cable in quantities less than 500′ or 1000′ rolls. I only need maybe… 20′ or so, at most. Even 10′ would be usable for my prototype stuffs.

Thanks!

electronicsmaking thingsmoved from livejournal

Silly iPod Remote

If things go as I hope, the following will take an iPod with it’s serial RX line connected to RB0 and skip it forward one track when the tactile switch RA0 on my dev board is pressed:

program ipod_next_track_test

dim buttonstate as byte

Soft_Uart_Init(PORTB, 1, 0, 9600, 0)

main:
while true
  if Button(PORTA, 0, 1, 1) then
    buttonstate = 255
  end if
  if buttonstate and Button(PORTA, 0, 1, 0) then
    Soft_Uart_Write(0xFF 0x55 0x03 0x02 0x00 0x08 0xF3)
    buttonstate = 0
  end if
wend

I just have to make an appropriate cable and I can test it. (The one I had made broke.)

Now, if that works I can get to work on making the EUSART on the chip respond to the Honda Music Link with enough intelligence to make it think that an iPod is present.

Then, if that works I can get to work on making some of the commands received from the HML act as the aforementioned button press, and I’ll have negated the function crappyness of the HML.

After that point I can make up a cheesy little PCB for the circuit and a PIC16F688 (the smallest PIC I could find with an EUSART) to sit permanently in the car. It shouldn’t need much more than the PIC, a crystal (because I’m not sure the mikroElektonika stuff can set the frequency on the internal oscillator), either a LM78L05 or small switching regulator, headers for the DIN connector cables, and a couple of caps. If I’m bored enough I might even make it my first SMT board.

automotiveelectronicsmaking thingsmoved from livejournal

TV Stand Ideas

So, I purchased an LCD TV earlier today via Costco’s website. (This one, if you are curious.)

Well, I need a stand for it. I think I’m going to make one, using a spare part from my desk. Due to a somewhat complicated story I have a spare right hand side desk surface from this shelf. I think I’m going to use it to make the LCD TV stand, but I’m not certain how to make the base.

First off, I think I want the base to be around 20″ off of the ground, so there should be room for a shelf in the middle. I’m thinking I’ll make the base out of black iron pipe, with a shelf supported with tees in the center. The shelf will probably be a random piece of melamine-covered stuffs from Home Depot / Lowes, fastened to the black iron pipe with some manner of pipe clamp.

Or, I could use multiple sets of flanges between some large, flat boards.

I was also thinking of large round PVC uprights, notched, with the shelves set into that.

Hmm. Any better ideas?

acquired thingsmaking thingsmoved from livejournal