From ae2c24c2d78e4bb1efc56bf01ec298fe98e5c402 Mon Sep 17 00:00:00 2001 From: Pip Date: Fri, 18 Sep 2026 18:25:04 -0400 Subject: [PATCH] docs: add measured M2 screw list and shopping list (sg90) Census of the shipped sg90 meshes (~2.1 mm pilots): 27 screw locations across 11 parts. Shopping list: ~30x M2x6 + ~5x M2x12 pan/button head. Notes that the 5 deep chest channels are servo-wire routing (not screws) and only the head ships servo-tab pilots. --- 3d_models/README.md | 26 ++++++++++++++++++- docs/getting-started.md | 2 +- .../06-3d-printing-and-mechanical-build.md | 2 +- 3 files changed, 27 insertions(+), 3 deletions(-) diff --git a/3d_models/README.md b/3d_models/README.md index cda5dfe..663fc90 100644 --- a/3d_models/README.md +++ b/3d_models/README.md @@ -22,7 +22,31 @@ Two ways to get the mechanical set (same place in the build path): 1. **`ServoSizingTester.3mf`** — seat a real servo; do not force it. The body should slide, tabs sit, holes line up, and the shaft should have clearance. Tight or loose → sand/ream, or adjust servo CAD params ([parametric design](../docs/3d/parametric-design.md)). 2. **`ScrewSizingTest.3mf`** — M2 screw pilot-hole tolerance. Each hole is marked with its diameter. Drive an M2 screw into each hole and pick the tightest size that still cuts a thread (does not spin freely / slide through). Set Fusion user parameter `screw_thread_diameter` to that marked value, then re-export before printing structural parts. Details: [M2 screw holes](../docs/3d/parametric-design.md#m2-screw-holes). -Assembly uses **M2 screws** that thread directly into the printed PLA/PETG — no glue, no heat-set inserts. Easy to dismount and modify later. Exact screw lengths/counts and full assembly steps are **not documented yet**. Use the part table below, then electrical and bring-up docs. +Assembly uses **M2 screws** that thread directly into the printed PLA/PETG — no glue, no heat-set inserts. Easy to dismount and modify later. Full step-by-step assembly is **not documented yet** — use the [screw list](#screws) and part table below, then electrical and bring-up docs. + +### Screws + +**Spec:** M2 thread-forming (self-tapping) screws for plastic, **pan-head or button-head** — there are no counterbores/countersinks in any part, so heads sit on the plastic surface. CAD default pilot is **2.2 mm** (Fusion user parameter `screw_thread_diameter`); if your `ScrewSizingTest` winner differs, re-export at that diameter before printing structural parts. + +**Measured pilot census** of the shipped `sg90` meshes (pilot Ø ≈ 2.1 mm; counted from exported meshes, not the Fusion source — treat as a verified starting point and test-fit as you go): + +| Part | M2 pilots | Pilot depth | Notes | +| --- | --- | --- | --- | +| `AiEmblem.3mf` | 1 | 4.0 mm blind | emblem → shell | +| `Bell.3mf` | 1 | 6.6 mm through | bell → desk | +| `Chest.3mf` | 0 screws (5 channels) | 14–23 mm through | deep channels are servo-wire routing, not screws | +| `Coffee.3mf` | 1 | 8.5 mm blind | pairs with `Mug` | +| `Desk.3mf` | 10 | 5.0–7.5 mm through | frame joints | +| `DeskTop.3mf` | 5 | 2.5–3.5 mm through | pilots for top-mounted items | +| `Head.3mf` | 3 | 1× 5.0 mm + 2× 12.8 mm blind | the two deep pilots are servo tab screws | +| `LampButton.3mf` | 1 | 6.1 mm through | button retention | +| `Mug.3mf` | 1 | 2.5 mm through | pairs with `Coffee` | +| `SeatLeft.3mf` / `SeatRight.3mf` | 2 each | 7.0 mm through | chair assembly | +| Neck, arms, belly, hat, lamp, laptop, desk pad, chair | 0 | — | no M2 pilots | + +Only the **head** ships servo-tab pilots — the other four servos are retained by pocket fit plus the horn screw capturing each joint. Servo horn screws come **in the servo bags** (one per joint, five total); standard servo packs also include mounting screws, but only the head needs them — the rest are spares. + +**Shopping list (per robot):** ~30× **M2×6** (covers every pilot ≤ 8.5 mm deep) + ~5× **M2×12** (the two 12.8 mm head pilots + spares). One M2 assortment kit (M2×4–M2×12) is the easy path. ## Parts diff --git a/docs/getting-started.md b/docs/getting-started.md index f53fc6d..56bdb30 100644 --- a/docs/getting-started.md +++ b/docs/getting-started.md @@ -27,7 +27,7 @@ Gather electronics from [hardware/components.md](hardware/components.md). Minimu Printables and CAD: [3d_models/README.md](../3d_models/README.md) (`parts/{servo_id}/3mf/*.3mf` ready to print PLA/PETG, no supports; source `cad/TinyEngineer.f3d` for edits / different hardware). No printer? [Order the aggregated sets from a provider](3d/order-parts.md) instead. Parametric servo sizes, Fusion add-in, and export: [3d/parametric-design.md](3d/parametric-design.md). When printing yourself, print [`ServoSizingTester`](../3d_models/README.md#print-first) and [`ScrewSizingTest`](../3d_models/README.md#print-first) first — confirm a real servo fits and pick an M2 pilot-hole diameter before queuing the rest of the set ([M2 screw holes](3d/parametric-design.md#m2-screw-holes)). Skip the testers-first step when ordering from a service. -Join printed parts with **M2 screws** that thread directly into the plastic (no glue, no inserts; easy to dismount later). Exact screw lengths/counts and a full assembly SOP are **not documented yet** — use the parts table there as the inventory. After print: +Join printed parts with **M2 screws** that thread directly into the plastic (no glue, no inserts; easy to dismount later). A measured per-part screw list and shopping list (sg90) is in the [3D models README](../3d_models/README.md#screws) — ~30× M2×6 + ~5× M2×12, pan/button head. A full assembly SOP is **not documented yet** — use the parts table there as the inventory. After print: - Fit the five servos (head, neck, left/right hand, body) — axes and safe ranges: [robot-movement.md](robot-movement.md) - Leave the ESP32 ceramic antenna clear of metal / dense plastic ([hardware/components.md](hardware/components.md)) diff --git a/docs/hardware-for-software-engineers/06-3d-printing-and-mechanical-build.md b/docs/hardware-for-software-engineers/06-3d-printing-and-mechanical-build.md index 6d3351d..d5a5d3c 100644 --- a/docs/hardware-for-software-engineers/06-3d-printing-and-mechanical-build.md +++ b/docs/hardware-for-software-engineers/06-3d-printing-and-mechanical-build.md @@ -58,7 +58,7 @@ The models are **prepared with clearance** so printed parts and hardware (servos > **If you've written backend code…** Printed holes are like JSON numbers — `2.0` isn't exactly 2.0 after float serialization. These files already budget slack; a badly calibrated printer can still eat it. -**Screws:** assembly uses **M2** screws that thread directly into the printed plastic — no glue, no heat-set inserts. Exact lengths/counts aren't fully documented yet — use the [parts table](../../3d_models/README.md) as inventory and test fit as you go. +**Screws:** assembly uses **M2** screws that thread directly into the printed plastic — no glue, no heat-set inserts. A measured per-part screw list and shopping list (sg90) lives in the [3D models README](../../3d_models/README.md#screws): ~30× M2×6 + ~5× M2×12, pan/button head. Test fit as you go. **If M2 screws feel loose (slide instead of cutting a thread):** print tolerances ate the pilot. Print [`ScrewSizingTest.3mf`](../../3d_models/README.md#print-first) first (alongside [`ServoSizingTester`](../../3d_models/README.md#print-first)), pick the labeled hole that bites firmly, set Fusion `screw_thread_diameter` to that diameter, and re-export. CAD default / shipped parts use **2.2 mm**. Full write-up: [M2 screw holes](../3d/parametric-design.md#m2-screw-holes).