sl-firmware 291dd689f8 feat: remove all STM32/Mamba/BlackPill references — ESP32-S3 only
Archive STM32 firmware to legacy/stm32/:
- src/, include/, lib/USB_CDC/, platformio.ini, test stubs, flash_firmware.py
- test/test_battery_adc.c, test_hw_button.c, test_pid_schedule.c, test_vesc_can.c, test_can_watchdog.c
- USB_CDC_BUG.md

Rename: stm32_protocol → esp32_protocol, mamba_protocol → balance_protocol,
  stm32_cmd_node → esp32_cmd_node, stm32_cmd_params → esp32_cmd_params,
  stm32_cmd.launch.py → esp32_cmd.launch.py,
  test_stm32_protocol → test_esp32_protocol, test_stm32_cmd_node → test_esp32_cmd_node

Content cleanup across all files:
- Mamba F722S → ESP32-S3 BALANCE
- BlackPill → ESP32-S3 IO
- STM32F722/F7xx → ESP32-S3
- stm32Mode/Version/Port → esp32Mode/Version/Port
- STM32 State/Mode labels → ESP32 State/Mode
- Jetson Nano → Jetson Orin Nano Super
- /dev/stm32 → /dev/esp32
- stm32_bridge → esp32_bridge
- STM32 HAL → ESP-IDF

docs/SALTYLAB.md:
- Update "Drone FC Details" to describe ESP32-S3 BALANCE board (Waveshare ESP32-S3 Touch LCD 1.28)
- Replace verbose "Self-Balancing Control" STM32 section with brief note pointing to SAUL-TEE-SYSTEM-REFERENCE.md

TEAM.md: Update Embedded Firmware Engineer role to ESP32-S3 / ESP-IDF

No new functionality — cleanup only.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-04 08:41:26 -04:00

8.6 KiB
Raw Blame History

SaltyBot Chassis — Bill of Materials

Task: bd-1iy5 / prototype-baseplate Rev: C — 2026-02-28 (vertical stem architecture; batteries on mast carousel) Agent: sl-mechanical


⚠ Axle Measurement Update (Rev B)

PR #7 (chassis_frame.scad) used placeholder values. The table below records the caliper-verified hub motor axle dimensions. All new designs must use these.

Feature Measured PR #7 placeholder Delta
Axle base diameter (round, near hub) 16.11 mm 14 mm +2.11 mm
D-cut shaft OD 15.95 mm — (not modelled) new
D-cut flat chord 13.00 mm new
Total axle protrusion 65.5 mm ~60 mm est. +5.5 mm
Base section length 15.0 mm new
D-cut section length 43.35 mm new
Tip / shoulder 3.0 mm new
Bearing seat collar OD 37.8 mm new
Tire OD 254 mm (10×2.125") 170 mm motor OD only
Axle CL height above ground 127 mm 310 mm (wrong) 183 mm

chassis_frame.scad should be updated in a follow-on task to match Rev B values.


Structural / Fabricated Parts

Prototype Base Plate (prototype_baseplate.scad) — Rev C

Batteries are removed from the base plate. Plate is now compact (680×130mm). Stem socket replaces battery tray. See Part B (stem clamp) below.

# Part Qty Material Cut size Notes
1 Base plate 1 6mm 5052-H32 Al or 8mm acrylic 680×130mm blank RENDER="plate_2d" → DXF
2 Dropout clamp — lower 2 8mm 6061-T6 Al 90×70mm blank Round bore Ø16.51mm; RENDER="clamp_lower_2d"
3 Dropout clamp — upper 2 8mm 6061-T6 Al 90×70mm blank D-cut bore; RENDER="clamp_upper_2d"
4 Stem flange ring 2 6mm Al or acrylic Ø82mm disc One above + one below plate; RENDER="stem_flange_2d"
5 Vertical stem tube 1 38.1mm OD × 1.5mm wall 6061-T6 Al 1050mm length 1.5" EMT conduit is a drop-in alternative
6 FC standoff M3×6mm nylon 4 Nylon ESP32-S3 BALANCE vibration isolation
7 Ø4mm × 16mm alignment pin 8 Steel dowel Dropout clamp-to-plate alignment

Battery Stem Clamp (stem_battery_clamp.scad) — Part B

# Part Qty Material Notes
8 Collar half 2 PETG FDM (5 perimeters, 40% infill) Print flat-side-down; mirror 2nd in slicer. Bore Ø38.6mm
9 Radial arm 4 4mm 5052-H32 Al (laser-cut) or PETG FDM RENDER="arm_2d" for DXF with ARM_THICK=4; or print at 8mm
10 Battery cradle 4 PETG FDM (4 perimeters, 30% infill) U-channel, open top; holds 1 pack per cradle
11 M6×60 SHCS 4 SS 2 collar clamping bolts × 2 sides
12 M6 hex nut 4 SS Captured in collar nut pockets
13 M6×12 set screw 2 SS, cup-point 1 per collar half for height lock
14 M4×20 SHCS 8 (16 for 4) SS Arm-to-collar bolts (2 per arm)
15 M4×16 SHCS 8 (16 for 4) SS Cradle-to-arm bolts (2 per cradle)
16 M4 hex nut 16 (32 for 4) SS Nuts for items 14 + 15
17 Velcro strap 25mm × 600mm 48 12 per battery pack through cradle slots

Full Chassis (chassis_frame.scad) — Rev A (placeholder values — pending Rev B update)

# Part Qty Material Notes
6 Main deck plate 1 6mm 5052 aluminium plate, 640×220mm CNC router or waterjet; all holes per chassis_frame.scad
7 Longitudinal rib (front) 1 4mm 5052 aluminium, 600×40mm Laser-cut; press-fit into deck slots
8 Longitudinal rib (rear) 1 4mm 5052 aluminium, 600×40mm Same file, symmetric
9 Motor fork bracket (L) 1 8mm 6061 aluminium Update fork slot to Ø16.51mm before cutting
10 Motor fork bracket (R) 1 8mm 6061 aluminium Mirror of item 9
11 Battery tray 1 3mm PETG FDM or 3mm aluminium fold chassis_frame.scadbattery_tray() module
12 FC mount plate / standoffs 1 set PETG or nylon FDM Includes 4× M3 nylon standoffs, 6mm height
13 Jetson Orin Nano Super mount plate 1 4mm 5052 aluminium or 4mm PETG FDM B01 58×58mm hole pattern
14 Front bumper bracket 1 5mm PETG FDM Saddle clamps for 22mm EMT conduit
15 Rear bumper bracket 1 5mm PETG FDM Mirror of item 14

Motors

# Part Qty Source / Spec Notes
16 Hoverboard hub motor 2 10×2.125" pneumatic tire, 36V nominal, ~350W Axle: Ø16.11mm base / Ø15.95mm D-cut / 13mm flat; bearing seat Ø37.8mm — all caliper-verified
17 Motor hall-sensor cable extension 2 6-pin JST-PH 300mm Route through deck cable slot
18 Axle lock nut 4 M16×1.5 or thread-matched to actual axle tip Confirm thread at tip before ordering; calipers show Ø≈10mm at tip

Electronics Mounts

# Part Qty Spec Notes
13 ESP32-S3 ESP32-S3 BALANCE FC 1 36×36mm PCB, 30.5×30.5mm M3 mount Oriented USB-C port toward front
14 Nylon M3 standoff 6mm 4 F/F nylon FC vibration isolation
15 Anti-vibration grommet M3 4 Ø6mm silicone Under FC mount pads
16 Jetson Orin Nano Super B01 module 1 69.6×45mm module + carrier 58×58mm M3 carrier hole pattern
17 Nylon M3 standoff 8mm 4 F/F nylon Jetson board standoffs

Battery (Vertical Stem Mount — Rev C)

Batteries mount VERTICALLY on the stem carousel, not on the base plate. Each pack stands upright (420mm tall) in a cradle at the end of a radial arm.

# Part Qty Spec Notes
18 Battery pack 24 24V, 420×88×56 mm each (caliper-verified) Snap into battery cradle from above
19 BMS board 1 Matched to cell chemistry Mount to stem or base plate underside; run wiring down stem

Battery stem clamp — configuration guide

Config Arm count Carousel weight Balance Notes
2-pack 2 arms, 180° apart ~1.4 kg Symmetric Minimum configuration
4-pack 4 arms, 90° apart ~2.8 kg Symmetric Maximum practical config
3-pack 3 arms, 120° apart ~2.1 kg ⚠ Asymmetric mass Needs counter-balance or avoid

CG height tuning

Slide entire carousel up/down the stem with M6 collar bolts loosened. Tighten at desired height. Typical balance point (initial estimate): batteries centred at 450600 mm above base plate. Adjust in ≈50 mm increments during commissioning.


Bumper Rail

# Part Qty Spec Notes
21 3/4" EMT conduit 2 22mm OD, 660mm length Front and rear bumper rail; bent or straight
22 Conduit saddle clamp M4 6 3D-printed integral to bracket (items 9/10) Back-up: standard pipe clamp 22mm

Fasteners

# Part Qty Spec Use
20 M5×16 SHCS 16 ISO 4762, SS Dropout clamp bolts (4 per clamp × 4)
21 M5×20 SHCS 8 ISO 4762, SS Stem flange bolts (4 per flange × 2)
22 M5 hex nut 24 ISO 4032, SS
23 M4×20 SHCS 16 ISO 4762, SS Arm-to-collar (2 per arm × 4 arms × 2)
24 M4×16 SHCS 16 ISO 4762, SS Cradle-to-arm (2 per cradle × 4 arms × 2)
25 M4 hex nut 32 ISO 4032, SS
26 M6×60 SHCS 4 ISO 4762, SS Collar clamping bolts
27 M6 hex nut 4 ISO 4032, SS Captured in collar pockets
28 M6×12 set screw 2 ISO 4026, SS cup-point Stem height lock (1 per collar half)
29 M3×10 SHCS 12 ISO 4762, SS FC mount + miscellaneous
30 M3×6 BHCS 4 ISO 4762, SS FC board bolts
31 Axle lock nut (match axle tip thread) 4 Flanged, confirm thread 2 per motor
32 Flat washer M5 32 SS
33 Flat washer M4 32 SS
34 Ø4×16 dowel pin 8 Steel Dropout clamp alignment

Tools Required for Assembly

  • Torque wrench (M14 axle nuts: 3540 N·m; M5: 4 N·m)
  • M2.5 / M3 / M4 / M5 hex drivers
  • Thread locker (Loctite 243 blue for all structural fasteners)
  • Dial caliper — verify motor OD, axle flat before machining fork slot

Estimated Masses

Assembly Est. mass
Aluminium deck + ribs ~1.1 kg
Motor forks (×2 Al) ~0.4 kg
Motors (×2) ~3.6 kg
Battery (6S 4Ah LiPo) ~0.7 kg
Electronics (FC + Jetson + wiring) ~0.5 kg
Bumpers + brackets ~0.3 kg
Fasteners ~0.2 kg
Total estimate ~6.8 kg