Self Test Failures

Just got my Bus Pirate 5 rev 10 and updated the firmware to the latest version.

HiZ> i

This device complies with part 15 of the FCC Rules. Operation is subject to the following two conditions: (1) this device may not cause harmful interference, and (2) this device must accept any interference received, including interference that may cause undesired operation.


Bus Pirate 5 REV10
Firmware main branch (2024-07-06T10:53:04Z)
RP2040 with 264KB RAM, 128Mbit FLASH
S/N: 293D06D3012961E4
https://BusPirate.com/
Storage:   0.10GB (FAT16 File System)

Configuration file: Not Detected
Available modes: HiZ 1-WIRE UART HDPLXUART I2C SPI 2WIRE DIO LED
Active mode: HiZ ()=()
Display format: Auto


The self test has errors however. It says 3 errors but it appears to have a lot of errors in the BIO FLOAT and BIO HIGH tests.

HiZ> ~
SELF TEST STARTING
DISABLE IRQ: OK
ADC SUBSYSTEM: VUSB  5.17V OK
FLASH STORAGE: OK
PSU ENABLE: OK
VREG==VOUT:  3345 = 3319 OK
BIO FLOAT TEST (SHOULD BE 0/<0.30V)
BIO0 FLOAT: 1/3.23V ERROR!
BIO1 FLOAT: 1/1.04V ERROR!
BIO2 FLOAT: 1/1.59V ERROR!
BIO3 FLOAT: 1/2.98V ERROR!
BIO4 FLOAT: 1/1.55V ERROR!
BIO5 FLOAT: 1/0.16V ERROR!
BIO6 FLOAT: 0/1.41V ERROR!
BIO7 FLOAT: 0/1.55V ERROR!
BIO HIGH TEST (SHOULD BE >3.00V)
BIO0 HIGH: 3.34V OK
BIO0 SHORT->BIO1 (1/3.12V): ERROR!
BIO0 SHORT->BIO2 (1/1.76V): ERROR!
BIO0 SHORT->BIO3 (1/0.12V): ERROR!
BIO0 SHORT->BIO5 (1/3.41V): ERROR!
BIO0 SHORT->BIO6 (1/3.14V): ERROR!
BIO0 SHORT->BIO7 (1/2.94V): ERROR!
BIO1 HIGH: 3.33V OK
BIO1 SHORT->BIO0 (1/0.14V): ERROR!
BIO1 SHORT->BIO2 (1/3.05V): ERROR!
BIO1 SHORT->BIO3 (1/3.10V): ERROR!
BIO1 SHORT->BIO4 (1/3.09V): ERROR!
BIO1 SHORT->BIO5 (1/3.31V): ERROR!
BIO1 SHORT->BIO6 (0/1.91V): ERROR!
BIO1 SHORT->BIO7 (1/0.10V): ERROR!
BIO2 HIGH: 3.37V OK
BIO2 SHORT->BIO0 (1/3.85V): ERROR!
BIO2 SHORT->BIO1 (1/3.48V): ERROR!
BIO2 SHORT->BIO5 (1/1.87V): ERROR!
BIO2 SHORT->BIO6 (0/1.52V): ERROR!
BIO2 SHORT->BIO7 (0/1.50V): ERROR!
BIO3 HIGH: 3.30V OK
BIO3 SHORT->BIO0 (1/1.96V): ERROR!
BIO3 SHORT->BIO1 (1/3.03V): ERROR!
BIO3 SHORT->BIO2 (1/1.28V): ERROR!
BIO3 SHORT->BIO4 (1/1.38V): ERROR!
BIO3 SHORT->BIO5 (1/2.45V): ERROR!
BIO3 SHORT->BIO6 (1/1.32V): ERROR!
BIO3 SHORT->BIO7 (1/1.30V): ERROR!
BIO4 HIGH: 3.29V OK
BIO4 SHORT->BIO0 (0/3.14V): ERROR!
BIO4 SHORT->BIO1 (0/3.15V): ERROR!
BIO4 SHORT->BIO2 (0/1.57V): ERROR!
BIO4 SHORT->BIO3 (0/2.14V): ERROR!
BIO4 SHORT->BIO5 (0/2.04V): ERROR!
BIO4 SHORT->BIO6 (0/1.26V): ERROR!
BIO4 SHORT->BIO7 (0/1.55V): ERROR!
BIO5 HIGH: 3.32V OK
BIO5 SHORT->BIO0 (1/2.88V): ERROR!
BIO5 SHORT->BIO1 (1/2.77V): ERROR!
BIO5 SHORT->BIO2 (0/1.24V): ERROR!
BIO5 SHORT->BIO3 (1/0.82V): ERROR!
BIO5 SHORT->BIO4 (0/1.81V): ERROR!
BIO5 SHORT->BIO6 (1/0.51V): ERROR!
BIO5 SHORT->BIO7 (1/2.85V): ERROR!
BIO6 HIGH: 3.34V OK
BIO6 SHORT->BIO0 (1/0.22V): ERROR!
BIO6 SHORT->BIO1 (1/0.16V): ERROR!
BIO6 SHORT->BIO2 (1/2.99V): ERROR!
BIO6 SHORT->BIO3 (1/3.50V): ERROR!
BIO6 SHORT->BIO4 (1/3.09V): ERROR!
BIO6 SHORT->BIO5 (1/3.37V): ERROR!
BIO7 HIGH: 3.29V OK
BIO7 SHORT->BIO0 (1/3.79V): ERROR!
BIO7 SHORT->BIO1 (1/3.46V): ERROR!
BIO7 SHORT->BIO2 (1/2.83V): ERROR!
BIO7 SHORT->BIO3 (0/0.37V): ERROR!
BIO7 SHORT->BIO5 (1/1.56V): ERROR!
BIO7 SHORT->BIO6 (0/1.50V): ERROR!
BIO LOW TEST (SHOULD BE <0.30V)
BIO0 LOW: 0.03V OK
BIO1 LOW: 0.03V OK
BIO2 LOW: 0.03V OK
BIO3 LOW: 0.03V OK
BIO4 LOW: 0.03V OK
BIO5 LOW: 0.03V OK
BIO6 LOW: 0.03V OK
BIO7 LOW: 0.03V OK
BIO PULL-UP HIGH TEST (SHOULD BE 1/>3.00V)
BIO0 PU-HIGH: 1/3.32V OK
BIO1 PU-HIGH: 1/3.30V OK
BIO2 PU-HIGH: 1/3.29V OK
BIO3 PU-HIGH: 1/3.29V OK
BIO4 PU-HIGH: 1/3.30V OK
BIO5 PU-HIGH: 1/3.30V OK
BIO6 PU-HIGH: 1/3.32V OK
BIO7 PU-HIGH: 1/3.32V OK
BIO PULL-UP LOW TEST (SHOULD BE <0.30V)
BIO0 PU-LOW: 0.13V OK
BIO1 PU-LOW: 0.14V OK
BIO2 PU-LOW: 0.13V OK
BIO2 SHORT->BIO6 (0/3.29V): ERROR!
BIO3 PU-LOW: 0.13V OK
BIO4 PU-LOW: 0.14V OK
BIO5 PU-LOW: 0.13V OK
BIO6 PU-LOW: 0.14V OK
BIO7 PU-LOW: 0.14V OK
BIO7 SHORT->BIO6 (0/3.29V): ERROR!
CURRENT OVERRIDE: OK
CURRENT LIMIT TEST: OK
PUSH BUTTON TO COMPLETE: OK

ERRORS: 3
FAIL! :(

Is there something I can do to get it to pass the self test? Is this something that can be ignored or will this affect its performance?

Just to check - is anything connected to the IO header?

It looks like there is a short somewhere in the IO buffers, or perhaps damage to the analog mux. If this Bus Pirate is from DirtyPCBs, please open a support ticket and we’ll send a replacement. I’ll tell them to expect you. If not, please DM/PM your address and I’ll send a replacement.

I had the wires plugged in but not connected to anything, so I didn’t think that would interfere with anything. But that was definitely it. :man_facepalming: Pulled them out and it passed. Thanks!

1 Like

Thanks for the update. I wonder if it is capacitance in the cable, we don’t delay or anything before testing pin state. I’ll add some delay when I rework the self test.

2 Likes