What I Am Doing - BusPirate Troubleshooting

What I Am Doing - BusPirate Troubleshooting

In this post I'm going to walk you through some of the troubleshooting and rabbit holes one goes down pursing hardware hacking.

I just a day removing a stubborn power supply for a piece of scientific equipment so that I could get access to the JTAG and I realized I needed to update the firmware on my BusPirate.

Now if you read the tutorials online on how to do this, you will see something like the following:

  • Older versions of the BusPirate require you to jump the  PGC and PGD pins in order to get it into BOOTLOADER mode in order to update the firmware.
  • The more recent versions of the BusPirate don't require this. You can simply attach to it using minicom and type "$" to enter BOOTLOADER mode.
  • That you can access it using "screen" to enter BOOTLOADER.
  • Various broken links to forum posts or firmware pages where to get the needed packages to do the update.

Unfortunately all this is incorrect, at least for the BusPirate I have.

No alt text provided for this image
PGC and PGD Pins Jumpered

I ended up having to jump the pins regardless as can be seen in the photo as can be seen in the photo above.

After quite a bit of searching and muddling through broken links I found the latest official version (still years old) of the firmware at:

https://storage.googleapis.com/google-code-archive-downloads/v2/code.google.com/dangerous-prototypes-open-hardware/BusPirate.package.v6.1.zip

There is a newer community supported fork but I opted for the official version at this time.

A community member released a command line loader for the firmware which can be found at:

https://storage.googleapis.com/google-code-archive-downloads/v2/code.google.com/the-bus-pirate/pirate-loader.zip

After compiling it, I attempted to update the firmware but got an error:

No alt text provided for this image
Firmware Update Error

At this point I was still following the instructions that said I didn't need to jump the pin for my version of the board, but it wasn't working so I went ahead and jumped it and tried again.

No alt text provided for this image
2nd Error

After a lot of troubleshooting I realized that having either minicom or screen connected to the device interferes with opening the serial device, which in hindsight should have made sense but that's what the tutorials said to do. I thought about it and realized that with the pins jumped, it should be in bootloader mode, and I don't really need to connect with a terminal to it to see what's going on. So I tried again blind:

No alt text provided for this image
Success

I then ran the self test thinking I was done but got several errors:

No alt text provided for this image
Self Test Errors

So I switched it to 1-wire mode and turned on the power pins:

PIN Settings
No alt text provided for this image

The 5.0 voltage looked a little off so I started probing around on the board with my multi-meter to see if there were any hardware issues. First I checked the voltage pins and the 3.3V looked fine but the 5V still looked a little off. Not too much, but a little:

No alt text provided for this image
Testing Pins

The BusPirate 3.6 has 3 voltage regulators that I could find so I looked them up and they seemed to be the MCP1801.

No alt text provided for this image
BusPirate Voltage Regulators

Next I looked up the diagram for the VRGs:

No alt text provided for this image
MCP1801

Now I knew what pin to test so I checked what was coming out of the voltage regulator that corresponds to the 5V pin:

No alt text provided for this image
Testing 5V Voltage Regulator

So maybe there could be something wrong with the 5V VRG and looking around at various forums I can see that people have reported problems with it. I decided to run the self test again just for the heck of it, but this time I actually read everything on the screen and there it was staring me in the face:

Connect (Vpu to +5V) and (ADC to +3.3V)

I had neglected to jump those pins! I went back and fixed that issue:

No alt text provided for this image
Connect (Vpu to +5V) and (ADC to +3.3V)

Then I re-ran the self test:

No alt text provided for this image
Success!

Now I have an updated, working, BusPirate. Next step, attack the device I was going after in the first place!

Thanks for listening,

A.