DFRobot RPi Zero USB hat problem

Just received the DFRobot Pi Zero UPS hat (v1.0), but I cannot get it to work properly.

It has two Li-Ion connection points so I tried the socketed one first. When I connect an 18650 battery initially nothing happens. I then press the button and 4 of the 5 voltage-level indicator leds light up for about 5 seconds and then all leds turn off. The RPi which is connected with a 40-pin connector does not show any signs of powering up. Putting the battery on the solder-on header tags on the board results in the same behaviour.

I tried a few button keypress sequences such as twice-fast, press-and-hold (not sure what I’m doing here) but nothing seems to power the RPi.

When I insert a 5V usb-micro plug into the UPS hat the blue led comes solid on and the voltage indicator leds now show 3 solid and one blinking led (indicating charging), but the RPi still doesn’t power on. Again, I try button presses to no avail.

Unplugging the 5V usb cable results in the blue led turning off immediately and the white power-level leds turning off after about 5 seconds.

Plugging in the 5V USB plug into the RPi results in the normal boot process of the RPi but at no point then do any of the UPS hat leds come on.

Any suggestions?


Hey Marcel,

Take a look at the UPS HAT’s Wiki page, specifically this column of the Firmware Version Update and Function Description table .image
It mentions holding it on for more than 2 seconds to power it on and off. I have used this one and it operated in exactly the same way!

Hope this helps.

1 Like

Thanks for the reply, but my board still doesn’t power up the attached RPi zero whether I press and hold 1s, 2s, 3s, 4s or 5 seconds… It seems as if I’m either using the wrong sequence to power it on or there is something wrong with the firmware. The board revision is v1.0 but I don’t know the firmware revision.

The Li-Ion battery voltage is around 3.8V so it’s not that either.

I think I’ve got a faulty unit.


Hi Marcel,

It sounds like that may be the case, this is quite an unusual error. If you can please reply to your order confirmation email we’ll do some troubleshooting then get that sorted out for you right away according to the appropriate return/refund policies.

1 Like

Thanks Bryce,

Sorting it out with Support now…


Okay, what NOT to do…

I accidentally swapped the orientation of the 40-pin header connector from the RPi with the UPS hat. The result being that the UPS hat board applied 5V to GPIO pins 20 and 21 and shorted 3V3 to GND.

The customer support team spotted my mistake and I was able to somewhat recover from the situation. The damage for as far as I can tell is limited, but the lesson learnt is big. Be sure to look up and match the pinout for each board before applying power.

After the incident, from what I’ve been able to check on the RPi:

  • the RPi Zero still boots up okay
  • all USB ports work
  • the power rails seem to provide all the correct power
  • I2C is still working
    (I have not checked GPIO pins 20 and 21 but I fear they might be dead)

On the DFRobot UPS board all seems ok except for I2C. I have not been able to detect the bus ID# that it’s supposed to be on (hex 0x18 IIRC). I confirmed this with a different RPi and a known good I2C slave device.


Happens to the best of us! Re testing the GPIO, pintest could be handy:


I’m pretty sure it’s pre-installed in Pi OS these days. It’s odd that I2C isn’t working, because even installed upside down, it shouldn’t have been connected to any voltages that would hurt it. Have you definitely enabled I2C in raspi-config ?

One more update on the state of my RPi Zero after installing the DFRobot UPS hat upside-down. Some functionality of the GPIO pins on the Zero is definitely damaged. As mentioned before, the RPi runs the O/S still fine and I2C on pins 03 and 05 (GPIO02 and GPIO03) is working flawlessly. I can also use several of the GPIO pins as outputs. However, using them as inputs is definitely not working as expected; I’m getting all sorts of false triggers. I have since moved the UPS hat onto another RPi.

Thanks for the feedback Oliver. Yes, on a different RPi I2C is working fine for other I2C devices and they show their address with the I2C scanner tool. The UPS hat just doesn’t respond with it. I must have damaged the UPS hat in the process as well.

Thanks to everyone for their support on this one. Much appreciated.


Hi Marcel,

Thanks for the update, and especially the words of warning. While most of the connectors on the Pi are non-reversible, the 40-Pin header is one that you can definitely get wrong,

All the best with your projects, and I hope you find a good use for the damaged Pi! (NAS maybe? :wink: )


1 Like