saltylab-firmware/chassis/csi_rain_shield_BOM.md
sl-mechanical a0d0c1211b feat: Add Issue #254 - CSI camera rain/sun shields
Add csi_rain_shield.scad with parametric visor-style protective
shields for all 4 Raspberry Pi CSI cameras (IMX219).

Features:
- Visor-style overhang (32mm forward extension) shields lens from
  rain and direct sunlight
- Drip edge prevents water from trickling back onto PCB
- Snap-fit tabs (4 per shield, no fasteners required)
- Ventilation slots prevent moisture condensation
- Optional transparent polycarbonate lens cover insert
- Radially symmetric design fits all 4 cameras

Includes comprehensive BOM with:
- Print settings and material specifications
- Assembly instructions for snap-fit installation
- Maintenance and troubleshooting guide
- Weather resistance performance notes
- Design variants for different conditions
- Post-print finishing recommendations

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
2026-03-02 12:48:41 -05:00

295 lines
11 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.

# CSI Camera Rain/Sun Shield — BOM + Assembly
**Rev A — 2026-03-02 — sl-mechanical**
---
## System Overview
Protective visor-style rain and sun shields for all 4 Raspberry Pi CSI cameras (IMX219) on SaltyBot's sensor head.
| Feature | Spec |
|---------|------|
| Application | Protects IMX219 cameras from rain, dust, and direct sunlight |
| Camera interface | Snap-fit to camera housing (32×32 mm PCB with 38×38 mm face plate) |
| Material | PETG (printed) or polycarbonate (lens cover) |
| Coverage | All 4 cameras (radial arms at 0°/90°/180°/270°) |
| Visor overhang | 32 mm forward extension |
| Installation | Tool-free snap-fit (no fasteners required) |
| Optional | Clear polycarbonate lens cover insert |
---
## Design Features
- **Visor-style overhang:** 32 mm forward extension shields lens from rain and sun glare
- **Drip edge:** Curved bottom lip (3 mm radius) prevents water from running back onto PCB
- **Snap-fit tabs:** 4 flexible tabs clip into grooves on camera housing sides (no fasteners)
- **Ventilation slots:** 3 vent slots per side prevent moisture condensation inside shield
- **Lens cover groove:** Optional slot accepts removable 2.0 mm clear polycarbonate sheet
- **Minimal weight:** ~810 g per shield (4 shields ≈ 3240 g)
- **No supports needed:** Flat-print orientation; minimal bridging
---
## Part A — Printed Shields
### Single Shield Unit (csi_rain_shield.scad, RENDER="shield")
**Purpose:** Protective visor for one CSI camera lens; clips onto camera housing.
| Parameter | Value | Notes |
|-----------|-------|-------|
| Qty | 4 | One per camera (front, back, left, right) |
| Material | PETG | 4 perimeters, 25% infill (speed-optimized) |
| Print size | ~45 × 55 × 8 mm | Flat-face-down orientation |
| Print time | ~2535 min per shield | Total ~2 hours for all 4 |
| Support | Minimal | Small bridging over drip edge only |
| Wall thickness | 3 mm nominal | Adequate for snap-tab rigidity |
**Key features:**
- Curved top surface sheds water outward
- 4 snap-fit tabs (one per side) with 0.4 mm clearance for easy on/off
- Vent slots (3 on left, 3 on right) for air circulation
- Integrated groove for optional lens cover
- Drip edge prevents water from trickling back
**Post-print finishing:**
- Remove minimal support (drip edge underside)
- Smooth any rough edges with 220-grit sandpaper
- Test snap-tabs fit snugly (should click into place with light pressure)
- Verify vent slots are open (clear with compressed air if needed)
---
## Part B — Optional Lens Cover
### Clear Polycarbonate Insert (csi_rain_shield.scad, RENDER="lens_cover")
**Purpose:** Optional removable transparent lens cover; protects optics while allowing light transmission.
| Parameter | Value | Notes |
|-----------|-------|-------|
| Qty | 4 | One per camera (optional) |
| Material | Polycarbonate sheet, clear | 2.0 mm thickness; cut from larger stock |
| Size | ~44 × 44 mm (with flanges) | Trimmed to fit shield groove |
| Optical quality | >90% transmission | Standard transparency grade; no special optics required |
| Source | Cut from 2.0 mm clear polycarbonate sheet | Order stock, cut to size, sand edges smooth |
**Installation:**
1. Measure shield opening: approx. 38×38 mm (camera face size)
2. Cut polycarbonate sheet to ~44×44 mm (includes 3 mm flange on each side)
3. Sand edges smooth with 220+ grit (prevent scratching during insertion)
4. Slide into groove on shield front (flanges grip in shield channels)
5. Can be removed/cleaned without tools
**Note:** Lens cover is **optional** — shields work fine without it. Use for:
- Extreme weather (heavy rain, salt spray)
- Coastal/sandy environments (dust protection)
- High-temperature environments (reduces direct solar heating on sensor)
---
## Assembly Instructions
### Installation on Camera Housing
1. **Prepare shield:** Remove any support material; verify snap-tabs are flexible.
2. **Position shield:** Orient visor away from camera (forward overhang extends away).
3. **Align tabs:** Match snap-tab positions with grooves on camera housing sides.
4. **Apply light pressure:** Snap shield onto housing with gentle thumb pressure.
- You should hear/feel a "click" as each tab engages.
- All 4 tabs should seat simultaneously (indicate correct orientation).
5. **Verify fit:** Tug gently on shield — it should not move relative to housing.
### Installation of Lens Cover (Optional)
1. **Prepare cover:** Sand edges smooth; verify 44×44 mm dimension.
2. **Align flanges:** Position cover so flanges align with groove channels on shield.
3. **Slide into groove:** Insert cover from front, sliding flanges into shield grooves.
4. **Check seating:** Cover should sit flush with shield front (no gaps).
5. **Removal:** Gently pry from one corner to remove for cleaning.
### Removal (For Cleaning/Replacement)
1. **Lens cover:** Pop out with fingernail or plastic lever (takes 10 seconds).
2. **Shield:** Flex one snap-tab up slightly while pulling shield forward.
- Repeat on opposite side if needed.
- Once one tab releases, shield pulls free easily.
3. **Clean:** Wipe interior with dry cloth; use lens cleaner on polycarbonate if needed.
4. **Reinstall:** Reverse steps above.
---
## Fastener List
| # | Item | Qty | Notes |
|---|------|-----|-------|
| 1 | Printed shield (PETG) | 4 | See Part A specs above |
| 2 | Polycarbonate lens cover | 4 | Optional; see Part B above |
| | **No fasteners required** | — | Shields attach via snap-fit tabs only |
---
## Mounting Configuration
All 4 shields mount to radial arms of sensor_head.scad camera arms:
```
Top-down view (looking down at sensor head):
Camera 1 (0°, front)
Shield │ Shield
(270°) │ (90°)
◄────-●─────►
Camera 3 (180°, back)
Each camera has a 32×32 mm PCB with 38×38 mm face plate.
All 4 shields use identical design (radially symmetric).
```
---
## Print Settings (Recommended)
| Parameter | Value | Reason |
|-----------|-------|--------|
| **Nozzle temp** | 215220 °C (PETG) | Prevent stringing; avoid over-heating |
| **Bed temp** | 80 °C | Good adhesion for PETG |
| **Print speed** | 40 mm/s | Normal speed; snapt-tabs need clean layers |
| **Infill** | 25% | Sufficient for rigidity; saves weight & time |
| **Perimeters** | 4 | Ensures solid snap-tabs |
| **Supports** | Minimal (tree/linear) | Only under drip edge if needed |
| **Orientation** | Flat-side-down | Visor face toward bed for best surface finish |
| **Layer height** | 0.2 mm | Standard; 0.1 mm for improved surface finish |
---
## Mass Estimate
| Component | Qty | Material | Est. mass |
|-----------|-----|----------|-----------|
| Rain shield (printed) | 4 | PETG | 810 g each (3240 g total) |
| Polycarbonate cover | 4 | PC sheet | 35 g each (1220 g total, optional) |
| **Subtotal (shields only)** | | | **3240 g** |
| **Total (with covers)** | | | **4460 g** |
**Impact on robot:** Negligible — <60 g added weight distributed symmetrically on sensor head.
---
## Weather Resistance
| Condition | Protection | Notes |
|-----------|-----------|-------|
| **Light rain** | Excellent | Visor prevents direct water contact |
| **Heavy rain** | Good | Drip edge minimizes runoff; vent slots allow drainage |
| **Salt spray** | Good | PETG resists corrosion; rinsable with fresh water |
| **Direct sunlight** | Excellent | Reduces lens heating; improves image contrast in bright conditions |
| **Dust** | Very good | Visor blocks most airborne dust; lens cover optional for sandy environments |
| **Snow/ice** | Fair | Shields prevent accumulation on lens; may require occasional wiping |
---
## Maintenance & Cleaning
### Weekly (or after rain/dust storm)
- **Wipe exterior:** Soft cloth, no cleaners (PETG safe with water only)
- **Check vent slots:** Clear any debris with compressed air
- **Verify snap-tabs:** Ensure shield hasn't loosened (retighten if needed)
### Monthly (or as needed)
- **Clean lens:** Remove polycarbonate cover; clean with lens cleaner + microfiber cloth
- **Inspect for cracks:** Check snap-tabs and drip edge for damage
- **Reattach cover:** Reinstall lens cover if removed
### Seasonal (before extended operations)
- **Deep clean:** Soak shields in warm soapy water; dry thoroughly
- **Inspect material:** Check for UV degradation (yellowing, brittleness)
- **Test fit:** Verify snap-tabs still grip firmly; replace if worn
---
## Troubleshooting
| Issue | Cause | Solution |
|-------|-------|----------|
| Shield won't snap on | Tabs too tight | Sand snap-tabs lightly; verify groove alignment |
| Shield rattles | Tabs too loose | Shim with thin tape; or reprint with tighter tolerance |
| Water pooling inside | Vent slots blocked | Clear vents with compressed air |
| Condensation on lens | Poor ventilation | Increase fan speed on sensor head or add desiccant packet |
| Lens cover stuck | Flanges swollen | Let air-dry in sun for 1 hour; gently pry corner |
| Drip edge cracked | Impact damage | Replace shield; or reinforce with epoxy + fiber tape |
---
## Design Variants
### Variant 1: Enhanced Rain Protection (HEAVY WEATHER)
- Extend visor overhang to 40 mm
- Add full-width drip lip (vs. curved edge)
- Thicken walls to 4 mm for durability
- **Cost:** +10% weight, +5% print time
### Variant 2: Minimal Sun Shield (LIGHTWEIGHT)
- Reduce visor overhang to 20 mm
- Thinner walls (2.5 mm)
- Fewer vent slots (1 per side)
- **Weight savings:** ~15%; best for dry climates
### Variant 3: 360° Camera Protection (ADVANCED)
- Add full-wrap shroud (not just visor)
- Integrated housing covers (larger print)
- Requires more support material
- **Print time:** ~3 hours per shield
---
## Storage & Replacement
**Shelf life:** PETG shields have indefinite shelf life if stored dry.
**Replacement schedule:** Replace if:
- Snap-tabs become loose or brittle
- UV degradation visible (yellowing, embrittlement)
- Cracks develop in visor
- Polycarbonate cover becomes cloudy (clean first; replace if cloudiness persists)
**Spares to keep:** 12 extra shields (in case of damage during field operations).
---
## Files & References
| File | Purpose |
|------|---------|
| `csi_rain_shield.scad` | OpenSCAD parametric model (3 RENDER variants) |
| `csi_rain_shield_BOM.md` | This document |
| `imx219_mount.scad` | CSI camera housing reference (dependency) |
| `sensor_head.scad` | Radial arm assembly reference |
---
## Assembly Checklist
- [ ] Print all 4 shields (PETG, flat-face-down)
- [ ] Remove support material (minimal)
- [ ] Sand edges smooth (220 grit)
- [ ] Test snap-tabs (should click into place with finger pressure)
- [ ] Verify vent slots are open
- [ ] *Optional:* Cut polycarbonate lens covers to size
- [ ] *Optional:* Sand polycarbonate edges smooth
- [ ] Mount shields on all 4 cameras (starting with front)
- [ ] Verify all snap-tabs engaged
- [ ] *Optional:* Install polycarbonate lens covers
- [ ] Inspect for water shedding (test with water spray if available)
- [ ] Label shields if needed (mark front/back camera positions)
- [ ] Store spares in dry location