sl-mechanical a2c554c232 cleanup: remove all Mamba/F722S/STM32F722 refs — replace with ESP32-S3 BALANCE/IO
- docs/: rewrite AGENTS.md, wiring-diagram.md (SAUL-TEE arch); update
  SALTYLAB.md, FACE_LCD_ANIMATION.md, board-viz.html, SALTYLAB-DETAILED refs
- cad/: dimensions.scad FC params → ESP32-S3 BALANCE params
- chassis/: ASSEMBLY.md, BOM.md, ip54_BOM.md, *.scad — FC_MOUNT_SPACING/
  FC_PITCH → TBD ESP32-S3; Drone FC → MCU mount throughout
- CLAUDE.md, TEAM.md: project desc → SAUL-TEE; hardware table → ESP32-S3/VESC
- USB_CDC_BUG.md: marked ARCHIVED (legacy STM32 era)
- AUTONOMOUS_ARMING.md: USB CDC → inter-board UART (ESP32-S3 BALANCE)
- projects/saltybot/SLAM-SETUP-PLAN.md: FC/STM32F722 → BALANCE/CAN
- jetson/docs/pinout.md, power-budget.md, README.md: STM32 bridge → CAN bridge
- jetson/config/RECOVERY_BEHAVIORS.md: FC+Hoverboard → BALANCE+VESC
- jetson/ros2_ws: stm32_protocol.py → esp32_protocol.py,
  stm32_cmd_node.py → esp32_cmd_node.py,
  mamba_protocol.py → balance_protocol.py; can_bridge_node imports updated
- scripts/flash_firmware.py: DFU/STM32 → pio run -t upload
- src/ include/: ARCHIVED headers added (legacy code preserved)
- test/: ARCHIVED notices; STM32F722 comments marked LEGACY
- ui/diagnostics_panel.html: Board/STM32 → ESP32-S3

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-04 09:06:09 -04:00

129 lines
5.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# SaltyBot Chassis — Assembly Notes
**Task:** bd-1iy5 — Rev A — 2026-02-28
---
## Overview
```
[Front bumper rail — 22mm EMT]
├─ bumper_bracket(front=+1) ──────────────────────┐
│ │
┌───────┴──────────── Main Deck (640×220×6mm Al) ─────────┴───────┐
│ ← Jetson mount plate (rear/+X) MCU mount (front/X) → │
│ [Battery tray hanging below centre] │
└───┬──────────────────────────────────────────────────────────┬───┘
│ │
Motor fork (L) Motor fork (R)
Hub motor CL: ±300mm from deck centre │
Axle height: 310mm above ground │
├─ bumper_bracket(front=-1) ──────────────────────┘
[Rear bumper rail — 22mm EMT]
```
---
## Step-by-step Assembly
### 1 Fabricate / print parts
- Send deck plate DXF (export from OpenSCAD → DXF) to CNC router or waterjet cutter.
- Print motor fork brackets in PETG 5 perimeters / 40% gyroid for prototype, or send STEP to machine shop.
- Print battery tray, FC pad, Jetson plate, bumper brackets in PETG.
- Export STEP: OpenSCAD → Render (F6) → Export as STL, then convert with FreeCAD for STEP.
### 2 Verify motor axle dimensions
- Measure actual hoverboard motor axle: diameter and flat-to-flat.
- Adjust `MOTOR_AXLE_D` and `MOTOR_AXLE_FLAT` in `chassis_frame.scad`.
- Re-export fork dropout slot.
### 3 Motor forks → deck
1. Thread M5 T-nuts into underside of deck edge slots (or use M5 rivet nuts).
2. Align fork bracket to deck edge; fasten with 4× M5×16 SHCS + flat washer each side.
3. Apply Loctite 243 to threads. Torque to 4 N·m.
### 4 Motors into forks
1. Slide hub motor axle into dropout slot (flat side aligns with slot).
2. Fit flat washer then flanged M14 axle nut; torque to 3540 N·m.
3. Feed motor phase wires and hall-sensor cable through deck cable slot.
### 5 Longitudinal ribs
1. Align ribs with edge grooves on deck underside.
2. Secure with M4×12 SHCS through pre-drilled holes; torque 2.5 N·m.
### 6 Battery tray
1. Pass any wiring harness through deck wire-pass hole before mounting tray.
2. Align tray mounting ears to deck M4 threaded inserts (or rivet nuts).
3. Fasten 4× M4×12 SHCS. Torque 2.5 N·m.
4. Insert battery pack; route Velcro straps through slots and cinch.
### 7 MCU mount (ESP32-S3 BALANCE + ESP32-S3 IO)
> ⚠ Board hole patterns TBD — measure Waveshare Touch LCD 1.28 PCB with calipers and
> update `FC_PITCH` / `FC_MOUNT_SPACING` in all scad files before machining the mount plate.
> Reference: `docs/SAUL-TEE-SYSTEM-REFERENCE.md`.
1. Place silicone anti-vibration grommets onto M3 nylon standoffs.
2. Lower ESP32-S3 BALANCE board onto standoffs; secure M3×6 BHCS — snug only.
3. Mount ESP32-S3 IO board adjacent — exact layout TBD pending board dimensions.
4. Orient USB-C connectors toward accessible side for field programming/debug.
### 8 Jetson Nano mount plate
1. Press or thread M3 nylon standoffs (8mm) into plate holes.
2. Bolt plate to deck: 4× M3×10 SHCS at deck corners.
3. Set Jetson Nano B01 carrier onto plate standoffs; fasten M3×6 BHCS.
### 9 Bumper brackets
1. Slide 22mm EMT conduit through saddle clamp openings.
2. Bolt bracket to deck edge: 4× M5×16 SHCS per bracket.
3. Position bumper rail flush with motor OD outer edge; tighten saddle clamp bolts.
### 10 Cable routing
- Route motor phase cables along longitudinal ribs; secure with cable clips.
- FC ↔ ESC/VESC harness exits through front cable slot.
- Jetson USB/UART ribbon exits through rear cable slot.
- Power harness (battery XT60 → BMS → 24V bus) runs under deck along centreline.
---
## Critical Dimensions (verify before machining)
| Dimension | Nominal | Tolerance |
|-----------|---------|-----------|
| Wheelbase (axle C/L to C/L) | 600 mm | ±1 mm |
| Motor fork slot width | 24 mm | +0.5 / 0 |
| Motor fork dropout depth | 60 mm | ±0.5 mm |
| ESP32-S3 BALANCE hole pattern | TBD — caliper Waveshare board | ±0.2 mm |
| ESP32-S3 IO hole pattern | TBD — caliper bare board | ±0.2 mm |
| Jetson hole pattern | 58 × 58 mm | ±0.2 mm |
| Battery tray inner | 185 × 72 × 52 mm | +2 / 0 mm |
---
## OpenSCAD Rendering Notes
```bash
# Render full assembly preview (F5 in GUI)
openscad chassis_frame.scad
# Export individual part STL for slicing
openscad chassis_frame.scad -D "PART=\"motor_fork\"" -o motor_fork_right.stl
# Export deck DXF (set DECK_THICKNESS=0.01 for 2D projection)
openscad chassis_frame.scad -D "RENDER_2D=true" -o deck_plate.dxf
```
**Slicing profile (PETG, structural parts):**
- Nozzle: 0.4mm | Layer: 0.2mm
- Perimeters: 5 | Infill: 40% gyroid
- Supports: Yes (motor fork dropout slot)
- Orientation: Fork bracket printed vertically (load axis = layer direction)
---
## Safety Notes
- Verify axle nut torque after first 10-minute ride — hub motors vibrate and may back off.
- Battery tray is rated for packs ≤185×72×52mm; confirm dimensions before ordering cells.
- Ground all aluminium chassis parts to power-common to avoid RF interference with FC.
- Do **not** run robot without bumpers fitted — uncontrolled runaway risk.