saltylab-firmware/chassis/rover_BOM.md
sl-mechanical 3e4764b3eb feat: SaltyRover 4-wheel chassis design (#73)
Add parametric OpenSCAD designs for the SaltyRover stable 4-wheel
variant. Reuses existing 25mm stem, sensor head, and all SaltyLab
sensor mounts without modification.

Files:
- saltyrover_chassis.scad  480×500mm deck, stem collar, FC+Orin
  standoffs, motor attachment holes, battery tray opening; RENDER
  deck_2d for waterjet/CNC DXF
- rover_motor_mount.scad   L-bracket + axle clamp plate per motor;
  uses caliper-verified axle dims from BOM.md; dropout slot for
  tool-free motor swap; RENDER bracket_2d for CNC DXF
- rover_battery_tray.scad  Slide-out tray for 2-4 × 420×88×56mm
  packs laid flat (low CG); T-slot rails, spring latch
- rover_stem_adapter.scad  Flange + split clamp locks 25mm stem to
  deck collar; 550mm stem option for rover height
- rover_BOM.md             Assembly sequence, fastener table, mass
  estimate (~13.4kg), height stack diagram

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-01 01:21:46 -05:00

229 lines
8.2 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.

# SaltyRover Chassis — BOM + Assembly Notes
**Rev A — 2026-03-01 — sl-mechanical**
**Issue: #73**
---
## Overview
SaltyRover is the stable 4-wheel variant of SaltyLab.
Low CG, wide track — designed not to tip over.
Reuses the 25 mm vertical stem, sensor head, RPLIDAR, RealSense,
IMX219 camera mounts, and roll cage from SaltyLab without modification.
```
Top view (schematic):
Forward (+Y)
◉─────────────────────◉ ← front axle (AXLE_BASE/2 = 170 mm forward)
│ [Orin NX] │
│ [battery] │ ← flat packs below deck (low CG)
│ [battery] │
│ [FC] │
◉─────────────────────◉ ← rear axle
stem (centre)
Dimensions (approx):
Robot width (tyre-to-tyre): ~810 mm (TRACK_W=540 + 2×TIRE_W/2)
Robot length (axle-to-axle): ~340 mm (AXLE_BASE)
Deck width: 480 mm
Deck length: 500 mm
Ground clearance: ~50 mm (deck bottom to ground)
Overall height (with 550 mm stem + sensor head): ~800 mm
```
---
## Height Stack
```
Z from ground:
Z = 0 mm — ground
Z = 50 mm — chassis bottom (battery tray floor)
Z = 109 mm — deck bottom face
Z = 117 mm — deck top face (Z=0 in SCAD coords)
Z = 127 mm — motor axle CL (+10 mm above deck top)
Z = 139 mm — deck stem collar top (117+22)
Z = 145 mm — stem adapter flange top (139+6)
Z = 173 mm — stem clamp top (145+28)
Z = 723 mm — stem top with 550 mm rover stem
```
---
## File Index
| File | Description | RENDER |
|------|-------------|--------|
| `saltyrover_chassis.scad` | Main deck plate, stem collar, standoffs | `assembly` / `deck` / `deck_2d` |
| `rover_motor_mount.scad` | L-bracket + axle clamp plate, 4× | `assembly` / `bracket` / `clamp_plate` / `bracket_2d` |
| `rover_battery_tray.scad` | Slide-out battery tray, 24 packs | `assembly` / `tray` / `rail` / `latch` / `tray_2d` |
| `rover_stem_adapter.scad` | Flange + split clamp, locks stem to deck | `assembly` / `base_flange` / `clamp_front` / `clamp_rear` |
---
## Part A — Deck Plate (`saltyrover_chassis.scad`)
### Structural parts
| # | RENDER | Qty | Material | Process | Notes |
|---|--------|-----|----------|---------|-------|
| 1 | `deck_2d` | 1 | 8 mm 5052-H32 Al | Waterjet or CNC router | 480×500 mm blank |
| — | — | — | **or** 8 mm PETG FDM | Print in sections, bolted lap joints | Prototype only |
### Fasteners (deck to motor brackets)
| # | Spec | Qty | Use |
|---|------|-----|-----|
| 2 | M5×20 SHCS | 16 | Motor bracket flange to deck (4 per corner × 4) |
| 3 | M5 hex nut | 16 | Captured on deck underside |
| 4 | M4×16 SHCS | 4 | Stem adapter flange to deck collar |
| 5 | M4 flat washer | 4 | Under bolt head |
---
## Part B — Motor Brackets (`rover_motor_mount.scad`)
Print or CNC 4×. Each bracket handles one drive motor.
### Printed parts
| # | RENDER | Qty | Material | Settings | Notes |
|---|--------|-----|----------|----------|-------|
| 6 | `bracket` | 4 | PETG or PC | 5 perims, 60% infill | Print flange face down; add M5 inserts or use nuts |
| 7 | `clamp_plate` | 4 | PETG | 4 perims, 40% infill | Axle retention; print flat |
**CNC alternative:** `bracket_2d` → DXF, CNC route from 10 mm 6061-T6 Al plate.
### Fasteners
| # | Spec | Qty | Use |
|---|------|-----|-----|
| 8 | M4×20 SHCS | 8 | Axle clamp plate to bracket (2 per motor × 4) |
| 9 | M4 hex nut | 8 | Captured in bracket |
| 10 | Axle lock nut | 4 | Axle tip retention — **verify axle thread before ordering** (BOM.md: Ø≈10 mm tip) |
| 11 | M5×20 SHCS | 16 | Bracket flange to deck (from item 2 above) |
> ⚠ **Axle note:** BOM.md caliper values: base OD 16.11 mm, D-cut OD 15.95 mm, flat chord 13.00 mm.
> Verify AXLE_D / AXLE_FLAT / BEARING_OD in `rover_motor_mount.scad` before printing.
---
## Part C — Battery Tray (`rover_battery_tray.scad`)
### Printed parts
| # | RENDER | Qty | Material | Settings | Notes |
|---|--------|-----|----------|----------|-------|
| 12 | `tray` | 1 | PETG | 4 perims, 30% infill | Print open-top face up; no supports |
| 13 | `rail` | 2 | PETG | 5 perims, 40% infill | T-slot slide rail; print top-face down |
| 14 | `latch` | 1 | PETG or TPU 95A | 4 perims, 30% infill | Spring retention clip; TPU gives better snap feel |
### Fasteners
| # | Spec | Qty | Use |
|---|------|-----|-----|
| 15 | M4×12 FHCS | 6 | Slide rail to deck underside (3 per rail, countersunk) |
| 16 | M4 T-nut or nyloc | 6 | Captured under deck for rail bolts |
| 17 | M3×10 SHCS | 2 | Spring latch to tray end |
| 18 | Velcro strap 25 mm × 500 mm | 48 | Battery pack retention (12 per pack through tray floor slots) |
### Batteries
| # | Part | Qty | Spec |
|---|------|-----|------|
| 19 | Battery pack | 24 | 24 V, **420×88×56 mm** (BOM.md caliper-verified) |
| 20 | BMS board | 1 | Matched to cell chemistry; mount to deck underside near Y+ wall |
---
## Part D — Stem Adapter (`rover_stem_adapter.scad`)
| # | RENDER | Qty | Material | Settings | Notes |
|---|--------|-----|----------|----------|-------|
| 21 | `base_flange` | 1 | PETG | 5 perims, 40% infill | Print flat; add M4 brass inserts or use through-bolts |
| 22 | `clamp_front` | 1 | PETG | 5 perims, 40% infill | Flat-face down |
| 23 | `clamp_rear` | 1 | PETG | 5 perims, 40% infill | Mirror; flat-face down |
### Fasteners
| # | Spec | Qty | Use |
|---|------|-----|-----|
| 24 | M4×20 SHCS | 2 | Stem clamp clamping bolts |
| 25 | M4 hex nut | 2 | Captured in clamp rear half |
| 26 | M4×8 set screw | 1 | Rotation lock (front half) |
| 27 | M4×16 FHCS | 4 | Flange to deck collar (countersunk) |
### Stem tube
| # | Part | Qty | Spec | Notes |
|---|------|-----|------|-------|
| 28 | Vertical stem | 1 | 25 mm OD × 1.5 mm wall 6061-T6 Al, **550 mm length** | Cut from 1 m stock; SaltyLab uses 1000 mm |
> Sensor head, RPLIDAR, cameras, and roll cage from SaltyLab mount
> directly onto this 25 mm stem — no modifications required.
---
## Motors
Same hoverboard hub motors as SaltyLab. **4× required for rover.**
| # | Part | Qty | Spec |
|---|------|-----|------|
| 29 | Hub motor | 4 | 10×2.125" tire, 36V nominal, ~350W; axle OD 16.11mm (caliper) |
| 30 | Motor cable extension | 4 | 6-pin JST-PH 300 mm hall sensor + 3-phase power |
---
## Mass Estimate
| Assembly | Est. mass |
|----------|-----------|
| Al deck plate | ~1.4 kg |
| Motor brackets × 4 (PETG) | ~0.5 kg |
| Hub motors × 4 | ~7.2 kg |
| Battery packs × 2 | ~1.4 kg |
| Battery tray (PETG) | ~0.3 kg |
| Stem + sensor head (from SaltyLab) | ~1.5 kg |
| Electronics (FC + Orin + wiring) | ~0.6 kg |
| Stem adapter + hardware | ~0.2 kg |
| Fasteners | ~0.3 kg |
| **Total estimate** | **~13.4 kg** |
> Wide 540 mm track + low 117 mm deck height → tip-over angle > 45°.
> CG is at approximately Z = 200 mm with packs flat and full payload.
---
## Assembly Sequence
1. **Deck plate:** Cut or print `deck_2d`. Waterjet preferred for Al.
2. **Motor brackets:** Print (or CNC) 4× `bracket` + 4× `clamp_plate`.
- Test-fit axle D-cut bore before assembling to deck.
3. **Slide rails:** Print 2× `rail`. Bolt to deck underside.
4. **Stem adapter:** Print `base_flange` + `clamp_front` + `clamp_rear`.
- Insert stem through deck collar bore; seat flange on collar top.
- Bolt flange with 4× M4×16 FHCS.
- Slide clamp halves on stem above flange; tighten M4 clamping bolts (1.5 N·m).
- Tighten M4 set screw.
5. **Motor brackets:** Slide flange into deck edge slot; 4× M5×20 bolts.
- Do not torque until axle alignment is confirmed.
6. **Motors:** Drop axle into bracket dropout slot. Install clamp plate.
- Tighten clamp M4 bolts. Axle lock nut finger-tight + ¼ turn.
7. **Battery tray:** Slide tray in from +X with packs loaded.
- Latch snaps at full insertion.
8. **Sensor head + stem accessories:** Install from SaltyLab as-is.
- Recommend 550 mm stem for rover (sensor head at ~720 mm, stable).
---
## Tools Required
- M3/M4/M5 hex drivers
- Torque wrench: M5 structural bolts 4 N·m, M4 clamp bolts 1.5 N·m
- Thread locker (Loctite 243 blue) on axle lock nuts and stem clamp set screw
- Dial caliper — verify axle dimensions before bracket print/CNC