Files
openscad-projects/ring-solar-siding-adapter/README.md
T
clocklear 5d15a1fd82 Organize projects into folders with READMEs and preview renders.
Move the Ring solar siding adapter into its own directory, add repo and
project documentation, and introduce a preview script (OpenSCAD+xvfb or
PyVista fallback) for catalog images.
2026-06-13 17:09:11 -04:00

146 lines
5.6 KiB
Markdown
Raw 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.
# Ring Solar Siding Adapter
![Preview](preview.png)
Parametric adapter plate that sits between a **Ring Solar Charger** (integrated battery-doorbell solar unit) and horizontal beaded vinyl lap siding.
| | |
|---|---|
| **Source** | [`ring-solar-siding-adapter.scad`](ring-solar-siding-adapter.scad) |
| **Footprint** | ~93 × 171 mm (matches the Ring back) |
| **Units** | Millimeters throughout |
## What it is
- **Front face:** flat — the Ring unit mounts here.
- **Rear face:** shaped to match siding — bead groove at the top, flat shelf in the middle, curved taper at the bottom.
## What it's for
The Ring's back is flat; siding is not. Without an adapter, you get gaps, uneven pressure, and a poor mount.
This plate:
- Conforms to the siding profile so the rear sits flush against the wall.
- Receives the siding bead in a semicircular groove near the top.
- Provides two through-holes aligned with the Ring's house-mount screws — screws pass through Ring → adapter → siding → sheathing.
Typical stack:
```
Ring Solar Charger
↓ screws
Adapter plate ← this part
Vinyl siding
Sheathing
```
## Rear profile (side view, bottom → top)
```
plate top ───────────── bead coping groove (receives siding bead)
flat rear shelf
taper start ───────────── flat_upper_ratio sets this boundary
curved taper
plate bottom ──────────── deepest projection toward front
```
**Depth convention:** lower depth = toward the wall; higher depth = toward the front (Ring).
## Parameters
### Plate
| Parameter | Meaning |
|-----------|---------|
| `plate_width` | Width of the adapter (Ring back width). |
| `plate_height` | Height of the adapter (Ring back height). |
| `min_wall_thickness` | Minimum solid depth at the thinnest point (bead groove pinch). Also scales bottom taper reach. |
| `edge_round` | Rounds front edges via minkowski. Keep `0` while tuning; set ~1 for final print (slower render). |
### Siding profile
| Parameter | Meaning |
|-----------|---------|
| `siding_projection` | Nominal max siding depth from wall. Feeds `face_inset_z` via clearance and inset. |
| `face_inset_depth` | How far the flat upper rear sits in from max projection. |
| `bead_coping_radius` | Radius of the semicircular bead groove (measured on your siding). |
| `bead_coping_offset_top` | Distance from plate top to center of the bead groove. |
| `flat_upper_ratio` | Fraction of plate height (from top down) with a flat rear. Lower = taper starts higher. |
| `bottom_taper_depth_ratio` | How far the bottom rear reaches toward the front beyond the flat shelf: `min_wall_thickness × this`. Higher = more projection at bottom. |
| `rear_extension` | Pushes flat rear and taper toward the wall without moving the front face or bead groove vs front/top. Adds overall depth. |
| `course_pitch` | Bead-to-bead spacing on your siding (~6.5"). Reference for tuning. |
| `profile_segments` | Curve sampling resolution. Higher = smoother, slower. |
| `profile_mode` | `curved` = smooth taper; `stepped` = debug fallback with sharp transitions. |
| `rear_clearance` | Small gap so the part doesn't bind on siding. |
**Common tuning relationships:**
| Goal | Parameter |
|------|-----------|
| Move taper start up/down | `flat_upper_ratio` |
| Bottom taper more/less toward front | `bottom_taper_depth_ratio` |
| Whole plate deeper front-to-back (bead stays put) | `rear_extension` |
| Bead groove up/down | `bead_coping_offset_top` |
| Groove size | `bead_coping_radius` |
### Mounting holes
| Parameter | Meaning |
|-----------|---------|
| `mount_hole_offset_top` | Upper hole center distance from plate top. |
| `mount_hole_offset_bottom` | Lower hole center distance from plate bottom. |
| `mount_hole_dia` | Hole diameter (4.5 mm for 4 mm Ring screws). |
| `mount_hole_x` | Horizontal offset from center (`0` = centered). |
### Export
| Parameter | Meaning |
|-----------|---------|
| `part_mode` | What to generate (see below). |
| `profile_strip_width` | Width of the narrow siding fit-test strip. |
| `front_slice_depth` | Thickness of the front-face test cap (mm). |
**Export modes:**
| Mode | Purpose |
|------|---------|
| `full` | Complete adapter with holes — final part. |
| `profile_strip` | Narrow strip through the rear profile — cheap siding fit test. |
| `front_slice` | Thin front cap with holes — check width, height, hole placement vs Ring. |
## Suggested workflow
1. **`profile_strip`** — tune siding profile (`flat_upper_ratio`, `bottom_taper_depth_ratio`, `rear_extension`, bead params).
2. **`front_slice`** — verify Ring hole alignment.
3. **`full`** — print final plate (PETG/ASA recommended outdoors; PLA OK for tests).
**Print orientation:** front face (Ring side) on the bed, rear profile vertical.
## Related files
| File | Purpose |
|------|---------|
| [`ring-solar-siding-adapter.backup.scad`](ring-solar-siding-adapter.backup.scad) | Earlier geometry — flat upper rear + lower taper only, no bead coping groove |
| `*.stl` | Exported meshes (gitignored; export locally) |
## Regenerate preview
From the repo root:
```bash
pip install pyvista # headless fallback (WSL without display)
sudo apt install xvfb # optional — native OpenSCAD PNG export
python3 scripts/render-preview.py ring-solar-siding-adapter
```
Or export a PNG directly from OpenSCAD when a display (or `xvfb-run`) is available:
```bash
xvfb-run -a openscad --render --viewall --imgsize=1200,900 \
-o ring-solar-siding-adapter/preview.png \
ring-solar-siding-adapter/ring-solar-siding-adapter.scad
```