Pidog V2 not working

Hi all, I’m very new to coding and I recently bought the Pidog V2. I’m certain I plugged everything in correctly, but when I run the calibration modes, nothing I mean nothing happens at all. When I press “zero” to calibrate all the servos, I do get some movement. When i run “i2cdetect -y 1” I get all zero’s, I’m not sure what that means exactly. Can someone please guide me in the right direction. Thank you for your time.

Since the servos move when you press “Zero,” this indicates that the Robot HAT firmware is present and the servo control is working.

However, if i2cdetect -y 1 shows only – and no device addresses, it means the Raspberry Pi is not detecting any devices on the I2C bus. This could be because the Robot HAT was not powered on during the test, or there may be an I2C communication issue between the Raspberry Pi and Robot HAT.

Please make sure the Robot HAT power switch is set to ON, then run:

i2cdetect -y 1

Please send us a screenshot of the result. If it still shows no devices, we can continue checking the I2C connection and configuration.

I want to thank you for your quick reply. This is a screen shot of the i2c command as you requested.

Could you please take a photo of your PiDog while it is powered on and running? I would like to see the LED indicators on the Robot HAT and the wiring connections. This will help us determine whether the issue is with the power supply, the I²C connection, or the hardware itself.

Once we have the photo, we should be able to identify the problem and decide on the next steps.

This is with the HAT turned on and running

  1. Power the Pi through the Robot HAT

I notice you are powering the Pi directly via its Type‑C port. Please try powering it through the Robot HAT instead:

Unplug the Type‑C cable from the Pi.

Plug it into the Robot HAT.

Turn the Robot HAT switch to ON.

Then check if the Pi can detect the Robot HAT on I²C.

  1. Check I²C and library installation

The I²C LED on the Robot HAT is lit, so the HAT is powered – but the Pi is not detecting it. This may be because I²C is not enabled or the libraries are not installed.

Have you completed all steps here?
:link: Install All the Modules (Important) — SunFounder PiCrawler Kit documentation

If not, please install them – the scripts will enable I²C automatically.

  1. Test with another I²C device

If possible, connect another I²C device (e.g., LCD1602) to the Pi and run i2cdetect -y 1. This will tell you if the I²C bus is working.

If I power only the HAT, how does the HAT power the Pi? This is where I’m getting confused.

In simple terms: the HAT powers the Raspberry Pi through the 5V pins on the GPIO header. Many HATs use this same approach.

I must of missed a step, because there’s nothing connected to the GPIO header of the Rasp Pi. That’s why I was connecting the power to the Pi directly to power it. The only thing that is connected to the Rasp Pi is the camera, nothing else. What step did I miss? I appreciate all your help on this matter.

Ok, so I figured out my problem, I didn’t push the hat down onto the pins of the GPIO on the Rasp Pi. I now get power to the Pi. Now my new problem is that when I try to run a command of the Pidog I get the RGB lights failing and the IMU sh3001 failing, causing the command to quit where it is. Here’s a screen shot of the output from the the command also the output of the i2cdetect. Where do I go from here?

From your sudo i2cdetect -y 1 result, no I2C addresses are detected, which means the Robot HAT is still not working properly. Under normal conditions, you should see:

0x15 – Robot HAT

0x36 – RGB

0x74 – IMU (SH3001)

Please power off, then check that the Robot HAT is fully and correctly inserted into the Raspberry Pi’s 40‑pin GPIO. You may remove the 4 nylon standoffs and re‑insert the HAT, making sure the pins are not misaligned.

After re‑installing, run these commands and send us the output:
ls /dev/i2c*
grep -E “i2c|dtparam” /boot/firmware/config.txt
sudo i2cdetect -y 1
If /dev/i2c-1 exists and I2C is configured correctly but still no addresses are found, the issue may lie with the Raspberry Pi’s I2C communication or the Robot HAT’s I2C circuit.

If you have another standard I2C module, you can connect it directly to the Pi to test – this will help us determine whether the problem is with the Pi or the Robot HAT.

Thank you for your quick replies. So I unplugged everything and plugged it back in and made sure the header (GPIO) has been inserted correctly. I did remover the stands to ensure a proper connection. I ran the commands and this is what happened.

I’m not sure if I executed the commands correctly but there is the screen shot of the commands and the outputs. I do know that the LEDs aren’t responding and the IMU chip as a red light on it but it’s not being recognized by the system.

Thank you for the screenshot — the output is very clear! Let’s go through it:

1. `ls /dev/i2c*` shows `/dev/i2c-1`, which means I2C is properly enabled on the system :white_check_mark:. (The other i2c buses in the list belong to the Pi 5’s camera/display connectors and are unrelated to the Robot HAT — you can ignore them.)

2. The error on the `grep` command is just a copy-paste issue: the quotes in our forum post are “curly quotes”, which the terminal doesn’t recognize, so the command got split up. It doesn’t affect anything, since step 1 already confirmed I2C is enabled. If you’d like to verify, please type it manually: `grep -E ‘i2c|dtparam’ /boot/firmware/config.txt`

3. The key point: `sudo i2cdetect -y 1` returned an empty result. The Robot HAT is definitely powered (the Pi boots from it, and the red LED on the IMU board is on), so normally we should see three devices: **0x14** (Robot HAT MCU), **0x36** (IMU SH3001), and **0x74** (RGB strip).

In other words, the power path is fine, but the two data lines on the 40-pin header (SDA/SCL — pins 3 and 5) are not communicating. Could you please do the following two checks:

1. Power off and remove the Robot HAT. Take a close look at pins 3 and 5 on the header and the two matching sockets on the underside of the HAT — check for bent pins or anything blocking them. If it’s hard to tell, please send us a close-up photo of those two positions.

2. Re-seat the HAT (press it all the way down), power on, then type `sudo i2cdetect -y 1` manually (don’t copy from the webpage) and send us the result.

If it still comes back empty, here’s a cross-test using parts you already have in the kit:

1. Power off and unplug the **6-DOF IMU module** from its current connection.

2. Take the spare 4-pin cable (the four-color one, same type as the touch sensor cable) and plug one end into the IMU module — it has two connectors, both carrying the same I2C bus, so either one works.

3. The module’s four pins are **GND / VCC / SDA / SCL** (the labels are printed next to the connectors on both sides, so you can use them to identify each wire).

4. Connect the other end to the Pi’s 40-pin header:

  • **VCC → pin 1 (3.3V)** :warning: Use 3.3V — do NOT connect it to pin 2 (5V)

  • **GND → pin 6 (GND)**

  • **SDA → pin 3 (GPIO2/SDA)**

  • **SCL → pin 5 (GPIO3/SCL)**

5. Power on and type `sudo i2cdetect -y 1` manually. If you see **0x36** (the IMU’s address), the Pi’s I2C bus itself is fine and the issue is on the Robot HAT side. If it’s still empty, the issue is on the Pi side.

This will help us pinpoint it quickly. Afterwards, please plug the IMU back where it was.

Looking forward to your feedback!

Thank you for your response. I removed the HAT from the GPIO header and inspected them, I didn’t find any bent pins or obstruction in the sockets, here are the pictures for you to take a look. Next I reseated the HAT onto the GPIO header and ensured they were all the way down properly. Powered up and type in the ‘sudo i2cdetect -y 1’ and still came back empty.

I unplugged the connection to the 6-DOF IMU module and inserted the spare 4 colored pin wire into the module (right side). I inserted each wire according to their function appropriately into the GPIO header of the Raspberry Pi. Powered on and ran the same command, this time a 36 resulted in the field (picture included).

Not sure what the 36 represents, but I feel like we are getting close :slight_smile: . Thank you so much for your help on this matter. Look forward to your feedback

Thank you for the careful testing — the results are very clear. The 0x36 you detected tells us both the IMU module and the Raspberry Pi I2C bus are working fine; since no devices show up when the Robot HAT is installed, the issue is essentially with the HAT data lines. Based on your test results, we have decided to ship you a replacement Robot HAT that has been pre-tested. Please provide your detailed address and phone number via service@sunfounder.com and your original number if available. Once received, please install it following the same steps and run sudo i2cdetect -y 1 again. Feel free to reach out if you have any questions.

Thank you for your help on this matter, I will email you now with the shipping details. Thank you again!