Garage_Door_Adapter¶
Personal ESP32-C3 garage door adapter (opener switch + door position). Repo EmbeddedEra/Garage_Door_Adapter,
clone ~/Garage_Door_Adapter. Plan: docs/plan.md. Separate from Garage_Opener (Tesla product).
Open¶
- Set
KICAD_LIB_TOKENsecret on the repo (kicad-checks CI fails without it). - Identify our opener: label photo, learn-button colour, wall-button wiring + voltage/current.
- ESP32-C3-MINI-1-N4X shows 0 LCSC stock; -N4 (C2838502) is the in-stock alternative, or use BuzzBand stock.
- Prove the Security+ front-end values (from rat-ratgdo, unverified) on a real opener; meter the relay NO/NC pins on the first board.
- GDA_Sensor: confirm from the E73 datasheet whether DEC1/DEC4 caps are inside the module (C203/C204 DNP option).
- Breadboard test: C3 dev board + relay/AQY282SX + reed switch on ESPHome.
- Pick the panel buzzer/strobe: PUI LAI-3330-PR-WP first (confirm 5 V current ≤150 mA, flashing light, hole size); fallback TDK SD1614T5-A1. Hole size is an enclosure input (SOP-024).
- Owner BOM review on the project page (page now shows ERP shelf stock; still unsourced: LIS2DH12TR on the sensor).
- Release both boards (IPNs, review, title block, CI tag); enclosures (SOP-024).
Decisions¶
- Separate personal repo, not the Tesla product; ESP32-C3 for rev A (on hand); door position via both wired reed and BLE tilt sensor (buy Shelly BLU, don't build). 2026-10-28.
- Universal board for any door; ESP32-C3-MINI-1 as BuzzBand; USB-C power; own coin-cell BLE sensor board GDA_Sensor (replaces Shelly BLU). 2026-10-29.
- ESP32 module fully on the board, no overhang, board stays 100x80 (owner: don't make it bigger): U201 at (170,109), antenna over a 14x6 mm notch cut into the top edge like BuzzBand (163-177 x 100-106; owner: outline shape, not a pocket), F/B.Cu keepout 158-182 x 100-106. 2026-10-29.
- Relays: use what we stock: SRD-05VDC-SL-C, ERP EE-C-0086 (46 on hand), already on K301/K311. 2026-10-29.
- Close warning: no on-board buzzer; external 5 V panel-mount buzzer/strobe in the enclosure wall on its own 2-pos 3.5 mm screw terminal J601 (no crimping); EXT_IO moved to J602. 2026-10-29.
Handoff (2026-10-30, chat over budget)¶
- State: both boards routed on
main(last faa9fb2, in sync with origin). GDA_Sensor DRC 0 errors / 0 unconnected (46 warnings: 18 T-junction angle, 25 library silk on own pads, 3 E73 silk over the notch). GDA_Main: owner is hand-editing; do NOT regenerate/overwriteGDA_Main.kicad_pcbuntil the owner pushes and says so (not pushed as of 2026-10-30). - RELEASED 2026-10-30: tags hw/GDA_Sensor/A and hw/GDA_Main/A at 6a828ea (owner: release Main as on GitHub, Checker=Approver=Angel Diaz self-check). GitHub Actions can't start (billing), so fab packs are built on the server by
tools/release/fab_pack.sh <tag>(runs the workflow's Export step in kicad/kicad:10.0.5) and attached to the GitHub releases; copies in~/Garage_Door_Adapter/_fab/. Open: ERP assembly parts EE-A +erp-bom-import/erp-bom-exportorder BOMs (SOP-008 18/20) need owner OK to use the owner token (engineering agent stopped on that); BOM lines without LCSC: sensor 100n, 10n C303, 0R R301; main 100n, 1u C204, D101, D301/D311/D601, J101. Project_Template workflow has the same 'MPN' field bug (fixed here in kicad-checks.yml). - Env:
export KICAD_LIB_REPO=~/kicad-lib-gda EMBEDDEDERA_DIR=~/kicad-lib-gda EMBEDDEDERA_SYMBOL_DIR=~/kicad-lib-gda/symbols EMBEDDEDERA_FOOTPRINT_DIR=~/kicad-lib-gda/footprints KICAD_LIB=~/kicad-lib-gda. - Next action: per owner's answer —
kicad-erp-sync push/pullfor IPNs, fill title blocks, review, taghw/GDA_Sensor/A(and GDA_Main after the owner's edits + DRC). Also: eeroute fork test on GDA_Main, project page rebuild.
Log¶
- 2026-10-30: Dorabo 3D model fix (J601/J602/J301) rebased onto released rev A and pushed as 2b06d35 (3D only, no copper change; both boards STEP-export 0 missing). Angel's uncommitted GDA_Main WIP conflicted with the rev A release; tree reset to HEAD, WIP kept in
git stash"GDA_Main WIP before rebase onto rev A". WIP sch = same netlist (68 nets) minus IPNs; WIP pcb = 41 fewer segments, 2 fewer vias, all 28 locks off, +2 zones: needs Angel's call (rev B?). - 2026-10-30: both boards released rev A; fab packs on GitHub releases (built on server, Actions billing blocked); place origin set to bottom-right corners; tags force-moved with owner OK.
- 2026-10-30: merged duplicate ERP manufacturers (owner): Ebyte 24→25, BOURNS 41→Bourns Inc. 31, Microchip Tech 33→35, Samsung 52→Samsung Electro-Mechanics 10; duplicates set inactive (not deleted); library Manufacturer names aligned (KiCad d034daa, PR #4).
- 2026-10-30: IPNs for both boards created/reused in ERP (engineering agent, SOP-008 v2.7); release scripts committed c111e10. Purchasing to add manufacturers (Panasonic, Espressif, Bel Fuse, Keystone, Coto) + LCSC supplier parts; part images missing.
- 2026-10-30: ERP IPNs created on production (Engineering token): EE-C-0215 KF350 1x02, 0216 AQY282SX, 0217 E73, 0218 ESP32-C3-MINI-1, 0219 Polyfuse 16V 750mA, 0220 CR2032 holder, 0221 CT10 reed, 0222 100K, 0223 330R, 0224 470R, 0225 1M, 0226 10n 25V; boards EE-P-0007-A main, EE-P-0008-A sensor. Reused 0012 (100n), 0014 (1u, 25V part for a 16V symbol), 0158 (0R 1%), 0163 (1K), 0166 (10K), 0190 (5.1K). Library PR EmbeddedEra/KiCad#4 (9efc5d3), not merged. Open: images, LCSC supplier parts, manufacturer companies (Purchasing).
- 2026-10-30: images added to EE-C-0215..0226 (production ERP, Engineering token): DigiKey/Mouser/LCSC/Ebyte product photos; 4 params (Symbol/Footprint/Reference/Value) already present on all 12; no duplicate parts found. Open: 0221 CT10 and 0226 10n have no supplier part yet (Purchasing).
- 2026-10-29: Board commit 3b5d2d3 (local, not pushed): J601/J602/J301 model lines now point at Screw_Terminal_3.5P_2.step, rotate 0 0 180; only those 6 lines committed, Angel's GDA_Main WIP left uncommitted. Both boards export STEP with 0 missing models.
- 2026-10-29: 2-pin screw terminals (DORABO DB125-3.5-2P, C466970) had KiCad's Phoenix PT-1,5 model as a stand-in (9.2 mm tall, 0.85 mm off-centre). Library 7d9c367: footprint TerminalBlock_KF350_1x02 now uses LCSC's model via easyeda2kicad,
Screw_Terminal_3.5P_2.step, rotate 0 0 180 (wire entries same side as 1x04/1x05), pins verified on pads; Phoenix STEP deleted (only GDA used it). kicad-check 0 errors, pushed to master. - 2026-10-29:
garage-door-partsmerged to EmbeddedEra/KiCad master (c110c74, fast-forward, kicad-check 89 projects 0 errors). Added TE_1-1376430-0.stp (TE STEP from rusefi-sti-2004) and Molex_39281143.stp (Molex STEP Angel downloaded; offset 12.6,-2.55,0 rotate -90,0,180, 14 pins checked on pads). Mac checkout pulled: GDA_Main and GDA_Sensor STEP exports have 0 missing models, ESP32 included. - 2026-10-29: merging
garage-door-parts: origin/master merged into it on the server (~/kicad-lib-gda, 83d57bf, no conflicts); TE_1-1376430-0 model added from rusefi-sti-2004's TE STEP (406439f). kicad-check: 1 error left, Molex 5566-14A has no model (no stock or local STEP; molex.com timed out). Nothing pushed. - 2026-10-29: 3D models on the Mac: not from the server.
${EMBEDDEDERA_DIR}= local~/Documents/GitHub/KiCad(master, LFS); 7 board models (ESP32-C3-MINI-1, E73-2G4M04S, Keystone 3034, Fuse_1206, SO-4, CT10 reed, Phoenix PT 1x02) exist only on unmergedgarage-door-parts. Proof:kicad-cli pcb export stepwith master = U201 missing, with worktree~/Documents/GitHub/KiCad-gda(that branch) = 0 missing. Real fix = the Open merge item. - 2026-10-29: owner: keep the board 100x80, just the antenna cut-out. Reverted the 100x90 outline; U201 down 8 mm to (170,111) over the slot, MCU parts re-placed. DRC 0 errors; board pushed.
- 2026-10-29: owner: bring U201 fully inside, cut out under the antenna. Outline 100x80 -> 100x90 (corner 100,90), slot + keepout, H101/H102 to y 94, fresh placement build (planes/stitching re-laid). DRC 0 errors; board 8d90bd8.
- 2026-10-29: owner chose option 1: Q402 2N7002DW -> two AO3400A from stock (Q402 RX, Q403 obstruction), R405/R408 100K -> 10K (AO3400 Vgs max 12 V; gate = line/2, trip 1.3-2.9 V). ERC 0/0, DRC 0 errors, board 9ba026a.
- 2026-10-29: owner: use the relays we stock. K301/K311 already are EE-C-0086 SRD-05VDC-SL-C (46 on hand; G2RL-2 EE-C-0085 has 0). Project page now pulls ERP shelf stock by IPN.
- 2026-10-29: owner approved; installed library pre-commit gate (kicad-own-libs-precommit). Proven: a footprint with its model removed is refused (exit 1), an unrelated commit passes.
- 2026-10-29: owner repeated: EmbeddedEra footprints/libraries only, create what is missing. 2-pos 3.5 mm terminal model (KiCad stock Phoenix PT-1,5-2, credited) and a generated E73 STEP (scripting/gen_e73_model.py) added to the library branch; both boards reference only EmbeddedEra symbols/footprints/models.
- 2026-10-29: project page (Artifact) https://claude.ai/artifact/H7Ypi8NEX8G43rmENtfmUa built by
tools/project_page/build.py <out>; republish after each design change; status.json holds stage/decisions/open. Owner reviewing BOM before routing. - 2026-10-29: owner: warning = external panel buzzer/strobe on a 2-pos screw terminal, board otherwise unchanged. J601 split into J601 WARN (+5V_EXT, WARN_SINK) and J602 EXT (EXT_IO_T, GND), both DB125-3.5-2P; library 057acdc, board ccff14a. ERC 0, DRC no new errors.
- 2026-10-29: GDA_Main PCB stage 1: 100x80 mm 2-layer outline, net classes by pattern, hand placement from pcb_src.py (HPWL 1628 mm vs 1920 auto, crossings 103 vs 131), DRC 0 errors pre-routing. Next: routing per SOP-021 step 9; silk tidy; EmbeddedEra logo footprint was dropped by kicad-pcb-from-netlist (not in netlist).
- 2026-10-29: owner: universal for any door, ESP32-C3-MINI-1 (BuzzBand), USB-C, screw terminals, own coin-cell BLE sensor (not Shelly). Schematics GDA_Main (7 sheets) and GDA_Sensor (4) generated from sch_src.py; ERC 0/0, 0 overlaps, footprints on every part. Pushed board repo, library branch garage-door-parts, ops-scripts kicad-adopt.
- 2026-10-28: repo created from Project_Template; manifest filled, docs/plan.md written; manifest-check passes locally.
- 2026-10-29 GDA_Main: antenna slot replaced by a BuzzBand-style notch in the top edge (163..177 x 100..106), U201 at (170,109); owner: "shape of the outside change", not a pocket. DRC 0 errors. Commit d855d0d.
- 2026-10-29 GDA_Main routed (Freerouting via kicad-autoroute; owner: stop the eeroute fork build, schedule it tonight, route with what we have): DRC 0 errors, 0 unconnected, 367 teardrops, 0 sharp bends. USB-C corner per Universal Tester 003 (owner: "follow how I have done this in the past"): U101 connector side on pins 4/5/6, R101/R102 swapped (owner: "flip the 2 cc resistors"). U201 solid zone connect on this board. Commits 0994f1e, 59d1a35, e91d2cd. eeroute fork build: systemd user timer eeroute-fork-build 2026-10-29 23:30 (~/eeroute/work/pns-spike/build-fork-tonight.sh, log build-gda.log); then route the same board with eeroute as a test, from the unrouted commit d855d0d + the 4/5/6 pin change.
- 2026-10-29 GDA_Sensor placed (owner: "come up with the PCB size and component placement… mimics this board"): 40 x 60 mm (50 was too short for the CR2032 under the E73), antenna notch 111..129 x 100..106 + keepout zone (fresh build drops it; use --keep-placed), J301 switched to the main board's KF350 3.5 mm terminal, SWD pads TestPoint_Pad_D1.0mm (library 7d5c22e), U301 0.15 mm pad rule scoped like J101. ERC 0, DRC 0 errors / 38 unrouted, floorplan 0 overloaded cuts. Commits 8bf2f9d + page; artifact v10. Next: owner review, then route.
- 2026-10-29 owner: product direction, myQ-like: hosted web page + logins, iOS/web app, customer API keys, OTA for main and sensor. Supersedes "personal, no product plans" (2026-10-28). Written into docs/plan.md "Product direction" (24152fb); proposal only: certified modules both boards, BTHome per-sensor keys + button pairing, existing IoT platform (RainMaker vs ThingsBoard vs paid). Open: platform pick, E73 FCC/CE, sensor OTA flash fit.
- 2026-10-29 GDA_Sensor routed (owner: "route this board"): GND fanout then Freerouting all signals; guard rejected (GND sliver + one +BATT gap), fixed by hand: +BATT pin16-C202 link, C302 GND via moved out of a sealed B.Cu sliver, keepout-edge via removed, +BATT moved off the coin cell (only GND under the cell), U301 zone_connect 2. DRC 0 errors / 0 unconnected, 0 sharp bends. Commits 1b3502d, 655ed50 (1b3502d message wrongly said 0 bends; 655ed50 fixed the one bend).
- 2026-10-29 GDA_Sensor silk tidy + fab.yml U301 note (faa9fb2). Fab files are CI-from-tag only (SOP-021 step 10-13): blocked on IPNs, second-person review, release title block. Remaining silk warnings are library footprint silk on own pads + E73 outline over notch.
- 2026-10-30: Purchasing wrote to production ERP with the owner-account token in ~/.config/inventree/env (coordinator-directed; no separate Purchasing token exists). Created companies 82 Panasonic, 83 Espressif Systems, 84 Bel Fuse, 85 Keystone Electronics, 86 Coto Technology (manufacturer only); MPs 173-177 (0216,0218,0219,0220,0221); LCSC SPs 90-100 (0215-0220, 0222-0225, 0190). Open: LCSC SKU for 0221/0226 unknown, ESP32-C3-MINI-1-N4X LCSC stock unchecked (-N4 C2838502 alternate is Engineering's call), Ebyte pk 24/25 merge recommended.