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.
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:
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:
After compiling it, I attempted to update the firmware but got an 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.
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:
I then ran the self test thinking I was done but got several errors:
So I switched it to 1-wire mode and turned on the power pins:
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:
The BusPirate 3.6 has 3 voltage regulators that I could find so I looked them up and they seemed to be the MCP1801.
Next I looked up the diagram for the VRGs:
Now I knew what pin to test so I checked what was coming out of the voltage regulator that corresponds to the 5V pin:
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:
Then I re-ran the self test:
Now I have an updated, working, BusPirate. Next step, attack the device I was going after in the first place!
Thanks for listening,
A.