Cannot program Baby 328 with Pololu ISP programmer

I have a Baby Orangutan B-328 and a Pololu USB AVR programmer. I soldered the pins onto the baby and tried to upload the blink example, with no luck.

The programmer itself seems to be working fine. When plugged into USB, I get a solid green and flashing red light. I’ve installed the driver and that worked just fine. When I issue commands, the light flashes, so everything looks just fine in that respect.

I plug it into the baby and give the baby 6v, and its green light comes on. I issue the following command:

avrdude -p m168 -P COM2 -c avrispv2 -e -U flash:w:BlinkLED.hex

And get the Unknown status 0xc9 error.

I double-checked and my solder joints look OK. I only had a fat conical tip, so they’re not great, but look to be OK. I also soldered the headers on “backwards” so labels face up and chips face down. I didn’t think this would be a problem since they appeared to be plated holes.

One final thing, and maybe the most important. I had thought that the ISP cable was plugged in backwards, so I turned it around. When I did this, the baby got extremely hot and I unplugged it before I could issue any avrdude commands. I may have damaged the board, I’m not sure.

I have a Tiny2313 and some Tiny13’s laying around here, perhaps I can get them to program? That would at least tell me if the problem was with the programmer or the board. I’m out of time for tonight though, that’ll have to be tomorrow.

Hello.

Did you solder the ISP connector pins to the correct side of the board (as shown here)? If not, you will not be able to connect your programmer to the Baby Orangutan using the supplied ISP cable.

- Ben

I see what I did wrong now. Since I’ve mounted the board the upside down, I thought I could put the ISP headers on upside down, but I didn’t realize that would make it impossible to connect the ISP cable since the two rows will now be revered. I’m starting to think that was a bad decision, but it made more sense to me to have the labels facing up (even though the Baby Orangutan looks pretty badass, it’s really too tiny to see). And now I’m stuck, the headers on the “wrong” side are not long enough to mate with the ISP connector. How difficult is it going to be to desolder all these headers?

I’ll cannibalize an IDE cable or something and make a cable that will work with the reversed pin rows. Kind of an embarrassing mistake, I guess I just didn’t think it through fully.

Even experienced engineers mistakes like this from time to time, so don’t feel too embarrassed about it!

I think desoldering the header pins is going to be very difficult without the right tools, and you’ll risk damaging the board. There are a few things you can do to make things work with your current setup:

  1. Use a chain of two ISP cables connected in a way that properly reroutes the pins for you (i.e. so that pin 1 of one cable connects to pin 2 of the other, pin 3 connects to pin 4, and pin 5 connects to pin 6).

2) Cut one of the IDC connectors off of your ISP cable and replace it with a new one rotated by 180 degrees about the cable (so that when the ribbon cable lays flat, one IDC connector points down and the other points up). Edit: ignore this option; it does not work!

  1. Construct your own adapter that properly routes the pins.

Whichever way you go, make sure you think carefully about the connections to make sure the proper wires are going to the proper places. There is a marking on the IDC connectors of your (unmodified) ISP cable that show where pin 1 is of your programmer is (and the red wire is another pin 1 indication). Your goal is to find a way to connect this pin to pin 1 on the Baby Orangutan (marked by an arrow on the top copper layer of the PCB).

It is possible that you damaged your Baby Orangutan by plugging the programmer in wrong, but hopefully you caught your mistake before something broke!

- Ben

This option won’t work. IDC connectors are designed specifically so pin 1 is always the same regardless of which side the connector is mounted on the ribbon cable.

After rotating the IDC connector, you need to disregard the caret that indicates “pin 1” because it is no longer accurate, but what I described will work for adapting to an incorrectly soldered ISP header on the Baby Orangutan.

- Ben

But this is not true. pin 1 is still pin 1 whether the IDC is mounted on the top or the bottom of the cable.

I have had to solve this very problem, and mounting the IDC differently doesn’t solve it.
Or perhaps I am not understanding your suggestion.

As an example, adding a strain relief requires you to mount the connector on the opposite side of the ribbon cable, and does not swap the pins.

I apologize, you are right. In order to make a proper adapter, you need to effectively swap pin 1 with 2, pin 3 with 4, and pin 5 with 6, and there is no orientation of the IDC connector that results in such a swap. Obviously, I didn’t think about this carefully enough when I wrote out option 2 (I thought I remembered using a cable like that as an adapter in the past, but that must not have been the case). Short of manually reordering the ribbon cable wires, the only solution is to use two programming cables connected together. Thank you for pointing out my mistake.

- Ben