saltylab-firmware/chassis/saltytank_BOM.md
sl-mechanical d93919e26f feat: SaltyTank tracked chassis — drive sprockets, tensioners, skid plate (#121)
Three new chassis design files for the SaltyTank continuous-track variant:

• saltytank_chassis.scad — Deck plate (500×360×8mm Al, DXF export), 2×
  side track frames (6mm Al, CNC/laser), idler tensioner sliding block,
  4× CSI corner camera mounts (45°/20°), D435i front bracket (8° tilt),
  stem collar (Ø25mm shared).  Drive sprocket mounts accept hoverboard hub
  motors with caliper-verified D-cut bore (16.11mm/13mm flat) + 52mm BC
  hub flange bolt pattern.  M6 tensioner bolt adjusts idler ±15mm for
  track tension. Shared FC 30.5×30.5mm + Jetson 58×49mm M3 patterns.
  Electronics bay footprint matches rover_electronics_bay.scad exactly.

• saltytank_skid_plate.scad — Sacrificial underside skid panel (360×500mm).
  4mm HDPE (DXF) or PETG print; countersunk M4 FHCS bolt-on.  4× drain/
  inspection slots; optional printed ribs (RIB_PRINT=true).  Ground
  clearance of hull between tracks: 90mm (exceeds 50mm requirement).

• saltytank_BOM.md — Full BOM: deck plate, side frames, drive sprockets,
  idler wheels + tensioners, road wheels (2/side), track belts (1109mm
  circumference calc), skid plate, sensor brackets, electronics bay
  (rover_electronics_bay.scad reused unchanged). Frame mass ≈ 2.98 kg
  (just under 3 kg target). Assembly sequence and track tensioning
  procedure included.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-02 09:20:41 -05:00

15 KiB
Raw Permalink Blame History

SaltyTank Chassis — BOM & Assembly Notes

Issue: #121 Agent: sl-mechanical Date: 2026-03-01


Overview

SaltyTank is the tracked variant of the SaltyLab robot family. Rubber or metal continuous tracks replace wheels for rough-terrain capability. The electronics bay, RPLIDAR, D435i, stem, and sensor head are shared with SaltyLab and SaltyRover — no modifications required.

Side view (schematic):

    ←  +Y forward
                              Sensor head + RPLIDAR
                                      │
 ┌──────────────────────────── deck (Z=0) ───────────────────────────┐
 │              [Electronics Bay]     [Stem collar]                  │
 └──────────────────────────────────────────────────────────────────┘
 │ [Side frame - 90 mm tall]                                         │
 │   ◎ idler (Ø80)       ◎ road wheel  ◎ road wheel   ◎ drive (Ø66)│
 │───────────────────── track belt (rubber, 80 mm wide) ─────────────│
 (ground)

Top view (schematic):
            +Y (forward)
                 │
[track]  ┌──────┴───────┐  [track]
         │  [Electronics │
         │    Bay +      │
         │   RPLIDAR]    │
[track]  └──────┬───────┘  [track]
                │
            D435i →

Key dimensions:
  Deck: 500 mm (L) × 360 mm (W)
  Track belt centres: 360 + 6 + 80 = 446 mm left-right CL to CL
  Overall robot width (outer track edge): 446 + 80 = 526 mm
  Ground clearance (hull between tracks): 90 mm  ← exceeds 50 mm req.
  Height: deck to RPLIDAR scan plane: ~330 mm (with 550 mm stem option)

File Index

File Description RENDER → Output
saltytank_chassis.scad Deck plate + side frames + idler block + CSI/D435i mounts See table below
saltytank_skid_plate.scad Underside skid plate (bolt-on, sacrificial) skid_2d → DXF; skid_stl → STL
rover_electronics_bay.scad Electronics bay body + lid + RPLIDAR tower Unchanged — reuse rover part
rover_motor_mount.scad (Not used — drive sprockets mount directly to side frame)
rover_stem_adapter.scad Stem adapter (shared) Unchanged
rplidar_mount.scad RPLIDAR anti-vibration ring (shared) Unchanged

RENDER map

RENDER value Output Qty Process
"deck_2d" saltytank_deck.dxf 1 Waterjet / CNC, 8 mm Al
"side_frame_2d" saltytank_side_frame.dxf 2 CNC / laser, 6 mm Al (cut 2×, flip 1)
"side_frame_stl" saltytank_side_frame.stl 2 PETG print (prototype)
"idler_block_stl" saltytank_idler_block.stl 2 PETG print
"csi_mount_stl" saltytank_csi_mount.stl 4 PETG print
"d435i_mount_stl" saltytank_d435i_mount.stl 1 PETG print
"skid_2d" saltytank_skid.dxf 1 Waterjet / CNC, 4 mm HDPE
"skid_stl" saltytank_skid.stl 1 PETG print (prototype)

Export commands

# Deck plate DXF:
openscad saltytank_chassis.scad    -D 'RENDER="deck_2d"'         -o saltytank_deck.dxf

# Side frame DXF (cut 2×, flip one):
openscad saltytank_chassis.scad    -D 'RENDER="side_frame_2d"'   -o saltytank_side_frame.dxf

# Side frame STL (print 2×, mirror right in slicer):
openscad saltytank_chassis.scad    -D 'RENDER="side_frame_stl"'  -o saltytank_side_frame.stl

# Idler tensioner block STL (×2):
openscad saltytank_chassis.scad    -D 'RENDER="idler_block_stl"' -o saltytank_idler_block.stl

# CSI bracket STL (×4):
openscad saltytank_chassis.scad    -D 'RENDER="csi_mount_stl"'   -o saltytank_csi_mount.stl

# D435i bracket STL (×1):
openscad saltytank_chassis.scad    -D 'RENDER="d435i_mount_stl"' -o saltytank_d435i_mount.stl

# Skid plate DXF (4 mm HDPE, preferred):
openscad saltytank_skid_plate.scad -D 'RENDER="skid_2d"'         -o saltytank_skid.dxf

# Skid plate STL (prototype):
openscad saltytank_skid_plate.scad -D 'RENDER="skid_stl"'        -o saltytank_skid.stl

Part A — Deck Plate

# Spec Qty Material Process Notes
A1 8 mm 5052-H32 Al, 500×360 mm blank 1 Aluminium Waterjet Preferred
A1-alt 6 mm 6061-T6 Al 1 CNC router Saves 0.3 kg
A1-proto 8 mm PETG FDM, 2 halves lap-jointed 1 Print Prototype only

Deck fasteners:

# Spec Qty Use
A-f1 M5×20 SHCS 8 Side frame to deck side edge (4 per side)
A-f2 M5 T-nut or rivet nut 8 Captured in deck edge (installed before frame)
A-f3 M4×16 FHCS 4 Stem collar to deck (4× M4 countersunk)
A-f4 M3×12 SHCS 10 Electronics bay to deck
A-f5 M4×12 FHCS 6 Skid plate to deck (countersunk from below)
A-f6 M4 rivet-nut 6 Installed in deck for skid plate bolts

Part B — Side Frames (×2)

# RENDER Qty Material Process Notes
B1 side_frame_2d 2 6 mm 6061-T6 Al CNC router or waterjet Cut 2× same DXF; flip 1 (mirror)
B1-alt side_frame_stl 2 PETG Print 5 perims, 60% gyroid; prototype only

Hub motor flange bolt circle: Default is 52 mm BC × 4× M5. Measure your motor hub before cutting the side frame — adjust HUB_FLANGE_BC in saltytank_chassis.scad if needed.

Side frame fasteners:

# Spec Qty Use
B-f1 M5×20 SHCS 8 Frame-to-deck attachment (4 per frame, through slotted holes)
B-f2 M5 nyloc 8 Under deck
B-f3 M5×16 SHCS 8 Hub motor flange to side frame (2× M5 per motor hub face)
B-f4 M8×60 hex bolt 2 Road wheel axle bolts (1 per wheel × 2 per side)
B-f5 M8 nyloc 4 Road wheel axle retention
B-f6 M8 flat washer 8 Both sides of each road wheel

Part C — Drive Sprockets + Hub Motors

SaltyTank reuses the same hoverboard hub motors as SaltyLab/SaltyRover. A laser-cut sprocket plate bolts to the motor hub and engages the track belt.

# Part Qty Spec Notes
C1 Hub motor 2 10×2.125" tire, 36 V, ~350 W; axle OD 16.11 mm (caliper) Only 2 motors — rear drive
C2 Drive sprocket plate 2 5 mm 6061-T6 Al, laser-cut 10-tooth, 20 mm pitch, PCD ≈ 64.7 mm; Ø52 mm hub bolt holes (verify)
C3 Motor phase cable 2 12 AWG, 300 mm, XT30 Left + right rear
C4 Hall sensor cable 2 6-pin JST-PH, 300 mm

Sprocket plate design (separate file to be made if needed): 10 teeth, pitch = 20 mm → PCD = 20 / sin(18°) ≈ 64.7 mm → R ≈ 32.4 mm. Hub bolt circle = 52 mm, 4× M5 at 90°. Verify against actual motor hub. Sprocket tooth profile: ISO/DIN standard for roller chain or custom for belt track.

Motor fasteners:

# Spec Qty Use
C-f1 M5×16 SHCS 8 Sprocket plate to motor hub flange (4 per sprocket)
C-f2 Hub motor axle nut 2 M16×1.5 (verify axle thread); torque 3540 N·m
C-f3 Loctite 243 On axle nut and flange bolts

Part D — Idler Wheels + Tensioners

# RENDER Qty Material Notes
D1 idler_block_stl 2 PETG Tensioner sliding block, 1 per side
# Part Qty Spec Notes
D2 Idler wheel 2 Ø80 mm, 80+ mm wide, M8 bore, flanged Off-shelf: e.g. polyurethane track idler
D3 M8×100 SHCS 2 Stainless Idler axle through block + wheel + outer bearing
D4 M8 nyloc nut 2 Axle retention
D5 M8 flat washer 4 Both sides of idler wheel
D6 M6×40 SHCS 2 Tensioner adjustment bolt (threads into idler block lug)
D7 M6 nyloc nut 2 Captured in block; lock bolt position

Track tensioning procedure:

  1. Loosen idler axle nut (M8) — block free to slide in slot.
  2. Turn tensioner M6 bolt CW to push block rearward → tighten track.
  3. Target: ~10 mm slack on upper track run (finger-press deflects 10 mm).
  4. Tighten M8 axle nut to 12 N·m. Check tension after first 5-minute run.

Part E — Road Wheels (2 per side, 4 total)

# Part Qty Spec Notes
E1 Road wheel 4 Ø60 mm × 80+ mm wide, M8 bore Polyurethane or HDPE; must fit inside track width
E2 M8×80 SHCS 4 Stainless Road wheel axle through side frame
E3 M8 nyloc 4
E4 M8 flat washer 8

Part F — Track Belts

# Part Qty Spec Notes
F1 Rubber track belt 2 80 mm wide, 20 mm pitch, ~1040 mm circumference Circumference: 2 × (sprocketidler CL) + π × (sprocket_D + idler_D)/2 ≈ 2 × 440 + π × 72 ≈ 1106 mm; order next standard size up
F1-alt Metal link track 2 80 mm wide, 20 mm pitch, adjustable length Higher durability; heavier (~0.8 kg/belt); louder

Track circumference calculation: C = 2 × span + π × (D_sprocket + D_idler) / 2 = 2 × 440 + π × (66 + 80) / 2 = 880 + π × 73 = 880 + 229 ≈ 1109 mm Order 1120 mm (next standard rubber track pitch × N links).


Part G — Skid Plate

# RENDER Qty Material Process Notes
G1 skid_2d 1 4 mm HDPE (white) Waterjet / CNC Preferred — lightweight, low friction
G1-alt skid_2d 1 2 mm 304 stainless Laser-cut Heavy but extreme durability
G1-proto skid_stl 1 PETG Print Prototype — 2 halves if bed <500 mm
# Spec Qty Use
G-f1 M4×12 FHCS 6 Skid plate to deck (countersunk flush)
G-f2 M4 rivet-nut (short) 6 Pre-installed in deck plate

Part H — Sensor Brackets

# RENDER Qty Material Notes
H1 csi_mount_stl 4 PETG CSI corner brackets (45° outward, 20° down)
H2 d435i_mount_stl 1 PETG D435i front arm (8° nose-down)
# Spec Qty Use
H-f1 M2×6 SHCS 8 CSI camera PCB to bracket
H-f2 M3×8 SHCS 8 CSI bracket to deck
H-f3 M4×14 SHCS 2 D435i bracket to deck front face
H-f4 1/4-20 UNC hex nut 1 Captured in D435i bracket face
H-c1 200 mm CSI FPC cable 4 IMX219 to Jetson

Part I — Electronics Bay (reuse from rover)

The rover_electronics_bay.scad bay fits the SaltyTank deck directly — the deck bolt pattern is identical. Print or reuse existing bay + lid.

# Part Qty Notes
I1 Electronics bay body 1 rover_electronics_bay.scadbay_stl
I2 Electronics bay lid 1 Includes RPLIDAR tower
I3 M3×12 SHCS 10 Bay to deck
I4 M3×8 BHCS 4 Lid to bay

Part J — Stem + Sensor Head (shared, unchanged)

Same stem adapter, RPLIDAR, D435i, and IMX219 sensor head as SaltyLab. Recommended stem length for SaltyTank: 500 mm (lower than SaltyBot mast for stability; RPLIDAR at ~635 mm from ground with 98 mm deck height).


Mass Estimate — Frame Only

Assembly Material Est. mass
Deck plate (8 mm Al, ~45% lightened) Al ~1.55 kg
Side frames ×2 (6 mm Al, ~35% lightened) Al ~0.52 kg
Skid plate (4 mm HDPE, solid) HDPE ~0.56 kg
Idler tensioner blocks ×2 PETG ~0.06 kg
CSI brackets ×4 + D435i bracket PETG ~0.07 kg
Stem collar PETG ~0.04 kg
Fasteners (M4M8 SS) Steel ~0.18 kg
Frame total ~2.98 kg

Just under the 3 kg target. To save weight: switch side frames from 6 mm to 5 mm Al → saves ~0.09 kg. Set FRAME_T = 5.0 in saltytank_chassis.scad and re-export DXF.


Assembly Sequence

1. Fabricate / source parts

  1. Export DXFs; send deck and side frames to waterjet. Order HDPE skid to DXF.
  2. Print idler blocks, CSI/D435i brackets, stem collar.
  3. Source track belts, idler wheels, road wheels, hub motors.
  4. Install M4 rivet-nuts in deck plate (6× for skid; stem flange positions).

2. Side frame preparation

  1. Test-fit hub motor axle D-cut bore in side frame — adjust SPROCKET_AXLE_D and SPROCKET_AXLE_FLAT if caliper measurement differs.
  2. Press or Loctite M8 flange nuts into road wheel axle positions (optional).

3. Frame assembly

  1. Slide side frames into deck side edge slots (inner face flush with deck edge).
  2. Insert M5×20 SHCS from above through deck slots; fit nyloc nuts under deck.
  3. Snug only — leave adjustable for wheel alignment (step 6).

4. Drive motor installation

  1. Feed hub motor axle through rear bore in side frame (D-cut aligned to flat).
  2. Bolt sprocket plate to motor hub: 4× M5×16 SHCS, 2.5 N·m, Loctite 243.
  3. Fit axle lock nut; Loctite 243; torque 35 N·m.
  4. Route phase + hall cables through deck cable slot.

5. Road wheel installation

  1. Slide M8×80 bolt through side frame road wheel bore.
  2. Fit road wheel on axle (M8 flat washers both sides).
  3. Thread M8 nyloc; torque to 12 N·m.
  4. Verify wheel rotates freely.

6. Track belt installation (one side at a time)

  1. Install idler block in tensioner slot (tensioner bolt only finger-tight).
  2. Thread track belt around sprocket → road wheels → idler. (Easier with motor temporarily removed — reinstall after threading.)
  3. Fit idler axle (M8×100) through idler block + idler wheel; nyloc finger-tight.
  4. Apply tension: tighten M6 tensioner bolt until ~10 mm slack on upper run.
  5. Torque idler axle nut to 12 N·m.

7. Geometry verification

  1. Set robot on flat surface; check all 4 road wheels contact ground through track.
  2. Measure track tension on both sides — should match within 2 mm.
  3. Spin motors briefly — verify tracks run straight without walking.
  4. Torque side-frame-to-deck M5 bolts to 4 N·m once alignment confirmed.

8. Skid plate

  1. Slide skid plate under deck; align M4 countersunk holes with rivet-nuts.
  2. Fasten 6× M4×12 FHCS from below; tighten evenly to 2.5 N·m.

9. Electronics, sensors, stem

  1. Mount electronics bay on deck (10× M3×12); route cables.
  2. Install CSI and D435i brackets on deck corners/front.
  3. Press stem through collar; install stem adapter + clamp.
  4. Mount sensor head + RPLIDAR on stem top.

Critical Dimensions

Dimension Nominal Tolerance
Deck length × width 500 × 360 mm ±1 mm
Frame height 90 mm ±0.5 mm
Frame length 500 mm ±0.5 mm
Drive axle bore OD 16.11 mm +0.4/0 (round section)
Drive axle flat chord 13.00 mm +0.4/0
Bearing seat recess OD 37.80 mm +1.5/0
Hub motor flange BC 52 mm ⚠ verify caliper
Tensioner slot height 10.5 mm ±0.2 mm
Tensioner travel ±15 mm
FC hole pattern 30.5×30.5 mm ±0.2 mm
Jetson hole pattern 58×49 mm ±0.2 mm
Stem bore Ø25.5 mm +0.3/0
Track belt width 80 mm ±1 mm
Sprocket PCD 64.7 mm ±0.5 mm
Idler OD 80 mm ±1 mm
Road wheel OD 60 mm ±1 mm

OpenSCAD Version

Requires OpenSCAD 2021.01 or newer.

# Full assembly preview:
openscad saltytank_chassis.scad &