rushabhcodes/desk-fidget-counter

A desk knob assembly combining a circuit board with PETG-printed mechanical parts and vendor CAD-modeled hardware.

Version
5.6.1
License
MIT
Stars
0

mechanical/vendor/README.md

# Purchased-part CAD provenance

The project uses actual catalogue parts and package dimensions. CAD describes **nominal geometry**, with the explicit detail limits below. Detailed bearing/cable data unavailable online uses the user-authorized best approximations. The fit budget and first-prototype checks are recorded separately; production validation has not been performed.

| Model | Source and dimensions | Detail |
|---|---|---|
| Waveshare 19192 | [Official 3D archive](https://files.waveshare.com/upload/4/49/1.28inch_LCD_Module_3D_Drawing.zip), `0508.stp`, 2021-05-08; [product](https://www.waveshare.com/product/1.28inch-lcd-module.htm) | Original STEP retained as `step/Waveshare-19192.stp`. Unscaled tessellation: 40.453106×37.5×9.2 mm. Supplier's simplified solid includes PCB, front, rear connector and four mounting bosses. Fine connector/contact details are absent from the supplier file. Colours are ours. |
| JST B6B-PH (installed) / S8B-PH (historical) | KiCad `Connector_JST.3dshapes`; [official JST PH drawing](https://www.jst-mfg.com/product/pdf/eng/ePH.pdf) | Pitch 2 mm; PH6 width 13.9 mm/top-entry height 6 mm; PH8 width 17.9 mm/side-entry height 4.85 mm in the STEP. Through-hole tails in the derivative OBJ are trimmed to 0.8 mm below a 1.6 mm PCB. Original untrimmed STEP retained. |
| ICs and passive packages | KiCad package STEP files in `step/`; per-file URLs in `models.json` | LQFP48, narrow SOIC8, SOT23-5/6, SC70-6, SOD323, 0402/0603/0805. Lead geometry and package sizes come from those STEP files; material colours are ours. These are package-level models, not serial-number-specific manufacturer solids. |
| HRO USB-C | Exact imported EasyEDA models; copper/drill import in `imports/jlc/` | Keep supplier pin centres, SMT pads, locating holes, model orientation and offsets. The original short shield slots are unchanged and require the documented JLCPCB process review before fabrication; see validation/supplier-review.json. The project adapter omits unprintable housing ink where it crosses the board boundary. Original public OBJ and STEP copies are included (C165948; unused C720477 assets retained from the earlier revision); watertight STEP tessellations in `solid/` support collision checks because the display OBJ exports contain open material seams. Their coordinate bounds agree. |
| TCUT1600X01 / TCUT1600X01_A | [Vishay drawing p.6](https://www.vishay.com/docs/84174/tcut1600x01.pdf) | Datasheet-derived nominal 5.5×4×5.7 mm, 3 mm optical gap, 4.5 mm beam height. Fine moulding, optical lenses and lead-form details omitted. |
| Omron B3U-3000P | [Omron B3U datasheet](https://omronfs.omron.com/en_US/ecb/products/pdf/en-b3u.pdf); KiCad `Button_Switch_SMD.3dshapes/SW_SPST_B3U-3000P.step` | Side-actuated SMT model; body 3×2.5×1.2 mm, total terminal span 4 mm, actuator reaches local +Y1.95 mm. Footprint uses 0.9×1.7 mm lands at X±1.7 mm; rotated 180° on the PCB to face front. Collision tessellation preserves the valid STEP’s distinct coincident seam edges through Manifold half-edge pairing; vertices and dimensions are unchanged. E3 keeps this unscaled package on the front tab. E5 adds an 8×4 mm captive printed cap, a 0.2 mm nominal gap and a 0.6 mm travel stop. The static housing is checked separately from the projecting actuator. Actual slide friction, actuator tolerances, safe overtravel and force require prototype verification. |
| Supplied LCD lead | [Waveshare 19192 package list](https://www.waveshare.com/product/1.28inch-lcd-module.htm), [manufacturer cable photo](https://www.waveshare.com/img/devkit/accessories/PH2.0-wire-20cm-8PIN.jpg) | Includes PH2.0 8-pin / individual jumper-socket lead, nominal 20 cm. E3 shortens that lead and solders its board end; no extra cable or crimps. Original display plug is represented by the nominal JST PH envelope. Wire OD, sleeves, conductor and bend data are unpublished. E4 uses an accepted Ø1.2 mm wire model, checks Ø1.5 mm clearance, and dresses approximately 37 mm spans with 2.9 mm stripped ends. The 3 mm XZ bend is a projection; estimated actual 3D minimum radius is about 1.44 mm in the static fan. Nominal PH housing and contact geometry are estimates, not supplier CAD. |
| Unused legacy header asset | Würth 61300811021 [drawing](https://www.we-online.com/components/products/datasheet/61300811021.pdf); KiCad `PinHeader_1x08_P2.54mm_Horizontal.step` | Retained reference asset only; not used by the current PCB or compact assembly. J6 now uses imported C5156616 solder-pad geometry, unpopulated. 8 positions / 2.54 pitch, 20.32 mm row length, 6 mm post, 1.5 mm offset and 2.54 mm housing section. KiCad package-level geometry retained with 0.8 mm trimmed tails. Original STEP is retained. No claim of a serial-specific Würth model. |
| Bearing | [Maysme 6712ZZ](https://maysmeprecision.com/Show/?Cid=677), catalogue 60×75×7 mm, chrome steel / two metal shields | Verified boundary envelope, presented as one complete bearing object. Chamfered races, two recessed shields, 44 balls and cage use explicitly accepted approximate internals; see `../bearing-model.json`. The same-size open NSK NB712A provides the mounting analogue, not certified Maysme race data. Four independent race contacts and tolerance envelopes are checked; see [FIT.md](../FIT.md). |
| PCB capture pads | [Rogers PORON 4701-30](https://www.rogerscorp.com/-/media/project/rogerscorp/documents/elastomeric-material-solutions/poron/english/data-sheets/17-006-poron-4701-30-very-soft.pdf), 320 kg/m³ / 1.57 mm ±10% | Four Ø4 mm and two Ø2.6 mm die-cut discs. CAD shows 1.05 mm compressed foam with 0.05 mm 467MP adhesive under the E5 lid. Compression is an engineering fit budget, not a supplier validation of this assembly. |
| Screws | DIN 965 / ISO 7046-1 M2, 3.8 mm head diameter, 1.2 mm head height | Nominal screw bodies with approximate cross recesses; fine threads omitted. The printed 4.2 mm countersinks leave clearance. |

The screen is rigidly transformed by `diag(-1,+1,-1)` then translated to Z=17.75 mm: its tab points -X, PCB underside is Z=17.3 mm, front is Z=20.9 mm and rear connector reaches Z=11.7 mm. No axis has been rescaled. This orientation allows a short cable to J6 and requires the matching E5 carrier/bezel support pattern and MADCTL setting.

## Rebuilding

`generate-models.py` imports the listed KiCad STEP files from `/usr/share/kicad/3dmodels` and tessellates at 0.03 mm chordal deflection through `../step-mesh.py`; `custom-models.py` generates the documented nominal sensor model and retained historical toggle model. Runtime: Python 3.12, `cadquery-ocp==8.0.1.1.0`, `trimesh==5.2.0`, `numpy`, `manifold3d==3.5.4`. The checked-in source STEP/OBJ files permit inspection without a KiCad installation. `models.json` records local paths, upstream URLs and measured bounds.

The supplier screen OBJ is an unchanged geometry tessellation of the original STEP; only vertex colours were added. Regenerate it with `step-mesh.py` and retain its source frame; the assembly generator applies the rigid transform.

The E5 print/assembly/render scripts were rechecked with Python 3.14, trimesh 4.12.2, NumPy 2.5.4, Manifold3D 3.5.4, matplotlib 3.11.2, pyrender 0.1.45, Pillow 13.0.0 and Mesa EGL. For this Python runtime, install pyrender and then upgrade its older OpenGL pin with `python -m pip install --no-deps PyOpenGL==3.1.10`; that is the version used for the checked renders. Supplier STEP tessellations were retained, not regenerated.

## Rights

Original Waveshare CAD remains Waveshare material, supplied in its public module resources; it is not relicensed as project MIT code. The KiCad STEP headers retain their authors, CC-BY-SA-4.0 licence and ECAD design exception. Those notices also apply to derivative package meshes; the exception permits generated electronic designs without imposing the library's share-alike licence on this project. Other supplier/EasyEDA assets retain their existing rights. Our parametric geometry and scripts are MIT. See the original STEP headers and [KiCad licence](https://gitlab.com/kicad/libraries/kicad-packages3D/-/blob/master/LICENSE.md).