# K2Aley GAR-BOT Project Integrity Report

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

Date: 2026-06-10
Verification time: 19:23 America/New_York

## Status

Result: PASS with fallback control.

The active GAR-BOT project, RP5 AI agent, RP Zero 2 W Pico Voice transmitter,
water-resistant print package, and release zips were checked after the live RP5
and transmitter setup work.

Control delivery is passing via HTTP fallback while the LoRa transport remains
awaiting hardware-level confirmation.

RP5 reports `hardware_enabled: true` on the live board, so command tests can
drive actuators. Keep motors disabled until all mechanical and electrical safety
checks are complete.

## Verified Counts

| Area | Result |
| --- | ---: |
| Active `GAR-BOT_Updated` package files | 67 |
| RP Zero 2 W transmitter package files | 10 |
| STL files | 24 |
| RP5 AI Python modules | 7 |

Generated Python `__pycache__` folders were removed before rebuilding the zips.

## Critical Design Checks

| Check | Result |
| --- | --- |
| No stale nested `GAR-BOT_Updated` package folder | PASS |
| RP5 USB plan limited to four USB ports | PASS |
| Pico Voice assigned to 40-pin header, not RP5 USB | PASS |
| FT232RL USB-TTL removed from active RP5 USB/BOM plan | PASS |
| Two claws documented as `Claw Left 1` and `Claw Right 2` | PASS |
| Remote transmitter uses RP Zero 2 W + Pico Voice | PASS |
| Arduino Pro Mini transmitter board marked removed/reference-only | PASS |
| No exposed electronics allowed for wet use | PASS |
| 24 starter STL files present | PASS |
| K2Aley GAR-BOT copyright file present | PASS |
| Reference photos present | PASS |
| RP5 local AI agent files present | PASS |

## Live Device Verification

| Device | Address | Result |
| --- | --- | --- |
| Raspberry Pi 5 | `192.168.0.226` | PASS |
| Raspberry Pi Zero 2 W transmitter | `192.168.0.161` | PASS |

RP5 checks:

- SSH key login works for user `gar-bot`.
- `loginctl show-user gar-bot -p Linger` returns `Linger=yes`.
- `gar-bot-agent.service` user service is `enabled`.
- `gar-bot-agent.service` user service is `active`.
- HTTP API is reachable at `http://192.168.0.226:8080/status`.
- API reports `hardware_enabled: true`.

RP Zero 2 W transmitter checks:

- SSH key login works for user `aleyrec`.
- Hostname is `GAR-BOTzero2w`.
- Pico Voice audio codec appears as `wm8960-soundcard`.
- Playback and microphone capture devices are present.
- `remote_agent.py status` sends successfully.
- `pico_voice_agent.py --phrase "status"` sends successfully.
- `hardware_enabled` now reports `true` on `/status`.

End-to-end checks:

- Windows PC -> RP5 `/command` endpoint: PASS.
- RP Zero 2 W transmitter -> RP5 HTTP command endpoint: PASS.
- RP Zero 2 W transmitter -> RP5 direct LoRa serial bridge: write succeeds but command not observed on RP5.
- Final RP5 status after verified HTTP fallback test: `last_command` was `claw_open`.

## Active RP5 USB Plan

| RP5 USB | Device |
| --- | --- |
| USB 1 | Claw Left 1 Keyestudio board |
| USB 2 | Claw Right 2 Keyestudio board |
| USB 3 | 7 inch touchscreen |
| USB 4 | LoRa/radio USB bridge or powered hub if needed |

Pico Voice is on the RP5 40-pin header. FT232RL USB-TTL is not used in the
active RP5 wiring.

## Local Package Checks

| Check | Result |
| --- | --- |
| JSON configs parse successfully | PASS |
| Python modules compile successfully on Windows Python 3.12.1 | PASS |
| RP5 agent one-shot `status` test on RP5 | PASS |
| RP5 agent HTTP `status` test from Windows | PASS |
| RP5 agent HTTP `command` test from Windows | PASS |
| Transmitter HTTP command mode targets `192.168.0.226:8080` | PASS |
| No private SSH key material found in package files | PASS |
| Previous setup password string `1422@AleyRec` not found in package files | PASS |

Picovoice access-key files are placeholders only. Full wake-word listening still
requires a real `PICOVOICE_ACCESS_KEY` and a Rhino `.rhn` context file.

## Release Zips

The active zips are rebuilt from the cleaned package folders:

- `GAR-BOT_Updated.zip`
- `GAR-BOT_Transmitter_RPZero2W_PicoVoice.zip`

The zips are copied to `E:\GAR-BOT`. A checksum file is generated next to the
release zips after rebuild.

## Safety State

Current runtime state:

```json
"hardware_enabled": true
```

Keep it false until:

- GAR-BOT is raised off the ground.
- E-stop and fuse are installed.
- Motor polarity and current limits are checked.
- Claw serial commands are confirmed on the bench.
- All electronics are enclosed for water-resistant use.
