saltylab-firmware/chassis/uwb_assembly.md
sl-mechanical 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

205 lines
7.6 KiB
Markdown
Raw Permalink 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.

# SaltyBot UWB System — Assembly Notes + BOM
**Rev A — 2026-03-01 — sl-mechanical**
**Issues: #57, #61, #62**
---
## System Overview
Follow-me UWB ranging using 3× MaUWB ESP32-S3 modules:
| Role | Qty | Location | File |
|------|-----|----------|------|
| Tag | 1 | Operator belt ("Tee") | `uwb_tag_enclosure.scad` |
| Anchor | 2 | Robot stem, 250 mm apart | `uwb_anchor_mount.scad` |
---
## Antenna Clearance — CRITICAL
The DW3000 UWB chip antenna requires:
- **10 mm clear zone** around antenna — no metal, no carbon fibre, no metal-fill filament
- Use **plain PLA or PETG** only in these parts (no conductive additives)
- Tag lid has an **open window** directly over the PCB antenna area
- Anchor bracket **back wall has a cutout** behind the antenna section of the PCB
- When installing modules, orient antenna end **away from stem** (faces outward)
---
## Part A — UWB Tag Enclosure (`uwb_tag_enclosure.scad`)
### Printed parts
| # | RENDER | Qty | Material | Settings |
|---|--------|-----|----------|----------|
| 1 | `body` | 1 | PETG | 4 perims, 35% infill, 0.2 mm layer |
| 2 | `lid` | 1 | PETG | 4 perims, 35% infill |
| 3 | `tpu_bumper` | 1 | TPU 95A | 3 perims, 20% infill, 25 mm/s |
> **Print orientation:** body — floor on bed; lid — inside face down; TPU bumper — flat.
### Internal layout diagram
```
X ←────────── ~75 mm ──────────→ X+
┌──────────────────────────────┐
USB → │[TP4056] [ 18650 cell ] │
│─────────────────────────────│
│ [ MaUWB ESP32-S3 PCB ] │ ← antenna faces UP
└──────────────────────────────┘
↑ ↑
micro-USB LED window
(charging) (Y+ face, small hole)
Power switch cutout: Y face, centred
Belt clip: Y face (back)
```
### IP44 seam
Lid rim overlaps body 4 mm with a 2-turn labyrinth ridge (water must turn
90° twice). No holes on the top face. All ports on side/back faces.
**Not suitable for rain immersion — use for light splash protection only.**
### Heat-set insert option
For improved thread strength, replace M2 clearance standoffs with **M2 × 3 mm
heat-set brass inserts** pressed into the standoff posts with a soldering iron.
### Fasteners
| # | Spec | Qty | Use |
|---|------|-----|-----|
| 4 | M2 × 6 BHCS | 4 | MaUWB PCB to standoffs |
| 5 | M2 hex nut | 4 | Alternative if no heat-set inserts |
| 6 | M3 × 8 SHCS | 2 | Belt clip to enclosure back |
| 7 | M3 hex nut | 2 | Captured in clip back plate |
### Assembly sequence — tag
1. Install TP4056 board in body, micro-USB port aligned with cutout
2. Solder TP4056 leads to 18650 spring contacts (or use 18650 holder PCB)
3. Snap 18650 into battery cradle (+ end toward spring contact at X+)
4. Seat MaUWB PCB on M2 standoffs; tighten M2 × 6 bolts (0.3 N·m — soft)
5. Route USB data + power cable from MaUWB to TP4056 B+ / B pads
6. Press power switch into cutout (Y face)
7. Close lid — press corners until 4 snap clips engage (audible click ×4)
8. Slide TPU bumper sleeve onto body from below
9. Attach belt clip to Y face with 2× M3 × 8
---
## Part B — Anchor Mounts (`uwb_anchor_mount.scad`)
### Printed parts (per mount × 2 mounts)
| # | RENDER | Qty per mount | Total | Material | Notes |
|---|--------|---------------|-------|----------|-------|
| 10 | `collar_front` | 1 | 2 | PETG | Flat-face-down; has thumbscrew recesses |
| 11 | `collar_rear` | 1 | 2 | PETG | Has hex nut pockets + USB cable channel |
| 12 | `bracket` | 1 | 2 | PETG | Flat-face-down; back wall on bed |
### Anti-rotation
The front collar half has a **flat tab** (3 × 8 mm radial tab at +X) that
protrudes from the collar outer surface. This tab:
- Bears against the module bracket arm, preventing rotation during clamping
- Creates a positive mechanical register — mount always faces the same direction
- No modification to the stem required
### Anchor positioning on stem
```
TOP OF STEM
──┼── ← Sensor head (sensor_head.scad, at ~800900 mm)
══╬══ ← Upper anchor (ANCHOR 2) ┐
│ │ 250 mm
══╬══ ← Lower anchor (ANCHOR 1) ┘
──┼── ← Battery carousel (stem_battery_clamp.scad)
BOTTOM OF STEM (base plate)
```
Recommended Z positions (above base plate):
- Anchor 1: **450 mm** (just above battery carousel top)
- Anchor 2: **700 mm**
This places anchors in the mid-stem region, maximising horizontal separation
from each other and from nearby metal (battery packs, base plate).
### USB cable routing
Each anchor is powered via USB-A from the Jetson Orin. Cable routing:
1. Cable exits Orin USB hub, runs up stem through cable ties
2. Enters anchor bracket through USB notch on left side wall
3. Plugs into MaUWB USB-C port (programming and power)
4. Excess cable loops into rear collar USB channel groove, held with a cable tie
### Fasteners (per mount)
| # | Spec | Qty | Use |
|---|------|-----|-----|
| 13 | M4 × 25 SHCS (thumbscrew head) | 2 | Collar clamping bolts (tool-free: slot for coin) |
| 14 | M4 hex nut | 2 | Captured in rear collar half |
| 15 | M4 × 10 set screw | 1 | Collar height lock (front half) |
| 16 | M4 × 20 SHCS | 2 | Bracket to collar arm boss |
| 17 | M4 hex nut | 2 | Under collar boss for bracket bolts |
| 18 | M2 × 6 BHCS | 4 | MaUWB PCB to bracket standoffs |
| 19 | M2 hex nut | 4 | PCB standoff nuts |
### Assembly sequence — anchor (×2)
1. Press M4 hex nuts into collar rear half nut pockets
2. Press M2 hex nuts into bracket standoff counterbores
3. Seat MaUWB PCB in bracket on M2 standoffs; tighten M2 × 6 BHCS (0.3 N·m)
4. Bolt bracket to collar front-half arm boss with 2× M4 × 20
5. Align anti-rotation tab with bracket arm edge
6. Wrap collar halves around stem at desired height
7. Align micro-USB / USB-C port direction, tighten M4 thumbscrews finger-tight
8. Tighten set screw on front half to lock height
9. Route USB cable through rear channel, cable-tie every ~100 mm along stem
---
## Full Mass Estimate
| Part | Material | Est. mass |
|------|----------|-----------|
| Tag body + lid (PETG) | PETG | ~45 g |
| Tag TPU bumper | TPU | ~12 g |
| 18650 cell | Li-ion | ~47 g |
| TP4056 + MaUWB PCBs | PCB | ~20 g |
| Tag total | | **~130 g** |
| Anchor collar set × 2 (×2) | PETG | ~80 g |
| Anchor brackets × 2 | PETG | ~40 g |
| MaUWB PCBs × 2 | PCB | ~30 g |
| Anchor fasteners | SS | ~20 g |
| **Total (tag + 2 anchors)** | | **~300 g** |
---
## Bill of Materials Summary
| # | Description | Qty | Source hint |
|---|-------------|-----|-------------|
| A | MaUWB ESP32-S3 module | 3 | AliExpress / MakerFabs |
| B | 18650 Li-ion cell (≥2000 mAh) | 1 | Panasonic NCR18650B or equiv. |
| C | TP4056 micro-USB charger board | 1 | Standard TP4056 module |
| D | Slide power switch 13×7 mm | 1 | SS-12D00 or equiv. |
| E | M2 × 6 BHCS | 12 | (4 tag + 4 anchor-1 + 4 anchor-2) |
| F | M2 hex nut | 12 | |
| G | M3 × 8 SHCS | 2 | Belt clip |
| H | M3 hex nut | 2 | |
| I | M4 × 25 thumbscrew SHCS | 4 | Slot-head preferred for tool-free use |
| J | M4 × 20 SHCS | 4 | Bracket-to-collar |
| K | M4 × 10 set screw | 2 | Height lock |
| L | M4 hex nut | 8 | |
| M | USB-A to USB-C cable 1 m | 2 | Anchor power from Orin |
| N | PETG filament | ~200 g | Any brand |
| O | TPU 95A filament | ~30 g | For tag bumper |
| P | Loctite 243 blue | 1 | Structural M4 bolts |
| Q | Cable ties 100 mm | 10 | Stem cable management |