Raspberry Pi 5 GPIO + HiWonder TurboPi Pinout

MPU-6050 IMU connection guide — pulsing orange pins = connect here

Pi 5 — 40-Pin GPIO Header

(Pin 1 = top-left, near board edge. Hover for details.)

3.3V ← MPU VCC
1
2
5V (HiWonder board)
I2C1 SDA ← MPU SDA
3
4
5V
I2C1 SCL ← MPU SCL
5
6
GND ← MPU GND
GPIO 4 (GPCLK0)
7
8
UART TX (HiWonder)
GND
9
10
UART RX (HiWonder)
GPIO 17
11
12
GPIO 18 (PWM0)
GPIO 27
13
14
GND
GPIO 22
15
16
GPIO 23
3.3V
17
18
GPIO 24
GPIO 10 (SPI MOSI)
19
20
GND
GPIO 9 (SPI MISO)
21
22
GPIO 25
GPIO 11 (SPI SCLK)
23
24
GPIO 8 (SPI CE0)
GND
25
26
GPIO 7 (SPI CE1)
ID_SD (EEPROM)
27
28
ID_SC (EEPROM)
GPIO 5
29
30
GND
GPIO 6
31
32
GPIO 12 (PWM0)
GPIO 13 (PWM1)
33
34
GND
GPIO 19
35
36
GPIO 16
GPIO 26
37
38
GPIO 20
GND
39
40
GPIO 21
3.3V
5V
GND
GPIO (free)
I2C
UART (HiWonder)
SPI
ID EEPROM
Connect MPU here

MPU-6050 IMU — Wiring

MPU-6050Pi 5 PinGPIOStatus
VCCPin 13.3Vshared
SDAPin 3GPIO 2shared (sonar)
SCLPin 5GPIO 3shared (sonar)
GNDPin 6GNDshared
AD0GND or floataddr 0x68
INTnot connectedoptional
DO NOT use 5V! MPU-6050 is 3.3V logic. Pin 2 (5V) will damage it.

HiWonder Board — Pins Used

PinGPIOUsed For
2, 45VBoard power (STM32 + motors)
3GPIO 2 (SDA)I2C: sonar 0x77, line follower
5GPIO 3 (SCL)I2C: sonar 0x77, line follower
8GPIO 14 (TX)UART to STM32 (/dev/ttyAMA0)
10GPIO 15 (RX)UART from STM32
6,9,14GNDCommon ground
Only 6 GPIO pins used. HiWonder needs I2C (2 pins) + UART (2 pins) + power. All other 30+ pins pass through and are free.

I2C Bus 1 — Device Map

Pi Pin 3 (SDA) ───┬──────────┬──────────┐ Pi Pin 5 (SCL) ─┬─┤────┬─────┤────┬─────┤ │ │ │ │ │ │ ┌──┴─┴──┐ ┌──┴─────┴┐ ┌──┴─────┴┐ |Sonar | |LineFllw | | MPU6050 | | 0x77 | | 0x78? | | 0x68 | |present | |present | | NEW | └────────┘ └─────────┘ └─────────┘
No conflict. I2C is a shared bus. Multiple devices coexist with different addresses. Sonar=0x77, MPU=0x68.

Verify After Wiring

# SSH to Pi and scan I2C bus:
ssh pi "sudo i2cdetect -y 1"

# Expected: 68 (MPU) and 77 (sonar)
     0  1  2  3  4  5  6  7  8
60: -- -- -- -- -- -- -- -- 68
70: -- -- -- -- -- -- -- 77

# Quick MPU-6050 read test:
ssh pi "python3 -c \"
from smbus2 import SMBus
bus = SMBus(1)
who = bus.read_byte_data(0x68, 0x75)
print(f'WHO_AM_I: 0x{who:02x}')
\""
# Should print: WHO_AM_I: 0x68