# K2Aley GAR-BOT Connection Map

Copyright (c) 2026 K2Aley. GAR-BOT. All rights reserved.

Current connection plan for the two-claw, four-motor, water-resistant GAR-BOT.

## Power Connections

| From | To | Connection | Notes |
| --- | --- | --- | --- |
| Battery 1 + Battery 2 | Series link | `12V + 12V = 24V-class` | Use matched LiFePO4 batteries. |
| Battery pack positive | Main fuse input | 24V+ | Fuse close to battery. |
| Main fuse output | Emergency stop input | Fused 24V+ | E-stop kills load bus. |
| Emergency stop output | 24V+ bus | Fused switched 24V+ | Feeds motor drivers and buck converters. |
| Battery pack negative | Common ground bus | GND | Main return. |
| 24V+ bus | IBT-2 motor power positive | B+ / VIN+ | One feed per motor driver. |
| Ground bus | IBT-2 motor power negative | B- / GND | Common return. |
| 24V+ bus | 24V-to-5V buck input + | VIN+ | Pi buck input. |
| Ground bus | 24V-to-5V buck input - | VIN- | Pi buck input ground. |
| 5V buck output | Raspberry Pi 5 power input | 5.1V / GND | Measure before connecting. |
| 24V+ bus | Servo buck input + | VIN+ | Claw servo supply. |
| Ground bus | Servo buck input - | VIN- | Servo buck ground. |
| Servo buck output | Keyestudio board servo V/G rows | 5V-6V / GND | Do not power servos from Pi. |

## Motor Driver Connections

Each wheel is direct-driven by its own 24V gear motor. Each motor uses one
IBT-2 / BTS7960 driver. Chain and sprocket drive are not used in the active
GAR-BOT build.

| Motor | IBT-2 output | Motor |
| --- | --- | --- |
| Front left | `M1/M2` | Front left motor leads |
| Front right | `M1/M2` | Front right motor leads |
| Rear left | `M1/M2` | Rear left motor leads |
| Rear right | `M1/M2` | Rear right motor leads |

Default Raspberry Pi GPIO map:

| Motor | RPWM | LPWM | R_EN | L_EN |
| --- | ---: | ---: | ---: | ---: |
| Front left | GPIO5 | GPIO6 | GPIO12 | GPIO18 |
| Front right | GPIO17 | GPIO22 | GPIO27 | GPIO4 |
| Rear left | GPIO23 | GPIO24 | GPIO7 | GPIO8 |
| Rear right | GPIO25 | GPIO26 | GPIO9 | GPIO10 |

IBT-2 logic:

| IBT-2 pin | Connects to |
| --- | --- |
| `VCC` | Pi 5V logic rail |
| `GND` | Pi/common ground |
| `RPWM` | Assigned Pi GPIO PWM |
| `LPWM` | Assigned Pi GPIO PWM |
| `R_EN` | Assigned Pi GPIO enable |
| `L_EN` | Assigned Pi GPIO enable |
| `R_IS` | No connect for starter code |
| `L_IS` | No connect for starter code |

## Raspberry Pi 5 USB Connections

The Raspberry Pi 5 only has four USB ports. Do not assign Pico Voice to USB;
Pico Voice uses the 40-pin header. FT232RL USB-TTL is removed from the active
RP5 USB plan.

| Pi USB | Device | Notes |
| --- | --- | --- |
| USB 1 | Claw Left 1 Keyestudio board | Default `/dev/ttyACM0`. |
| USB 2 | Claw Right 2 Keyestudio board | Default `/dev/ttyACM1`. |
| USB 3 | 7 inch touchscreen | Touch/display if supported; otherwise touch only. |
| USB 4 | LoRa USB bridge or powered USB hub | Use only if direct GPIO/SPI is not used. |

## Raspberry Pi 5 40-Pin Header Connections

| Header device | Connect | Notes |
| --- | --- | --- |
| Pico Voice board / voice hardware | RP5 40-pin header | Voice path; not a USB device. |
| RP5 relay HAT | RP5 40-pin header stack | Check pin conflicts with Pico Voice before stacking. |
| IBT-2 logic GPIO | Assigned GPIO pins | Motor PWM/enable signals. |
| Optional LoRa direct SPI | SPI0 GPIO pins | Preferred if you need to save USB port 4. |

## Touchscreen Connections

| Touchscreen type | Connect |
| --- | --- |
| USB display + touch | Powered USB hub or Pi USB if current is safe |
| HDMI video + USB touch | Pi micro-HDMI to display, USB to Pi/hub |
| Power | Separate 5V supply or powered hub preferred |

## Two Claw Board Connections

GAR-BOT has two claws. Use one Keyestudio PLUS-style board per claw:

- `Claw Left 1`: USB default `/dev/ttyACM0`
- `Claw Right 2`: USB default `/dev/ttyACM1`

Each claw board uses six servo signal channels:

| Claw channel | Board signal pin |
| ---: | --- |
| 0 | D2 |
| 1 | D3 |
| 2 | D4 |
| 3 | D5 |
| 4 | D6 |
| 5 | D7 |

Servo plug:

| Servo wire | Board row |
| --- | --- |
| Signal | `S` |
| Positive | `V` |
| Ground | `G` |

## Radio PCB Connections

| Device | Connection |
| --- | --- |
| STM32 PA5/PA6/PA7 | SPI SCK/MISO/MOSI to LoRa |
| STM32 PA4 | LoRa NSS/CS |
| STM32 PB10 | LoRa DIO1 |
| STM32 PB1 | LoRa BUSY |
| STM32 PB0 | LoRa RESET |
| STM32 PA9 | Pi UART RX path or direct radio bridge UART |
| STM32 PA10 | Pi UART TX path or direct radio bridge UART |
| STM32 PA13/PA14 | ST-LINK SWDIO/SWCLK |
| ST-LINK 5V | No connect |

FT232RL USB-TTL is not used in the active RP5 wiring.

## Remote Control Transmitter Connections

The remote transmitter uses the Raspberry Pi Zero 2 W + Pico Voice board shown
in `reference_photos/RPzero2w-PicoVoice_remote_transmitter.jpg`.

Arduino Pro Mini is removed from the transmitter design.
The old Arduino Pro Mini joystick PCB is reference-only and is not wired as
the active transmitter controller.

| Transmitter part | Connects to | Notes |
| --- | --- | --- |
| Raspberry Pi Zero 2 W header | Pico Voice board header | Main remote voice/control stack. |
| Pico Voice `I2C` | Optional I2C buttons/display | Use for extra controls if needed. |
| Pico Voice `GP12` | Optional command button/input | From board photo label. |
| Pico Voice `SPEAKER` | Small speaker | Voice feedback. |
| Pico Voice `HEADSET` | Headset jack | Optional. |
| Pi Zero 2 W USB | LoRa USB bridge / serial adapter | Preferred first test path. |
| Pi Zero 2 W SPI | LoRa module direct SPI | Optional advanced path. |
| Pi Zero 2 W 5V/GND | Battery bank / 5V regulator | Keep power stable during radio TX. |

## Water-Resistant Connect Rule

No exposed Pi, relay HAT, motor driver, buck converter, radio PCB, or claw
controller board during wet use. Use gasketed boxes, cable glands, bulkhead
connectors, drip loops, and covered wire channels.
