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>
164 lines
8.1 KiB
Markdown
164 lines
8.1 KiB
Markdown
# IP54 Weatherproofing Kit BOM — Issue #144
|
||
**Agent:** sl-mechanical | **Date:** 2026-03-01
|
||
|
||
IP54-rated enclosures and sensor housings for all-weather outdoor robot operation.
|
||
|
||
---
|
||
|
||
## A. Main Electronics Enclosure (`ip54_enclosure.scad`)
|
||
|
||
### Purchased Hardware
|
||
|
||
| # | Description | Spec | Qty | Source / Notes |
|
||
|---|-------------|------|-----|----------------|
|
||
| E1 | PG7 cable gland | IP68, nylon, Ø3–6 mm cable range | 4 | Lapp Skintop® or equivalent |
|
||
| E2 | PG9 cable gland | IP68, nylon, Ø4–8 mm cable range | 2 | Lapp Skintop® or equivalent |
|
||
| E3 | Silicone O-ring cord | Ø2 mm cord, silicone 70 Shore A | ~800 mm | Cut to lid perimeter length; butt-join with silicone sealant |
|
||
| E4 | 40 mm axial fan | 12 V DC, sleeve bearing, >10 CFM | 1 | Sunon MF40201VX or Noctua NF-A4x10 |
|
||
| E5 | Foam filter pad | 40×40×5 mm open-cell PPI 30 | 2 | Cut from foam sheet; replace when dirty |
|
||
| E6 | Al heat sink pad — Jetson | 60×40×2 mm, adhesive back | 1 | Bergquist GP3000 or Arctic Thermal Pad |
|
||
| E7 | Al heat sink pad — ESC | 50×30×2 mm, adhesive back | 1 | Same source as E6 |
|
||
| E8 | Thermal interface material | 1 mm silicone pad, Rth ≤ 1.0 °C·cm²/W | 2 | Between board and heat sink pad |
|
||
| E9 | Spring washer M10 | For quarter-turn latch preload | 4 | DIN 127, stainless |
|
||
| E10 | M3×8 SHCS | Stainless | 8 | Fan + duct mounting |
|
||
| E11 | M3×30 SHCS | Stainless | 4 | Quarter-turn latch knob bolt |
|
||
| E12 | M3×6 BHCS | Stainless | 16 | PCB standoff mounting (Jetson×4, FC×4, ESC×8) |
|
||
| E13 | M3 brass heat-set insert | M3×4 L, Ø5.1 OD | 16 | Press into standoffs with soldering iron |
|
||
| E14 | Silicone adhesive sealant | Clear, weatherproof, Dowsil 732 or equivalent | 1 tube | Seal cable gland threads + O-ring cord join |
|
||
|
||
### Printed Parts
|
||
|
||
| Part | File | Qty | Print | Mass est. |
|
||
|------|------|-----|-------|-----------|
|
||
| Enclosure body | `ip54_enclosure.scad` `body_stl` | 1 | PETG, 5 perims, 40% infill, 0.25 mm layer | ~320 g |
|
||
| Lid with fan mount | `ip54_enclosure.scad` `lid_stl` | 1 | PETG, 5 perims, 40% infill | ~185 g |
|
||
| Fan filter duct | `ip54_enclosure.scad` `fan_duct_stl` | 1 | PETG, 4 perims, 30% infill | ~28 g |
|
||
| Quarter-turn latch knob | `ip54_enclosure.scad` `latch_stl` | 4 | PETG, 5 perims, 60% infill | ~6 g each |
|
||
|
||
### Gasket DXF
|
||
|
||
| File | Description |
|
||
|------|-------------|
|
||
| `ip54_gasket.dxf` | O-ring groove outline for laser-cut 2 mm silicone sheet (alternative to cord) |
|
||
|
||
---
|
||
|
||
## B. IMX219 Camera Dome (`ip54_sensor_housings.scad`)
|
||
|
||
| # | Description | Spec | Qty (per camera) | Notes |
|
||
|---|-------------|------|-----------------|-------|
|
||
| C1 | Clear PC dome cylinder | Ø55×35 mm, 2 mm wall, clear polycarbonate | 1 | Vac-form custom OR source clear plastic sphere halves; DXF from `imx219_dome_2d` |
|
||
| C2 | Silicone O-ring | Ø55 mm ID, 2 mm cord | 1 | Seals dome to base ring |
|
||
| C3 | Silica gel sachet | 1 g, demountable | 1 | Anti-fog; replace yearly or when saturated |
|
||
| C4 | M2×6 SHCS | Stainless | 4 | PCB to standoffs |
|
||
| C5 | M3×10 BHCS | Stainless | 4 | Base ring to sensor rail bracket |
|
||
| C6 | Anti-fog spray | Rain-X interior or similar | — | Apply to dome inner face during assembly |
|
||
|
||
| Printed Part | Qty | Print | Mass est. |
|
||
|--------------|-----|-------|-----------|
|
||
| Dome base ring | 4 (1 per camera) | PETG, 5 perims, 60% infill | ~22 g |
|
||
| Retainer ring | 4 | PETG, 4 perims, 40% infill | ~8 g |
|
||
|
||
---
|
||
|
||
## C. D435i Sealed Housing (`ip54_sensor_housings.scad`)
|
||
|
||
| # | Description | Spec | Qty | Notes |
|
||
|---|-------------|------|-----|-------|
|
||
| D1 | IR-transparent PC window | 88×22×3 mm, >85% T at 850 nm | 1 | Evonik PLEXIGLAS IR 8N or Altuglas IR; export profile from `d435i_window_2d` |
|
||
| D2 | Silicone O-ring | 2 mm cord, approx 230 mm perimeter | 1 | Seals window frame to housing front face |
|
||
| D3 | Silicone O-ring | 2 mm cord, rear cap seal | 1 | |
|
||
| D4 | PG7 cable gland | Rear cap | 1 | For D435i USB-C cable |
|
||
| D5 | M2.5×10 SHCS | Window frame screws | 4 | |
|
||
| D6 | M3×6 SHCS | Housing-to-bracket top | 3 | |
|
||
| D7 | 1/4-20 UNC hex nut | Captured in bottom | 1 | For tripod/bracket mount |
|
||
|
||
| Printed Part | Qty | Print | Mass est. |
|
||
|--------------|-----|-------|-----------|
|
||
| D435i housing body | 1 | PETG, 5 perims, 40% infill | ~65 g |
|
||
| Window retention frame | 1 | PETG, 5 perims, 60% infill | ~18 g |
|
||
| Rear cap | 1 | PETG, 5 perims, 60% infill | ~20 g |
|
||
|
||
---
|
||
|
||
## D. RPLIDAR Spinning Dome (`ip54_sensor_housings.scad`)
|
||
|
||
| # | Description | Spec | Qty | Notes |
|
||
|---|-------------|------|-----|-------|
|
||
| R1 | Clear PC cylinder | Ø120 mm OD, 1.5–2 mm wall, 95 mm tall | 1 | Source: plastic cylinder tube or custom vac-form; spec from `rplidar_dome_2d` |
|
||
| R2 | Clear PC disc cap | Ø120 mm, 2 mm, clear PC | 1 | Seals dome top; laser-cut from `rplidar_dome_cap_2d` export |
|
||
| R3 | Silicone O-ring | Ø120 mm ID, 2 mm cord | 1 | Seals dome cylinder to base ring |
|
||
| R4 | M3×6 captive bolt | For dome retention clips | 3 | Press-fit into clip |
|
||
| R5 | M4×8 BHCS | Deck mounting | 4 | Base ring to deck plate |
|
||
| R6 | M3×8 SHCS | RPLIDAR to base ring | 4 | Standard RPLIDAR A1M8 M3 bolts |
|
||
|
||
| Printed Part | Qty | Print | Mass est. |
|
||
|--------------|-----|-------|-----------|
|
||
| RPLIDAR dome base ring | 1 | PETG, 5 perims, 60% infill | ~55 g |
|
||
| Dome retention clip | 3 | PETG, 5 perims, 60% infill | ~4 g each |
|
||
|
||
---
|
||
|
||
## Thermal Management Summary
|
||
|
||
| Component | Thermal strategy | Max junction | Enclosure budget |
|
||
|-----------|-----------------|-------------|-----------------|
|
||
| Jetson Orin NX | Al pad → lid → fan forced convection | 95 °C Tj | Target ≤ 60 °C case |
|
||
| FC (MAMBA F722S) | Passive; FC has own EMI shield | 85 °C | <60 °C ambient OK |
|
||
| ESC × 2 | Al pad → lid | 100 °C Tj | Target ≤ 60 °C |
|
||
| D435i | Passive; housing vent gap on rear cap | 45 °C surface | — |
|
||
|
||
Fan spec: 40 mm, 12 V, ≥10 CFM at 0.1" H₂O static pressure.
|
||
Thermal analysis (simplified): ΔT = Q/(m_dot × Cp) where Q = 15 W (Jetson 10 W + ESC 5 W), airflow = 10 CFM = 4.7 L/s.
|
||
ΔT_air ≈ 15 / (4.7 × 1.2 × 1005) ≈ 2.7 °C rise over ambient. With conduction resistance (pad + wall): Tcase ≈ Tambient + 12 °C. At 40 °C ambient → 52 °C max. **Within 60 °C target. ✓**
|
||
|
||
---
|
||
|
||
## Mass Summary
|
||
|
||
| Assembly | Mass est. |
|
||
|----------|-----------|
|
||
| Enclosure (body + lid + duct + latches) | ~560 g |
|
||
| 4× IMX219 domes | ~120 g |
|
||
| D435i housing (body + frame + cap) | ~103 g |
|
||
| RPLIDAR dome assembly | ~67 g |
|
||
| Hardware + glands | ~80 g |
|
||
| **Total kit** | **~930 g** |
|
||
|
||
---
|
||
|
||
## IP54 Compliance Checklist
|
||
|
||
- [x] Box O-ring groove: 2 mm cord, 70% compression → IP54 ✓
|
||
- [x] Cable glands: PG7/PG9 IP68 rated — exceeds lid requirement ✓
|
||
- [x] Fan inlet: labyrinth duct prevents direct splash to fan bore ✓
|
||
- [x] Exhaust: double-baffle labyrinth on lid rear ✓
|
||
- [x] Camera domes: O-ring sealed to base ring ✓
|
||
- [x] D435i housing: O-ring on window frame + rear cap ✓
|
||
- [x] RPLIDAR dome: O-ring at dome-to-base seat ✓
|
||
- [ ] **⚠ Verify O-ring cord continuity** — no gaps at corners after cut-and-join
|
||
- [ ] **⚠ Test after print** — submerge base (static) in 200 mm water for 30 min (IP54 splash test)
|
||
- [ ] **⚠ D435i IR window** — confirm PC sheet IR transmission spec with supplier before ordering
|
||
|
||
---
|
||
|
||
## Export Commands
|
||
|
||
```bash
|
||
# Enclosure
|
||
openscad ip54_enclosure.scad -D 'RENDER="body_stl"' -o ip54_body.stl
|
||
openscad ip54_enclosure.scad -D 'RENDER="lid_stl"' -o ip54_lid.stl
|
||
openscad ip54_enclosure.scad -D 'RENDER="fan_duct_stl"' -o ip54_fan_duct.stl
|
||
openscad ip54_enclosure.scad -D 'RENDER="latch_stl"' -o ip54_latch.stl
|
||
openscad ip54_enclosure.scad -D 'RENDER="gasket_2d"' -o ip54_gasket.dxf
|
||
|
||
# Sensor housings
|
||
openscad ip54_sensor_housings.scad -D 'RENDER="imx219_dome_stl"' -o imx219_dome.stl
|
||
openscad ip54_sensor_housings.scad -D 'RENDER="imx219_dome_2d"' -o imx219_dome_disc.dxf
|
||
openscad ip54_sensor_housings.scad -D 'RENDER="d435i_body_stl"' -o d435i_body.stl
|
||
openscad ip54_sensor_housings.scad -D 'RENDER="d435i_window_2d"' -o d435i_window.dxf
|
||
openscad ip54_sensor_housings.scad -D 'RENDER="d435i_frame_stl"' -o d435i_frame.stl
|
||
openscad ip54_sensor_housings.scad -D 'RENDER="rplidar_base_stl"' -o rplidar_dome_base.stl
|
||
openscad ip54_sensor_housings.scad -D 'RENDER="rplidar_dome_2d"' -o rplidar_dome_spec.dxf
|
||
```
|