Why did you make these?

I designed a similar board for a deployment of sensors I was working on. Those are the original PiDog. They work fine, but are not as convenient to use as they cannot be re-programmed in-situ and are missing some convenient connectors. The PiDog2 is my first attempt at commercializing this unit.

What's wrong with the Raspberry Pi's hardware watchdog?

Nothing, but it has some limitations. For one, it provides a hard-reset which, in the case of a low battery, won't help at all. Furthermore, it doesn't shut down the Pi, just resets it. So if you need to conserve power, it's useless.

Where can I buy one of these?


Can I measure voltages outside the range of 0-16V? Can I measure a lower voltage with more precision?

Sure, just replace the voltage dividers at the VSENS inputs with your own values. The values chosen here were so that a lead-acid 12V battery could be measured safely, with some margin.

Under heavy load, the Raspberry Pi is misbehaving or crashing.

Sometimes the voltage seen by the Raspberry Pi will be too low and it will malfunction. The switch in the PiDog2 will not contribute to this problem, but the USB cable power your device as well as the USB socket itself can. USB simply wasn't designed to carry high currents. Consider user the 2x2 connector and a custom cable assembly to provide 5V to the device through beefier wiring. Also, check that your power supply can handle the Pi's load, plus the load of whatever is plugged into it!

Where can I get help?

Try me at dave -at-

Are these ready to use out of the box?

Not entirely. To save cost, only the SMT parts are soldered onto the board. You'll have to solder on the 40-pin connector and any other connectors you want to use (2x2 power, 2x3 ICSP and two 2-pin JSTs) -- all of which are provided. At a minimum, you'll have to do the 40-pin, but the other connectors are optional.

How accurate is the timing on these?

You'll note that there is no crystal on these boards. The Attiny84 can work with a crystal, but it would use up two precious pins and force a move to another processor. As a result, I am using the internal 8 MHz oscillator, which can be a few percent off. This means that the timing in the PiDog when it is on is not going to be super accurate.

When the PiDog is "off" the current firmware switches off the main oscillator to save power and instead relies on the AtTiny's watchdog timer to keep time. This is even less accurate than the main oscillator. This definitely saves power, but means that the time you set for a wakeup might not be what you get. If you do not like this behavior, you can modify the firmware not to switch into a low-power tick during "off" periods.

Power Use

At PiDog, of course, draws some power. I have taken pain to reduce power use to a minimum when the device has the RPi switched off. With the exception of the LEDs, the load on a battery of a PiDog in shutdown mode will be negligible. However, those LEDs draw a few mA each. To get to the lowest possible power use, consider modifying the firmware to disable the status LEDs. Of course, you lose status info, but life is hard choices! You can also remove the blue power LED, but I think this is probably not worth the trouble, since it is only lit when the power is "on" and the RPi is drawing so much more current in that circumstance anyway.