# 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, 2–4 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 | 4–8 | Battery pack retention (1–2 per pack through tray floor slots) | ### Batteries | # | Part | Qty | Spec | |---|------|-----|------| | 19 | Battery pack | 2–4 | 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