fa75c442a7
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 09:00:38 -04:00
f71dad5344
feat(arch): migrate all STM32/Mamba/BlackPill refs to ESP32 BALANCE/IO + fix roslib@1.4.0
...
Architecture change (2026-04-03): Mamba F722S (STM32F722) and BlackPill
replaced by ESP32 BALANCE (PID loop) and ESP32 IO (motors/sensors/comms).
- Update CLAUDE.md, docs, chassis BOM/ASSEMBLY, pinout, power-budget,
wiring-diagram, TEAM.md, AUTONOMOUS_ARMING.md, docker-compose
- Update all ROS2 package comments, config labels, launch args
(stm32_port→esp32_port, /dev/stm32-bridge→/dev/esp32-bridge)
- Update WebUI: stm32Mode→esp32Mode, stm32Version→esp32Version,
"STM32 State/Mode" labels → "ESP32 State/Mode" (ControlMode, SettingsPanel)
- Add TODO(esp32-migration) markers on stm32_protocol.py and mamba_protocol.py
binary frame layouts — pending ESP32 protocol spec from max
- Fix roslib CDN 1.3.0→1.4.0 in all 11 HTML panels (fixes ROS2 Humble
rosbridge "Received a message without an op" incompatibility)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-04 08:25:24 -04:00
5e97676703
docs: Update chassis docs for ESP32 architecture (retire Mamba F722S)
...
Replace Mamba F722S / STM32F722 references in BOM.md and ASSEMBLY.md
with ESP32 BALANCE + ESP32 IO. Board dimensions marked TBD pending
spec from max.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-04 08:25:24 -04:00
af982bb575
feat: VESC dual ESC mount bracket (Issue #699 )
...
3D-printable PETG cradle for FSESC 6.7 Pro Mini Dual on 2020 T-slot rail.
4x M5 T-nut mounting, open-top heatsink exposure, XT60/XT30/CAN cutouts,
floor grille and side louvre ventilation, M3 heat-set insert posts for
board retention. No supports required.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-20 16:26:07 -04:00
4f81571dd3
feat: CANable 2.0 mount for T-slot rail (Issue #654 )
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-17 11:33:06 -04:00
cb802ee76f
feat: Cable management tray (Issue #628 )
2026-03-15 14:33:49 -04:00
837c42a00d
feat: Jetson Orin Nano mount bracket (Issue #612 )
2026-03-15 10:04:37 -04:00
816d165db4
feat: RPLIDAR A1 mount bracket (Issue #596 )
2026-03-14 14:58:41 -04:00
ddf8332cd7
Merge pull request 'feat: Battery holder bracket (Issue #588 )' ( #589 ) from sl-mechanical/issue-588-battery-holder into main
2026-03-14 13:32:16 -04:00
5556c06153
feat: Battery holder bracket (Issue #588 )
2026-03-14 12:18:37 -04:00
929c9ecd74
feat: UWB anchor mount bracket (Issue #564 )
2026-03-14 11:51:50 -04:00
c7dcce18c2
feat: UWB anchor mount bracket wall/ceiling design (Issue #564 )
2026-03-14 11:47:07 -04:00
d8e5490a0e
feat: RPLIDAR A1 mount bracket (Issue #561 )
2026-03-14 11:40:17 -04:00
0fd6ea92b0
feat: Camera gimbal mount bracket for RealSense D435i (Issue #552 )
2026-03-14 10:28:03 -04:00
fc43135144
feat: Spring-loaded phone mount bracket for T-slot rail (Issue #535 )
...
Parametric OpenSCAD design for 2020 T-slot rail phone mount bracket.
Adjustable width 60-85mm, spring-loaded cam quick-release lever,
vibration-dampening flexure rib grip pads. PETG 3D-printable, no supports.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-07 09:49:10 -05:00
b0c2b5564d
feat: Add Issue #505 CAD - 24V Charging Dock OpenSCAD Models
...
CAD implementation files for Issue #505 (24V charging dock upgrade):
- charging_dock_505.scad: Main dock assembly
* Base plate: 340×320×12 mm (enlarged for 240W PSU)
* Back wall: 250×85×10 mm (pogo pin housing, LED bezel recess)
* V-guide rails: 100mm deep, self-centering funnel (print 2×)
* ArUco marker frame: ID 42 (DICT_4X4_250), 15cm mast
* PSU bracket: Sized for Mean Well IRM-240-24 (210×108×56 mm)
* LED bezel: 4× status indicators (SEARCHING/ALIGNED/CHARGING/FULL)
- charging_dock_receiver_505.scad: Robot-side receiver variants
* Lab receiver: Stem collar mount (SaltyLab)
* Rover receiver: Deck flange mount (SaltyRover)
* Tank receiver: Skid plate mount + extended nose (SaltyTank)
* Common contact geometry: 20mm CL-to-CL brass pads, V-nose guide
* Wire bore: 3mm (supports 12 AWG charging wires)
Key changes from Issue #159 (5V):
- PSU dimensions: 63×45×28 mm → 210×108×56 mm
- Base/bracket enlarged accordingly
- ArUco ID: 0 → 42
- Contact geometry unchanged (compatible with Issue #159 receivers)
- Pogo pins, V-guides, LED circuit identical
Files ready for:
- STL export via OpenSCAD render commands
- 3D printing (PETG recommended)
- Assembly integration with docking node (#489 )
Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
2026-03-06 11:44:28 -05:00
5cea0812d5
feat: Add Issue #505 - 24V Charging Dock Hardware Design
...
- Design specification: 24V DC power delivery (upgraded from 5V Issue #159 )
- ArUco marker ID 42 (15cm frame) for precision alignment
- Spring-loaded contact pads with V-channel guide rails
- Comprehensive BOM for 24V PSU, wiring, LED status circuit
- Compatible with docking node #489 (ROS2 integration)
- 3D-printable PETG frame (base, back wall, guide rails, brackets)
- Electrical: 240W Mean Well IRM-240-24 PSU, 20A current capacity
- Safety: Fused output, varistor protection, soft-start capable
- Integration: MQTT status reporting, GPIO LED control (Jetson Orin NX)
Files:
- ISSUE_505_CHARGING_DOCK_24V_DESIGN.md: Complete design spec (mechanical, electrical, assembly)
- charging_dock_505_BOM.csv: Procurement list with sourcing info
Next: CAD implementation (charging_dock_505.scad, receiver variant)
Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
2026-03-06 10:30:44 -05:00
b8f9d3eca6
feat(mechanical): RPLIDAR A1 parametric dust/splash cover (Issue #301 )
2026-03-02 21:36:58 -05:00
aa0c3da022
feat(mechanical): RPLIDAR A1 parametric dust/splash cover (Issue #301 )
2026-03-02 21:08:12 -05:00
479a33a6fa
feat(mechanical): parametric cable management clips (Issue #264 )
social-bot integration tests / Lint (flake8 + pep257) (pull_request) Failing after 9s
social-bot integration tests / Core integration tests (mock sensors, no GPU) (pull_request) Has been skipped
social-bot integration tests / Latency profiling (GPU, Orin) (pull_request) Has been cancelled
2026-03-02 20:44:27 -05:00
796e343b78
feat(mechanical): modular payload bay system (Issue #170 )
...
Dovetail rail + tool-free swappable payload modules for all variants:
- payload_bay_rail.scad: 50×12 mm 60° dovetail rail (DXF for CNC Al bar),
spring ball detent (Ø6 mm, 50 mm pitch), continuous safety-lock groove
(M4 thumbscrew), 4-pin pogo connector housing (GND/5V/12V/UART),
lab/rover/tank deck adapter plates
- payload_bay_modules.scad: universal _module_base() (male tongue, detent
bore, 4× Ø4 mm target pads, lock bore) + 3 example modules: cargo tray
(200×100 mm, Velcro slots, bungee cord slots), camera boom (120 mm mast +
80 mm arm, 2020-rail-compatible head, 3-position tilt), cup holder
(Ø80 mm tapered, 8-slot flex grip). Includes copy-paste module template.
- payload_bay_BOM.md: hardware list, CNC spec (dovetail dimensions, surface
finish, connector pocket), load analysis (2 kg rated with Al rail + lock),
module developer guide with constraints table
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-02 10:38:07 -05:00
8222a0c42e
feat(mechanical): charging dock station (Issue #159 )
...
Universal 5 V/5 A charging dock for SaltyLab/Rover/Tank robots:
- charging_dock.scad: weighted base (ballast pockets, floor anchors),
back wall with 2× 5 A pogo pin housing + wiring channel, V-guide
funnel rails (±20 mm alignment tolerance), ArUco marker mast (100×100 mm,
15° tilt), PSU bracket (IRM-30-5), 4-LED status bezel
(Searching/Aligned/Charging/Full)
- charging_dock_receiver.scad: 3-variant robot-side contact plate with
Ø12 mm brass pad press-fit, V-nose self-alignment; SaltyLab stem
collar, SaltyRover deck flange, SaltyTank skid-plate mount
- charging_dock_BOM.md: hardware list, ASCII wiring diagram, INA219
current-sense LED state logic, pogo height cross-variant shim table,
assembly sequence, export commands
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-02 10:15:14 -05:00
a70d9a2a71
feat(mechanical): IP54 weatherproofing kit (Issue #144 )
...
Add sealed enclosures and sensor housings for outdoor IP54 protection:
- ip54_enclosure.scad: main electronics box (Jetson/FC/ESC), O-ring lid,
fan+filter duct, PG7/PG9 cable glands, quarter-turn latches, heat sink
recesses; gasket DXF export
- ip54_sensor_housings.scad: IMX219 clear PC dome (O-ring + anti-fog
pocket), D435i IR-transparent window housing (PG7 rear cap), RPLIDAR
static clear PC dome base ring (120 mm OD, O-ring, quarter-turn clips)
- ip54_BOM.md: hardware list, thermal analysis (≤52°C at 40°C ambient),
IP54 compliance checklist, mass ~930g total kit
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-02 09:58:22 -05:00
3992b80bcb
feat(mechanical): universal sensor mount rail system (Issue #138 )
...
Add 2020 T-slot quick-swap sensor rail for SaltyLab/Rover/Tank variants:
- sensor_rail.scad: 2020 T-slot profile, T-nut, thumbscrew, end cap, index
pins, stem/post/tank clamp adapters
- sensor_rail_brackets.scad: universal T-nut base + RPLIDAR A1M8, D435i,
IMX219, UWB anchor, cable clip brackets (tool-free M3 thumbscrew retention)
- sensor_rail_BOM.md: purchased hardware, print settings, export commands
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-02 09:46:27 -05:00
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
2fa72e169e
feat: SaltyRover chassis Rev 2 — 4-wheel rover with spring suspension ( #109 )
...
New chassis design files for the SaltyRover rough-terrain variant:
• saltyrover_chassis_r2.scad — Deck plate (500×480×6mm Al, laser-cut DXF),
4× M3-adjustable pivot brackets, 4× CSI corner camera mounts (45° outward,
20° down), D435i front bracket (8° tilt), stem collar. All RENDER modes
for STL and DXF export included.
• rover_spring_arm.scad — Trailing-arm spring suspension (×4). Pivot on M8
bolt; captured 14mm OD compression spring (50mm free, ~5 N/mm); open-end
axle dropout slot with retainer cap. Provides 25mm bump + 15mm droop travel.
Bearing-seat recess for caliper-verified 37.8mm collar OD.
• rover_electronics_bay.scad — PETG electronics bay (240×200×80mm internal).
FC standoffs 30.5×30.5mm M3 and Jetson Orin 58×49mm M3 — shared SaltyLab
swappable pattern. Ventilation slots all 4 walls + lid. Lid integrates
100mm RPLIDAR A1M8 tower (58mm BC, matched to rplidar_mount.scad).
Split-print halves for 220mm beds included.
• rover_chassis_r2_BOM.md — Full BOM, mass estimate (frame ~2.15kg; reduce
to <2kg by setting DECK_T=5), assembly sequence, critical dimensions.
Sensor positions: RPLIDAR top-centre on bay lid, D435i front, 4× IMX219 at
deck corners. Shares 30.5mm FC + 58mm Jetson + Ø25mm stem patterns with
SaltyLab for swappable electronics.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-02 08:42:44 -05:00
0daac970c3
feat: SIM7600X mount + LTE/GNSS antenna brackets
...
chassis/sim7600x_mount.scad
Platform bracket for Waveshare SIM7600X-H 4G HAT (65×56 mm,
RPi HAT M2.5 pattern 58×49 mm). Standoffs height = HAT underside
component clearance + 4 mm. Three walls (X−, X+, Y+); Y− edge
fully open for SIM card tray access without disassembly. Floor-plate
notch wider than SIM slot so card inserts/ejects with board in situ.
USB port notch same open edge. u.FL pigtail exit slot in Y+ wall.
4× M3 flat-head countersunk holes for base plate bolt-down.
RENDER: bracket / assembly / bracket_2d (DXF for base plate layout).
chassis/antenna_mount.scad
Two bracket types on shared 25 mm stem split-collar (M4 bolts,
set screw height lock, cable-tie grooves on rear half):
lte_bracket() — arm with 2× SMA bulkhead holes (6.6 mm clearance,
hex-nut capture on underside). u.FL pigtail relief grooves on arm
underside. Antennas point skyward. Recommended: 500–600 mm stem.
gnss_platform() — upward-facing tray (≤40×40 mm patch antenna),
4-sided retention lip, central GNSS coax slot, optional M2 bolt-down
holes at 30×30 mm. Mount as high as practical for clear sky view:
750–800 mm stem height. Recommended: active 35×35 mm patch antenna.
RENDER "full_stem" shows both at 80 mm spacing on stem stub.
Individual RENDER modes for each printable piece.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-01 00:59:47 -05:00
61c716ee58
feat: UWB tag enclosure + stem anchor mounts ( #57 , #61 , #62 )
...
3× MaUWB ESP32-S3 follow-me UWB system: 1 wearable tag, 2 robot anchors.
chassis/uwb_tag_enclosure.scad
Belt-clip enclosure for MaUWB PCB (~50×25×10 mm) + TP4056 micro-USB
charger + 18650 cell. Snap-fit PETG shell + TPU 95A bumper sleeve.
IP44-ish 4 mm overlap + 2-turn labyrinth seam. Open antenna window in
lid (no PLA within 10 mm of UWB antenna). Power switch cutout (Y− face),
micro-USB port (X− face), LED window hole (Y+ face). Belt clip integrated
(PETG spring arm, 42 mm belt slot). RENDER: body/lid/tpu_bumper/assembly.
chassis/uwb_anchor_mount.scad
Stem-mounted anchor bracket for 25 mm OD stem. Split D-collar with M4
thumbscrews (tool-free), M4 hex nut pockets, M4 set screw height lock.
Anti-rotation flat tab on front half prevents axial rotation without stem
modification. USB cable routing channel in rear half. Module bracket tilted
10° outward — antenna faces horizon, clears stem metal. Back-wall cutout
behind antenna section (10 mm clearance). 250 mm anchor spacing (RENDER
"pair" shows both on stem section). RENDER: collar_front/collar_rear/
bracket/assembly/pair.
chassis/uwb_assembly.md
Full assembly notes: antenna clearance rules, IP44 seam description, stem
positioning diagram (anchors at 450 mm + 700 mm), USB cable routing,
complete BOM (~300 g total, tag ~130 g).
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-01 00:41:45 -05:00
beb0af7ce6
feat: bumper + frame crash protection for SaltyBot
...
Protects expensive sensors when robot tips over during testing.
Files added:
chassis/bumper_frame.scad — roll cage (25 mm stem collar + 4 inclined
posts + crown ring + TPU snap pad). Posts at
45/135/225/315° between cameras. Crown at
Z=148 mm above cage collar, 18 mm above RPLIDAR
top. RPLIDAR FOV unobstructed.
chassis/base_bumper.scad — clip-on bumper ring for 270×240 mm base plate.
50 mm tall, 15 mm standoff, rounded corners.
4× corner + 4× side clip brackets. TPU snap
edge caps. FC status LEDs remain visible.
chassis/stem_protector.scad — split TPU sleeve for 25 mm stem. Snap-fit
closure (no hardware). Install 3–4 sleeves
along stem at ~200 mm intervals.
chassis/bumper_BOM.md — full BOM, print settings, install heights,
mass estimate (~500 g total, balanced).
All parts print without supports. Fully removable (clip/snap/clamp).
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-28 23:30:06 -05:00
23f2daa3cd
feat: sensor head mounts — stem collar, RPLIDAR, RealSense, 4× IMX219
...
Part of Phase 2 sensor mount designs for SaltyBot 25 mm mast.
Files added:
chassis/sensor_head.scad — split collar (25 mm OD stem) + octagonal platform
chassis/rplidar_mount.scad — anti-vibration ring for RPLIDAR A1M8 (Ø58 mm BC)
chassis/realsense_mount.scad — RealSense D435i arm bracket, 10° tilt, 1/4-20 nut
chassis/imx219_mount.scad — 4× IMX219 radial arms, 10° tilt, CSI ribbon slot
chassis/sensor_head_assembly.md — assembly diagram + fastener BOM + print settings
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-28 22:53:18 -05:00
914afbc1ca
feat: vertical stem architecture — compact baseplate + battery carousel
...
ARCHITECTURE CHANGE: batteries no longer sit flat on the base plate.
They mount VERTICALLY on a central mast via a height-adjustable carousel.
CG is tuned by sliding the carousel up/down the stem.
Part A — prototype_baseplate.scad (Rev C):
- PLATE_DEPTH: 210mm → 130mm (no battery footprint constraint)
- Removed all battery tray geometry (holes, strap slots, expansion mounts)
- Added central stem socket: Ø38.6mm bore + 4x M5 flange bolt holes on Ø66mm BC
- Added stem_flange() module: laser-cut ring (qty 2, one each side of plate)
- Wiring pass-through slots flanking stem centre
- FC mount relocated to FC_X_OFFSET = -40mm (front of plate, clear of stem)
- New RENDER="stem_flange_2d" DXF export option
Part B — stem_battery_clamp.scad (new):
- Collar: two 3D-printed D-shaped halves, split at Y=0
- Ø38.6mm bore (1.5" EMT / 6061-T6 tube)
- 4x M6 clamping bolts + hex nut pockets
- 1x M6 set screw per half for height/rotation lock
- Arm attachment pads with M4 through-holes + nut pockets
- Arms: flat bars, laser-cut or printed, ARM_REACH=55mm
- Battery cradles: U-channel, open top, Velcro strap slots at 30% + 65% height
- BATT_COUNT param: 2 (180°), 3 (120°), or 4 (90°) radial batteries
- ARM_START_ANGLE chosen per BATT_COUNT to keep all arms clear of Y=0 split
- Battery ghosts in assembly for visualisation
- Full RENDER control: assembly / collar_half / arm / arm_2d / cradle
- Assembly sequence + CG tuning notes in file footer
BOM.md → Rev C:
- Part A table updated (5 laser-cut parts + stem tube)
- Part B table added (collar halves, arms, cradles, fasteners)
- Battery section: flat-deck layout replaced with vertical stem guide
- Fastener table updated to match new architecture
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-28 14:57:30 -05:00
5bb5c7f863
fix: update baseplate with real battery dimensions (420x88x56mm)
...
Replaces placeholder 185x72x52mm battery spec with caliper-verified
pack dimensions. 2 packs side-by-side is the default config.
Geometry impact:
- PLATE_DEPTH reduced to 210mm (2x88mm + 17mm margin each side)
- Battery zone: 420x176mm centred between motor forks (fits 600mm wheelbase)
- Mount holes repositioned: 4 per pack x 2 packs = 8 M4 holes
at (±(BATT_L/2 - 18), ±BATT_W/2)
- Velcro strap slots: 25mm wide, pierce full plate depth at x=±BATT_L/4
- 4-pack expansion: optional M5 shelf bolt holes when BATT_PACKS=4
(only viable 4-pack layout is 2+2 underdeck — analysed in BOM)
- Battery ghost in assembly preview shows 2-pack deck layout
4-pack analysis (added to BOM):
in-line 840mm > wheelbase, side-by-side 352mm > plate depth
→ 2+2 underdeck shelf is the only viable 4-pack configuration
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-28 14:46:50 -05:00
22d7b546f3
feat: prototype base plate with real hub motor measurements
...
Adds prototype_baseplate.scad — a laser-cuttable / CNC-routable flat
base plate for the self-balancing robot using caliper-verified axle
dimensions from the wiki (replaces placeholder values in PR #7 ):
Axle base dia: 16.11 mm (was 14 mm)
D-cut OD: 15.95 mm (new)
D-cut flat chord: 13.00 mm (new)
Total protrusion: 65.50 mm
Bearing seat OD: 37.80 mm
Tire OD: 254 mm (10x2.125")
Axle CL height: 127 mm (was wrong 310 mm)
Design:
- Single flat plate (6 mm Al / 8 mm acrylic), 680x220 mm blank
- Open fork slots (16.51 mm, semicircular tip) at each axle end
- Bearing seat relief cutout prevents Ø37.8 mm collar binding on edge
- Two-piece dropout clamp: lower (round bore) + upper (D-cut bore)
- D-cut profile computed from chord geometry with 0.3 mm all-round clearance
- MAMBA F722S FC holes (30.5x30.5 mm M3), battery mount holes (M4)
- Lightening slots, corner radii via minkowski
- RENDER param switches between 3-D assembly and 2-D DXF projections
for each of the three laser-cut parts
Updates BOM.md to Rev B: measurement delta table, prototype BOM section,
updated motor entry with verified axle spec.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-28 14:43:26 -05:00
cd9299ded8
feat: parametric chassis frame design (bd-1iy5)
...
OpenSCAD parametric model for SaltyBot two-wheeled self-balancing robot chassis:
- 600mm wheelbase, 170mm hoverboard hub motor fork dropouts
- MAMBA F722S FC mount (30.5x30.5mm M3 pattern, 6mm nylon standoffs)
- Battery tray for 24V 4Ah pack (185x72x52mm) with strap slots + vent holes
- Jetson Nano B01 mount plate (58x58mm M3 pattern, 8mm standoffs)
- Front/rear bumper brackets with 22mm EMT conduit saddle clamps
- Longitudinal ribs, lightening holes, cable routing slots
- BOM (32 line items) and step-by-step assembly notes
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-28 12:45:40 -05:00