From 3d12b25797212293f4074c90f69a17c2bc62bd0d Mon Sep 17 00:00:00 2001 From: "Steve Griffing, PE(CSE), CISSP-ISSEP, CEH" Date: Wed, 26 Aug 2026 15:41:38 -0400 Subject: [PATCH] update the plans --- PROJECT_INDEX.md | 18 +- .../nacelles/nacelle_pod_50mm_tandem.scad | 59 +++++ ...-25-002-finish-airframe-components-plan.md | 64 ++++++ ...001-nacelle-esc-intake-integration-plan.md | 210 ++++++++++++++++++ tools/index_tags.json | 42 +++- tools/nacelle_esc_service.py | 107 +++++++++ tools/tests/test_nacelle_esc_service.py | 30 +++ 7 files changed, 522 insertions(+), 8 deletions(-) create mode 100644 docs/plans/2026-08-26-001-nacelle-esc-intake-integration-plan.md create mode 100644 tools/nacelle_esc_service.py create mode 100644 tools/tests/test_nacelle_esc_service.py diff --git a/PROJECT_INDEX.md b/PROJECT_INDEX.md index 0e5f3764..8c9925e9 100644 --- a/PROJECT_INDEX.md +++ b/PROJECT_INDEX.md @@ -6,7 +6,7 @@ look, change the generator (tools/precommit_index.py), not this file. Machine-readable form: tools/index_tags.json --> - + ## Tag Index @@ -15,11 +15,11 @@ Grep a tag name below to get every matching file in one line, without reading th - `avionics-hardware` (396): avionics/AGENTS.md, avionics/LICENSE, avionics/README.md, avionics/TODO-1-9-COMPLETION-STATUS.md, avionics/TODO.md, avionics/WBS.md, avionics/datasheets/6391731564544371956530548.pdf, avionics/datasheets/749010012A.pdf, avionics/datasheets/987651-1223.pdf, avionics/datasheets/DS3218 datasheet.pdf, avionics/datasheets/DS3225 datasheet.pdf, avionics/datasheets/FOCSineESCCANCommunicationProtocolV30.pdf, avionics/datasheets/KSZ9477S-Data-Sheet-DS00002392C.pdf, avionics/datasheets/L-1038e.A5_phyCORE-AM62x_HW Manual.pdf, avionics/datasheets/MT6701_Datasheet_Rev.1.9.pdf, avionics/datasheets/PCA9555.pdf, avionics/datasheets/S32K-RM.pdf, avionics/datasheets/S32K1xx.pdf, avionics/datasheets/SAM-M10Q_DataSheet_UBX-22013293.pdf, avionics/datasheets/SLB_9670VQ20_Infineon.pdf, avionics/datasheets/SLB_9672XU20_Infineon.pdf, avionics/datasheets/SM04B-SRSS-TB.pdf, avionics/datasheets/SM1553-Series_HiRel-Data-Bus-Pulse-Transformer_RevD.pdf, avionics/datasheets/SRF2012A.pdf, avionics/datasheets/Vishay_45273MDSK.pdf, avionics/datasheets/X2YDatasheet.pdf, avionics/datasheets/X2Y_15-2237598.pdf, avionics/datasheets/adin1300.pdf, avionics/datasheets/adm2795e.pdf, avionics/datasheets/ak7455-en-datasheet-myakm.pdf, avionics/datasheets/bsh-bth.pdf, avionics/datasheets/bst-bmp388-ds001.pdf, avionics/datasheets/bth-xxx-xx-x-d-xx-footprint.pdf, avionics/datasheets/ds-000347-icm-42688-p-v1.6.pdf, avionics/datasheets/ds26lv31qml.pdf, avionics/datasheets/ds26lv32at.pdf, avionics/datasheets/eGH.pdf, avionics/datasheets/infineon-optiga-trust-m-datasheet-en.pdf, avionics/datasheets/iso6442.pdf, avionics/datasheets/isow1044.pdf, avionics/datasheets/isow1412.pdf, avionics/datasheets/mechanics-of-advanced-composite-structures.pdf, avionics/datasheets/mspm0g3507-q1.pdf, avionics/datasheets/mspm0g3507.pdf, avionics/datasheets/mspm0g3518-q1.pdf, avionics/datasheets/slaae29a.pdf, avionics/datasheets/slaae76e.pdf, avionics/datasheets/slaaet8a.pdf, avionics/datasheets/slau846e.pdf, avionics/datasheets/slaz742g.pdf, avionics/datasheets/slb9672.pdf, avionics/emi-hardening/TODO.md, avionics/emi-hardening/WBS.md, avionics/firmware/AK7455_CALIBRATION_SPECIFICATION.md, avionics/firmware/CMakeLists.txt, avionics/firmware/README.md, avionics/firmware/TODO.md, avionics/firmware/WBS.md, avionics/firmware/cn/CMakeLists.txt, avionics/firmware/cn/src/main.c, avionics/firmware/cn/src/si5351.c, avionics/firmware/cn/src/si5351.h, avionics/firmware/cn/src/xcvr_kiss.c, avionics/firmware/cn/src/xcvr_kiss.h, avionics/firmware/common/CMakeLists.txt, avionics/firmware/common/include/ax25_types.h, avionics/firmware/common/include/failsafe_config.h, avionics/firmware/common/include/kiss_types.h, avionics/firmware/common/include/sbus_input.h, avionics/firmware/common/src/sbus_input.c, avionics/firmware/dts/Makefile, avionics/firmware/dts/README.md, avionics/firmware/dts/cape-a/k3-am6254-pocketbeagle2-serenity-cape-a2.dts, avionics/firmware/dts/cape-b/k3-am6254-pocketbeagle2-serenity-cape-b2.dts, avionics/firmware/fc/CMakeLists.txt, avionics/firmware/fc/src/bmon_ina2xx.c, avionics/firmware/fc/src/bmon_ina2xx.h, avionics/firmware/fc/src/cell_mon_bq769x0.c, avionics/firmware/fc/src/cell_mon_bq769x0.h, avionics/firmware/fc/src/governor_config.h, avionics/firmware/fc/src/mag_mmc5983ma.c, avionics/firmware/fc/src/mag_mmc5983ma.h, avionics/firmware/fc/src/mag_qmc5883l.c, avionics/firmware/fc/src/mag_qmc5883l.h, avionics/firmware/fc/src/main.c, avionics/firmware/fc/src/pwr_fault.c, avionics/firmware/fc/src/pwr_fault.h, avionics/firmware/fc/tools/.gitignore, avionics/firmware/fc/tools/governor_cal.py, avionics/firmware/fc/tools/requirements.txt, avionics/kicad/.gitignore, avionics/kicad/4_Run KiCad ERC_DRC validator (changed files only).txt, avionics/kicad/CAN-PERIPH-GW-1/CAN-PERIPH-GW-1.md, avionics/kicad/CAN-PERIPH-GW-1/gerbers/CAN-PERIPH-GW-1-B_Adhesive.gba, avionics/kicad/CAN-PERIPH-GW-1/gerbers/CAN-PERIPH-GW-1-B_Courtyard.gbr, avionics/kicad/CAN-PERIPH-GW-1/gerbers/CAN-PERIPH-GW-1-B_Cu.gbl, avionics/kicad/CAN-PERIPH-GW-1/gerbers/CAN-PERIPH-GW-1-B_Fab.gbr, avionics/kicad/CAN-PERIPH-GW-1/gerbers/CAN-PERIPH-GW-1-B_Mask.gbs, avionics/kicad/CAN-PERIPH-GW-1/gerbers/CAN-PERIPH-GW-1-B_Paste.gbp, avionics/kicad/CAN-PERIPH-GW-1/gerbers/CAN-PERIPH-GW-1-B_Silkscreen.gbo, avionics/kicad/CAN-PERIPH-GW-1/gerbers/CAN-PERIPH-GW-1-Edge_Cuts.gm1, avionics/kicad/CAN-PERIPH-GW-1/gerbers/CAN-PERIPH-GW-1-F_Adhesive.gta, avionics/kicad/CAN-PERIPH-GW-1/gerbers/CAN-PERIPH-GW-1-F_Courtyard.gbr, avionics/kicad/CAN-PERIPH-GW-1/gerbers/CAN-PERIPH-GW-1-F_Cu.gtl, avionics/kicad/CAN-PERIPH-GW-1/gerbers/CAN-PERIPH-GW-1-F_Fab.gbr, avionics/kicad/CAN-PERIPH-GW-1/gerbers/CAN-PERIPH-GW-1-F_Mask.gts, avionics/kicad/CAN-PERIPH-GW-1/gerbers/CAN-PERIPH-GW-1-F_Paste.gtp, avionics/kicad/CAN-PERIPH-GW-1/gerbers/CAN-PERIPH-GW-1-F_Silkscreen.gto, avionics/kicad/CAN-PERIPH-GW-1/gerbers/CAN-PERIPH-GW-1-Margin.gbr, avionics/kicad/CAN-PERIPH-GW-1/gerbers/CAN-PERIPH-GW-1-job.gbrjob, avionics/kicad/CAN-PERIPH-GW-1/gerbers/CAN-PERIPH-GW-1.drl, avionics/kicad/CAN-PERIPH-GW-1/kicads/CAN-PERIPH-GW-1.dsn, avionics/kicad/CAN-PERIPH-GW-1/kicads/CAN-PERIPH-GW-1.kicad_pcb, avionics/kicad/CAN-PERIPH-GW-1/kicads/CAN-PERIPH-GW-1.kicad_pcb.pre-g351x, avionics/kicad/CAN-PERIPH-GW-1/kicads/CAN-PERIPH-GW-1.kicad_prl, avionics/kicad/CAN-PERIPH-GW-1/kicads/CAN-PERIPH-GW-1.kicad_pro, avionics/kicad/CAN-PERIPH-GW-1/kicads/CAN-PERIPH-GW-1.kicad_sch, avionics/kicad/CAN-PERIPH-GW-1/kicads/CAN-PERIPH-GW-1.kicad_sch.pre-g351x, avionics/kicad/CAN-PERIPH-GW-1/kicads/CAN-PERIPH-GW-1.net, avionics/kicad/CAN-PERIPH-GW-1/kicads/CAN-PERIPH-GW-1.ses, avionics/kicad/CAN-PERIPH-GW-1/kicads/CAN-PERIPH-GW-1_v2.ses, avionics/kicad/CAN-PERIPH-GW-1/scripts/gen_can_periph_gw_pcb.py, avionics/kicad/CAN-PERIPH-GW-1/scripts/gen_can_periph_gw_sch.py, avionics/kicad/CAN-PERIPH-GW-1/scripts/route_can_periph_gw_pcb.py, avionics/kicad/Commo/Commo.md, avionics/kicad/Commo/gerbers/Commo-B_Courtyard.gbr, avionics/kicad/Commo/gerbers/Commo-B_Cu.gbl, avionics/kicad/Commo/gerbers/Commo-B_Fab.gbr, avionics/kicad/Commo/gerbers/Commo-B_Mask.gbs, avionics/kicad/Commo/gerbers/Commo-B_Paste.gbp, avionics/kicad/Commo/gerbers/Commo-B_Silkscreen.gbo, avionics/kicad/Commo/gerbers/Commo-Edge_Cuts.gm1, avionics/kicad/Commo/gerbers/Commo-F_Courtyard.gbr, avionics/kicad/Commo/gerbers/Commo-F_Cu.gtl, avionics/kicad/Commo/gerbers/Commo-F_Fab.gbr, avionics/kicad/Commo/gerbers/Commo-F_Mask.gts, avionics/kicad/Commo/gerbers/Commo-F_Paste.gtp, avionics/kicad/Commo/gerbers/Commo-F_Silkscreen.gto, avionics/kicad/Commo/gerbers/Commo-In1_Cu.g1, avionics/kicad/Commo/gerbers/Commo-In2_Cu.g2, avionics/kicad/Commo/gerbers/Commo-Margin.gbr, avionics/kicad/Commo/gerbers/Commo-in1-back.drl, avionics/kicad/Commo/gerbers/Commo-job.gbrjob, avionics/kicad/Commo/gerbers/Commo.drl, avionics/kicad/Commo/gerbers/XCVR-49MHZ-2-B_Cu.gbr, avionics/kicad/Commo/gerbers/XCVR-49MHZ-2-B_Mask.gbr, avionics/kicad/Commo/gerbers/XCVR-49MHZ-2-B_Paste.gbr, avionics/kicad/Commo/gerbers/XCVR-49MHZ-2-B_Silkscreen.gbr, avionics/kicad/Commo/gerbers/XCVR-49MHZ-2-Edge_Cuts.gbr, avionics/kicad/Commo/gerbers/XCVR-49MHZ-2-F_Cu.gbr, avionics/kicad/Commo/gerbers/XCVR-49MHZ-2-F_Mask.gbr, avionics/kicad/Commo/gerbers/XCVR-49MHZ-2-F_Paste.gbr, avionics/kicad/Commo/gerbers/XCVR-49MHZ-2-F_Silkscreen.gbr, avionics/kicad/Commo/gerbers/XCVR-49MHZ-2-In1_Cu.gbr, avionics/kicad/Commo/gerbers/XCVR-49MHZ-2-In2_Cu.gbr, avionics/kicad/Commo/gerbers/XCVR-49MHZ-2-job.gbrjob, avionics/kicad/Commo/gerbers/XCVR-49MHZ-2.drl, avionics/kicad/Commo/kicads/Commo.kicad_pcb, avionics/kicad/Commo/kicads/Commo.kicad_prl, avionics/kicad/Commo/kicads/Commo.kicad_pro, avionics/kicad/Commo/kicads/Commo.kicad_sch, avionics/kicad/Commo/scripts/cleanup_commo_drc.py, avionics/kicad/Commo/scripts/gen_commo_sch.py, avionics/kicad/Commo/scripts/inject_commo_tpm.py, avionics/kicad/Commo/scripts/mod_commo_pcb.py, avionics/kicad/Commo/scripts/route_commo_rssi.py, avionics/kicad/ENC-NACELLE-1.kicad_pcb, avionics/kicad/ENC-NACELLE-1.kicad_prl, avionics/kicad/ENC-NACELLE-1.kicad_pro, avionics/kicad/ENC-NACELLE-1.kicad_sch, avionics/kicad/ENC-NACELLE-1.md, avionics/kicad/ENC-NACELLE-1.net, avionics/kicad/FlightEngineer/FlightEngineer.md, avionics/kicad/FlightEngineer/GENERATOR_DRIFT_ANALYSIS.md, avionics/kicad/FlightEngineer/gerbers/FlightEngineer-B_Adhesive.gba, avionics/kicad/FlightEngineer/gerbers/FlightEngineer-B_Courtyard.gbr, avionics/kicad/FlightEngineer/gerbers/FlightEngineer-B_Cu.gbl, avionics/kicad/FlightEngineer/gerbers/FlightEngineer-B_Fab.gbr, avionics/kicad/FlightEngineer/gerbers/FlightEngineer-B_Mask.gbs, avionics/kicad/FlightEngineer/gerbers/FlightEngineer-B_Paste.gbp, avionics/kicad/FlightEngineer/gerbers/FlightEngineer-B_Silkscreen.gbo, avionics/kicad/FlightEngineer/gerbers/FlightEngineer-Edge_Cuts.gm1, avionics/kicad/FlightEngineer/gerbers/FlightEngineer-F_Adhesive.gta, avionics/kicad/FlightEngineer/gerbers/FlightEngineer-F_Courtyard.gbr, avionics/kicad/FlightEngineer/gerbers/FlightEngineer-F_Cu.gtl, avionics/kicad/FlightEngineer/gerbers/FlightEngineer-F_Fab.gbr, avionics/kicad/FlightEngineer/gerbers/FlightEngineer-F_Mask.gts, avionics/kicad/FlightEngineer/gerbers/FlightEngineer-F_Paste.gtp, avionics/kicad/FlightEngineer/gerbers/FlightEngineer-F_Silkscreen.gto, avionics/kicad/FlightEngineer/gerbers/FlightEngineer-In1_Cu.g1, avionics/kicad/FlightEngineer/gerbers/FlightEngineer-Margin.gbr, avionics/kicad/FlightEngineer/gerbers/FlightEngineer-job.gbrjob, avionics/kicad/FlightEngineer/gerbers/FlightEngineer.drl, avionics/kicad/FlightEngineer/kicads/FlightEngineer.kicad_pcb, avionics/kicad/FlightEngineer/kicads/FlightEngineer.kicad_prl, avionics/kicad/FlightEngineer/kicads/FlightEngineer.kicad_pro, avionics/kicad/FlightEngineer/kicads/FlightEngineer.kicad_sch, avionics/kicad/FlightEngineer/kicads/Kaylee.kicad_sch.pre-g351x, avionics/kicad/FlightEngineer/scripts/fix_flight_engineer_pin_snap.py, avionics/kicad/FlightEngineer/scripts/fix_flight_engineer_revs1_cleanup.py, avionics/kicad/FlightEngineer/scripts/fix_flight_engineer_yinv.py, avionics/kicad/FlightEngineer/scripts/gen_flight_engineer.py, avionics/kicad/FlightEngineer/scripts/gen_flight_engineer_pcb.py, avionics/kicad/FlightEngineer/scripts/gen_flight_engineer_revs1.py, avionics/kicad/FlightEngineer/scripts/inject_flight_engineer_trust_module.py, avionics/kicad/FlightEngineer/scripts/mod_flight_engineer_pcb_revs1.py, avionics/kicad/Observer/OBSERVER_SOM_NETMAP.md, avionics/kicad/Observer/Observer.md, avionics/kicad/Observer/Observer.pretty/DS_Camera_9P.kicad_mod, avionics/kicad/Observer/Observer.pretty/DS_Laser_2P.kicad_mod, avionics/kicad/Observer/Observer.pretty/DS_ToF_4P.kicad_mod, avionics/kicad/Observer/Observer.pretty/TQFP-128-1EP_KSZ9477_14x14mm_P0.4mm_EP10x10.kicad_mod, avionics/kicad/Observer/Observer.pretty/Wurth_749010012A_10-100BASE-TX.kicad_mod, avionics/kicad/Observer/Observer.pretty/phyCORE-AM62x_PCM071_2xBTH-060.kicad_mod, avionics/kicad/Observer/Observer.pretty/phyCORE-AM62x_PCM071_placement.kicad_mod, avionics/kicad/Observer/Observer_som_pinmap.csv, avionics/kicad/Observer/PCBNEW_SWIG_BUG.md, avionics/kicad/Observer/VERA_NOSE_TRAPEZOID.md, avionics/kicad/Observer/Vera.pretty/DS_Camera_9P.kicad_mod, avionics/kicad/Observer/Vera.pretty/DS_Laser_2P.kicad_mod, avionics/kicad/Observer/Vera.pretty/DS_ToF_4P.kicad_mod, avionics/kicad/Observer/Vera.pretty/phyCORE-AM62x_PCM071_2xBTH-060.kicad_mod, avionics/kicad/Observer/Vera.pretty/phyCORE-AM62x_PCM071_placement.kicad_mod, avionics/kicad/Observer/gen_vera_bth060_footprint.py, avionics/kicad/Observer/gen_vera_ds_footprints.py, avionics/kicad/Observer/gen_vera_som_pcm071.py, avionics/kicad/Observer/kicads/Jayne.kicad_sch.pre-g351x, avionics/kicad/Observer/kicads/Observer.kicad_dru, avionics/kicad/Observer/kicads/Observer.kicad_pcb, avionics/kicad/Observer/kicads/Observer.kicad_pcb.pre-g351x, avionics/kicad/Observer/kicads/Observer.kicad_prl, avionics/kicad/Observer/kicads/Observer.kicad_pro, avionics/kicad/Observer/kicads/Observer.kicad_sch, avionics/kicad/Observer/kicads/Observer.net, avionics/kicad/Observer/kicads/_autosave-Observer.kicad_pcb, avionics/kicad/Observer/kicads/fp-lib-table, avionics/kicad/Observer/mod_vera_corners.py, avionics/kicad/Observer/mod_vera_ds_pcb.py, avionics/kicad/Observer/mod_vera_som_place.py, avionics/kicad/Observer/mod_vera_trapezoid.py, avionics/kicad/Observer/scripts/gen_observer.py, avionics/kicad/Observer/scripts/gen_observer_bth060_footprint.py, avionics/kicad/Observer/scripts/gen_observer_carrier_pcb.py, avionics/kicad/Observer/scripts/gen_observer_carrier_sch.py, avionics/kicad/Observer/scripts/gen_observer_ds_footprints.py, avionics/kicad/Observer/scripts/gen_observer_ic_symbols.py, avionics/kicad/Observer/scripts/gen_observer_ksz_symbol.py, avionics/kicad/Observer/scripts/gen_observer_pcb.py, avionics/kicad/Observer/scripts/gen_observer_som_pcm071.py, avionics/kicad/Observer/scripts/gen_observer_som_symbol.py, avionics/kicad/Observer/scripts/mod_observer_corners.py, avionics/kicad/Observer/scripts/mod_observer_ds_pcb.py, avionics/kicad/Observer/scripts/mod_observer_som_place.py, avionics/kicad/Observer/scripts/mod_observer_trapezoid.py, avionics/kicad/Pilot/PILOT_FOOTPRINT_VERIFICATION.md, avionics/kicad/Pilot/Pilot.md, avionics/kicad/Pilot/gerbers/Pilot-B_Cu.gbr, avionics/kicad/Pilot/gerbers/Pilot-B_Mask.gbr, avionics/kicad/Pilot/gerbers/Pilot-B_Paste.gbr, avionics/kicad/Pilot/gerbers/Pilot-B_Silkscreen.gbr, avionics/kicad/Pilot/gerbers/Pilot-Edge_Cuts.gbr, avionics/kicad/Pilot/gerbers/Pilot-F_Cu.gbr, avionics/kicad/Pilot/gerbers/Pilot-F_Mask.gbr, avionics/kicad/Pilot/gerbers/Pilot-F_Paste.gbr, avionics/kicad/Pilot/gerbers/Pilot-F_Silkscreen.gbr, avionics/kicad/Pilot/gerbers/Pilot-In1_Cu.gbr, avionics/kicad/Pilot/gerbers/Pilot-In2_Cu.gbr, avionics/kicad/Pilot/gerbers/Pilot-job.gbrjob, avionics/kicad/Pilot/gerbers/Pilot.drl, avionics/kicad/Pilot/kicads/Pilot.kicad_pcb, avionics/kicad/Pilot/kicads/Pilot.kicad_prl, avionics/kicad/Pilot/kicads/Pilot.kicad_pro, avionics/kicad/Pilot/kicads/Pilot.kicad_sch, avionics/kicad/Pilot/kicads/Pilot_rebuild.kicad_sch, avionics/kicad/Pilot/kicads/sym-lib-table, avionics/kicad/Pilot/scripts/gen_pilot_sch.py, avionics/kicad/Pilot/scripts/mod_pilot_pcb_reconcile.py, avionics/kicad/README.md, avionics/kicad/Serenity-Custom.pretty/MountingHole_2.2mm_M2_SelfTap_Compact.kicad_mod, avionics/kicad/Serenity-Custom.pretty/Pigtail_7W_DirectSolder.kicad_mod, avionics/kicad/Serenity-Custom.pretty/TI_WL1837MOD.kicad_mod, avionics/kicad/Serenity-Custom.pretty/uBlox_SAM-M10Q-00B.kicad_mod, avionics/kicad/TODO-1.2b-CHECKLIST.md, avionics/kicad/TODO-1.2b-KICAD-READY.md, avionics/kicad/TODO-1.2b-STATUS-REPORT.md, avionics/kicad/XO/XO.md, avionics/kicad/XO/gerbers/XO-B_Cu.gbr, avionics/kicad/XO/gerbers/XO-B_Mask.gbr, avionics/kicad/XO/gerbers/XO-B_Paste.gbr, avionics/kicad/XO/gerbers/XO-B_Silkscreen.gbr, avionics/kicad/XO/gerbers/XO-Edge_Cuts.gbr, avionics/kicad/XO/gerbers/XO-F_Cu.gbr, avionics/kicad/XO/gerbers/XO-F_Mask.gbr, avionics/kicad/XO/gerbers/XO-F_Paste.gbr, avionics/kicad/XO/gerbers/XO-F_Silkscreen.gbr, avionics/kicad/XO/gerbers/XO-In1_Cu.gbr, avionics/kicad/XO/gerbers/XO-In2_Cu.gbr, avionics/kicad/XO/gerbers/XO-job.gbrjob, avionics/kicad/XO/gerbers/XO.drl, avionics/kicad/XO/kicads/XO.kicad_pcb, avionics/kicad/XO/kicads/XO.kicad_prl, avionics/kicad/XO/kicads/XO.kicad_pro, avionics/kicad/XO/kicads/XO.kicad_sch, avionics/kicad/XO/ref_remap_2026-07-18.json, avionics/kicad/add_eth_phy.py, avionics/kicad/add_sensors_sbus.py, avionics/kicad/apply_netlist.py, avionics/kicad/check_impedance.py, avionics/kicad/complete_1_2b.py, avionics/kicad/complete_xcvr_49mhz2.py, avionics/kicad/drc_report.txt, avionics/kicad/fix_pilot_xo_isolators.py, avionics/kicad/fix_starved_thermal_pads.py, avionics/kicad/fix_xcvr_labels.py, avionics/kicad/fp-lib-table, avionics/kicad/gen_enc_nacelle_pcb.py, avionics/kicad/generate_gerbers.py, avionics/kicad/generate_gerbers_rev_s1.py, avionics/kicad/gerbers/CAPE-B-2-S1/XO-B_Courtyard.gbr, avionics/kicad/gerbers/CAPE-B-2-S1/XO-B_Cu.gbl, avionics/kicad/gerbers/CAPE-B-2-S1/XO-B_Fab.gbr, avionics/kicad/gerbers/CAPE-B-2-S1/XO-B_Mask.gbs, avionics/kicad/gerbers/CAPE-B-2-S1/XO-B_Paste.gbp, avionics/kicad/gerbers/CAPE-B-2-S1/XO-B_Silkscreen.gbo, avionics/kicad/gerbers/CAPE-B-2-S1/XO-Edge_Cuts.gm1, avionics/kicad/gerbers/CAPE-B-2-S1/XO-F_Courtyard.gbr, avionics/kicad/gerbers/CAPE-B-2-S1/XO-F_Cu.gtl, avionics/kicad/gerbers/CAPE-B-2-S1/XO-F_Fab.gbr, avionics/kicad/gerbers/CAPE-B-2-S1/XO-F_Mask.gts, avionics/kicad/gerbers/CAPE-B-2-S1/XO-F_Paste.gtp, avionics/kicad/gerbers/CAPE-B-2-S1/XO-F_Silkscreen.gto, avionics/kicad/gerbers/CAPE-B-2-S1/XO-In1_Cu.g1, avionics/kicad/gerbers/CAPE-B-2-S1/XO-In2_Cu.g2, avionics/kicad/gerbers/CAPE-B-2-S1/XO-Margin.gbr, avionics/kicad/gerbers/CAPE-B-2-S1/XO-job.gbrjob, avionics/kicad/gerbers/CAPE-B-2-S1/XO.drl/XO.drl, avionics/kicad/gerbers/Commo-S1/Commo-B_Courtyard.gbr, avionics/kicad/gerbers/Commo-S1/Commo-B_Cu.gbl, avionics/kicad/gerbers/Commo-S1/Commo-B_Fab.gbr, avionics/kicad/gerbers/Commo-S1/Commo-B_Mask.gbs, avionics/kicad/gerbers/Commo-S1/Commo-B_Paste.gbp, avionics/kicad/gerbers/Commo-S1/Commo-B_Silkscreen.gbo, avionics/kicad/gerbers/Commo-S1/Commo-Edge_Cuts.gm1, avionics/kicad/gerbers/Commo-S1/Commo-F_Courtyard.gbr, avionics/kicad/gerbers/Commo-S1/Commo-F_Cu.gtl, avionics/kicad/gerbers/Commo-S1/Commo-F_Fab.gbr, avionics/kicad/gerbers/Commo-S1/Commo-F_Mask.gts, avionics/kicad/gerbers/Commo-S1/Commo-F_Paste.gtp, avionics/kicad/gerbers/Commo-S1/Commo-F_Silkscreen.gto, avionics/kicad/gerbers/Commo-S1/Commo-In1_Cu.g1, avionics/kicad/gerbers/Commo-S1/Commo-In2_Cu.g2, avionics/kicad/gerbers/Commo-S1/Commo-Margin.gbr, avionics/kicad/gerbers/Commo-S1/Commo-job.gbrjob, avionics/kicad/gerbers/Commo-S1/Commo.drl/Commo.drl, avionics/kicad/gerbers/FlightEngineer-S1/FlightEngineer-B_Adhesive.gba, avionics/kicad/gerbers/FlightEngineer-S1/FlightEngineer-B_Courtyard.gbr, avionics/kicad/gerbers/FlightEngineer-S1/FlightEngineer-B_Cu.gbl, avionics/kicad/gerbers/FlightEngineer-S1/FlightEngineer-B_Fab.gbr, avionics/kicad/gerbers/FlightEngineer-S1/FlightEngineer-B_Mask.gbs, avionics/kicad/gerbers/FlightEngineer-S1/FlightEngineer-B_Paste.gbp, avionics/kicad/gerbers/FlightEngineer-S1/FlightEngineer-B_Silkscreen.gbo, avionics/kicad/gerbers/FlightEngineer-S1/FlightEngineer-Edge_Cuts.gm1, avionics/kicad/gerbers/FlightEngineer-S1/FlightEngineer-F_Adhesive.gta, avionics/kicad/gerbers/FlightEngineer-S1/FlightEngineer-F_Courtyard.gbr, avionics/kicad/gerbers/FlightEngineer-S1/FlightEngineer-F_Cu.gtl, avionics/kicad/gerbers/FlightEngineer-S1/FlightEngineer-F_Fab.gbr, avionics/kicad/gerbers/FlightEngineer-S1/FlightEngineer-F_Mask.gts, avionics/kicad/gerbers/FlightEngineer-S1/FlightEngineer-F_Paste.gtp, avionics/kicad/gerbers/FlightEngineer-S1/FlightEngineer-F_Silkscreen.gto, avionics/kicad/gerbers/FlightEngineer-S1/FlightEngineer-In1_Cu.g1, avionics/kicad/gerbers/FlightEngineer-S1/FlightEngineer-Margin.gbr, avionics/kicad/gerbers/FlightEngineer-S1/FlightEngineer-job.gbrjob, avionics/kicad/gerbers/FlightEngineer-S1/FlightEngineer.drl/FlightEngineer.drl, avionics/kicad/replace_footprints.py, avionics/kicad/retarget_mspm0g351x_slb9672.py, avionics/kicad/retarget_pcb_footprints.py, avionics/kicad/symbols/ISOW1044BDFMR_pinmap.csv, avionics/kicad/symbols/KSZ9477STXI_pinmap.csv, avionics/kicad/symbols/MSPM0G3507SRGZR_pinmap.csv, avionics/kicad/symbols/MSPM0G3518_Q1_RHB.kicad_sym, avionics/kicad/symbols/MSPM0G3519_Q1_RGZ.kicad_sym, avionics/kicad/symbols/Observer_ISOW1044BDFMR.kicad_sym, avionics/kicad/symbols/Observer_KSZ9477.kicad_sym, avionics/kicad/symbols/Observer_MSPM0G3507_RGZ.kicad_sym, avionics/kicad/symbols/Observer_SoM.kicad_sym, avionics/kicad/symbols/Observer_SoM_PCM071.kicad_sym, avionics/kicad/symbols/SLB9672XU2_0_pinmap.csv, avionics/kicad/symbols/SLB9672_TPM.kicad_sym, avionics/kicad/symbols/Vera_SoM_PCM071.kicad_sym, avionics/kicad/symbols/footprints/PHYCORE-AM62AX-DSC-FOOTPRINT.kicad_mod, avionics/kicad/symbols/phyCORE_AM62x_PCM071_pinmap.csv, avionics/mosfet-search.txt, avionics/observer/TODO.md, avionics/observer/WBS.md, avionics/rev-s1/TODO.md, avionics/rev-s1/WBS.md - `bom` (13): airframe/diagrams/ring_frames/ring_cargo_Y30_inner.csv, airframe/diagrams/ring_frames/ring_rear_Y290_inner.csv, avionics/kicad/Observer/Observer_som_pinmap.csv, avionics/kicad/symbols/ISOW1044BDFMR_pinmap.csv, avionics/kicad/symbols/KSZ9477STXI_pinmap.csv, avionics/kicad/symbols/MSPM0G3507SRGZR_pinmap.csv, avionics/kicad/symbols/SLB9672XU2_0_pinmap.csv, avionics/kicad/symbols/phyCORE_AM62x_PCM071_pinmap.csv, code-scanning-files-extracted.csv, current-specification/bom_revS.csv, current-specification/bom_revS.json, docs/bom_revR.json, tools/compact_bom_entries.py - `build-guide` (151): graphical-build-guide/AGENTS.md, graphical-build-guide/BUILD_GUIDE_TEMPLATE.md, graphical-build-guide/LICENSE, graphical-build-guide/README.md, graphical-build-guide/REVN_BUILD_GUIDE_24IN.md, graphical-build-guide/TODO-old.md, graphical-build-guide/TODO.md, graphical-build-guide/WBS.md, graphical-build-guide/build_guide_00_cover.svg, graphical-build-guide/build_guide_01_print_prep.svg, graphical-build-guide/build_guide_02_print_hull.svg, graphical-build-guide/build_guide_03_print_nacelle.svg, graphical-build-guide/build_guide_04_cut_cf.svg, graphical-build-guide/build_guide_05_cf_skeleton.svg, graphical-build-guide/build_guide_06_nacelle_pivot.svg, graphical-build-guide/build_guide_07_edf_install.svg, graphical-build-guide/build_guide_08_nozzle_gear.svg, graphical-build-guide/build_guide_09_avionics.svg, graphical-build-guide/build_guide_10_power_wiring.svg, graphical-build-guide/build_guide_11_inter_board.svg, graphical-build-guide/build_guide_12_security_hw.svg, graphical-build-guide/build_guide_13_nav_lights.svg, graphical-build-guide/build_guide_14_antennas.svg, graphical-build-guide/build_guide_15_software.svg, graphical-build-guide/build_guide_16_calibration.svg, graphical-build-guide/build_guide_17_ground_test.svg, graphical-build-guide/build_guide_18_first_flight.svg, graphical-build-guide/build_guide_19_decal_placement.svg, graphical-build-guide/build_guide_20_node_placement.svg, graphical-build-guide/build_guide_21_node_install.svg, graphical-build-guide/build_guide_22_void_formers.svg, graphical-build-guide/build_guide_23_foam_fill.svg, graphical-build-guide/build_guide_24_access_panels.svg, graphical-build-guide/build_guide_25_obstacle_sensors.svg, graphical-build-guide/build_guide_26_cargo_bay_winch.svg, graphical-build-guide/build_plan.svg, graphical-build-guide/components_overview.svg, graphical-build-guide/decal_sheet.svg, graphical-build-guide/flight-phases/TODO.md, graphical-build-guide/flight-phases/WBS.md, graphical-build-guide/gen_hull_outlines.py, graphical-build-guide/hull_bottom.svg, graphical-build-guide/hull_front.svg, graphical-build-guide/hull_side.svg, graphical-build-guide/hull_top.svg, graphical-build-guide/overview_bottom.svg, graphical-build-guide/overview_front.svg, graphical-build-guide/overview_side.svg, graphical-build-guide/overview_svgs/serenity_bottom.svg, graphical-build-guide/overview_svgs/serenity_bow.svg, graphical-build-guide/overview_svgs/serenity_iso_port_bow.svg, graphical-build-guide/overview_svgs/serenity_iso_port_quarter.svg, graphical-build-guide/overview_svgs/serenity_iso_starboard_bow.svg, graphical-build-guide/overview_svgs/serenity_iso_stbd_quarter.svg, graphical-build-guide/overview_svgs/serenity_port.svg, graphical-build-guide/overview_svgs/serenity_starboard.svg, graphical-build-guide/overview_svgs/serenity_stern.svg, graphical-build-guide/overview_svgs/serenity_top.svg, graphical-build-guide/overview_top.svg, graphical-build-guide/pngs/01_port.png, graphical-build-guide/pngs/02_stbd.png, graphical-build-guide/pngs/03_top.png, graphical-build-guide/pngs/04_bottom.png, graphical-build-guide/pngs/05_bow.png, graphical-build-guide/pngs/06_stern.png, graphical-build-guide/pngs/07_iso_port_bow_dorsal.png, graphical-build-guide/pngs/08_iso_stbd_bow_dorsal.png, graphical-build-guide/pngs/09_iso_port_stern_dorsal.png, graphical-build-guide/pngs/10_iso_stbd_stern_dorsal.png, graphical-build-guide/pngs/11_iso_port_bow_ventral.png, graphical-build-guide/pngs/12_iso_stbd_bow_ventral.png, graphical-build-guide/pngs/13_iso_port_stern_ventral.png, graphical-build-guide/pngs/14_iso_stbd_stern_ventral.png, graphical-build-guide/pngs/15_closeup_nose.png, graphical-build-guide/pngs/16_closeup_gear.png, graphical-build-guide/pngs/17_closeup_nacelle.png, graphical-build-guide/probe_stl.py, graphical-build-guide/shellview/cargo_port.png, graphical-build-guide/shellview/cargo_stbd.png, graphical-build-guide/shellview/cargoax_front.png, graphical-build-guide/shellview/cargoax_iso.png, graphical-build-guide/shellview/cargoax_stbd.png, graphical-build-guide/shellview/cargoax_top.png, graphical-build-guide/shellview/fine2_starb.png, graphical-build-guide/shellview/fine_starb.png, graphical-build-guide/shellview/fine_top.png, graphical-build-guide/shellview/grid_starb.png, graphical-build-guide/shellview/hd_s_fwdtop.png, graphical-build-guide/shellview/hd_sf_hi.png, graphical-build-guide/shellview/hd_sf_lo.png, graphical-build-guide/shellview/hd_sf_mid.png, graphical-build-guide/shellview/head_front_Yneg.png, graphical-build-guide/shellview/head_front_Yneg_rg.png, graphical-build-guide/shellview/head_iso.png, graphical-build-guide/shellview/head_port_Xpos.png, graphical-build-guide/shellview/head_stbd_Xneg.png, graphical-build-guide/shellview/head_top_Zpos.png, graphical-build-guide/shellview/head_xsec.png, graphical-build-guide/shellview/head_xsec_zoom.png, graphical-build-guide/shellview/headax_front.png, graphical-build-guide/shellview/headax_iso.png, graphical-build-guide/shellview/headax_stbd.png, graphical-build-guide/shellview/headax_top.png, graphical-build-guide/shellview/headfin_s_fwdtop.png, graphical-build-guide/shellview/headfin_sf_hi.png, graphical-build-guide/shellview/headfin_sf_lo.png, graphical-build-guide/shellview/headfin_sf_mid.png, graphical-build-guide/shellview/headfin_sf_mid_rg.png, graphical-build-guide/shellview/inara_engrave.png, graphical-build-guide/shellview/inner_op4_front_Yneg.png, graphical-build-guide/shellview/inner_op4_iso.png, graphical-build-guide/shellview/inner_op4_port_Xpos.png, graphical-build-guide/shellview/inner_op4_stbd_Xneg.png, graphical-build-guide/shellview/inner_op4_top_Zpos.png, graphical-build-guide/shellview/inner_orig_front_Yneg.png, graphical-build-guide/shellview/inner_orig_iso.png, graphical-build-guide/shellview/inner_orig_port_Xpos.png, graphical-build-guide/shellview/inner_orig_stbd_Xneg.png, graphical-build-guide/shellview/inner_orig_top_Zpos.png, graphical-build-guide/shellview/inner_vop_front_Yneg.png, graphical-build-guide/shellview/inner_vop_iso.png, graphical-build-guide/shellview/inner_vop_port_Xpos.png, graphical-build-guide/shellview/inner_vop_stbd_Xneg.png, graphical-build-guide/shellview/inner_vop_top_Zpos.png, graphical-build-guide/shellview/mk_fwdtop.png, graphical-build-guide/shellview/mk_stbd.png, graphical-build-guide/shellview/port_wall.stl, graphical-build-guide/shellview/rear_front_Yneg.png, graphical-build-guide/shellview/rear_iso.png, graphical-build-guide/shellview/rear_port_Xpos.png, graphical-build-guide/shellview/rear_stbd_Xneg.png, graphical-build-guide/shellview/rear_top_Zpos.png, graphical-build-guide/shellview/rinner_op_s_fwdtop.png, graphical-build-guide/shellview/rinner_op_sf_hi.png, graphical-build-guide/shellview/rinner_op_sf_lo.png, graphical-build-guide/shellview/rinner_op_sf_mid.png, graphical-build-guide/shellview/rinner_orig_s_fwdtop.png, graphical-build-guide/shellview/rinner_orig_sf_hi.png, graphical-build-guide/shellview/rinner_orig_sf_lo.png, graphical-build-guide/shellview/rinner_orig_sf_mid.png, graphical-build-guide/shellview/rio_front_Yneg.png, graphical-build-guide/shellview/rio_iso.png, graphical-build-guide/shellview/rio_port_Xpos.png, graphical-build-guide/shellview/rio_stbd_Xneg.png, graphical-build-guide/shellview/rio_top_Zpos.png, graphical-build-guide/shellview/rop_front_Yneg.png, graphical-build-guide/shellview/rop_iso.png, graphical-build-guide/shellview/rop_port_Xpos.png, graphical-build-guide/shellview/rop_stbd_Xneg.png, graphical-build-guide/shellview/rop_top_Zpos.png, graphical-build-guide/update_overview_paths.py -- `build-tooling` (39): tools/AGENTS.md, tools/LICENSE, tools/README.md, tools/TODO.md, tools/TOOL_REFERENCE.md, tools/add_landing_gear_bosses.py, tools/bake_hull_frame.py, tools/build_head_shell.py, tools/build_landing_gear_views.py, tools/cargo_bay_envelope.py, tools/compact_bom_entries.py, tools/export-specctra-dsn.py, tools/export_landing_gear_stls.py, tools/import-specctra-ses.py, tools/landing_gear_bay_pad_fit.py, tools/landing_gear_bay_seat_fit.py, tools/landing_gear_bay_station_fit.py, tools/landing_gear_cowl_clearance.py, tools/landing_gear_foot_stance.py, tools/landing_gear_opening_fit.py, tools/landing_gear_r6_sizing.py, tools/landing_gear_wing_clearance.py, tools/mirror_claude_memory.py, tools/open_mating_faces.py, tools/precommit_index.py, tools/precommit_kicad_load.py, tools/precommit_sanitize.py, tools/purge_stale_fcstd_objects.py, tools/validate_kicad.py, tools/validate_stls.py, tools/verify_bow_pod.py, tools/wing_airfoil_integrity.py, tools/wing_airfoil_variants.py, tools/wing_cfd_openfoam.py, tools/wing_internal_clearance.py, tools/wing_root_deconflict.py, tools/wing_section_figure.py, tools/wing_spar_carrythrough.py, tools/wing_spar_station_fit.py +- `build-tooling` (41): tools/AGENTS.md, tools/LICENSE, tools/README.md, tools/TODO.md, tools/TOOL_REFERENCE.md, tools/add_landing_gear_bosses.py, tools/bake_hull_frame.py, tools/build_head_shell.py, tools/build_landing_gear_views.py, tools/cargo_bay_envelope.py, tools/compact_bom_entries.py, tools/export-specctra-dsn.py, tools/export_landing_gear_stls.py, tools/import-specctra-ses.py, tools/landing_gear_bay_pad_fit.py, tools/landing_gear_bay_seat_fit.py, tools/landing_gear_bay_station_fit.py, tools/landing_gear_cowl_clearance.py, tools/landing_gear_foot_stance.py, tools/landing_gear_opening_fit.py, tools/landing_gear_r6_sizing.py, tools/landing_gear_wing_clearance.py, tools/mirror_claude_memory.py, tools/nacelle_esc_service.py, tools/open_mating_faces.py, tools/precommit_index.py, tools/precommit_kicad_load.py, tools/precommit_sanitize.py, tools/purge_stale_fcstd_objects.py, tools/tests/test_nacelle_esc_service.py, tools/validate_kicad.py, tools/validate_stls.py, tools/verify_bow_pod.py, tools/wing_airfoil_integrity.py, tools/wing_airfoil_variants.py, tools/wing_cfd_openfoam.py, tools/wing_internal_clearance.py, tools/wing_root_deconflict.py, tools/wing_section_figure.py, tools/wing_spar_carrythrough.py, tools/wing_spar_station_fit.py - `cad-mesh` (277): airframe/FreeCAD-scripts/Makefile, airframe/FreeCAD-scripts/faraday-enclosure.py, airframe/FreeCAD-scripts/freecad-stl2part.py, airframe/FreeCAD-scripts/make_flat_pattern.py, airframe/FreeCAD-scripts/serenity_assembly.py, airframe/FreeCAD-scripts/serenity_placeholders_assembly.py, airframe/blender-scripts/add_structural_features.py, airframe/blender-scripts/blender_edf_bore_and_petals.py, airframe/blender-scripts/blender_hollow_shells.py, airframe/blender-scripts/blender_intake_cut.py, airframe/blender-scripts/blender_middle_intake_cut.py, airframe/blender-scripts/blender_nacelle_revo.py, airframe/blender-scripts/blender_nozzle_gen.py, airframe/blender-scripts/blender_shells_2mm_solidify.py, airframe/blender-scripts/blender_shells_v3.py, airframe/blender-scripts/blender_stator_gen.py, airframe/blender-scripts/check_nacelle_alignment.py, airframe/blender-scripts/engrave_plaques.py, airframe/blender-scripts/engrave_shuttles.py, airframe/blender-scripts/files-hollowed-24in/cargo_sect_shell24_2mm_repaired.stl, airframe/blender-scripts/files-hollowed-24in/head_shell24_2mm_repaired.stl, airframe/blender-scripts/files-hollowed-24in/middle_shell24_2mm_repaired.stl, airframe/blender-scripts/files-hollowed-24in/operands/cargo_inner_opened.stl, airframe/blender-scripts/files-hollowed-24in/operands/cargo_sect_shell24_2mm_repaired__inner.stl, airframe/blender-scripts/files-hollowed-24in/operands/cargo_sect_shell24_2mm_repaired__outer.stl, airframe/blender-scripts/files-hollowed-24in/operands/head_inner_opened.stl, airframe/blender-scripts/files-hollowed-24in/operands/head_shell24_2mm_repaired__inner.stl, airframe/blender-scripts/files-hollowed-24in/operands/head_shell24_2mm_repaired__outer.stl, airframe/blender-scripts/files-hollowed-24in/operands/middle_inner_opened.stl, airframe/blender-scripts/files-hollowed-24in/operands/middle_shell24_2mm_repaired__inner.stl, airframe/blender-scripts/files-hollowed-24in/operands/middle_shell24_2mm_repaired__outer.stl, airframe/blender-scripts/files-hollowed-24in/operands/rear_inner_opened.stl, airframe/blender-scripts/files-hollowed-24in/operands/rear_shell24_2mm_repaired__inner.stl, airframe/blender-scripts/files-hollowed-24in/operands/rear_shell24_2mm_repaired__outer.stl, airframe/blender-scripts/files-hollowed-24in/operands/text_flight_engineer.stl, airframe/blender-scripts/files-hollowed-24in/operands/text_inara.stl, airframe/blender-scripts/files-hollowed-24in/operands/text_river.stl, airframe/blender-scripts/files-hollowed-24in/operands/text_shepherd.stl, airframe/blender-scripts/files-hollowed-24in/operands/text_simon.stl, airframe/blender-scripts/files-hollowed-24in/rear_shell24_2mm_repaired.stl, airframe/blender-scripts/fill_thin_details.py, airframe/blender-scripts/finalize_cargo_middle.py, airframe/blender-scripts/finalize_head_rear.py, airframe/blender-scripts/generate_overview_svgs.py, airframe/blender-scripts/hollow_manifold.py, airframe/blender-scripts/inspect_shell_center.py, airframe/blender-scripts/make_bay_text.py, airframe/blender-scripts/make_shuttle_text.py, airframe/blender-scripts/merge_cargo_interior.py, airframe/blender-scripts/merge_head_interior.py, airframe/blender-scripts/morph_open_voxel.py, airframe/blender-scripts/regen_rear_interior.py, airframe/blender-scripts/repair_shells_for_scad.py, airframe/blender-scripts/serenity_render_views.py, airframe/blender-scripts/verify_shells.py, airframe/freecad/assembly/SerenityAssembly.FCStd.bak2, airframe/freecad/assembly/leg_2_scaled-oriented.stl, airframe/openscad/fuselage/access_panels_24in.scad, airframe/openscad/fuselage/battery_tray.scad, airframe/openscad/fuselage/belly_panel.scad, airframe/openscad/fuselage/bow_sensor_faceplate.scad, airframe/openscad/fuselage/bow_sensor_pod.scad, airframe/openscad/fuselage/canonical_leg_r6_1_5in.scad, airframe/openscad/fuselage/canonical_leg_r6_3_0in.scad, airframe/openscad/fuselage/cargo/_export_cargo_port_root_chunk.scad, airframe/openscad/fuselage/cargo/cargo_sect_shell24.scad, airframe/openscad/fuselage/cargo/cargo_spar_drive.scad, airframe/openscad/fuselage/cargo/cargo_vera_faraday.scad, airframe/openscad/fuselage/head_shell24.scad, airframe/openscad/fuselage/landing_leg_assy.scad, airframe/openscad/fuselage/middle_canonical_shell24.scad, airframe/openscad/fuselage/rcrs49_wire_post.scad, airframe/openscad/fuselage/rear_shell24.scad, airframe/openscad/fuselage/wire_brace_leg.scad, airframe/openscad/fuselage/wire_loop_fuse.scad, airframe/openscad/nacelles/_export_inboard_cut.scad, airframe/openscad/nacelles/_export_pivot_slab.scad, airframe/openscad/nacelles/edf_aft_spider_sleeve.scad, airframe/openscad/nacelles/edf_stator_sleeve.scad, airframe/openscad/nacelles/gear_option_compare.scad, airframe/openscad/nacelles/nacelle_nozzle_iris.scad, airframe/openscad/nacelles/nacelle_nozzle_pushrod.scad, airframe/openscad/nacelles/nacelle_pod_50mm_tandem.scad, airframe/openscad/nacelles/nacelle_servo_bracket.scad, airframe/openscad/port_tilt_spar_assembly.scad, airframe/openscad/wings/wings_s1223_revo.scad, airframe/openscad/wings/wings_s1223_revo.scad.backup-2026-07-18, airframe/placeholders/avionics/Cape_A2_PCB_55x35mm.stl, airframe/placeholders/avionics/Cape_B2_PCB_55x35mm.stl, airframe/placeholders/avionics/FlightEngineer_PDB_90x65mm.stl, airframe/placeholders/avionics/PocketBeagle2_Industrial_56x35mm.stl, airframe/placeholders/avionics/XCVR_49MHZ2_PCB_55x35mm.stl, airframe/placeholders/avionics/microSD_64GB.stl, airframe/placeholders/bearings/B6804_20x32x7mm_GCS.stl, airframe/placeholders/bearings/MF104ZZ_4x10x4mm.stl, airframe/placeholders/bearings/MR63ZZ_3x6x2p5mm.stl, airframe/placeholders/cargo/DRV8833_Hbridge_breakout.stl, airframe/placeholders/cargo/Dyneema_SK75_0p5mm_coil.stl, airframe/placeholders/cargo/HX711_loadcell_ADC_breakout.stl, airframe/placeholders/cargo/N20_motor_300RPM_6V.stl, airframe/placeholders/faraday/Far_EMI_vent_40x40x6mm.stl, airframe/placeholders/faraday/Far_FT_panel_55x35mm.stl, airframe/placeholders/faraday/Far_bond_strap_100mm.stl, airframe/placeholders/faraday/Far_cage_AV_70x50x82mm.stl, airframe/placeholders/faraday/Far_fan_40mm_5V.stl, airframe/placeholders/faraday/Far_ferrite_4mm_ID.stl, airframe/placeholders/faraday/Far_gasket_AV_250x6x1mm.stl, airframe/placeholders/faraday/Mal_far_fan_40mm_5V.stl, airframe/placeholders/faraday/Mal_far_gasket_470x8x1p5mm.stl, airframe/placeholders/foam/Foam_fill_cargo_190x200x159mm.stl, airframe/placeholders/foam/Foam_fill_head_125x231x136mm.stl, airframe/placeholders/foam/Foam_fill_middle_horseshoe_173x69x161mm.stl, airframe/placeholders/foam/Foam_fill_rear_136x177x154mm.stl, airframe/placeholders/foam/Void_avionics_bay_62x42x75mm.stl, airframe/placeholders/foam/Void_cargo_bay_120x150x80mm.stl, airframe/placeholders/foam/Void_far_cage_76x56x88mm.stl, airframe/placeholders/foam/Void_far_fan_spur_44x44x50mm.stl, airframe/placeholders/foam/Void_nacelle_pylon_20x80x20mm.stl, airframe/placeholders/foam/Void_power_bus_25x500x25mm.stl, airframe/placeholders/foam/Void_vent_exhaust_20x300x20mm.stl, airframe/placeholders/foam/Void_vent_intake_20x250x20mm.stl, airframe/placeholders/foam/Void_wiring_trunk_30x700x20mm.stl, airframe/placeholders/gcs/AS5600_encoder_breakout_15x15mm.stl, airframe/placeholders/gcs/Antenna_2p4GHz_zigbee_rubber_duck.stl, airframe/placeholders/gcs/Antenna_49MHz_whip_940mm.stl, airframe/placeholders/gcs/Antenna_5GHz_panel_14dBi.stl, airframe/placeholders/gcs/Antenna_915MHz_Yagi_9dBi.stl, airframe/placeholders/gcs/Antenna_915MHz_omni_5dBi.stl, airframe/placeholders/gcs/Antenna_GNSS_patch_ANN_MB00.stl, airframe/placeholders/gcs/B6804_20x32x7mm_gimbal_pan.stl, airframe/placeholders/gcs/GPS_module_M10Q_SparkFun.stl, airframe/placeholders/gcs/N42_disc_magnet_6x2mm.stl, airframe/placeholders/gcs/Pololu_D24V22F6_6V2A_BEC.stl, airframe/placeholders/gcs/Pololu_D24V50F5_5V5A_BEC.stl, airframe/placeholders/gcs/RF_splitter_915MHz_2way_ZFSC.stl, airframe/placeholders/gcs/Skipper_enclosure_IP65_145x90x65mm.stl, airframe/placeholders/gcs/Skipper_tripod_antenna_mast.stl, airframe/placeholders/gcs/TCA9548A_I2C_mux_breakout.stl, airframe/placeholders/gears/Bevel_M1_14T_pair.stl, airframe/placeholders/gears/Bevel_housing_CF_PETG.stl, airframe/placeholders/gears/Pinion_M1_12T_R6mm.stl, airframe/placeholders/gears/Sector_gear_M1_R22mm.stl, airframe/placeholders/hardware/Batt_strap_silicone_16mm_CAM.stl, airframe/placeholders/hardware/Insert_M25_brass_L5.stl, airframe/placeholders/hardware/Insert_M3_brass_L5.stl, airframe/placeholders/hardware/Pin_SS_3x5mm_hinge.stl, airframe/placeholders/hardware/Screw_M3x8mm_button_ISO7380.stl, airframe/placeholders/lighting/WS2812C_2020_SMD.stl, airframe/placeholders/power/Fuse_MAXI_150A.stl, airframe/placeholders/power/Fuse_mini_40A.stl, airframe/placeholders/power/LiPo_4S_10000mAh_175x64x38mm_GCS.stl, airframe/placeholders/power/LiPo_6S_2800mAh_115x35x35mm.stl, airframe/placeholders/power/LiPo_6S_4000mAh_138x44x36mm.stl, airframe/placeholders/power/Shunt_CSS2H_2512K_1mohm.stl, airframe/placeholders/propulsion/EDF_120mm_6S_deferred.stl, airframe/placeholders/propulsion/EDF_50mm_6S.stl, airframe/placeholders/propulsion/ESC_40A_6S_BLHeli32.stl, airframe/placeholders/propulsion/ESC_80A_6S_BLHeli32_deferred.stl, airframe/placeholders/servos/DS3218MG_25kgcm.stl, airframe/placeholders/servos/SG90_micro.stl, airframe/placeholders/structural/CF_bar_6x3mm_620mm_keel.stl, airframe/placeholders/structural/CF_plate_2mm_200x300mm.stl, airframe/placeholders/structural/CF_rod_3mm_300mm_stock.stl, airframe/placeholders/structural/CF_rod_4mm_300mm_stock.stl, airframe/placeholders/structural/CF_tube_12mm_OD_1p5w_350mm_spar.stl, airframe/placeholders/structural/PTFE_sleeve_4mm_OD_3mm_ID_52mm.stl, airframe/placeholders/wiring/PTFE_conduit_4mm_OD_3mm_ID_700mm.stl, airframe/placeholders/wiring/Post_49MHz_base_load_coil.stl, airframe/placeholders/wiring/Wire_10AWG_silicone_400mm.stl, airframe/placeholders/wiring/Wire_28AWG_STP_bundle_500mm.stl, airframe/placeholders/wiring/Wire_49MHz_antenna_0p3mm_470mm.stl, airframe/placeholders/wiring/Wire_4AWG_silicone_200mm_pair.stl, airframe/stls/fuselage/battery_tray.stl, airframe/stls/fuselage/belly_panel.stl, airframe/stls/fuselage/bow_sensor_faceplate.stl, airframe/stls/fuselage/cargo/cargo_cradle_autolatch.stl, airframe/stls/fuselage/cargo/cargo_door_port.stl, airframe/stls/fuselage/cargo/cargo_door_servo_bracket.stl, airframe/stls/fuselage/cargo/cargo_door_stbd.stl, airframe/stls/fuselage/cargo/cargo_drv8833_tray.stl, airframe/stls/fuselage/cargo/cargo_fpv_bezel.stl, airframe/stls/fuselage/cargo/cargo_gps_retention_ring.stl, airframe/stls/fuselage/cargo/cargo_hinge_retention.stl, airframe/stls/fuselage/cargo/cargo_release_servo_bracket.stl, airframe/stls/fuselage/cargo/cargo_sect_shell24_2mm_bossed.stl, airframe/stls/fuselage/cargo/cargo_sect_shell24_2mm_repaired.stl, airframe/stls/fuselage/cargo/cargo_sect_shell24_repaired.stl, airframe/stls/fuselage/cargo/cargo_vera_faraday.stl, airframe/stls/fuselage/cargo/cargo_winch_motor_mount.stl, airframe/stls/fuselage/cargo/cargo_winch_spool.stl, airframe/stls/fuselage/cargo_middle_splice_collar.stl, airframe/stls/fuselage/dorsal_antenna_fin.stl, airframe/stls/fuselage/head_cargo_splice_collar.stl, airframe/stls/fuselage/head_shell24.stl, airframe/stls/fuselage/head_shell24_2mm_repaired.stl, airframe/stls/fuselage/inara_access_cover.stl, airframe/stls/fuselage/landing-gear/lg_r6_1_5in_hull_legs.stl, airframe/stls/fuselage/landing-gear/lg_r6_1_5in_hull_stance.stl, airframe/stls/fuselage/landing-gear/lg_r6_1_5in_leg_assembled.stl, airframe/stls/fuselage/landing-gear/lg_r6_1_5in_leg_deformed.stl, airframe/stls/fuselage/landing-gear/lg_r6_1_5in_leg_frame.stl, airframe/stls/fuselage/landing-gear/lg_r6_3_0in_hull_legs.stl, airframe/stls/fuselage/landing-gear/lg_r6_3_0in_hull_stance.stl, airframe/stls/fuselage/landing-gear/lg_r6_3_0in_leg_assembled.stl, airframe/stls/fuselage/landing-gear/lg_r6_3_0in_leg_deformed.stl, airframe/stls/fuselage/landing-gear/lg_r6_3_0in_leg_frame.stl, airframe/stls/fuselage/landing-gear/lg_r6_common_bay.stl, airframe/stls/fuselage/landing-gear/lg_r6_common_ductile_wire_deformed.stl, airframe/stls/fuselage/landing-gear/lg_r6_common_ductile_wire_nominal.stl, airframe/stls/fuselage/landing-gear/lg_r6_common_foot.stl, airframe/stls/fuselage/landing-gear/lg_r6_common_spring_wire_deformed.stl, airframe/stls/fuselage/landing-gear/lg_r6_common_spring_wire_nominal.stl, airframe/stls/fuselage/middle_canonical_edf_intake.stl, airframe/stls/fuselage/middle_canonical_shell24.stl, airframe/stls/fuselage/middle_rear_splice_collar.stl, airframe/stls/fuselage/middle_shell24_2mm_repaired.stl, airframe/stls/fuselage/rear_shell24_2mm_repaired.stl, airframe/stls/fuselage/river_access_cover.stl, airframe/stls/nacelles/edf_aft_spider_sleeve.stl, airframe/stls/nacelles/edf_stator_sleeve.stl, airframe/stls/nacelles/eng_left_shell24_50mm_repaired.stl, airframe/stls/nacelles/eng_right_shell24_50mm_repaired.stl, airframe/stls/nacelles/nacelle_port_revs.stl, airframe/stls/nacelles/nacelle_servo_bracket.stl, airframe/stls/nacelles/nacelle_stbd_revs.stl, airframe/stls/nacelles/nozzles/nacelle_nozzle_flap.stl, airframe/stls/nacelles/nozzles/nacelle_nozzle_flap_seal.stl, airframe/stls/nacelles/nozzles/nacelle_nozzle_iris-closed.stl, airframe/stls/nacelles/nozzles/nacelle_nozzle_iris-open.stl, airframe/stls/nacelles/nozzles/nacelle_nozzle_ring.stl, airframe/stls/nacelles/nozzles/nacelle_nozzle_throat.stl, airframe/stls/wings/wing_port_s1223_revo.stl, airframe/stls/wings/wing_stbd_s1223_revo.stl, deferred/aft-edf/openscad/aft_edf_plenum.scad, deferred/aft-edf/openscad/edf_120_motor_mount.scad, deferred/aft-edf/openscad/edf_120_thrust_tube.scad, deferred/aft-edf/openscad/neck_intake_frame.scad, deferred/aft-edf/openscad/rear_neck_intake_shell24.scad, deferred/aft-edf/stls/aft_edf_plenum.stl, deferred/aft-edf/stls/edf_120_motor_mount.stl, deferred/aft-edf/stls/edf_120_thrust_tube.stl, deferred/aft-edf/stls/neck_intake_frame.stl, deferred/aft-edf/stls/rear_nozzle_closed_asm.stl, deferred/aft-edf/stls/rear_nozzle_frame.stl, deferred/aft-edf/stls/rear_nozzle_petal.stl, deferred/aft-edf/stls/rear_nozzle_petal_hull_0.stl, deferred/aft-edf/stls/rear_nozzle_petal_hull_1.stl, deferred/aft-edf/stls/rear_nozzle_petal_hull_2.stl, deferred/aft-edf/stls/rear_nozzle_petal_hull_3.stl, deferred/aft-edf/stls/rear_nozzle_petal_hull_4.stl, deferred/aft-edf/stls/rear_nozzle_petal_hull_5.stl, deferred/aft-edf/stls/rear_nozzle_petal_hull_6.stl, deferred/aft-edf/stls/rear_nozzle_petal_hull_7.stl, deferred/aft-edf/stls/rear_shell24_2mm_edf_bored.stl, docs/references/thingverse-serenity/files/s_cargo_door.stl, docs/references/thingverse-serenity/files/s_cargo_door_strutts.stl, docs/references/thingverse-serenity/files/s_cargo_sect.stl, docs/references/thingverse-serenity/files/s_eng_left.stl, docs/references/thingverse-serenity/files/s_eng_pistons.stl, docs/references/thingverse-serenity/files/s_eng_piv_outer.stl, docs/references/thingverse-serenity/files/s_eng_piv_pins.stl, docs/references/thingverse-serenity/files/s_eng_right.stl, docs/references/thingverse-serenity/files/s_feet_x_4.stl, docs/references/thingverse-serenity/files/s_head.stl, docs/references/thingverse-serenity/files/s_legs.stl, docs/references/thingverse-serenity/files/s_middle.stl, docs/references/thingverse-serenity/files/s_pivot_arm_a.stl, docs/references/thingverse-serenity/files/s_rear.stl, docs/references/thingverse-serenity/files/s_wings_both.stl, docs/references/vimdrones_can_periph_pico_v1.0.stl, docs/references/vimdrones_esc_s50_v1.0.stl, gcs/skipper/hardware/enclosure/openscad/skipper_field_enclosure.scad, gcs/skipper/hardware/gimbal/openscad/skipper_gimbal_mount.scad, gcs/skipper/hardware/gimbal/openscad/skipper_gimbal_pan.scad, gcs/skipper/hardware/gimbal/openscad/skipper_gimbal_tilt.scad, graphical-build-guide/shellview/port_wall.stl, tools/purge_stale_fcstd_objects.py - `comms-protocol` (25): airframe/placeholders/avionics/XCVR_49MHZ2_PCB_55x35mm.stl, airframe/placeholders/gcs/Antenna_2p4GHz_zigbee_rubber_duck.stl, airframe/placeholders/gcs/Antenna_49MHz_whip_940mm.stl, airframe/placeholders/wiring/Post_49MHz_base_load_coil.stl, airframe/placeholders/wiring/Wire_49MHz_antenna_0p3mm_470mm.stl, avionics/firmware/cn/src/xcvr_kiss.c, avionics/firmware/cn/src/xcvr_kiss.h, avionics/firmware/common/include/ax25_types.h, avionics/kicad/Commo/gerbers/XCVR-49MHZ-2-B_Cu.gbr, avionics/kicad/Commo/gerbers/XCVR-49MHZ-2-B_Mask.gbr, avionics/kicad/Commo/gerbers/XCVR-49MHZ-2-B_Paste.gbr, avionics/kicad/Commo/gerbers/XCVR-49MHZ-2-B_Silkscreen.gbr, avionics/kicad/Commo/gerbers/XCVR-49MHZ-2-Edge_Cuts.gbr, avionics/kicad/Commo/gerbers/XCVR-49MHZ-2-F_Cu.gbr, avionics/kicad/Commo/gerbers/XCVR-49MHZ-2-F_Mask.gbr, avionics/kicad/Commo/gerbers/XCVR-49MHZ-2-F_Paste.gbr, avionics/kicad/Commo/gerbers/XCVR-49MHZ-2-F_Silkscreen.gbr, avionics/kicad/Commo/gerbers/XCVR-49MHZ-2-In1_Cu.gbr, avionics/kicad/Commo/gerbers/XCVR-49MHZ-2-In2_Cu.gbr, avionics/kicad/Commo/gerbers/XCVR-49MHZ-2-job.gbrjob, avionics/kicad/Commo/gerbers/XCVR-49MHZ-2.drl, avionics/kicad/complete_xcvr_49mhz2.py, avionics/kicad/fix_xcvr_labels.py, gcs/skipper/software/config/mavlink_router.conf, gcs/skipper/software/install/install_mavlink_router.sh - `deferred-future` (28): deferred/AGENTS.md, deferred/DEFERRED_ITEM_TEMPLATE.md, deferred/LICENSE, deferred/README.md, deferred/TODO.md, deferred/WBS.md, deferred/aft-edf/README.md, deferred/aft-edf/openscad/aft_edf_plenum.scad, deferred/aft-edf/openscad/edf_120_motor_mount.scad, deferred/aft-edf/openscad/edf_120_thrust_tube.scad, deferred/aft-edf/openscad/neck_intake_frame.scad, deferred/aft-edf/openscad/rear_neck_intake_shell24.scad, deferred/aft-edf/stls/aft_edf_plenum.stl, deferred/aft-edf/stls/edf_120_motor_mount.stl, deferred/aft-edf/stls/edf_120_thrust_tube.stl, deferred/aft-edf/stls/neck_intake_frame.stl, deferred/aft-edf/stls/rear_nozzle_closed_asm.stl, deferred/aft-edf/stls/rear_nozzle_frame.stl, deferred/aft-edf/stls/rear_nozzle_petal.stl, deferred/aft-edf/stls/rear_nozzle_petal_hull_0.stl, deferred/aft-edf/stls/rear_nozzle_petal_hull_1.stl, deferred/aft-edf/stls/rear_nozzle_petal_hull_2.stl, deferred/aft-edf/stls/rear_nozzle_petal_hull_3.stl, deferred/aft-edf/stls/rear_nozzle_petal_hull_4.stl, deferred/aft-edf/stls/rear_nozzle_petal_hull_5.stl, deferred/aft-edf/stls/rear_nozzle_petal_hull_6.stl, deferred/aft-edf/stls/rear_nozzle_petal_hull_7.stl, deferred/aft-edf/stls/rear_shell24_2mm_edf_bored.stl -- `documentation` (260): AGENTS.md, CLAUDE-MEMORY.md, CLAUDE.md, README.md, REFERENCES.md, REPO_ENFORCEMENT.md, SECURITY.md, TODO.md, WBS.md, airframe/AGENTS.md, airframe/HULL_FRAME_REFERENCE.md, airframe/README.md, airframe/SPEC_VERIFICATION_0.6.1.md, airframe/TODO.md, airframe/VERIFY_PLACEMENT_CHECKLIST.md, airframe/WBS.md, airframe/fuselage-covers/TODO.md, airframe/fuselage-covers/WBS.md, airframe/fuselage-joints/TODO.md, airframe/fuselage-joints/WBS.md, airframe/fuselage-mid/TODO.md, airframe/fuselage-mid/WBS.md, airframe/landing-gear/HANDOFF.md, airframe/landing-gear/TODO.md, airframe/landing-gear/WBS.md, airframe/wings-nacelles/TODO.md, airframe/wings-nacelles/WBS.md, avionics/AGENTS.md, avionics/README.md, avionics/TODO-1-9-COMPLETION-STATUS.md, avionics/TODO.md, avionics/WBS.md, avionics/emi-hardening/TODO.md, avionics/emi-hardening/WBS.md, avionics/firmware/AK7455_CALIBRATION_SPECIFICATION.md, avionics/firmware/README.md, avionics/firmware/TODO.md, avionics/firmware/WBS.md, avionics/firmware/dts/README.md, avionics/kicad/CAN-PERIPH-GW-1/CAN-PERIPH-GW-1.md, avionics/kicad/Commo/Commo.md, avionics/kicad/ENC-NACELLE-1.md, avionics/kicad/FlightEngineer/FlightEngineer.md, avionics/kicad/FlightEngineer/GENERATOR_DRIFT_ANALYSIS.md, avionics/kicad/Observer/OBSERVER_SOM_NETMAP.md, avionics/kicad/Observer/Observer.md, avionics/kicad/Observer/PCBNEW_SWIG_BUG.md, avionics/kicad/Observer/VERA_NOSE_TRAPEZOID.md, avionics/kicad/Pilot/PILOT_FOOTPRINT_VERIFICATION.md, avionics/kicad/Pilot/Pilot.md, avionics/kicad/README.md, avionics/kicad/TODO-1.2b-CHECKLIST.md, avionics/kicad/TODO-1.2b-KICAD-READY.md, avionics/kicad/TODO-1.2b-STATUS-REPORT.md, avionics/kicad/XO/XO.md, avionics/observer/TODO.md, avionics/observer/WBS.md, avionics/rev-s1/TODO.md, avionics/rev-s1/WBS.md, current-specification/AGENTS.md, current-specification/LICENSE_AND_ATTRIBUTION.md, current-specification/README.md, current-specification/SPEC_TEMPLATE.md, current-specification/TODO.md, deferred/AGENTS.md, deferred/DEFERRED_ITEM_TEMPLATE.md, deferred/README.md, deferred/TODO.md, deferred/WBS.md, deferred/aft-edf/README.md, docs/AGENTS.md, docs/AVIONICS_PB2_REDESIGN.md, docs/BATTERY_MOUNT.md, docs/CARGO_WINCH_SPECIFICATION.md, docs/DOCUMENTATION_RECONCILIATION_2026-07-28.md, docs/DOC_TEMPLATES.md, docs/DOC_VERIFICATION_0.6.2.md, docs/ETHERNET_PHY_TRADE.md, docs/FIRST_FLIGHT_READINESS.md, docs/LANDING_GEAR_ANALYSIS.md, docs/LICENSE, docs/MANIFEST.json, docs/NOZZLE_DRIVE_TRADE.md, docs/OBSERVER_LASER_ANALYSIS.md, docs/OBSERVER_MANUFACTURING_READINESS.md, docs/OSHW_CERTIFICATION.md, docs/PHASED_BUILD_GUIDE.md, docs/POWER_DISTRIBUTION.md, docs/PROTO_PRINT_DAVINCI_JR.md, docs/PYLON_INTEGRATION_2026-07-18.md, docs/README.md, docs/REVN_BUILD_GUIDE_24IN.md, docs/TILT_ENCODER_WIRING_EMI_SPEC.md, docs/TILT_SPAR_ANALYSIS.md, docs/TODO.md, docs/TODO_1_1_0_COMPLETION_SUMMARY.md, docs/VERIFY_PLACEMENT_WORKFLOW.md, docs/WBS.md, docs/WBS_FEDERATION.md, docs/attribution_and_licensing.md, docs/bom_revR.json, docs/electrical_fault_margins.md, docs/failsafe_thresholds.md, docs/flight_envelope.md, docs/img/assembled-iso.png, docs/img/leg.png, docs/img/nozzle_drive_trade.png, docs/img/port-nacelle-horizontal.png, docs/img/splice-collar.png, docs/img/starboard-nacelle-vert.png, docs/img/transparent-nacelle.png, docs/img/wing_rev_r1a_sections.png, docs/img/wing_rev_s1c_sections.png, docs/plans/2026-08-24-001-fix-wing-repair-root-joint-plan.md, docs/plans/2026-08-25-001-finish-avionics-plan.md, docs/plans/2026-08-25-002-finish-airframe-components-plan.md, docs/plans/2026-08-25-003-feat-emi-rf-design-test-plan-plan.md, docs/references/108090023_STS3215-C001_Datasheet.pdf, docs/references/Bus_servo_control_circuit.pdf, docs/references/CERN_OHL_rationale.pdf, docs/references/EDF Ducted Fan XFly Galaxy X5 XFLY-Model 50mm 12 blades + 6S Motor 3200KV - Xfly-Model.html, docs/references/EDF Ducted Fan XFly Galaxy X5 XFLY-Model 50mm 12 blades + 6S Motor 3200KV - Xfly-Model_files/1.jpg, docs/references/EDF Ducted Fan XFly Galaxy X5 XFLY-Model 50mm 12 blades + 6S Motor 3200KV - Xfly-Model_files/2.jpg, docs/references/EDF Ducted Fan XFly Galaxy X5 XFLY-Model 50mm 12 blades + 6S Motor 3200KV - Xfly-Model_files/37110-cart_default.webp, docs/references/EDF Ducted Fan XFly Galaxy X5 XFLY-Model 50mm 12 blades + 6S Motor 3200KV - Xfly-Model_files/37111-cart_default.webp, docs/references/EDF Ducted Fan XFly Galaxy X5 XFLY-Model 50mm 12 blades + 6S Motor 3200KV - Xfly-Model_files/37112-cart_default.webp, docs/references/EDF Ducted Fan XFly Galaxy X5 XFLY-Model 50mm 12 blades + 6S Motor 3200KV - Xfly-Model_files/37113-cart_default.webp, docs/references/EDF Ducted Fan XFly Galaxy X5 XFLY-Model 50mm 12 blades + 6S Motor 3200KV - Xfly-Model_files/37113-large_default.webp, docs/references/EDF Ducted Fan XFly Galaxy X5 XFLY-Model 50mm 12 blades + 6S Motor 3200KV - Xfly-Model_files/37114-cart_default.webp, docs/references/EDF Ducted Fan XFly Galaxy X5 XFLY-Model 50mm 12 blades + 6S Motor 3200KV - Xfly-Model_files/37115-cart_default.webp, docs/references/EDF Ducted Fan XFly Galaxy X5 XFLY-Model 50mm 12 blades + 6S Motor 3200KV - Xfly-Model_files/76a8e5b0fe9140cf057b953efbc49a1f.webp, docs/references/EDF Ducted Fan XFly Galaxy X5 XFLY-Model 50mm 12 blades + 6S Motor 3200KV - Xfly-Model_files/EDF50mm-02.webp, docs/references/EDF Ducted Fan XFly Galaxy X5 XFLY-Model 50mm 12 blades + 6S Motor 3200KV - Xfly-Model_files/analytics.js, docs/references/EDF Ducted Fan XFly Galaxy X5 XFLY-Model 50mm 12 blades + 6S Motor 3200KV - Xfly-Model_files/css.css, docs/references/EDF Ducted Fan XFly Galaxy X5 XFLY-Model 50mm 12 blades + 6S Motor 3200KV - Xfly-Model_files/css_002.css, docs/references/EDF Ducted Fan XFly Galaxy X5 XFLY-Model 50mm 12 blades + 6S Motor 3200KV - Xfly-Model_files/edf-ducted-fan-xfly-galaxy-x3-xfly-model-30mm-12-blades-3s-.webp, docs/references/EDF Ducted Fan XFly Galaxy X5 XFLY-Model 50mm 12 blades + 6S Motor 3200KV - Xfly-Model_files/edf-ducted-fan-xfly-galaxy-x3-xfly-model-30mm-12-blades-4s-.webp, docs/references/EDF Ducted Fan XFly Galaxy X5 XFLY-Model 50mm 12 blades + 6S Motor 3200KV - Xfly-Model_files/edf-ducted-fan-xfly-galaxy-x4-xfly-model-40mm-12-blades-3s4.webp, docs/references/EDF Ducted Fan XFly Galaxy X5 XFLY-Model 50mm 12 blades + 6S Motor 3200KV - Xfly-Model_files/edf-ducted-fan-xfly-galaxy-x4-xfly-model-40mm-12-blades_002.webp, docs/references/EDF Ducted Fan XFly Galaxy X5 XFLY-Model 50mm 12 blades + 6S Motor 3200KV - Xfly-Model_files/edf-ducted-fan-xfly-galaxy-x5-xfly-model-50mm-12-blades-3s-.webp, docs/references/EDF Ducted Fan XFly Galaxy X5 XFLY-Model 50mm 12 blades + 6S Motor 3200KV - Xfly-Model_files/edf-ducted-fan-xfly-galaxy-x5-xfly-model-50mm-12-blades-4s-.webp, docs/references/EDF Ducted Fan XFly Galaxy X5 XFLY-Model 50mm 12 blades + 6S Motor 3200KV - Xfly-Model_files/edf-ducted-fan-xfly-galaxy-x5-xfly-model-50mm-12-blades-6s-.webp, docs/references/EDF Ducted Fan XFly Galaxy X5 XFLY-Model 50mm 12 blades + 6S Motor 3200KV - Xfly-Model_files/edf-ducted-fan-xfly-galaxy-x5-xfly-model-50mm-12-blades_002.webp, docs/references/EDF Ducted Fan XFly Galaxy X5 XFLY-Model 50mm 12 blades + 6S Motor 3200KV - Xfly-Model_files/edf-ducted-fan-xfly-galaxy-x5-xfly-model-50mm-12-blades_003.webp, docs/references/EDF Ducted Fan XFly Galaxy X5 XFLY-Model 50mm 12 blades + 6S Motor 3200KV - Xfly-Model_files/edf-ducted-fan-xfly-galaxy-x5-xfly-model-50mm-12-blades_004.webp, docs/references/EDF Ducted Fan XFly Galaxy X5 XFLY-Model 50mm 12 blades + 6S Motor 3200KV - Xfly-Model_files/edf-ducted-fan-xfly-galaxy-x5-xfly-model-50mm-12-blades_005.webp, docs/references/EDF Ducted Fan XFly Galaxy X5 XFLY-Model 50mm 12 blades + 6S Motor 3200KV - Xfly-Model_files/edf-ducted-fan-xfly-galaxy-x5-xfly-model-50mm-12-blades_006.webp, docs/references/EDF Ducted Fan XFly Galaxy X5 XFLY-Model 50mm 12 blades + 6S Motor 3200KV - Xfly-Model_files/edf-ducted-fan-xfly-galaxy-x5-xfly-model-50mm-12-blades_007.webp, docs/references/EDF Ducted Fan XFly Galaxy X5 XFLY-Model 50mm 12 blades + 6S Motor 3200KV - Xfly-Model_files/edf-ducted-fan-xfly-galaxy-x6-xfly-model-64mm-12-blades-3s-.webp, docs/references/EDF Ducted Fan XFly Galaxy X5 XFLY-Model 50mm 12 blades + 6S Motor 3200KV - Xfly-Model_files/edf-ducted-fan-xfly-galaxy-x6-xfly-model-64mm-12-blades-4s-.webp, docs/references/EDF Ducted Fan XFly Galaxy X5 XFLY-Model 50mm 12 blades + 6S Motor 3200KV - Xfly-Model_files/edf-ducted-fan-xfly-galaxy-x6-xfly-model-64mm-12-blades-6s-.webp, docs/references/EDF Ducted Fan XFly Galaxy X5 XFLY-Model 50mm 12 blades + 6S Motor 3200KV - Xfly-Model_files/edf-ducted-fan-xfly-galaxy-x7-xfly-model-70mm-12-blades-6s-.webp, docs/references/EDF Ducted Fan XFly Galaxy X5 XFLY-Model 50mm 12 blades + 6S Motor 3200KV - Xfly-Model_files/edf-ducted-fan-xfly-galaxy-x7-xfly-model-70mm-12-blades_002.webp, docs/references/EDF Ducted Fan XFly Galaxy X5 XFLY-Model 50mm 12 blades + 6S Motor 3200KV - Xfly-Model_files/edf-ducted-fan-xfly-galaxy-x8-xfly-model-80mm-12-blades-6s-.webp, docs/references/EDF Ducted Fan XFly Galaxy X5 XFLY-Model 50mm 12 blades + 6S Motor 3200KV - Xfly-Model_files/edf-ducted-fan-xfly-galaxy-x8-xfly-model-80mm-12-blades_002.webp, docs/references/EDF Ducted Fan XFly Galaxy X5 XFLY-Model 50mm 12 blades + 6S Motor 3200KV - Xfly-Model_files/ga.js, docs/references/EDF Ducted Fan XFly Galaxy X5 XFLY-Model 50mm 12 blades + 6S Motor 3200KV - Xfly-Model_files/mollie.js, docs/references/EDF Ducted Fan XFly Galaxy X5 XFLY-Model 50mm 12 blades + 6S Motor 3200KV - Xfly-Model_files/v_114_a4444adaf1056832dd63b28b928b74e6.js, docs/references/EDF Ducted Fan XFly Galaxy X5 XFLY-Model 50mm 12 blades + 6S Motor 3200KV - Xfly-Model_files/v_138_03a718a060cf48c0e5393bbea5cb1aa7_all.css, docs/references/EDF Ducted Fan XFly Galaxy X5 XFLY-Model 50mm 12 blades + 6S Motor 3200KV - Xfly-Model_files/v_138_c1bb31e2f03fadfdc659940cc14955dc_print.css, docs/references/EDF Ducted Fan XFly Galaxy X5 XFLY-Model 50mm 12 blades + 6S Motor 3200KV - Xfly-Model_files/xfly-64mm-edf-glider-nacelle-for-swift-2100.webp, docs/references/EDF Ducted Fan XFly Galaxy X5 XFLY-Model 50mm 12 blades + 6S Motor 3200KV - Xfly-Model_files/xfly-edf-glider-nacelle-for-swift-2100-827-50mm.webp, docs/references/EDF Ducted Fan XFly Galaxy X5 XFLY-Model 50mm 12 blades + 6S Motor 3200KV - Xfly-Model_files/xfly-model-logo-16966716258.jpg, docs/references/POCKETBEAGLE2 V10_241220.DSN, docs/references/ST3215 memory register map-EN.xls, docs/references/ST3215-2D.zip, docs/references/ST3215-3D.zip, docs/references/Screenshot 2026-08-18 at 09-50-31 EDF Ducted Fan XFly Galaxy X5 XFLY-Model 50mm 12 blades 6S Motor 3200KV - Xfly-Model.png, docs/references/Servo_Driver_with_ESP32_3D.zip, docs/references/The_Official_Serenity_Blueprints_Reference_Pack.pdf, docs/references/nick-henning/Re: Contact got a new submission - Nick Henning - 2026-07-06 1421.txt, docs/references/nick-henning/nick-henning-close-back-combine.jpg, docs/references/nick-henning/nick-henning-close-bridge-combine.jpg, docs/references/nick-henning/nick-henning-close-gear-combine.jpg, docs/references/nick-henning/nick-henning-final-backside-combine.jpg, docs/references/nick-henning/nick-henning-final-front-combine.jpg, docs/references/nick-henning/nick-henning-final-top-combine.jpg, docs/references/nick-henning/nick-henning-uvdisplay-engine.jpg, docs/references/nick-henning/nick-henning-uvdisplay-gear.jpg, docs/references/nick-henning/nick-henning-uvdisplay-wing.jpg, docs/references/nick-henning/port-bow-full-henning.jpg, docs/references/nick-henning/port-bow-upper-bridge-with-wireframe-henning.jpg, docs/references/nick-henning/port-bow-view-with-wireframe-henning.jpg, docs/references/nick-henning/port-quarter-with-wireframe-henning.jpg, docs/references/nick-henning/top-view-with-wireframe-henning.jpg, docs/references/open-source-hardware-checklist.pdf, docs/references/pocketbeagle2 revA_241205.brd, docs/references/scservo.zip.zip, docs/references/thingverse-serenity/LICENSE.txt, docs/references/thingverse-serenity/README.txt, docs/references/thingverse-serenity/files/s_cargo_door.stl, docs/references/thingverse-serenity/files/s_cargo_door_strutts.stl, docs/references/thingverse-serenity/files/s_cargo_sect.stl, docs/references/thingverse-serenity/files/s_eng_left.stl, docs/references/thingverse-serenity/files/s_eng_pistons.stl, docs/references/thingverse-serenity/files/s_eng_piv_outer.stl, docs/references/thingverse-serenity/files/s_eng_piv_pins.stl, docs/references/thingverse-serenity/files/s_eng_right.stl, docs/references/thingverse-serenity/files/s_feet_x_4.stl, docs/references/thingverse-serenity/files/s_head.stl, docs/references/thingverse-serenity/files/s_legs.stl, docs/references/thingverse-serenity/files/s_middle.stl, docs/references/thingverse-serenity/files/s_pivot_arm_a.stl, docs/references/thingverse-serenity/files/s_rear.stl, docs/references/thingverse-serenity/files/s_wings_both.stl, docs/references/thingverse-serenity/images/front-starboard.png, docs/references/thingverse-serenity/images/s_01.jpg, docs/references/thingverse-serenity/images/s_02.jpg, docs/references/thingverse-serenity/images/s_03.jpg, docs/references/thingverse-serenity/images/s_04.jpg, docs/references/thingverse-serenity/images/s_05.jpg, docs/references/thingverse-serenity/images/s_06.jpg, docs/references/thingverse-serenity/images/s_07.jpg, docs/references/thingverse-serenity/images/s_08.jpg, docs/references/thingverse-serenity/images/s_09.jpg, docs/references/thingverse-serenity/images/s_10.jpg, docs/references/thingverse-serenity/images/s_11.jpg, docs/references/thingverse-serenity/images/s_cargo_door.png, docs/references/thingverse-serenity/images/s_cargo_door_strutts.png, docs/references/thingverse-serenity/images/s_cargo_sect.png, docs/references/thingverse-serenity/images/s_eng_left.png, docs/references/thingverse-serenity/images/s_eng_pistons.png, docs/references/thingverse-serenity/images/s_eng_piv_outer.png, docs/references/thingverse-serenity/images/s_eng_piv_pins.png, docs/references/thingverse-serenity/images/s_eng_right.png, docs/references/thingverse-serenity/images/s_feet_x_4.png, docs/references/thingverse-serenity/images/s_head.png, docs/references/thingverse-serenity/images/s_legs.png, docs/references/thingverse-serenity/images/s_middle.png, docs/references/thingverse-serenity/images/s_pivot_arm_a.png, docs/references/thingverse-serenity/images/s_rear.png, docs/references/thingverse-serenity/images/s_wings_both.png, docs/references/vimdrones_can_periph_pico_v1.0.stl, docs/references/vimdrones_esc_s50_v1.0.step, docs/references/vimdrones_esc_s50_v1.0.stl, docs/references/vimdrones_esc_s50_wiring.png, docs/solutions/design-patterns/reducing-token-cost-of-federated-agents-md.md, docs/structural_analysis.md, gcs/AGENTS.md, gcs/README.md, gcs/SKIPPER_SPEC.md, gcs/TODO.md, gcs/WBS.md, gcs/skipper/README.md, gcs/skipper/hardware/docs/skipper_antenna_spec.md, gcs/skipper/hardware/docs/skipper_power_budget.md, gcs/skipper/hardware/docs/skipper_wiring.md, graphical-build-guide/AGENTS.md, graphical-build-guide/BUILD_GUIDE_TEMPLATE.md, graphical-build-guide/README.md, graphical-build-guide/REVN_BUILD_GUIDE_24IN.md, graphical-build-guide/TODO-old.md, graphical-build-guide/TODO.md, graphical-build-guide/WBS.md, graphical-build-guide/flight-phases/TODO.md, graphical-build-guide/flight-phases/WBS.md, tools/AGENTS.md, tools/README.md, tools/TODO.md, tools/TOOL_REFERENCE.md +- `documentation` (261): AGENTS.md, CLAUDE-MEMORY.md, CLAUDE.md, README.md, REFERENCES.md, REPO_ENFORCEMENT.md, SECURITY.md, TODO.md, WBS.md, airframe/AGENTS.md, airframe/HULL_FRAME_REFERENCE.md, airframe/README.md, airframe/SPEC_VERIFICATION_0.6.1.md, airframe/TODO.md, airframe/VERIFY_PLACEMENT_CHECKLIST.md, airframe/WBS.md, airframe/fuselage-covers/TODO.md, airframe/fuselage-covers/WBS.md, airframe/fuselage-joints/TODO.md, airframe/fuselage-joints/WBS.md, airframe/fuselage-mid/TODO.md, airframe/fuselage-mid/WBS.md, airframe/landing-gear/HANDOFF.md, airframe/landing-gear/TODO.md, airframe/landing-gear/WBS.md, airframe/wings-nacelles/TODO.md, airframe/wings-nacelles/WBS.md, avionics/AGENTS.md, avionics/README.md, avionics/TODO-1-9-COMPLETION-STATUS.md, avionics/TODO.md, avionics/WBS.md, avionics/emi-hardening/TODO.md, avionics/emi-hardening/WBS.md, avionics/firmware/AK7455_CALIBRATION_SPECIFICATION.md, avionics/firmware/README.md, avionics/firmware/TODO.md, avionics/firmware/WBS.md, avionics/firmware/dts/README.md, avionics/kicad/CAN-PERIPH-GW-1/CAN-PERIPH-GW-1.md, avionics/kicad/Commo/Commo.md, avionics/kicad/ENC-NACELLE-1.md, avionics/kicad/FlightEngineer/FlightEngineer.md, avionics/kicad/FlightEngineer/GENERATOR_DRIFT_ANALYSIS.md, avionics/kicad/Observer/OBSERVER_SOM_NETMAP.md, avionics/kicad/Observer/Observer.md, avionics/kicad/Observer/PCBNEW_SWIG_BUG.md, avionics/kicad/Observer/VERA_NOSE_TRAPEZOID.md, avionics/kicad/Pilot/PILOT_FOOTPRINT_VERIFICATION.md, avionics/kicad/Pilot/Pilot.md, avionics/kicad/README.md, avionics/kicad/TODO-1.2b-CHECKLIST.md, avionics/kicad/TODO-1.2b-KICAD-READY.md, avionics/kicad/TODO-1.2b-STATUS-REPORT.md, avionics/kicad/XO/XO.md, avionics/observer/TODO.md, avionics/observer/WBS.md, avionics/rev-s1/TODO.md, avionics/rev-s1/WBS.md, current-specification/AGENTS.md, current-specification/LICENSE_AND_ATTRIBUTION.md, current-specification/README.md, current-specification/SPEC_TEMPLATE.md, current-specification/TODO.md, deferred/AGENTS.md, deferred/DEFERRED_ITEM_TEMPLATE.md, deferred/README.md, deferred/TODO.md, deferred/WBS.md, deferred/aft-edf/README.md, docs/AGENTS.md, docs/AVIONICS_PB2_REDESIGN.md, docs/BATTERY_MOUNT.md, docs/CARGO_WINCH_SPECIFICATION.md, docs/DOCUMENTATION_RECONCILIATION_2026-07-28.md, docs/DOC_TEMPLATES.md, docs/DOC_VERIFICATION_0.6.2.md, docs/ETHERNET_PHY_TRADE.md, docs/FIRST_FLIGHT_READINESS.md, docs/LANDING_GEAR_ANALYSIS.md, docs/LICENSE, docs/MANIFEST.json, docs/NOZZLE_DRIVE_TRADE.md, docs/OBSERVER_LASER_ANALYSIS.md, docs/OBSERVER_MANUFACTURING_READINESS.md, docs/OSHW_CERTIFICATION.md, docs/PHASED_BUILD_GUIDE.md, docs/POWER_DISTRIBUTION.md, docs/PROTO_PRINT_DAVINCI_JR.md, docs/PYLON_INTEGRATION_2026-07-18.md, docs/README.md, docs/REVN_BUILD_GUIDE_24IN.md, docs/TILT_ENCODER_WIRING_EMI_SPEC.md, docs/TILT_SPAR_ANALYSIS.md, docs/TODO.md, docs/TODO_1_1_0_COMPLETION_SUMMARY.md, docs/VERIFY_PLACEMENT_WORKFLOW.md, docs/WBS.md, docs/WBS_FEDERATION.md, docs/attribution_and_licensing.md, docs/bom_revR.json, docs/electrical_fault_margins.md, docs/failsafe_thresholds.md, docs/flight_envelope.md, docs/img/assembled-iso.png, docs/img/leg.png, docs/img/nozzle_drive_trade.png, docs/img/port-nacelle-horizontal.png, docs/img/splice-collar.png, docs/img/starboard-nacelle-vert.png, docs/img/transparent-nacelle.png, docs/img/wing_rev_r1a_sections.png, docs/img/wing_rev_s1c_sections.png, docs/plans/2026-08-24-001-fix-wing-repair-root-joint-plan.md, docs/plans/2026-08-25-001-finish-avionics-plan.md, docs/plans/2026-08-25-002-finish-airframe-components-plan.md, docs/plans/2026-08-25-003-feat-emi-rf-design-test-plan-plan.md, docs/plans/2026-08-26-001-nacelle-esc-intake-integration-plan.md, docs/references/108090023_STS3215-C001_Datasheet.pdf, docs/references/Bus_servo_control_circuit.pdf, docs/references/CERN_OHL_rationale.pdf, docs/references/EDF Ducted Fan XFly Galaxy X5 XFLY-Model 50mm 12 blades + 6S Motor 3200KV - Xfly-Model.html, docs/references/EDF Ducted Fan XFly Galaxy X5 XFLY-Model 50mm 12 blades + 6S Motor 3200KV - Xfly-Model_files/1.jpg, docs/references/EDF Ducted Fan XFly Galaxy X5 XFLY-Model 50mm 12 blades + 6S Motor 3200KV - Xfly-Model_files/2.jpg, docs/references/EDF Ducted Fan XFly Galaxy X5 XFLY-Model 50mm 12 blades + 6S Motor 3200KV - Xfly-Model_files/37110-cart_default.webp, docs/references/EDF Ducted Fan XFly Galaxy X5 XFLY-Model 50mm 12 blades + 6S Motor 3200KV - Xfly-Model_files/37111-cart_default.webp, docs/references/EDF Ducted Fan XFly Galaxy X5 XFLY-Model 50mm 12 blades + 6S Motor 3200KV - Xfly-Model_files/37112-cart_default.webp, docs/references/EDF Ducted Fan XFly Galaxy X5 XFLY-Model 50mm 12 blades + 6S Motor 3200KV - Xfly-Model_files/37113-cart_default.webp, docs/references/EDF Ducted Fan XFly Galaxy X5 XFLY-Model 50mm 12 blades + 6S Motor 3200KV - Xfly-Model_files/37113-large_default.webp, docs/references/EDF Ducted Fan XFly Galaxy X5 XFLY-Model 50mm 12 blades + 6S Motor 3200KV - Xfly-Model_files/37114-cart_default.webp, docs/references/EDF Ducted Fan XFly Galaxy X5 XFLY-Model 50mm 12 blades + 6S Motor 3200KV - Xfly-Model_files/37115-cart_default.webp, docs/references/EDF Ducted Fan XFly Galaxy X5 XFLY-Model 50mm 12 blades + 6S Motor 3200KV - Xfly-Model_files/76a8e5b0fe9140cf057b953efbc49a1f.webp, docs/references/EDF Ducted Fan XFly Galaxy X5 XFLY-Model 50mm 12 blades + 6S Motor 3200KV - Xfly-Model_files/EDF50mm-02.webp, docs/references/EDF Ducted Fan XFly Galaxy X5 XFLY-Model 50mm 12 blades + 6S Motor 3200KV - Xfly-Model_files/analytics.js, docs/references/EDF Ducted Fan XFly Galaxy X5 XFLY-Model 50mm 12 blades + 6S Motor 3200KV - Xfly-Model_files/css.css, docs/references/EDF Ducted Fan XFly Galaxy X5 XFLY-Model 50mm 12 blades + 6S Motor 3200KV - Xfly-Model_files/css_002.css, docs/references/EDF Ducted Fan XFly Galaxy X5 XFLY-Model 50mm 12 blades + 6S Motor 3200KV - Xfly-Model_files/edf-ducted-fan-xfly-galaxy-x3-xfly-model-30mm-12-blades-3s-.webp, docs/references/EDF Ducted Fan XFly Galaxy X5 XFLY-Model 50mm 12 blades + 6S Motor 3200KV - Xfly-Model_files/edf-ducted-fan-xfly-galaxy-x3-xfly-model-30mm-12-blades-4s-.webp, docs/references/EDF Ducted Fan XFly Galaxy X5 XFLY-Model 50mm 12 blades + 6S Motor 3200KV - Xfly-Model_files/edf-ducted-fan-xfly-galaxy-x4-xfly-model-40mm-12-blades-3s4.webp, docs/references/EDF Ducted Fan XFly Galaxy X5 XFLY-Model 50mm 12 blades + 6S Motor 3200KV - Xfly-Model_files/edf-ducted-fan-xfly-galaxy-x4-xfly-model-40mm-12-blades_002.webp, docs/references/EDF Ducted Fan XFly Galaxy X5 XFLY-Model 50mm 12 blades + 6S Motor 3200KV - Xfly-Model_files/edf-ducted-fan-xfly-galaxy-x5-xfly-model-50mm-12-blades-3s-.webp, docs/references/EDF Ducted Fan XFly Galaxy X5 XFLY-Model 50mm 12 blades + 6S Motor 3200KV - Xfly-Model_files/edf-ducted-fan-xfly-galaxy-x5-xfly-model-50mm-12-blades-4s-.webp, docs/references/EDF Ducted Fan XFly Galaxy X5 XFLY-Model 50mm 12 blades + 6S Motor 3200KV - Xfly-Model_files/edf-ducted-fan-xfly-galaxy-x5-xfly-model-50mm-12-blades-6s-.webp, docs/references/EDF Ducted Fan XFly Galaxy X5 XFLY-Model 50mm 12 blades + 6S Motor 3200KV - Xfly-Model_files/edf-ducted-fan-xfly-galaxy-x5-xfly-model-50mm-12-blades_002.webp, docs/references/EDF Ducted Fan XFly Galaxy X5 XFLY-Model 50mm 12 blades + 6S Motor 3200KV - Xfly-Model_files/edf-ducted-fan-xfly-galaxy-x5-xfly-model-50mm-12-blades_003.webp, docs/references/EDF Ducted Fan XFly Galaxy X5 XFLY-Model 50mm 12 blades + 6S Motor 3200KV - Xfly-Model_files/edf-ducted-fan-xfly-galaxy-x5-xfly-model-50mm-12-blades_004.webp, docs/references/EDF Ducted Fan XFly Galaxy X5 XFLY-Model 50mm 12 blades + 6S Motor 3200KV - Xfly-Model_files/edf-ducted-fan-xfly-galaxy-x5-xfly-model-50mm-12-blades_005.webp, docs/references/EDF Ducted Fan XFly Galaxy X5 XFLY-Model 50mm 12 blades + 6S Motor 3200KV - Xfly-Model_files/edf-ducted-fan-xfly-galaxy-x5-xfly-model-50mm-12-blades_006.webp, docs/references/EDF Ducted Fan XFly Galaxy X5 XFLY-Model 50mm 12 blades + 6S Motor 3200KV - Xfly-Model_files/edf-ducted-fan-xfly-galaxy-x5-xfly-model-50mm-12-blades_007.webp, docs/references/EDF Ducted Fan XFly Galaxy X5 XFLY-Model 50mm 12 blades + 6S Motor 3200KV - Xfly-Model_files/edf-ducted-fan-xfly-galaxy-x6-xfly-model-64mm-12-blades-3s-.webp, docs/references/EDF Ducted Fan XFly Galaxy X5 XFLY-Model 50mm 12 blades + 6S Motor 3200KV - Xfly-Model_files/edf-ducted-fan-xfly-galaxy-x6-xfly-model-64mm-12-blades-4s-.webp, docs/references/EDF Ducted Fan XFly Galaxy X5 XFLY-Model 50mm 12 blades + 6S Motor 3200KV - Xfly-Model_files/edf-ducted-fan-xfly-galaxy-x6-xfly-model-64mm-12-blades-6s-.webp, docs/references/EDF Ducted Fan XFly Galaxy X5 XFLY-Model 50mm 12 blades + 6S Motor 3200KV - Xfly-Model_files/edf-ducted-fan-xfly-galaxy-x7-xfly-model-70mm-12-blades-6s-.webp, docs/references/EDF Ducted Fan XFly Galaxy X5 XFLY-Model 50mm 12 blades + 6S Motor 3200KV - Xfly-Model_files/edf-ducted-fan-xfly-galaxy-x7-xfly-model-70mm-12-blades_002.webp, docs/references/EDF Ducted Fan XFly Galaxy X5 XFLY-Model 50mm 12 blades + 6S Motor 3200KV - Xfly-Model_files/edf-ducted-fan-xfly-galaxy-x8-xfly-model-80mm-12-blades-6s-.webp, docs/references/EDF Ducted Fan XFly Galaxy X5 XFLY-Model 50mm 12 blades + 6S Motor 3200KV - Xfly-Model_files/edf-ducted-fan-xfly-galaxy-x8-xfly-model-80mm-12-blades_002.webp, docs/references/EDF Ducted Fan XFly Galaxy X5 XFLY-Model 50mm 12 blades + 6S Motor 3200KV - Xfly-Model_files/ga.js, docs/references/EDF Ducted Fan XFly Galaxy X5 XFLY-Model 50mm 12 blades + 6S Motor 3200KV - Xfly-Model_files/mollie.js, docs/references/EDF Ducted Fan XFly Galaxy X5 XFLY-Model 50mm 12 blades + 6S Motor 3200KV - Xfly-Model_files/v_114_a4444adaf1056832dd63b28b928b74e6.js, docs/references/EDF Ducted Fan XFly Galaxy X5 XFLY-Model 50mm 12 blades + 6S Motor 3200KV - Xfly-Model_files/v_138_03a718a060cf48c0e5393bbea5cb1aa7_all.css, docs/references/EDF Ducted Fan XFly Galaxy X5 XFLY-Model 50mm 12 blades + 6S Motor 3200KV - Xfly-Model_files/v_138_c1bb31e2f03fadfdc659940cc14955dc_print.css, docs/references/EDF Ducted Fan XFly Galaxy X5 XFLY-Model 50mm 12 blades + 6S Motor 3200KV - Xfly-Model_files/xfly-64mm-edf-glider-nacelle-for-swift-2100.webp, docs/references/EDF Ducted Fan XFly Galaxy X5 XFLY-Model 50mm 12 blades + 6S Motor 3200KV - Xfly-Model_files/xfly-edf-glider-nacelle-for-swift-2100-827-50mm.webp, docs/references/EDF Ducted Fan XFly Galaxy X5 XFLY-Model 50mm 12 blades + 6S Motor 3200KV - Xfly-Model_files/xfly-model-logo-16966716258.jpg, docs/references/POCKETBEAGLE2 V10_241220.DSN, docs/references/ST3215 memory register map-EN.xls, docs/references/ST3215-2D.zip, docs/references/ST3215-3D.zip, docs/references/Screenshot 2026-08-18 at 09-50-31 EDF Ducted Fan XFly Galaxy X5 XFLY-Model 50mm 12 blades 6S Motor 3200KV - Xfly-Model.png, docs/references/Servo_Driver_with_ESP32_3D.zip, docs/references/The_Official_Serenity_Blueprints_Reference_Pack.pdf, docs/references/nick-henning/Re: Contact got a new submission - Nick Henning - 2026-07-06 1421.txt, docs/references/nick-henning/nick-henning-close-back-combine.jpg, docs/references/nick-henning/nick-henning-close-bridge-combine.jpg, docs/references/nick-henning/nick-henning-close-gear-combine.jpg, docs/references/nick-henning/nick-henning-final-backside-combine.jpg, docs/references/nick-henning/nick-henning-final-front-combine.jpg, docs/references/nick-henning/nick-henning-final-top-combine.jpg, docs/references/nick-henning/nick-henning-uvdisplay-engine.jpg, docs/references/nick-henning/nick-henning-uvdisplay-gear.jpg, docs/references/nick-henning/nick-henning-uvdisplay-wing.jpg, docs/references/nick-henning/port-bow-full-henning.jpg, docs/references/nick-henning/port-bow-upper-bridge-with-wireframe-henning.jpg, docs/references/nick-henning/port-bow-view-with-wireframe-henning.jpg, docs/references/nick-henning/port-quarter-with-wireframe-henning.jpg, docs/references/nick-henning/top-view-with-wireframe-henning.jpg, docs/references/open-source-hardware-checklist.pdf, docs/references/pocketbeagle2 revA_241205.brd, docs/references/scservo.zip.zip, docs/references/thingverse-serenity/LICENSE.txt, docs/references/thingverse-serenity/README.txt, docs/references/thingverse-serenity/files/s_cargo_door.stl, docs/references/thingverse-serenity/files/s_cargo_door_strutts.stl, docs/references/thingverse-serenity/files/s_cargo_sect.stl, docs/references/thingverse-serenity/files/s_eng_left.stl, docs/references/thingverse-serenity/files/s_eng_pistons.stl, docs/references/thingverse-serenity/files/s_eng_piv_outer.stl, docs/references/thingverse-serenity/files/s_eng_piv_pins.stl, docs/references/thingverse-serenity/files/s_eng_right.stl, docs/references/thingverse-serenity/files/s_feet_x_4.stl, docs/references/thingverse-serenity/files/s_head.stl, docs/references/thingverse-serenity/files/s_legs.stl, docs/references/thingverse-serenity/files/s_middle.stl, docs/references/thingverse-serenity/files/s_pivot_arm_a.stl, docs/references/thingverse-serenity/files/s_rear.stl, docs/references/thingverse-serenity/files/s_wings_both.stl, docs/references/thingverse-serenity/images/front-starboard.png, docs/references/thingverse-serenity/images/s_01.jpg, docs/references/thingverse-serenity/images/s_02.jpg, docs/references/thingverse-serenity/images/s_03.jpg, docs/references/thingverse-serenity/images/s_04.jpg, docs/references/thingverse-serenity/images/s_05.jpg, docs/references/thingverse-serenity/images/s_06.jpg, docs/references/thingverse-serenity/images/s_07.jpg, docs/references/thingverse-serenity/images/s_08.jpg, docs/references/thingverse-serenity/images/s_09.jpg, docs/references/thingverse-serenity/images/s_10.jpg, docs/references/thingverse-serenity/images/s_11.jpg, docs/references/thingverse-serenity/images/s_cargo_door.png, docs/references/thingverse-serenity/images/s_cargo_door_strutts.png, docs/references/thingverse-serenity/images/s_cargo_sect.png, docs/references/thingverse-serenity/images/s_eng_left.png, docs/references/thingverse-serenity/images/s_eng_pistons.png, docs/references/thingverse-serenity/images/s_eng_piv_outer.png, docs/references/thingverse-serenity/images/s_eng_piv_pins.png, docs/references/thingverse-serenity/images/s_eng_right.png, docs/references/thingverse-serenity/images/s_feet_x_4.png, docs/references/thingverse-serenity/images/s_head.png, docs/references/thingverse-serenity/images/s_legs.png, docs/references/thingverse-serenity/images/s_middle.png, docs/references/thingverse-serenity/images/s_pivot_arm_a.png, docs/references/thingverse-serenity/images/s_rear.png, docs/references/thingverse-serenity/images/s_wings_both.png, docs/references/vimdrones_can_periph_pico_v1.0.stl, docs/references/vimdrones_esc_s50_v1.0.step, docs/references/vimdrones_esc_s50_v1.0.stl, docs/references/vimdrones_esc_s50_wiring.png, docs/solutions/design-patterns/reducing-token-cost-of-federated-agents-md.md, docs/structural_analysis.md, gcs/AGENTS.md, gcs/README.md, gcs/SKIPPER_SPEC.md, gcs/TODO.md, gcs/WBS.md, gcs/skipper/README.md, gcs/skipper/hardware/docs/skipper_antenna_spec.md, gcs/skipper/hardware/docs/skipper_power_budget.md, gcs/skipper/hardware/docs/skipper_wiring.md, graphical-build-guide/AGENTS.md, graphical-build-guide/BUILD_GUIDE_TEMPLATE.md, graphical-build-guide/README.md, graphical-build-guide/REVN_BUILD_GUIDE_24IN.md, graphical-build-guide/TODO-old.md, graphical-build-guide/TODO.md, graphical-build-guide/WBS.md, graphical-build-guide/flight-phases/TODO.md, graphical-build-guide/flight-phases/WBS.md, tools/AGENTS.md, tools/README.md, tools/TODO.md, tools/TOOL_REFERENCE.md - `emi-hardening` (61): AGENTS.md, README.md, WBS.md, airframe/FreeCAD-scripts/serenity_placeholders_assembly.py, airframe/README.md, airframe/fuselage-joints/WBS.md, airframe/openscad/fuselage/cargo/cargo_sect_shell24.scad, airframe/openscad/fuselage/cargo/cargo_vera_faraday.scad, airframe/openscad/fuselage/head_shell24.scad, airframe/openscad/fuselage/rcrs49_wire_post.scad, airframe/placeholders/faraday/Far_EMI_vent_40x40x6mm.stl, airframe/placeholders/generate_placeholders.py, avionics/AGENTS.md, avionics/README.md, avionics/TODO-1-9-COMPLETION-STATUS.md, avionics/TODO.md, avionics/WBS.md, avionics/emi-hardening/TODO.md, avionics/emi-hardening/WBS.md, avionics/firmware/AK7455_CALIBRATION_SPECIFICATION.md, avionics/firmware/README.md, avionics/firmware/dts/cape-a/k3-am6254-pocketbeagle2-serenity-cape-a2.dts, avionics/firmware/dts/cape-b/k3-am6254-pocketbeagle2-serenity-cape-b2.dts, avionics/firmware/fc/src/mag_mmc5983ma.h, avionics/kicad/Commo/Commo.md, avionics/kicad/Commo/scripts/gen_commo_sch.py, avionics/kicad/ENC-NACELLE-1.md, avionics/kicad/FlightEngineer/FlightEngineer.md, avionics/kicad/FlightEngineer/scripts/gen_flight_engineer_pcb.py, avionics/kicad/Observer/Observer.md, avionics/kicad/Observer/VERA_NOSE_TRAPEZOID.md, avionics/kicad/Observer/scripts/gen_observer.py, avionics/kicad/Observer/scripts/gen_observer_carrier_sch.py, avionics/kicad/Observer/scripts/gen_observer_pcb.py, avionics/kicad/Pilot/Pilot.md, avionics/kicad/XO/XO.md, avionics/kicad/complete_xcvr_49mhz2.py, avionics/kicad/fix_xcvr_labels.py, avionics/observer/WBS.md, avionics/rev-s1/WBS.md, current-specification/serenity-rev-s.jsx, docs/AVIONICS_PB2_REDESIGN.md, docs/BATTERY_MOUNT.md, docs/DOCUMENTATION_RECONCILIATION_2026-07-28.md, docs/ETHERNET_PHY_TRADE.md, docs/FIRST_FLIGHT_READINESS.md, docs/OBSERVER_MANUFACTURING_READINESS.md, docs/PHASED_BUILD_GUIDE.md, docs/README.md, docs/REVN_BUILD_GUIDE_24IN.md, docs/TILT_ENCODER_WIRING_EMI_SPEC.md, docs/TILT_SPAR_ANALYSIS.md, docs/WBS_FEDERATION.md, docs/electrical_fault_margins.md, docs/plans/2026-08-25-001-finish-avionics-plan.md, docs/plans/2026-08-25-003-feat-emi-rf-design-test-plan-plan.md, gcs/skipper/firmware/pb2i/dts/k3-am6254-pocketbeagle2-skipper-cape-b2.dts, graphical-build-guide/flight-phases/WBS.md, tools/TOOL_REFERENCE.md, tools/precommit_index.py, tools/validate_kicad.py - `fabrication` (1): airframe/placeholders/gears/Bevel_housing_CF_PETG.stl - `firmware` (44): avionics/firmware/AK7455_CALIBRATION_SPECIFICATION.md, avionics/firmware/CMakeLists.txt, avionics/firmware/README.md, avionics/firmware/TODO.md, avionics/firmware/WBS.md, avionics/firmware/cn/CMakeLists.txt, avionics/firmware/cn/src/main.c, avionics/firmware/cn/src/si5351.c, avionics/firmware/cn/src/si5351.h, avionics/firmware/cn/src/xcvr_kiss.c, avionics/firmware/cn/src/xcvr_kiss.h, avionics/firmware/common/CMakeLists.txt, avionics/firmware/common/include/ax25_types.h, avionics/firmware/common/include/failsafe_config.h, avionics/firmware/common/include/kiss_types.h, avionics/firmware/common/include/sbus_input.h, avionics/firmware/common/src/sbus_input.c, avionics/firmware/dts/Makefile, avionics/firmware/dts/README.md, avionics/firmware/dts/cape-a/k3-am6254-pocketbeagle2-serenity-cape-a2.dts, avionics/firmware/dts/cape-b/k3-am6254-pocketbeagle2-serenity-cape-b2.dts, avionics/firmware/fc/CMakeLists.txt, avionics/firmware/fc/src/bmon_ina2xx.c, avionics/firmware/fc/src/bmon_ina2xx.h, avionics/firmware/fc/src/cell_mon_bq769x0.c, avionics/firmware/fc/src/cell_mon_bq769x0.h, avionics/firmware/fc/src/governor_config.h, avionics/firmware/fc/src/mag_mmc5983ma.c, avionics/firmware/fc/src/mag_mmc5983ma.h, avionics/firmware/fc/src/mag_qmc5883l.c, avionics/firmware/fc/src/mag_qmc5883l.h, avionics/firmware/fc/src/main.c, avionics/firmware/fc/src/pwr_fault.c, avionics/firmware/fc/src/pwr_fault.h, avionics/firmware/fc/tools/.gitignore, avionics/firmware/fc/tools/governor_cal.py, avionics/firmware/fc/tools/requirements.txt, gcs/skipper/firmware/pb2i/CMakeLists.txt, gcs/skipper/firmware/pb2i/dts/k3-am6254-pocketbeagle2-skipper-cape-b2.dts, gcs/skipper/firmware/pb2i/src/skipper_config.h, gcs/skipper/firmware/pb2i/src/skipper_gimbal.c, gcs/skipper/firmware/pb2i/src/skipper_gimbal.h, gcs/skipper/firmware/pb2i/src/skipper_telemetry.c, gcs/skipper/firmware/pb2i/src/skipper_telemetry.h @@ -27,9 +27,9 @@ Grep a tag name below to get every matching file in one line, without reading th - `landing-gear` (31): airframe/landing-gear/HANDOFF.md, airframe/landing-gear/TODO.md, airframe/landing-gear/WBS.md, airframe/stls/fuselage/landing-gear/lg_r6_1_5in_hull_legs.stl, airframe/stls/fuselage/landing-gear/lg_r6_1_5in_hull_stance.stl, airframe/stls/fuselage/landing-gear/lg_r6_1_5in_leg_assembled.stl, airframe/stls/fuselage/landing-gear/lg_r6_1_5in_leg_deformed.stl, airframe/stls/fuselage/landing-gear/lg_r6_1_5in_leg_frame.stl, airframe/stls/fuselage/landing-gear/lg_r6_3_0in_hull_legs.stl, airframe/stls/fuselage/landing-gear/lg_r6_3_0in_hull_stance.stl, airframe/stls/fuselage/landing-gear/lg_r6_3_0in_leg_assembled.stl, airframe/stls/fuselage/landing-gear/lg_r6_3_0in_leg_deformed.stl, airframe/stls/fuselage/landing-gear/lg_r6_3_0in_leg_frame.stl, airframe/stls/fuselage/landing-gear/lg_r6_common_bay.stl, airframe/stls/fuselage/landing-gear/lg_r6_common_ductile_wire_deformed.stl, airframe/stls/fuselage/landing-gear/lg_r6_common_ductile_wire_nominal.stl, airframe/stls/fuselage/landing-gear/lg_r6_common_foot.stl, airframe/stls/fuselage/landing-gear/lg_r6_common_spring_wire_deformed.stl, airframe/stls/fuselage/landing-gear/lg_r6_common_spring_wire_nominal.stl, docs/LANDING_GEAR_ANALYSIS.md, tools/add_landing_gear_bosses.py, tools/build_landing_gear_views.py, tools/export_landing_gear_stls.py, tools/landing_gear_bay_pad_fit.py, tools/landing_gear_bay_seat_fit.py, tools/landing_gear_bay_station_fit.py, tools/landing_gear_cowl_clearance.py, tools/landing_gear_foot_stance.py, tools/landing_gear_opening_fit.py, tools/landing_gear_r6_sizing.py, tools/landing_gear_wing_clearance.py - `licensing` (15): LICENSE, LICENSES/CC-BY 4.0, LICENSES/CC-BY-SA 4.0, LICENSES/CERN-OHL-W 2.0, airframe/LICENSE, avionics/LICENSE, current-specification/LICENSE, current-specification/LICENSE_AND_ATTRIBUTION.md, deferred/LICENSE, docs/LICENSE, docs/attribution_and_licensing.md, docs/references/thingverse-serenity/LICENSE.txt, gcs/LICENSE, graphical-build-guide/LICENSE, tools/LICENSE - `pcb-design` (303): avionics/kicad/.gitignore, avionics/kicad/4_Run KiCad ERC_DRC validator (changed files only).txt, avionics/kicad/CAN-PERIPH-GW-1/CAN-PERIPH-GW-1.md, avionics/kicad/CAN-PERIPH-GW-1/gerbers/CAN-PERIPH-GW-1-B_Adhesive.gba, avionics/kicad/CAN-PERIPH-GW-1/gerbers/CAN-PERIPH-GW-1-B_Courtyard.gbr, avionics/kicad/CAN-PERIPH-GW-1/gerbers/CAN-PERIPH-GW-1-B_Cu.gbl, avionics/kicad/CAN-PERIPH-GW-1/gerbers/CAN-PERIPH-GW-1-B_Fab.gbr, avionics/kicad/CAN-PERIPH-GW-1/gerbers/CAN-PERIPH-GW-1-B_Mask.gbs, avionics/kicad/CAN-PERIPH-GW-1/gerbers/CAN-PERIPH-GW-1-B_Paste.gbp, avionics/kicad/CAN-PERIPH-GW-1/gerbers/CAN-PERIPH-GW-1-B_Silkscreen.gbo, avionics/kicad/CAN-PERIPH-GW-1/gerbers/CAN-PERIPH-GW-1-Edge_Cuts.gm1, avionics/kicad/CAN-PERIPH-GW-1/gerbers/CAN-PERIPH-GW-1-F_Adhesive.gta, avionics/kicad/CAN-PERIPH-GW-1/gerbers/CAN-PERIPH-GW-1-F_Courtyard.gbr, avionics/kicad/CAN-PERIPH-GW-1/gerbers/CAN-PERIPH-GW-1-F_Cu.gtl, avionics/kicad/CAN-PERIPH-GW-1/gerbers/CAN-PERIPH-GW-1-F_Fab.gbr, avionics/kicad/CAN-PERIPH-GW-1/gerbers/CAN-PERIPH-GW-1-F_Mask.gts, avionics/kicad/CAN-PERIPH-GW-1/gerbers/CAN-PERIPH-GW-1-F_Paste.gtp, avionics/kicad/CAN-PERIPH-GW-1/gerbers/CAN-PERIPH-GW-1-F_Silkscreen.gto, avionics/kicad/CAN-PERIPH-GW-1/gerbers/CAN-PERIPH-GW-1-Margin.gbr, avionics/kicad/CAN-PERIPH-GW-1/gerbers/CAN-PERIPH-GW-1-job.gbrjob, avionics/kicad/CAN-PERIPH-GW-1/gerbers/CAN-PERIPH-GW-1.drl, avionics/kicad/CAN-PERIPH-GW-1/kicads/CAN-PERIPH-GW-1.dsn, avionics/kicad/CAN-PERIPH-GW-1/kicads/CAN-PERIPH-GW-1.kicad_pcb, avionics/kicad/CAN-PERIPH-GW-1/kicads/CAN-PERIPH-GW-1.kicad_pcb.pre-g351x, avionics/kicad/CAN-PERIPH-GW-1/kicads/CAN-PERIPH-GW-1.kicad_prl, avionics/kicad/CAN-PERIPH-GW-1/kicads/CAN-PERIPH-GW-1.kicad_pro, avionics/kicad/CAN-PERIPH-GW-1/kicads/CAN-PERIPH-GW-1.kicad_sch, avionics/kicad/CAN-PERIPH-GW-1/kicads/CAN-PERIPH-GW-1.kicad_sch.pre-g351x, avionics/kicad/CAN-PERIPH-GW-1/kicads/CAN-PERIPH-GW-1.net, avionics/kicad/CAN-PERIPH-GW-1/kicads/CAN-PERIPH-GW-1.ses, avionics/kicad/CAN-PERIPH-GW-1/kicads/CAN-PERIPH-GW-1_v2.ses, avionics/kicad/CAN-PERIPH-GW-1/scripts/gen_can_periph_gw_pcb.py, avionics/kicad/CAN-PERIPH-GW-1/scripts/gen_can_periph_gw_sch.py, avionics/kicad/CAN-PERIPH-GW-1/scripts/route_can_periph_gw_pcb.py, avionics/kicad/Commo/Commo.md, avionics/kicad/Commo/gerbers/Commo-B_Courtyard.gbr, avionics/kicad/Commo/gerbers/Commo-B_Cu.gbl, avionics/kicad/Commo/gerbers/Commo-B_Fab.gbr, avionics/kicad/Commo/gerbers/Commo-B_Mask.gbs, avionics/kicad/Commo/gerbers/Commo-B_Paste.gbp, avionics/kicad/Commo/gerbers/Commo-B_Silkscreen.gbo, avionics/kicad/Commo/gerbers/Commo-Edge_Cuts.gm1, avionics/kicad/Commo/gerbers/Commo-F_Courtyard.gbr, avionics/kicad/Commo/gerbers/Commo-F_Cu.gtl, avionics/kicad/Commo/gerbers/Commo-F_Fab.gbr, avionics/kicad/Commo/gerbers/Commo-F_Mask.gts, avionics/kicad/Commo/gerbers/Commo-F_Paste.gtp, avionics/kicad/Commo/gerbers/Commo-F_Silkscreen.gto, avionics/kicad/Commo/gerbers/Commo-In1_Cu.g1, avionics/kicad/Commo/gerbers/Commo-In2_Cu.g2, avionics/kicad/Commo/gerbers/Commo-Margin.gbr, avionics/kicad/Commo/gerbers/Commo-in1-back.drl, avionics/kicad/Commo/gerbers/Commo-job.gbrjob, avionics/kicad/Commo/gerbers/Commo.drl, avionics/kicad/Commo/gerbers/XCVR-49MHZ-2-B_Cu.gbr, avionics/kicad/Commo/gerbers/XCVR-49MHZ-2-B_Mask.gbr, avionics/kicad/Commo/gerbers/XCVR-49MHZ-2-B_Paste.gbr, avionics/kicad/Commo/gerbers/XCVR-49MHZ-2-B_Silkscreen.gbr, avionics/kicad/Commo/gerbers/XCVR-49MHZ-2-Edge_Cuts.gbr, avionics/kicad/Commo/gerbers/XCVR-49MHZ-2-F_Cu.gbr, avionics/kicad/Commo/gerbers/XCVR-49MHZ-2-F_Mask.gbr, avionics/kicad/Commo/gerbers/XCVR-49MHZ-2-F_Paste.gbr, avionics/kicad/Commo/gerbers/XCVR-49MHZ-2-F_Silkscreen.gbr, avionics/kicad/Commo/gerbers/XCVR-49MHZ-2-In1_Cu.gbr, avionics/kicad/Commo/gerbers/XCVR-49MHZ-2-In2_Cu.gbr, avionics/kicad/Commo/gerbers/XCVR-49MHZ-2-job.gbrjob, avionics/kicad/Commo/gerbers/XCVR-49MHZ-2.drl, avionics/kicad/Commo/kicads/Commo.kicad_pcb, avionics/kicad/Commo/kicads/Commo.kicad_prl, avionics/kicad/Commo/kicads/Commo.kicad_pro, avionics/kicad/Commo/kicads/Commo.kicad_sch, avionics/kicad/Commo/scripts/cleanup_commo_drc.py, avionics/kicad/Commo/scripts/gen_commo_sch.py, avionics/kicad/Commo/scripts/inject_commo_tpm.py, avionics/kicad/Commo/scripts/mod_commo_pcb.py, avionics/kicad/Commo/scripts/route_commo_rssi.py, avionics/kicad/ENC-NACELLE-1.kicad_pcb, avionics/kicad/ENC-NACELLE-1.kicad_prl, avionics/kicad/ENC-NACELLE-1.kicad_pro, avionics/kicad/ENC-NACELLE-1.kicad_sch, avionics/kicad/ENC-NACELLE-1.md, avionics/kicad/ENC-NACELLE-1.net, avionics/kicad/FlightEngineer/FlightEngineer.md, avionics/kicad/FlightEngineer/GENERATOR_DRIFT_ANALYSIS.md, avionics/kicad/FlightEngineer/gerbers/FlightEngineer-B_Adhesive.gba, avionics/kicad/FlightEngineer/gerbers/FlightEngineer-B_Courtyard.gbr, avionics/kicad/FlightEngineer/gerbers/FlightEngineer-B_Cu.gbl, avionics/kicad/FlightEngineer/gerbers/FlightEngineer-B_Fab.gbr, avionics/kicad/FlightEngineer/gerbers/FlightEngineer-B_Mask.gbs, avionics/kicad/FlightEngineer/gerbers/FlightEngineer-B_Paste.gbp, avionics/kicad/FlightEngineer/gerbers/FlightEngineer-B_Silkscreen.gbo, avionics/kicad/FlightEngineer/gerbers/FlightEngineer-Edge_Cuts.gm1, avionics/kicad/FlightEngineer/gerbers/FlightEngineer-F_Adhesive.gta, avionics/kicad/FlightEngineer/gerbers/FlightEngineer-F_Courtyard.gbr, avionics/kicad/FlightEngineer/gerbers/FlightEngineer-F_Cu.gtl, avionics/kicad/FlightEngineer/gerbers/FlightEngineer-F_Fab.gbr, avionics/kicad/FlightEngineer/gerbers/FlightEngineer-F_Mask.gts, avionics/kicad/FlightEngineer/gerbers/FlightEngineer-F_Paste.gtp, avionics/kicad/FlightEngineer/gerbers/FlightEngineer-F_Silkscreen.gto, avionics/kicad/FlightEngineer/gerbers/FlightEngineer-In1_Cu.g1, avionics/kicad/FlightEngineer/gerbers/FlightEngineer-Margin.gbr, avionics/kicad/FlightEngineer/gerbers/FlightEngineer-job.gbrjob, avionics/kicad/FlightEngineer/gerbers/FlightEngineer.drl, avionics/kicad/FlightEngineer/kicads/FlightEngineer.kicad_pcb, avionics/kicad/FlightEngineer/kicads/FlightEngineer.kicad_prl, avionics/kicad/FlightEngineer/kicads/FlightEngineer.kicad_pro, avionics/kicad/FlightEngineer/kicads/FlightEngineer.kicad_sch, avionics/kicad/FlightEngineer/kicads/Kaylee.kicad_sch.pre-g351x, avionics/kicad/FlightEngineer/scripts/fix_flight_engineer_pin_snap.py, avionics/kicad/FlightEngineer/scripts/fix_flight_engineer_revs1_cleanup.py, avionics/kicad/FlightEngineer/scripts/fix_flight_engineer_yinv.py, avionics/kicad/FlightEngineer/scripts/gen_flight_engineer.py, avionics/kicad/FlightEngineer/scripts/gen_flight_engineer_pcb.py, avionics/kicad/FlightEngineer/scripts/gen_flight_engineer_revs1.py, avionics/kicad/FlightEngineer/scripts/inject_flight_engineer_trust_module.py, avionics/kicad/FlightEngineer/scripts/mod_flight_engineer_pcb_revs1.py, avionics/kicad/Observer/OBSERVER_SOM_NETMAP.md, avionics/kicad/Observer/Observer.md, avionics/kicad/Observer/Observer.pretty/DS_Camera_9P.kicad_mod, avionics/kicad/Observer/Observer.pretty/DS_Laser_2P.kicad_mod, avionics/kicad/Observer/Observer.pretty/DS_ToF_4P.kicad_mod, avionics/kicad/Observer/Observer.pretty/TQFP-128-1EP_KSZ9477_14x14mm_P0.4mm_EP10x10.kicad_mod, avionics/kicad/Observer/Observer.pretty/Wurth_749010012A_10-100BASE-TX.kicad_mod, avionics/kicad/Observer/Observer.pretty/phyCORE-AM62x_PCM071_2xBTH-060.kicad_mod, avionics/kicad/Observer/Observer.pretty/phyCORE-AM62x_PCM071_placement.kicad_mod, avionics/kicad/Observer/Observer_som_pinmap.csv, avionics/kicad/Observer/PCBNEW_SWIG_BUG.md, avionics/kicad/Observer/VERA_NOSE_TRAPEZOID.md, avionics/kicad/Observer/Vera.pretty/DS_Camera_9P.kicad_mod, avionics/kicad/Observer/Vera.pretty/DS_Laser_2P.kicad_mod, avionics/kicad/Observer/Vera.pretty/DS_ToF_4P.kicad_mod, avionics/kicad/Observer/Vera.pretty/phyCORE-AM62x_PCM071_2xBTH-060.kicad_mod, avionics/kicad/Observer/Vera.pretty/phyCORE-AM62x_PCM071_placement.kicad_mod, avionics/kicad/Observer/gen_vera_bth060_footprint.py, avionics/kicad/Observer/gen_vera_ds_footprints.py, avionics/kicad/Observer/gen_vera_som_pcm071.py, avionics/kicad/Observer/kicads/Jayne.kicad_sch.pre-g351x, avionics/kicad/Observer/kicads/Observer.kicad_dru, avionics/kicad/Observer/kicads/Observer.kicad_pcb, avionics/kicad/Observer/kicads/Observer.kicad_pcb.pre-g351x, avionics/kicad/Observer/kicads/Observer.kicad_prl, avionics/kicad/Observer/kicads/Observer.kicad_pro, avionics/kicad/Observer/kicads/Observer.kicad_sch, avionics/kicad/Observer/kicads/Observer.net, avionics/kicad/Observer/kicads/_autosave-Observer.kicad_pcb, avionics/kicad/Observer/kicads/fp-lib-table, avionics/kicad/Observer/mod_vera_corners.py, avionics/kicad/Observer/mod_vera_ds_pcb.py, avionics/kicad/Observer/mod_vera_som_place.py, avionics/kicad/Observer/mod_vera_trapezoid.py, avionics/kicad/Observer/scripts/gen_observer.py, avionics/kicad/Observer/scripts/gen_observer_bth060_footprint.py, avionics/kicad/Observer/scripts/gen_observer_carrier_pcb.py, avionics/kicad/Observer/scripts/gen_observer_carrier_sch.py, avionics/kicad/Observer/scripts/gen_observer_ds_footprints.py, avionics/kicad/Observer/scripts/gen_observer_ic_symbols.py, avionics/kicad/Observer/scripts/gen_observer_ksz_symbol.py, avionics/kicad/Observer/scripts/gen_observer_pcb.py, avionics/kicad/Observer/scripts/gen_observer_som_pcm071.py, avionics/kicad/Observer/scripts/gen_observer_som_symbol.py, avionics/kicad/Observer/scripts/mod_observer_corners.py, avionics/kicad/Observer/scripts/mod_observer_ds_pcb.py, avionics/kicad/Observer/scripts/mod_observer_som_place.py, avionics/kicad/Observer/scripts/mod_observer_trapezoid.py, avionics/kicad/Pilot/PILOT_FOOTPRINT_VERIFICATION.md, avionics/kicad/Pilot/Pilot.md, avionics/kicad/Pilot/gerbers/Pilot-B_Cu.gbr, avionics/kicad/Pilot/gerbers/Pilot-B_Mask.gbr, avionics/kicad/Pilot/gerbers/Pilot-B_Paste.gbr, avionics/kicad/Pilot/gerbers/Pilot-B_Silkscreen.gbr, avionics/kicad/Pilot/gerbers/Pilot-Edge_Cuts.gbr, avionics/kicad/Pilot/gerbers/Pilot-F_Cu.gbr, avionics/kicad/Pilot/gerbers/Pilot-F_Mask.gbr, avionics/kicad/Pilot/gerbers/Pilot-F_Paste.gbr, avionics/kicad/Pilot/gerbers/Pilot-F_Silkscreen.gbr, avionics/kicad/Pilot/gerbers/Pilot-In1_Cu.gbr, avionics/kicad/Pilot/gerbers/Pilot-In2_Cu.gbr, avionics/kicad/Pilot/gerbers/Pilot-job.gbrjob, avionics/kicad/Pilot/gerbers/Pilot.drl, avionics/kicad/Pilot/kicads/Pilot.kicad_pcb, avionics/kicad/Pilot/kicads/Pilot.kicad_prl, avionics/kicad/Pilot/kicads/Pilot.kicad_pro, avionics/kicad/Pilot/kicads/Pilot.kicad_sch, avionics/kicad/Pilot/kicads/Pilot_rebuild.kicad_sch, avionics/kicad/Pilot/kicads/sym-lib-table, avionics/kicad/Pilot/scripts/gen_pilot_sch.py, avionics/kicad/Pilot/scripts/mod_pilot_pcb_reconcile.py, avionics/kicad/README.md, avionics/kicad/Serenity-Custom.pretty/MountingHole_2.2mm_M2_SelfTap_Compact.kicad_mod, avionics/kicad/Serenity-Custom.pretty/Pigtail_7W_DirectSolder.kicad_mod, avionics/kicad/Serenity-Custom.pretty/TI_WL1837MOD.kicad_mod, avionics/kicad/Serenity-Custom.pretty/uBlox_SAM-M10Q-00B.kicad_mod, avionics/kicad/TODO-1.2b-CHECKLIST.md, avionics/kicad/TODO-1.2b-KICAD-READY.md, avionics/kicad/TODO-1.2b-STATUS-REPORT.md, avionics/kicad/XO/XO.md, avionics/kicad/XO/gerbers/XO-B_Cu.gbr, avionics/kicad/XO/gerbers/XO-B_Mask.gbr, avionics/kicad/XO/gerbers/XO-B_Paste.gbr, avionics/kicad/XO/gerbers/XO-B_Silkscreen.gbr, avionics/kicad/XO/gerbers/XO-Edge_Cuts.gbr, avionics/kicad/XO/gerbers/XO-F_Cu.gbr, avionics/kicad/XO/gerbers/XO-F_Mask.gbr, avionics/kicad/XO/gerbers/XO-F_Paste.gbr, avionics/kicad/XO/gerbers/XO-F_Silkscreen.gbr, avionics/kicad/XO/gerbers/XO-In1_Cu.gbr, avionics/kicad/XO/gerbers/XO-In2_Cu.gbr, avionics/kicad/XO/gerbers/XO-job.gbrjob, avionics/kicad/XO/gerbers/XO.drl, avionics/kicad/XO/kicads/XO.kicad_pcb, avionics/kicad/XO/kicads/XO.kicad_prl, avionics/kicad/XO/kicads/XO.kicad_pro, avionics/kicad/XO/kicads/XO.kicad_sch, avionics/kicad/XO/ref_remap_2026-07-18.json, avionics/kicad/add_eth_phy.py, avionics/kicad/add_sensors_sbus.py, avionics/kicad/apply_netlist.py, avionics/kicad/check_impedance.py, avionics/kicad/complete_1_2b.py, avionics/kicad/complete_xcvr_49mhz2.py, avionics/kicad/drc_report.txt, avionics/kicad/fix_pilot_xo_isolators.py, avionics/kicad/fix_starved_thermal_pads.py, avionics/kicad/fix_xcvr_labels.py, avionics/kicad/fp-lib-table, avionics/kicad/gen_enc_nacelle_pcb.py, avionics/kicad/generate_gerbers.py, avionics/kicad/generate_gerbers_rev_s1.py, avionics/kicad/gerbers/CAPE-B-2-S1/XO-B_Courtyard.gbr, avionics/kicad/gerbers/CAPE-B-2-S1/XO-B_Cu.gbl, avionics/kicad/gerbers/CAPE-B-2-S1/XO-B_Fab.gbr, avionics/kicad/gerbers/CAPE-B-2-S1/XO-B_Mask.gbs, avionics/kicad/gerbers/CAPE-B-2-S1/XO-B_Paste.gbp, avionics/kicad/gerbers/CAPE-B-2-S1/XO-B_Silkscreen.gbo, avionics/kicad/gerbers/CAPE-B-2-S1/XO-Edge_Cuts.gm1, avionics/kicad/gerbers/CAPE-B-2-S1/XO-F_Courtyard.gbr, avionics/kicad/gerbers/CAPE-B-2-S1/XO-F_Cu.gtl, avionics/kicad/gerbers/CAPE-B-2-S1/XO-F_Fab.gbr, avionics/kicad/gerbers/CAPE-B-2-S1/XO-F_Mask.gts, avionics/kicad/gerbers/CAPE-B-2-S1/XO-F_Paste.gtp, avionics/kicad/gerbers/CAPE-B-2-S1/XO-F_Silkscreen.gto, avionics/kicad/gerbers/CAPE-B-2-S1/XO-In1_Cu.g1, avionics/kicad/gerbers/CAPE-B-2-S1/XO-In2_Cu.g2, avionics/kicad/gerbers/CAPE-B-2-S1/XO-Margin.gbr, avionics/kicad/gerbers/CAPE-B-2-S1/XO-job.gbrjob, avionics/kicad/gerbers/CAPE-B-2-S1/XO.drl/XO.drl, avionics/kicad/gerbers/Commo-S1/Commo-B_Courtyard.gbr, avionics/kicad/gerbers/Commo-S1/Commo-B_Cu.gbl, avionics/kicad/gerbers/Commo-S1/Commo-B_Fab.gbr, avionics/kicad/gerbers/Commo-S1/Commo-B_Mask.gbs, avionics/kicad/gerbers/Commo-S1/Commo-B_Paste.gbp, avionics/kicad/gerbers/Commo-S1/Commo-B_Silkscreen.gbo, avionics/kicad/gerbers/Commo-S1/Commo-Edge_Cuts.gm1, avionics/kicad/gerbers/Commo-S1/Commo-F_Courtyard.gbr, avionics/kicad/gerbers/Commo-S1/Commo-F_Cu.gtl, avionics/kicad/gerbers/Commo-S1/Commo-F_Fab.gbr, avionics/kicad/gerbers/Commo-S1/Commo-F_Mask.gts, avionics/kicad/gerbers/Commo-S1/Commo-F_Paste.gtp, avionics/kicad/gerbers/Commo-S1/Commo-F_Silkscreen.gto, avionics/kicad/gerbers/Commo-S1/Commo-In1_Cu.g1, avionics/kicad/gerbers/Commo-S1/Commo-In2_Cu.g2, avionics/kicad/gerbers/Commo-S1/Commo-Margin.gbr, avionics/kicad/gerbers/Commo-S1/Commo-job.gbrjob, avionics/kicad/gerbers/Commo-S1/Commo.drl/Commo.drl, avionics/kicad/gerbers/FlightEngineer-S1/FlightEngineer-B_Adhesive.gba, avionics/kicad/gerbers/FlightEngineer-S1/FlightEngineer-B_Courtyard.gbr, avionics/kicad/gerbers/FlightEngineer-S1/FlightEngineer-B_Cu.gbl, avionics/kicad/gerbers/FlightEngineer-S1/FlightEngineer-B_Fab.gbr, avionics/kicad/gerbers/FlightEngineer-S1/FlightEngineer-B_Mask.gbs, avionics/kicad/gerbers/FlightEngineer-S1/FlightEngineer-B_Paste.gbp, avionics/kicad/gerbers/FlightEngineer-S1/FlightEngineer-B_Silkscreen.gbo, avionics/kicad/gerbers/FlightEngineer-S1/FlightEngineer-Edge_Cuts.gm1, avionics/kicad/gerbers/FlightEngineer-S1/FlightEngineer-F_Adhesive.gta, avionics/kicad/gerbers/FlightEngineer-S1/FlightEngineer-F_Courtyard.gbr, avionics/kicad/gerbers/FlightEngineer-S1/FlightEngineer-F_Cu.gtl, avionics/kicad/gerbers/FlightEngineer-S1/FlightEngineer-F_Fab.gbr, avionics/kicad/gerbers/FlightEngineer-S1/FlightEngineer-F_Mask.gts, avionics/kicad/gerbers/FlightEngineer-S1/FlightEngineer-F_Paste.gtp, avionics/kicad/gerbers/FlightEngineer-S1/FlightEngineer-F_Silkscreen.gto, avionics/kicad/gerbers/FlightEngineer-S1/FlightEngineer-In1_Cu.g1, avionics/kicad/gerbers/FlightEngineer-S1/FlightEngineer-Margin.gbr, avionics/kicad/gerbers/FlightEngineer-S1/FlightEngineer-job.gbrjob, avionics/kicad/gerbers/FlightEngineer-S1/FlightEngineer.drl/FlightEngineer.drl, avionics/kicad/replace_footprints.py, avionics/kicad/retarget_mspm0g351x_slb9672.py, avionics/kicad/retarget_pcb_footprints.py, avionics/kicad/symbols/ISOW1044BDFMR_pinmap.csv, avionics/kicad/symbols/KSZ9477STXI_pinmap.csv, avionics/kicad/symbols/MSPM0G3507SRGZR_pinmap.csv, avionics/kicad/symbols/MSPM0G3518_Q1_RHB.kicad_sym, avionics/kicad/symbols/MSPM0G3519_Q1_RGZ.kicad_sym, avionics/kicad/symbols/Observer_ISOW1044BDFMR.kicad_sym, avionics/kicad/symbols/Observer_KSZ9477.kicad_sym, avionics/kicad/symbols/Observer_MSPM0G3507_RGZ.kicad_sym, avionics/kicad/symbols/Observer_SoM.kicad_sym, avionics/kicad/symbols/Observer_SoM_PCM071.kicad_sym, avionics/kicad/symbols/SLB9672XU2_0_pinmap.csv, avionics/kicad/symbols/SLB9672_TPM.kicad_sym, avionics/kicad/symbols/Vera_SoM_PCM071.kicad_sym, avionics/kicad/symbols/footprints/PHYCORE-AM62AX-DSC-FOOTPRINT.kicad_mod, avionics/kicad/symbols/phyCORE_AM62x_PCM071_pinmap.csv, tools/precommit_kicad_load.py, tools/validate_kicad.py -- `power` (19): airframe/openscad/fuselage/battery_tray.scad, airframe/placeholders/foam/Void_power_bus_25x500x25mm.stl, airframe/placeholders/power/Fuse_MAXI_150A.stl, airframe/placeholders/power/Fuse_mini_40A.stl, airframe/placeholders/power/LiPo_4S_10000mAh_175x64x38mm_GCS.stl, airframe/placeholders/power/LiPo_6S_2800mAh_115x35x35mm.stl, airframe/placeholders/power/LiPo_6S_4000mAh_138x44x36mm.stl, airframe/placeholders/power/Shunt_CSS2H_2512K_1mohm.stl, airframe/placeholders/propulsion/ESC_40A_6S_BLHeli32.stl, airframe/placeholders/propulsion/ESC_80A_6S_BLHeli32_deferred.stl, airframe/stls/fuselage/battery_tray.stl, avionics/kicad/FlightEngineer/kicads/Kaylee.kicad_sch.pre-g351x, docs/BATTERY_MOUNT.md, docs/POWER_DISTRIBUTION.md, docs/references/vimdrones_esc_s50_v1.0.step, docs/references/vimdrones_esc_s50_v1.0.stl, docs/references/vimdrones_esc_s50_wiring.png, gcs/skipper/hardware/docs/skipper_power_budget.md, graphical-build-guide/build_guide_10_power_wiring.svg +- `power` (22): airframe/openscad/fuselage/battery_tray.scad, airframe/placeholders/foam/Void_power_bus_25x500x25mm.stl, airframe/placeholders/power/Fuse_MAXI_150A.stl, airframe/placeholders/power/Fuse_mini_40A.stl, airframe/placeholders/power/LiPo_4S_10000mAh_175x64x38mm_GCS.stl, airframe/placeholders/power/LiPo_6S_2800mAh_115x35x35mm.stl, airframe/placeholders/power/LiPo_6S_4000mAh_138x44x36mm.stl, airframe/placeholders/power/Shunt_CSS2H_2512K_1mohm.stl, airframe/placeholders/propulsion/ESC_40A_6S_BLHeli32.stl, airframe/placeholders/propulsion/ESC_80A_6S_BLHeli32_deferred.stl, airframe/stls/fuselage/battery_tray.stl, avionics/kicad/FlightEngineer/kicads/Kaylee.kicad_sch.pre-g351x, docs/BATTERY_MOUNT.md, docs/POWER_DISTRIBUTION.md, docs/plans/2026-08-26-001-nacelle-esc-intake-integration-plan.md, docs/references/vimdrones_esc_s50_v1.0.step, docs/references/vimdrones_esc_s50_v1.0.stl, docs/references/vimdrones_esc_s50_wiring.png, gcs/skipper/hardware/docs/skipper_power_budget.md, graphical-build-guide/build_guide_10_power_wiring.svg, tools/nacelle_esc_service.py, tools/tests/test_nacelle_esc_service.py - `project-tracking` (43): TODO.md, WBS.md, airframe/TODO.md, airframe/WBS.md, airframe/fuselage-covers/TODO.md, airframe/fuselage-covers/WBS.md, airframe/fuselage-joints/TODO.md, airframe/fuselage-joints/WBS.md, airframe/fuselage-mid/TODO.md, airframe/fuselage-mid/WBS.md, airframe/landing-gear/TODO.md, airframe/landing-gear/WBS.md, airframe/wings-nacelles/TODO.md, airframe/wings-nacelles/WBS.md, avionics/TODO-1-9-COMPLETION-STATUS.md, avionics/TODO.md, avionics/WBS.md, avionics/emi-hardening/TODO.md, avionics/emi-hardening/WBS.md, avionics/firmware/TODO.md, avionics/firmware/WBS.md, avionics/kicad/TODO-1.2b-CHECKLIST.md, avionics/kicad/TODO-1.2b-KICAD-READY.md, avionics/kicad/TODO-1.2b-STATUS-REPORT.md, avionics/observer/TODO.md, avionics/observer/WBS.md, avionics/rev-s1/TODO.md, avionics/rev-s1/WBS.md, current-specification/TODO.md, deferred/TODO.md, deferred/WBS.md, docs/TODO.md, docs/TODO_1_1_0_COMPLETION_SUMMARY.md, docs/WBS.md, docs/WBS_FEDERATION.md, gcs/TODO.md, gcs/WBS.md, graphical-build-guide/TODO-old.md, graphical-build-guide/TODO.md, graphical-build-guide/WBS.md, graphical-build-guide/flight-phases/TODO.md, graphical-build-guide/flight-phases/WBS.md, tools/TODO.md -- `propulsion` (117): airframe/blender-scripts/blender_edf_bore_and_petals.py, airframe/blender-scripts/blender_nacelle_revo.py, airframe/blender-scripts/blender_nozzle_gen.py, airframe/blender-scripts/check_nacelle_alignment.py, airframe/openscad/nacelles/_export_inboard_cut.scad, airframe/openscad/nacelles/_export_pivot_slab.scad, airframe/openscad/nacelles/edf_aft_spider_sleeve.scad, airframe/openscad/nacelles/edf_stator_sleeve.scad, airframe/openscad/nacelles/gear_option_compare.scad, airframe/openscad/nacelles/nacelle_nozzle_iris.scad, airframe/openscad/nacelles/nacelle_nozzle_pushrod.scad, airframe/openscad/nacelles/nacelle_pod_50mm_tandem.scad, airframe/openscad/nacelles/nacelle_servo_bracket.scad, airframe/placeholders/foam/Void_nacelle_pylon_20x80x20mm.stl, airframe/placeholders/propulsion/EDF_120mm_6S_deferred.stl, airframe/placeholders/propulsion/EDF_50mm_6S.stl, airframe/placeholders/propulsion/ESC_40A_6S_BLHeli32.stl, airframe/placeholders/propulsion/ESC_80A_6S_BLHeli32_deferred.stl, airframe/stls/fuselage/middle_canonical_edf_intake.stl, airframe/stls/nacelles/edf_aft_spider_sleeve.stl, airframe/stls/nacelles/edf_stator_sleeve.stl, airframe/stls/nacelles/eng_left_shell24_50mm_repaired.stl, airframe/stls/nacelles/eng_right_shell24_50mm_repaired.stl, airframe/stls/nacelles/nacelle_port_revs.stl, airframe/stls/nacelles/nacelle_servo_bracket.stl, airframe/stls/nacelles/nacelle_stbd_revs.stl, airframe/stls/nacelles/nozzles/nacelle_nozzle_flap.stl, airframe/stls/nacelles/nozzles/nacelle_nozzle_flap_seal.stl, airframe/stls/nacelles/nozzles/nacelle_nozzle_iris-closed.stl, airframe/stls/nacelles/nozzles/nacelle_nozzle_iris-open.stl, airframe/stls/nacelles/nozzles/nacelle_nozzle_ring.stl, airframe/stls/nacelles/nozzles/nacelle_nozzle_throat.stl, airframe/wings-nacelles/TODO.md, airframe/wings-nacelles/WBS.md, avionics/kicad/ENC-NACELLE-1.kicad_pcb, avionics/kicad/ENC-NACELLE-1.kicad_prl, avionics/kicad/ENC-NACELLE-1.kicad_pro, avionics/kicad/ENC-NACELLE-1.kicad_sch, avionics/kicad/ENC-NACELLE-1.md, avionics/kicad/ENC-NACELLE-1.net, avionics/kicad/gen_enc_nacelle_pcb.py, deferred/aft-edf/README.md, deferred/aft-edf/openscad/aft_edf_plenum.scad, deferred/aft-edf/openscad/edf_120_motor_mount.scad, deferred/aft-edf/openscad/edf_120_thrust_tube.scad, deferred/aft-edf/openscad/neck_intake_frame.scad, deferred/aft-edf/openscad/rear_neck_intake_shell24.scad, deferred/aft-edf/stls/aft_edf_plenum.stl, deferred/aft-edf/stls/edf_120_motor_mount.stl, deferred/aft-edf/stls/edf_120_thrust_tube.stl, deferred/aft-edf/stls/neck_intake_frame.stl, deferred/aft-edf/stls/rear_nozzle_closed_asm.stl, deferred/aft-edf/stls/rear_nozzle_frame.stl, deferred/aft-edf/stls/rear_nozzle_petal.stl, deferred/aft-edf/stls/rear_nozzle_petal_hull_0.stl, deferred/aft-edf/stls/rear_nozzle_petal_hull_1.stl, deferred/aft-edf/stls/rear_nozzle_petal_hull_2.stl, deferred/aft-edf/stls/rear_nozzle_petal_hull_3.stl, deferred/aft-edf/stls/rear_nozzle_petal_hull_4.stl, deferred/aft-edf/stls/rear_nozzle_petal_hull_5.stl, deferred/aft-edf/stls/rear_nozzle_petal_hull_6.stl, deferred/aft-edf/stls/rear_nozzle_petal_hull_7.stl, deferred/aft-edf/stls/rear_shell24_2mm_edf_bored.stl, docs/NOZZLE_DRIVE_TRADE.md, docs/img/nozzle_drive_trade.png, docs/img/port-nacelle-horizontal.png, docs/img/starboard-nacelle-vert.png, docs/img/transparent-nacelle.png, docs/references/EDF Ducted Fan XFly Galaxy X5 XFLY-Model 50mm 12 blades + 6S Motor 3200KV - Xfly-Model.html, docs/references/EDF Ducted Fan XFly Galaxy X5 XFLY-Model 50mm 12 blades + 6S Motor 3200KV - Xfly-Model_files/1.jpg, docs/references/EDF Ducted Fan XFly Galaxy X5 XFLY-Model 50mm 12 blades + 6S Motor 3200KV - Xfly-Model_files/2.jpg, docs/references/EDF Ducted Fan XFly Galaxy X5 XFLY-Model 50mm 12 blades + 6S Motor 3200KV - Xfly-Model_files/37110-cart_default.webp, docs/references/EDF Ducted Fan XFly Galaxy X5 XFLY-Model 50mm 12 blades + 6S Motor 3200KV - Xfly-Model_files/37111-cart_default.webp, docs/references/EDF Ducted Fan XFly Galaxy X5 XFLY-Model 50mm 12 blades + 6S Motor 3200KV - Xfly-Model_files/37112-cart_default.webp, docs/references/EDF Ducted Fan XFly Galaxy X5 XFLY-Model 50mm 12 blades + 6S Motor 3200KV - Xfly-Model_files/37113-cart_default.webp, docs/references/EDF Ducted Fan XFly Galaxy X5 XFLY-Model 50mm 12 blades + 6S Motor 3200KV - Xfly-Model_files/37113-large_default.webp, docs/references/EDF Ducted Fan XFly Galaxy X5 XFLY-Model 50mm 12 blades + 6S Motor 3200KV - Xfly-Model_files/37114-cart_default.webp, docs/references/EDF Ducted Fan XFly Galaxy X5 XFLY-Model 50mm 12 blades + 6S Motor 3200KV - Xfly-Model_files/37115-cart_default.webp, docs/references/EDF Ducted Fan XFly Galaxy X5 XFLY-Model 50mm 12 blades + 6S Motor 3200KV - Xfly-Model_files/76a8e5b0fe9140cf057b953efbc49a1f.webp, docs/references/EDF Ducted Fan XFly Galaxy X5 XFLY-Model 50mm 12 blades + 6S Motor 3200KV - Xfly-Model_files/EDF50mm-02.webp, docs/references/EDF Ducted Fan XFly Galaxy X5 XFLY-Model 50mm 12 blades + 6S Motor 3200KV - Xfly-Model_files/analytics.js, docs/references/EDF Ducted Fan XFly Galaxy X5 XFLY-Model 50mm 12 blades + 6S Motor 3200KV - Xfly-Model_files/css.css, docs/references/EDF Ducted Fan XFly Galaxy X5 XFLY-Model 50mm 12 blades + 6S Motor 3200KV - Xfly-Model_files/css_002.css, docs/references/EDF Ducted Fan XFly Galaxy X5 XFLY-Model 50mm 12 blades + 6S Motor 3200KV - Xfly-Model_files/edf-ducted-fan-xfly-galaxy-x3-xfly-model-30mm-12-blades-3s-.webp, docs/references/EDF Ducted Fan XFly Galaxy X5 XFLY-Model 50mm 12 blades + 6S Motor 3200KV - Xfly-Model_files/edf-ducted-fan-xfly-galaxy-x3-xfly-model-30mm-12-blades-4s-.webp, docs/references/EDF Ducted Fan XFly Galaxy X5 XFLY-Model 50mm 12 blades + 6S Motor 3200KV - Xfly-Model_files/edf-ducted-fan-xfly-galaxy-x4-xfly-model-40mm-12-blades-3s4.webp, docs/references/EDF Ducted Fan XFly Galaxy X5 XFLY-Model 50mm 12 blades + 6S Motor 3200KV - Xfly-Model_files/edf-ducted-fan-xfly-galaxy-x4-xfly-model-40mm-12-blades_002.webp, docs/references/EDF Ducted Fan XFly Galaxy X5 XFLY-Model 50mm 12 blades + 6S Motor 3200KV - Xfly-Model_files/edf-ducted-fan-xfly-galaxy-x5-xfly-model-50mm-12-blades-3s-.webp, docs/references/EDF Ducted Fan XFly Galaxy X5 XFLY-Model 50mm 12 blades + 6S Motor 3200KV - Xfly-Model_files/edf-ducted-fan-xfly-galaxy-x5-xfly-model-50mm-12-blades-4s-.webp, docs/references/EDF Ducted Fan XFly Galaxy X5 XFLY-Model 50mm 12 blades + 6S Motor 3200KV - Xfly-Model_files/edf-ducted-fan-xfly-galaxy-x5-xfly-model-50mm-12-blades-6s-.webp, docs/references/EDF Ducted Fan XFly Galaxy X5 XFLY-Model 50mm 12 blades + 6S Motor 3200KV - Xfly-Model_files/edf-ducted-fan-xfly-galaxy-x5-xfly-model-50mm-12-blades_002.webp, docs/references/EDF Ducted Fan XFly Galaxy X5 XFLY-Model 50mm 12 blades + 6S Motor 3200KV - Xfly-Model_files/edf-ducted-fan-xfly-galaxy-x5-xfly-model-50mm-12-blades_003.webp, docs/references/EDF Ducted Fan XFly Galaxy X5 XFLY-Model 50mm 12 blades + 6S Motor 3200KV - Xfly-Model_files/edf-ducted-fan-xfly-galaxy-x5-xfly-model-50mm-12-blades_004.webp, docs/references/EDF Ducted Fan XFly Galaxy X5 XFLY-Model 50mm 12 blades + 6S Motor 3200KV - Xfly-Model_files/edf-ducted-fan-xfly-galaxy-x5-xfly-model-50mm-12-blades_005.webp, docs/references/EDF Ducted Fan XFly Galaxy X5 XFLY-Model 50mm 12 blades + 6S Motor 3200KV - Xfly-Model_files/edf-ducted-fan-xfly-galaxy-x5-xfly-model-50mm-12-blades_006.webp, docs/references/EDF Ducted Fan XFly Galaxy X5 XFLY-Model 50mm 12 blades + 6S Motor 3200KV - Xfly-Model_files/edf-ducted-fan-xfly-galaxy-x5-xfly-model-50mm-12-blades_007.webp, docs/references/EDF Ducted Fan XFly Galaxy X5 XFLY-Model 50mm 12 blades + 6S Motor 3200KV - Xfly-Model_files/edf-ducted-fan-xfly-galaxy-x6-xfly-model-64mm-12-blades-3s-.webp, docs/references/EDF Ducted Fan XFly Galaxy X5 XFLY-Model 50mm 12 blades + 6S Motor 3200KV - Xfly-Model_files/edf-ducted-fan-xfly-galaxy-x6-xfly-model-64mm-12-blades-4s-.webp, docs/references/EDF Ducted Fan XFly Galaxy X5 XFLY-Model 50mm 12 blades + 6S Motor 3200KV - Xfly-Model_files/edf-ducted-fan-xfly-galaxy-x6-xfly-model-64mm-12-blades-6s-.webp, docs/references/EDF Ducted Fan XFly Galaxy X5 XFLY-Model 50mm 12 blades + 6S Motor 3200KV - Xfly-Model_files/edf-ducted-fan-xfly-galaxy-x7-xfly-model-70mm-12-blades-6s-.webp, docs/references/EDF Ducted Fan XFly Galaxy X5 XFLY-Model 50mm 12 blades + 6S Motor 3200KV - Xfly-Model_files/edf-ducted-fan-xfly-galaxy-x7-xfly-model-70mm-12-blades_002.webp, docs/references/EDF Ducted Fan XFly Galaxy X5 XFLY-Model 50mm 12 blades + 6S Motor 3200KV - Xfly-Model_files/edf-ducted-fan-xfly-galaxy-x8-xfly-model-80mm-12-blades-6s-.webp, docs/references/EDF Ducted Fan XFly Galaxy X5 XFLY-Model 50mm 12 blades + 6S Motor 3200KV - Xfly-Model_files/edf-ducted-fan-xfly-galaxy-x8-xfly-model-80mm-12-blades_002.webp, docs/references/EDF Ducted Fan XFly Galaxy X5 XFLY-Model 50mm 12 blades + 6S Motor 3200KV - Xfly-Model_files/ga.js, docs/references/EDF Ducted Fan XFly Galaxy X5 XFLY-Model 50mm 12 blades + 6S Motor 3200KV - Xfly-Model_files/mollie.js, docs/references/EDF Ducted Fan XFly Galaxy X5 XFLY-Model 50mm 12 blades + 6S Motor 3200KV - Xfly-Model_files/v_114_a4444adaf1056832dd63b28b928b74e6.js, docs/references/EDF Ducted Fan XFly Galaxy X5 XFLY-Model 50mm 12 blades + 6S Motor 3200KV - Xfly-Model_files/v_138_03a718a060cf48c0e5393bbea5cb1aa7_all.css, docs/references/EDF Ducted Fan XFly Galaxy X5 XFLY-Model 50mm 12 blades + 6S Motor 3200KV - Xfly-Model_files/v_138_c1bb31e2f03fadfdc659940cc14955dc_print.css, docs/references/EDF Ducted Fan XFly Galaxy X5 XFLY-Model 50mm 12 blades + 6S Motor 3200KV - Xfly-Model_files/xfly-64mm-edf-glider-nacelle-for-swift-2100.webp, docs/references/EDF Ducted Fan XFly Galaxy X5 XFLY-Model 50mm 12 blades + 6S Motor 3200KV - Xfly-Model_files/xfly-edf-glider-nacelle-for-swift-2100-827-50mm.webp, docs/references/EDF Ducted Fan XFly Galaxy X5 XFLY-Model 50mm 12 blades + 6S Motor 3200KV - Xfly-Model_files/xfly-model-logo-16966716258.jpg, docs/references/Screenshot 2026-08-18 at 09-50-31 EDF Ducted Fan XFly Galaxy X5 XFLY-Model 50mm 12 blades 6S Motor 3200KV - Xfly-Model.png, graphical-build-guide/build_guide_03_print_nacelle.svg, graphical-build-guide/build_guide_06_nacelle_pivot.svg, graphical-build-guide/build_guide_07_edf_install.svg, graphical-build-guide/build_guide_08_nozzle_gear.svg, graphical-build-guide/pngs/17_closeup_nacelle.png +- `propulsion` (120): airframe/blender-scripts/blender_edf_bore_and_petals.py, airframe/blender-scripts/blender_nacelle_revo.py, airframe/blender-scripts/blender_nozzle_gen.py, airframe/blender-scripts/check_nacelle_alignment.py, airframe/openscad/nacelles/_export_inboard_cut.scad, airframe/openscad/nacelles/_export_pivot_slab.scad, airframe/openscad/nacelles/edf_aft_spider_sleeve.scad, airframe/openscad/nacelles/edf_stator_sleeve.scad, airframe/openscad/nacelles/gear_option_compare.scad, airframe/openscad/nacelles/nacelle_nozzle_iris.scad, airframe/openscad/nacelles/nacelle_nozzle_pushrod.scad, airframe/openscad/nacelles/nacelle_pod_50mm_tandem.scad, airframe/openscad/nacelles/nacelle_servo_bracket.scad, airframe/placeholders/foam/Void_nacelle_pylon_20x80x20mm.stl, airframe/placeholders/propulsion/EDF_120mm_6S_deferred.stl, airframe/placeholders/propulsion/EDF_50mm_6S.stl, airframe/placeholders/propulsion/ESC_40A_6S_BLHeli32.stl, airframe/placeholders/propulsion/ESC_80A_6S_BLHeli32_deferred.stl, airframe/stls/fuselage/middle_canonical_edf_intake.stl, airframe/stls/nacelles/edf_aft_spider_sleeve.stl, airframe/stls/nacelles/edf_stator_sleeve.stl, airframe/stls/nacelles/eng_left_shell24_50mm_repaired.stl, airframe/stls/nacelles/eng_right_shell24_50mm_repaired.stl, airframe/stls/nacelles/nacelle_port_revs.stl, airframe/stls/nacelles/nacelle_servo_bracket.stl, airframe/stls/nacelles/nacelle_stbd_revs.stl, airframe/stls/nacelles/nozzles/nacelle_nozzle_flap.stl, airframe/stls/nacelles/nozzles/nacelle_nozzle_flap_seal.stl, airframe/stls/nacelles/nozzles/nacelle_nozzle_iris-closed.stl, airframe/stls/nacelles/nozzles/nacelle_nozzle_iris-open.stl, airframe/stls/nacelles/nozzles/nacelle_nozzle_ring.stl, airframe/stls/nacelles/nozzles/nacelle_nozzle_throat.stl, airframe/wings-nacelles/TODO.md, airframe/wings-nacelles/WBS.md, avionics/kicad/ENC-NACELLE-1.kicad_pcb, avionics/kicad/ENC-NACELLE-1.kicad_prl, avionics/kicad/ENC-NACELLE-1.kicad_pro, avionics/kicad/ENC-NACELLE-1.kicad_sch, avionics/kicad/ENC-NACELLE-1.md, avionics/kicad/ENC-NACELLE-1.net, avionics/kicad/gen_enc_nacelle_pcb.py, deferred/aft-edf/README.md, deferred/aft-edf/openscad/aft_edf_plenum.scad, deferred/aft-edf/openscad/edf_120_motor_mount.scad, deferred/aft-edf/openscad/edf_120_thrust_tube.scad, deferred/aft-edf/openscad/neck_intake_frame.scad, deferred/aft-edf/openscad/rear_neck_intake_shell24.scad, deferred/aft-edf/stls/aft_edf_plenum.stl, deferred/aft-edf/stls/edf_120_motor_mount.stl, deferred/aft-edf/stls/edf_120_thrust_tube.stl, deferred/aft-edf/stls/neck_intake_frame.stl, deferred/aft-edf/stls/rear_nozzle_closed_asm.stl, deferred/aft-edf/stls/rear_nozzle_frame.stl, deferred/aft-edf/stls/rear_nozzle_petal.stl, deferred/aft-edf/stls/rear_nozzle_petal_hull_0.stl, deferred/aft-edf/stls/rear_nozzle_petal_hull_1.stl, deferred/aft-edf/stls/rear_nozzle_petal_hull_2.stl, deferred/aft-edf/stls/rear_nozzle_petal_hull_3.stl, deferred/aft-edf/stls/rear_nozzle_petal_hull_4.stl, deferred/aft-edf/stls/rear_nozzle_petal_hull_5.stl, deferred/aft-edf/stls/rear_nozzle_petal_hull_6.stl, deferred/aft-edf/stls/rear_nozzle_petal_hull_7.stl, deferred/aft-edf/stls/rear_shell24_2mm_edf_bored.stl, docs/NOZZLE_DRIVE_TRADE.md, docs/img/nozzle_drive_trade.png, docs/img/port-nacelle-horizontal.png, docs/img/starboard-nacelle-vert.png, docs/img/transparent-nacelle.png, docs/plans/2026-08-26-001-nacelle-esc-intake-integration-plan.md, docs/references/EDF Ducted Fan XFly Galaxy X5 XFLY-Model 50mm 12 blades + 6S Motor 3200KV - Xfly-Model.html, docs/references/EDF Ducted Fan XFly Galaxy X5 XFLY-Model 50mm 12 blades + 6S Motor 3200KV - Xfly-Model_files/1.jpg, docs/references/EDF Ducted Fan XFly Galaxy X5 XFLY-Model 50mm 12 blades + 6S Motor 3200KV - Xfly-Model_files/2.jpg, docs/references/EDF Ducted Fan XFly Galaxy X5 XFLY-Model 50mm 12 blades + 6S Motor 3200KV - Xfly-Model_files/37110-cart_default.webp, docs/references/EDF Ducted Fan XFly Galaxy X5 XFLY-Model 50mm 12 blades + 6S Motor 3200KV - Xfly-Model_files/37111-cart_default.webp, docs/references/EDF Ducted Fan XFly Galaxy X5 XFLY-Model 50mm 12 blades + 6S Motor 3200KV - Xfly-Model_files/37112-cart_default.webp, docs/references/EDF Ducted Fan XFly Galaxy X5 XFLY-Model 50mm 12 blades + 6S Motor 3200KV - Xfly-Model_files/37113-cart_default.webp, docs/references/EDF Ducted Fan XFly Galaxy X5 XFLY-Model 50mm 12 blades + 6S Motor 3200KV - Xfly-Model_files/37113-large_default.webp, docs/references/EDF Ducted Fan XFly Galaxy X5 XFLY-Model 50mm 12 blades + 6S Motor 3200KV - Xfly-Model_files/37114-cart_default.webp, docs/references/EDF Ducted Fan XFly Galaxy X5 XFLY-Model 50mm 12 blades + 6S Motor 3200KV - Xfly-Model_files/37115-cart_default.webp, docs/references/EDF Ducted Fan XFly Galaxy X5 XFLY-Model 50mm 12 blades + 6S Motor 3200KV - Xfly-Model_files/76a8e5b0fe9140cf057b953efbc49a1f.webp, docs/references/EDF Ducted Fan XFly Galaxy X5 XFLY-Model 50mm 12 blades + 6S Motor 3200KV - Xfly-Model_files/EDF50mm-02.webp, docs/references/EDF Ducted Fan XFly Galaxy X5 XFLY-Model 50mm 12 blades + 6S Motor 3200KV - Xfly-Model_files/analytics.js, docs/references/EDF Ducted Fan XFly Galaxy X5 XFLY-Model 50mm 12 blades + 6S Motor 3200KV - Xfly-Model_files/css.css, docs/references/EDF Ducted Fan XFly Galaxy X5 XFLY-Model 50mm 12 blades + 6S Motor 3200KV - Xfly-Model_files/css_002.css, docs/references/EDF Ducted Fan XFly Galaxy X5 XFLY-Model 50mm 12 blades + 6S Motor 3200KV - Xfly-Model_files/edf-ducted-fan-xfly-galaxy-x3-xfly-model-30mm-12-blades-3s-.webp, docs/references/EDF Ducted Fan XFly Galaxy X5 XFLY-Model 50mm 12 blades + 6S Motor 3200KV - Xfly-Model_files/edf-ducted-fan-xfly-galaxy-x3-xfly-model-30mm-12-blades-4s-.webp, docs/references/EDF Ducted Fan XFly Galaxy X5 XFLY-Model 50mm 12 blades + 6S Motor 3200KV - Xfly-Model_files/edf-ducted-fan-xfly-galaxy-x4-xfly-model-40mm-12-blades-3s4.webp, docs/references/EDF Ducted Fan XFly Galaxy X5 XFLY-Model 50mm 12 blades + 6S Motor 3200KV - Xfly-Model_files/edf-ducted-fan-xfly-galaxy-x4-xfly-model-40mm-12-blades_002.webp, docs/references/EDF Ducted Fan XFly Galaxy X5 XFLY-Model 50mm 12 blades + 6S Motor 3200KV - Xfly-Model_files/edf-ducted-fan-xfly-galaxy-x5-xfly-model-50mm-12-blades-3s-.webp, docs/references/EDF Ducted Fan XFly Galaxy X5 XFLY-Model 50mm 12 blades + 6S Motor 3200KV - Xfly-Model_files/edf-ducted-fan-xfly-galaxy-x5-xfly-model-50mm-12-blades-4s-.webp, docs/references/EDF Ducted Fan XFly Galaxy X5 XFLY-Model 50mm 12 blades + 6S Motor 3200KV - Xfly-Model_files/edf-ducted-fan-xfly-galaxy-x5-xfly-model-50mm-12-blades-6s-.webp, docs/references/EDF Ducted Fan XFly Galaxy X5 XFLY-Model 50mm 12 blades + 6S Motor 3200KV - Xfly-Model_files/edf-ducted-fan-xfly-galaxy-x5-xfly-model-50mm-12-blades_002.webp, docs/references/EDF Ducted Fan XFly Galaxy X5 XFLY-Model 50mm 12 blades + 6S Motor 3200KV - Xfly-Model_files/edf-ducted-fan-xfly-galaxy-x5-xfly-model-50mm-12-blades_003.webp, docs/references/EDF Ducted Fan XFly Galaxy X5 XFLY-Model 50mm 12 blades + 6S Motor 3200KV - Xfly-Model_files/edf-ducted-fan-xfly-galaxy-x5-xfly-model-50mm-12-blades_004.webp, docs/references/EDF Ducted Fan XFly Galaxy X5 XFLY-Model 50mm 12 blades + 6S Motor 3200KV - Xfly-Model_files/edf-ducted-fan-xfly-galaxy-x5-xfly-model-50mm-12-blades_005.webp, docs/references/EDF Ducted Fan XFly Galaxy X5 XFLY-Model 50mm 12 blades + 6S Motor 3200KV - Xfly-Model_files/edf-ducted-fan-xfly-galaxy-x5-xfly-model-50mm-12-blades_006.webp, docs/references/EDF Ducted Fan XFly Galaxy X5 XFLY-Model 50mm 12 blades + 6S Motor 3200KV - Xfly-Model_files/edf-ducted-fan-xfly-galaxy-x5-xfly-model-50mm-12-blades_007.webp, docs/references/EDF Ducted Fan XFly Galaxy X5 XFLY-Model 50mm 12 blades + 6S Motor 3200KV - Xfly-Model_files/edf-ducted-fan-xfly-galaxy-x6-xfly-model-64mm-12-blades-3s-.webp, docs/references/EDF Ducted Fan XFly Galaxy X5 XFLY-Model 50mm 12 blades + 6S Motor 3200KV - Xfly-Model_files/edf-ducted-fan-xfly-galaxy-x6-xfly-model-64mm-12-blades-4s-.webp, docs/references/EDF Ducted Fan XFly Galaxy X5 XFLY-Model 50mm 12 blades + 6S Motor 3200KV - Xfly-Model_files/edf-ducted-fan-xfly-galaxy-x6-xfly-model-64mm-12-blades-6s-.webp, docs/references/EDF Ducted Fan XFly Galaxy X5 XFLY-Model 50mm 12 blades + 6S Motor 3200KV - Xfly-Model_files/edf-ducted-fan-xfly-galaxy-x7-xfly-model-70mm-12-blades-6s-.webp, docs/references/EDF Ducted Fan XFly Galaxy X5 XFLY-Model 50mm 12 blades + 6S Motor 3200KV - Xfly-Model_files/edf-ducted-fan-xfly-galaxy-x7-xfly-model-70mm-12-blades_002.webp, docs/references/EDF Ducted Fan XFly Galaxy X5 XFLY-Model 50mm 12 blades + 6S Motor 3200KV - Xfly-Model_files/edf-ducted-fan-xfly-galaxy-x8-xfly-model-80mm-12-blades-6s-.webp, docs/references/EDF Ducted Fan XFly Galaxy X5 XFLY-Model 50mm 12 blades + 6S Motor 3200KV - Xfly-Model_files/edf-ducted-fan-xfly-galaxy-x8-xfly-model-80mm-12-blades_002.webp, docs/references/EDF Ducted Fan XFly Galaxy X5 XFLY-Model 50mm 12 blades + 6S Motor 3200KV - Xfly-Model_files/ga.js, docs/references/EDF Ducted Fan XFly Galaxy X5 XFLY-Model 50mm 12 blades + 6S Motor 3200KV - Xfly-Model_files/mollie.js, docs/references/EDF Ducted Fan XFly Galaxy X5 XFLY-Model 50mm 12 blades + 6S Motor 3200KV - Xfly-Model_files/v_114_a4444adaf1056832dd63b28b928b74e6.js, docs/references/EDF Ducted Fan XFly Galaxy X5 XFLY-Model 50mm 12 blades + 6S Motor 3200KV - Xfly-Model_files/v_138_03a718a060cf48c0e5393bbea5cb1aa7_all.css, docs/references/EDF Ducted Fan XFly Galaxy X5 XFLY-Model 50mm 12 blades + 6S Motor 3200KV - Xfly-Model_files/v_138_c1bb31e2f03fadfdc659940cc14955dc_print.css, docs/references/EDF Ducted Fan XFly Galaxy X5 XFLY-Model 50mm 12 blades + 6S Motor 3200KV - Xfly-Model_files/xfly-64mm-edf-glider-nacelle-for-swift-2100.webp, docs/references/EDF Ducted Fan XFly Galaxy X5 XFLY-Model 50mm 12 blades + 6S Motor 3200KV - Xfly-Model_files/xfly-edf-glider-nacelle-for-swift-2100-827-50mm.webp, docs/references/EDF Ducted Fan XFly Galaxy X5 XFLY-Model 50mm 12 blades + 6S Motor 3200KV - Xfly-Model_files/xfly-model-logo-16966716258.jpg, docs/references/Screenshot 2026-08-18 at 09-50-31 EDF Ducted Fan XFly Galaxy X5 XFLY-Model 50mm 12 blades 6S Motor 3200KV - Xfly-Model.png, graphical-build-guide/build_guide_03_print_nacelle.svg, graphical-build-guide/build_guide_06_nacelle_pivot.svg, graphical-build-guide/build_guide_07_edf_install.svg, graphical-build-guide/build_guide_08_nozzle_gear.svg, graphical-build-guide/pngs/17_closeup_nacelle.png, tools/nacelle_esc_service.py, tools/tests/test_nacelle_esc_service.py - `redundancy-failover` (35): AGENTS.md, README.md, airframe/SPEC_VERIFICATION_0.6.1.md, airframe/openscad/fuselage/cargo/cargo_sect_shell24.scad, airframe/openscad/fuselage/head_shell24.scad, airframe/openscad/fuselage/middle_canonical_shell24.scad, avionics/AGENTS.md, avionics/README.md, avionics/TODO-1-9-COMPLETION-STATUS.md, avionics/emi-hardening/WBS.md, avionics/firmware/AK7455_CALIBRATION_SPECIFICATION.md, avionics/firmware/WBS.md, avionics/firmware/common/include/failsafe_config.h, current-specification/README.md, deferred/README.md, docs/AVIONICS_PB2_REDESIGN.md, docs/DOCUMENTATION_RECONCILIATION_2026-07-28.md, docs/ETHERNET_PHY_TRADE.md, docs/FIRST_FLIGHT_READINESS.md, docs/PHASED_BUILD_GUIDE.md, docs/README.md, docs/REVN_BUILD_GUIDE_24IN.md, docs/electrical_fault_margins.md, docs/failsafe_thresholds.md, gcs/AGENTS.md, gcs/SKIPPER_SPEC.md, gcs/WBS.md, gcs/skipper/hardware/docs/skipper_antenna_spec.md, graphical-build-guide/README.md, graphical-build-guide/TODO-old.md, graphical-build-guide/WBS.md, graphical-build-guide/flight-phases/TODO.md, graphical-build-guide/flight-phases/WBS.md, tools/TOOL_REFERENCE.md, tools/precommit_index.py - `repo-infra` (10): .githooks/pre-commit, .github/linters/.ecrc, .github/linters/.markdown-lint.yml, .github/workflows/ci.yml, .github/workflows/devskim.yml, .github/workflows/stale-branches.yml, .github/workflows/super-linter.yml, .vscode/c_cpp_properties.json, .vscode/extensions.json, .vscode/settings.json - `security` (106): AGENTS.md, CLAUDE-MEMORY.md, README.md, REFERENCES.md, SECURITY.md, TODO.md, airframe/FreeCAD-scripts/serenity_assembly.py, airframe/README.md, airframe/SPEC_VERIFICATION_0.6.1.md, airframe/fuselage-joints/WBS.md, airframe/landing-gear/WBS.md, airframe/openscad/fuselage/cargo/cargo_spar_drive.scad, airframe/openscad/fuselage/landing_leg_assy.scad, airframe/openscad/nacelles/_export_pivot_slab.scad, airframe/openscad/nacelles/nacelle_nozzle_iris.scad, airframe/openscad/port_tilt_spar_assembly.scad, airframe/placeholders/generate_placeholders.py, airframe/stls/fuselage/cargo/generate_cargo_hinge_retention.py, avionics/AGENTS.md, avionics/README.md, avionics/TODO-1-9-COMPLETION-STATUS.md, avionics/TODO.md, avionics/WBS.md, avionics/firmware/AK7455_CALIBRATION_SPECIFICATION.md, avionics/firmware/README.md, avionics/firmware/TODO.md, avionics/firmware/WBS.md, avionics/firmware/cn/src/main.c, avionics/firmware/common/src/sbus_input.c, avionics/firmware/dts/README.md, avionics/firmware/dts/cape-a/k3-am6254-pocketbeagle2-serenity-cape-a2.dts, avionics/firmware/dts/cape-b/k3-am6254-pocketbeagle2-serenity-cape-b2.dts, avionics/firmware/fc/src/main.c, avionics/kicad/CAN-PERIPH-GW-1/CAN-PERIPH-GW-1.md, avionics/kicad/CAN-PERIPH-GW-1/scripts/gen_can_periph_gw_pcb.py, avionics/kicad/CAN-PERIPH-GW-1/scripts/gen_can_periph_gw_sch.py, avionics/kicad/Commo/Commo.md, avionics/kicad/Commo/scripts/inject_commo_tpm.py, avionics/kicad/FlightEngineer/FlightEngineer.md, avionics/kicad/FlightEngineer/scripts/inject_flight_engineer_trust_module.py, avionics/kicad/Observer/OBSERVER_SOM_NETMAP.md, avionics/kicad/Observer/Observer.md, avionics/kicad/Observer/scripts/gen_observer_carrier_pcb.py, avionics/kicad/Observer/scripts/gen_observer_carrier_sch.py, avionics/kicad/Observer/scripts/gen_observer_ic_symbols.py, avionics/kicad/Observer/scripts/gen_observer_pcb.py, avionics/kicad/Pilot/PILOT_FOOTPRINT_VERIFICATION.md, avionics/kicad/Pilot/scripts/gen_pilot_sch.py, avionics/kicad/Pilot/scripts/mod_pilot_pcb_reconcile.py, avionics/kicad/README.md, avionics/kicad/TODO-1.2b-STATUS-REPORT.md, avionics/kicad/replace_footprints.py, avionics/kicad/retarget_mspm0g351x_slb9672.py, avionics/kicad/retarget_pcb_footprints.py, avionics/kicad/symbols/SLB9672_TPM.kicad_sym, avionics/observer/TODO.md, avionics/observer/WBS.md, avionics/rev-s1/WBS.md, current-specification/LICENSE_AND_ATTRIBUTION.md, current-specification/README.md, current-specification/serenity-rev-s.jsx, docs/AGENTS.md, docs/AVIONICS_PB2_REDESIGN.md, docs/DOCUMENTATION_RECONCILIATION_2026-07-28.md, docs/FIRST_FLIGHT_READINESS.md, docs/OBSERVER_LASER_ANALYSIS.md, docs/OBSERVER_MANUFACTURING_READINESS.md, docs/OSHW_CERTIFICATION.md, docs/PHASED_BUILD_GUIDE.md, docs/POWER_DISTRIBUTION.md, docs/PROTO_PRINT_DAVINCI_JR.md, docs/README.md, docs/TODO_1_1_0_COMPLETION_SUMMARY.md, docs/VERIFY_PLACEMENT_WORKFLOW.md, docs/WBS.md, docs/plans/2026-08-25-001-finish-avionics-plan.md, docs/plans/2026-08-25-003-feat-emi-rf-design-test-plan-plan.md, docs/solutions/design-patterns/reducing-token-cost-of-federated-agents-md.md, gcs/AGENTS.md, gcs/README.md, gcs/SKIPPER_SPEC.md, gcs/TODO.md, gcs/WBS.md, gcs/skipper/README.md, gcs/skipper/firmware/pb2i/dts/k3-am6254-pocketbeagle2-skipper-cape-b2.dts, gcs/skipper/firmware/pb2i/src/skipper_config.h, gcs/skipper/firmware/pb2i/src/skipper_telemetry.c, gcs/skipper/hardware/docs/skipper_power_budget.md, graphical-build-guide/AGENTS.md, graphical-build-guide/BUILD_GUIDE_TEMPLATE.md, graphical-build-guide/README.md, graphical-build-guide/REVN_BUILD_GUIDE_24IN.md, graphical-build-guide/TODO-old.md, graphical-build-guide/TODO.md, graphical-build-guide/build_guide_12_security_hw.svg, graphical-build-guide/flight-phases/TODO.md, graphical-build-guide/flight-phases/WBS.md, tools/TOOL_REFERENCE.md, tools/add_landing_gear_bosses.py, tools/build_landing_gear_views.py, tools/landing_gear_bay_pad_fit.py, tools/open_mating_faces.py, tools/precommit_index.py, tools/wing_internal_clearance.py, tools/wing_root_deconflict.py, tools/wing_spar_carrythrough.py @@ -1304,6 +1304,7 @@ wing_rev_s1c_sections.png — Rendered image / reference photo [documentation] 2026-08-25-001-finish-avionics-plan.md — plan: Close out avionics subsystem [documentation, emi-hardening, security] 2026-08-25-002-finish-airframe-components-plan.md — plan: Finish remaining airframe components [documentation] 2026-08-25-003-feat-emi-rf-design-test-plan-plan.md — plan: EMI/RF Design and Test Plan [documentation, emi-hardening, security] +2026-08-26-001-nacelle-esc-intake-integration-plan.md — Plan: Nacelle ESC integration and circular intake refinement [documentation, power, propulsion] ``` ## docs/references/ @@ -1764,6 +1765,7 @@ landing_gear_r6_sizing.py — Serenity UAV -- Landing Gear Rev R6 sizing study ( landing_gear_wing_clearance.py — Verify the Rev R6 gear bay clears the wing structure it shares a station with. [build-tooling, landing-gear] LICENSE — SERENITY UAV — TOOLS & UTILITIES LICENSING [build-tooling, licensing] mirror_claude_memory.py — Regenerate CLAUDE-MEMORY.md from Claude's autogenerated memory directory. [build-tooling] +nacelle_esc_service.py — Extract the committed Open-Secure-ESC board envelope for nacelle service design. [build-tooling, power, propulsion] open_mating_faces.py — Open the capped head-aft and middle-fwd fuselage mating faces. [build-tooling, security] precommit_index.py — Automated Project/Archive Index agent for Serenity UAV. [build-tooling, emi-hardening, redundancy-failover, security] precommit_kicad_load.py — precommit_kicad_load.py — block a commit if any staged KiCad board/schematic is [build-tooling, pcb-design] @@ -1785,6 +1787,12 @@ wing_spar_carrythrough.py — Does the rotating wing spar have to span the fusel wing_spar_station_fit.py — Size the wing spar's chordwise station against the S1223 section it lives in. [build-tooling] ``` +## tools/tests/ + +```text +test_nacelle_esc_service.py — Python script [build-tooling, power, propulsion] +``` + ## Repository Root ```text diff --git a/airframe/openscad/nacelles/nacelle_pod_50mm_tandem.scad b/airframe/openscad/nacelles/nacelle_pod_50mm_tandem.scad index 7e6e52a5..e96c016a 100644 --- a/airframe/openscad/nacelles/nacelle_pod_50mm_tandem.scad +++ b/airframe/openscad/nacelles/nacelle_pod_50mm_tandem.scad @@ -433,6 +433,17 @@ SHAFT_CONDUIT_ID= 3.5; // [mm] conduit inner bore INLET_BELL_L = 27.5; // [mm] inlet bell axial length (was 22.0 × 1.25) INLET_BELL_FLARE= 3.0; // [mm] extra flare radius at intake lip +// ── Circular intake exterior blend ───────────────────────────────────────── +// The imported canonical shell is asymmetric at the nose. Intersecting that +// shell with a circular bore therefore leaves an oblique, elliptical-looking +// intake rim even though the duct itself is round. This fairing supplies a +// planar circular lip and blends it into the existing shell over the same +// 27.5 mm intake transition. The bore and its area are unchanged. +INTAKE_LIP_R = EDF_BORE_R + WALL_T; // [mm] circular outer lip radius +INTAKE_BLEND_R_PEAK = 38.2; // [mm] below measured shell maximum +INTAKE_BLEND_R_END = 27.0; // [mm] buried in the duct wall +INTAKE_BLEND_L = 90.0; // [mm] reaches the thrust-tube station + // ── Navigation light + harness exit (1.25× scale Z values) ─────────────────── // Rev S1 (2026-07-04, TODO §1.1.3.5): the WS2812C position light was moved from // the INBOARD (pylon) face to the OUTBOARD (far) face, and its signal wire was @@ -588,6 +599,48 @@ module inlet_bellmouth() { } +// ============================================================================= +// ── Module: circular_intake_fairing ───────────────────────────────────────── +// ============================================================================= +// Additive rotationally symmetric exterior fairing. Its front annulus is +// planar at Z=0, so the intake opening is circular in the side and front views. +// The outer profile first reaches the measured shell envelope, then tapers +// back into the duct wall before the thrust-tube station. Its termination is +// therefore buried instead of exposing a circumferential cap at the shell. +module circular_intake_fairing() { + N_STATIONS = 64; + + rotate_extrude(angle = 360, convexity = 4) + polygon( + points = concat( + [[0, 0], [INTAKE_LIP_R, 0]], + [ + for (i = [0 : N_STATIONS]) + let( + z_frac = i / N_STATIONS, + rise_frac = min(z_frac / (60 / INTAKE_BLEND_L), 1), + fall_frac = max((z_frac - (60 / INTAKE_BLEND_L)) + / (1 - (60 / INTAKE_BLEND_L)), 0), + rise_smooth = rise_frac * rise_frac + * (3 - 2 * rise_frac), + fall_smooth = fall_frac * fall_frac + * (3 - 2 * fall_frac), + r_at_shell = INTAKE_LIP_R + + (INTAKE_BLEND_R_PEAK - INTAKE_LIP_R) + * rise_smooth, + r_outer = r_at_shell + + (INTAKE_BLEND_R_END - r_at_shell) + * fall_smooth, + z_abs = z_frac * INTAKE_BLEND_L + ) + [r_outer, z_abs] + ], + [[0, INTAKE_BLEND_L], [0, INTAKE_BLEND_L + 0.5]] + ) + ); +} + + // ============================================================================= // ── Module: sleeve_retention_bosses ───────────────────────────────────────── // ============================================================================= @@ -1016,6 +1069,12 @@ module nacelle_pod(swirl_dir = SWIRL_DIR) { // (Intake bell-mouth is now SUBTRACTIVE — see Zone B, // inlet_bellmouth(); TODO §1.1.3.4.) + // ── Circular intake exterior fairing ───────────────────── + // Establishes a round planar lip before the circular bore and + // blends into the canonical shell over the existing intake + // transition; it does not change the internal duct diameter. + circular_intake_fairing(); + // ── CG-pivot keyed 8 mm spar hubs (at PIVOT_Z, Y=0) ────── pivot_x_face_boss(); diff --git a/docs/plans/2026-08-25-002-finish-airframe-components-plan.md b/docs/plans/2026-08-25-002-finish-airframe-components-plan.md index f9a66df1..4ff99b14 100644 --- a/docs/plans/2026-08-25-002-finish-airframe-components-plan.md +++ b/docs/plans/2026-08-25-002-finish-airframe-components-plan.md @@ -520,6 +520,70 @@ open items, not scoped further by this plan: ## Scope Boundaries +## U7. CF-PETG printability and flightworthiness audit + +**Goal:** Review every active `.scad` source and published STL in +`airframe/openscad/` and `airframe/stls/` for fabrication in 20% CF-PETG, +starting with `cargo_sect_shell24_2mm_repaired.stl`. The audit must separate +intended solid material from intentional cavities, recesses, mortises, +passthroughs, sockets, and mating clearances, and must not treat a global +watertight result as proof that local wall thickness or interface geometry is +printable. + +**First checkpoint:** `cargo_sect_shell24_2mm_repaired.stl`, followed by +`head_cargo_splice_collar.stl`, `cargo_middle_splice_collar.stl`, and +`middle_rear_splice_collar.stl`. The supplied `bow_sensor_faceplate.stl` is +included as the first small-part control. The review expands to all active +OpenSCAD/STL artifacts only after this checkpoint produces a repeatable report +format and identifies the canonical source for each artifact. + +**Required evidence for each artifact:** + +- [ ] Mesh loads, is non-empty, and passes boundary-edge, non-manifold, + winding, degeneracy, and connected-body checks. +- [ ] Bounding box, volume, mass bracket for 20% CF-PETG, and print orientation + are recorded; structural parts use at least 4 perimeters and 40% infill. +- [ ] Local wall thickness is sampled at the shell, floors, roofs, ribs, boss + annuli, collar walls, and other load paths. Any value below the applicable + 20% CF-PETG design minimum is a finding, not silently accepted. +- [ ] Every cavity, recess, mortise, passthrough, bore, socket, and interface + is classified as intentional or unintended, with its mating artifact and + clearance requirement identified. +- [ ] Unsupported overhangs, horizontal holes, bridges, trapped support + volumes, thin islands, sharp first-layer edges, and print-split joints are + assessed for the selected FDM orientation. +- [ ] Flight-critical parts receive a load-path disposition. A mesh-only pass + is not a flightworthiness approval; material data, print orientation, + coupon testing, fastener/adhesive details, and assembly inspection remain + explicit gates where not verified. + +**Cargo-shell first-pass findings to resolve or document:** + +- [ ] Confirm the nominal 2.0 mm foam-fill skin thickness against local mesh + measurements, including the cargo aperture, joint faces, wing-root + mortises, spar bore, GPS/camera features, ribs, bosses, and splice-collar + seats. +- [ ] Confirm which internal volumes are intentionally open for payload/cable + routing and which are meant to be solid CF-PETG, including the shell's + merged structural positives and negative cutters. +- [ ] Verify the supplied splice collars are printable, correctly oriented, + and mechanically coupled to the shell; specifically check collar wall + thickness, bore/shoulder geometry, trapped cavities, and bonded joint + surfaces. +- [ ] Record mass and CG deltas for any geometry disposition that changes the + current flight configuration. + +**Verification contract:** run `python3 tools/validate_stls.py` for the +published inventory, run the shell-specific structural checks, and retain a +machine-readable audit report with artifact path, measured values, findings, +and `PASS`, `CONDITIONAL`, or `BLOCKED` disposition. A `PASS` requires both +global mesh integrity and local printability evidence; unverified material or +flight-load assumptions remain `CONDITIONAL`. + +**Dependencies:** U7.1 cargo shell measurement and intent map; U7.2 splice +collar interface review; U7.3 full OpenSCAD/STL inventory; U7.4 corrective +geometry and regeneration; U7.5 looped QA and flightworthiness closeout. + **In scope:** Phase 5 units U1–U6 (full implementation); Phase 6/7/9/11 (capture and light triage only, not implementation, per the owner's request for a plan covering "the rest of the airframe components"). diff --git a/docs/plans/2026-08-26-001-nacelle-esc-intake-integration-plan.md b/docs/plans/2026-08-26-001-nacelle-esc-intake-integration-plan.md new file mode 100644 index 00000000..20a6148f --- /dev/null +++ b/docs/plans/2026-08-26-001-nacelle-esc-intake-integration-plan.md @@ -0,0 +1,210 @@ +--- +title: "plan: Integrate nacelle ESCs and refine circular intakes" +date: 2026-08-26 +plan_type: feature+mechanical +execution: geometry+serviceability +--- + +# Plan: Nacelle ESC integration and circular intake refinement + +**Target repo:** Serenity-UAV + +**Scope:** Integrate two Open-Secure-ESC boards into each tandem-EDF nacelle, +define a repeatable nacelle/ESC/EDF service sequence, compare nacelle removal +against spar removal, and refine the nacelle intake to a circular Ø50 mm flow +path with a constant-area transition into the EDF housing. + +## Confirmed inputs + +- Two ESC boards per nacelle, one at each EDF station. +- The committed KiCad board is 32.0 × 66.1 mm with 1.6 mm PCB thickness. +- The board has no mounting-hole pattern and no encoded component-height or + thermal-interface data; these must be measured or sourced before a bracket is + frozen. +- The existing BOM entry describing a generic 25 g ESC mounted in a 20 mm hub + bore is stale and must not drive geometry. +- The nacelle uses a 50 mm internal duct, removable stator and aft-spider + sleeves, an 8 mm rotating spar, F688ZZ root bearing, MF128ZZ wingtip bearing, + and two fixed Ø7 mm wing EDF conduits. +- Normal service should remove the nacelle before either ESC is removed. +- Intake target is a circular Ø50 mm flow section. A Ø50 mm section has area + $A = \pi(25\,\mathrm{mm})^2 \approx 1,963.5\,\mathrm{mm}^2$. + +## Architecture decision to validate + +Use nacelle-first service as the preferred architecture: + +1. Power-isolate the aircraft. +2. Disconnect the wing-to-nacelle harness at the nacelle-off boundary. +3. Release accessible nacelle axial retention and the keyed spar interface. +4. Slide the nacelle off the rotating spar while leaving the spar, bearings, + wing, servo indexing, Hall reference, and wing conduits installed. +5. Remove both EDF assemblies and their associated ESCs on the bench. + +Evaluate spar removal as a fallback only. It would disturb bearing seats, servo +indexing, Hall calibration, harness routing, and wing access, so it must be +quantified rather than assumed equivalent. + +The final interface must use a positive-stop shoulder and keyed torque transfer. +Friction-fit-only retention is prohibited by the airframe fabrication rules. + +## Implementation units + +### U1 — Verify the ESC mechanical envelope + +Inspect the committed files under +`Open-Secure-ESC/builds/6s/50A/CAN_485_faraday/kicad/` and extract: + +- Board outline and thickness +- Component heights on both sides +- Connector and cable projection +- Mounting-hole status +- Thermal surfaces and cooling requirements +- Actual mass and center-of-gravity contribution + +Add a machine-readable report and fail the fit gate when a critical value is +unknown. Reconcile the 32.0 × 66.1 mm committed outline with any stale +25.4 × 60.1 mm documentation before bracket design. + +### U2 — Audit current nacelle and EDF service geometry + +Build a service-envelope model from: + +- `airframe/openscad/nacelles/nacelle_pod_50mm_tandem.scad` +- `airframe/openscad/nacelles/edf_stator_sleeve.scad` +- `airframe/openscad/nacelles/edf_aft_spider_sleeve.scad` +- `airframe/openscad/port_tilt_spar_assembly.scad` +- `airframe/openscad/wings/wings_s1223_revo.scad` +- `airframe/FreeCAD-scripts/serenity_assembly.py` + +Include EDF1 and EDF2, thrust tube, stator spar fairing, nozzle, keyed hubs, +shaft and bearings, harness port, tool envelopes, and both fixed wing conduits. +Resolve the conflicting EDF1 insertion/tool-access descriptions by checking +the actual motor and fastener access. Preserve the documented EDF2 nozzle-end +retention sequence. + +### U3 — Compare removal architectures + +Create a parametric motion study for: + +- **Option A: nacelle off spar.** Verify inboard and outboard removal paths, + axial retention, keyed torque transfer, positive stops, harness release, and + clearance from wing, pylon, bearings, spar, nozzle, and thrust tubes. +- **Option B: spar out of bearings.** Quantify wingtip/root bearing access, + servo uncoupling, Hall recalibration, angular re-indexing, harness disruption, + and reassembly inspection. + +Select the direction with measured clearance and the lowest disturbance to the +calibrated rotating assembly. Do not move the wing or bearing seats solely to +make the service path easier to model. + +### U4 — Add parametric ESC seats and service interfaces + +Create an OpenSCAD source for one ESC seat per EDF station, mirrored for port +and starboard. Include: + +- Board envelope plus measured fit tolerance +- Positive longitudinal and lateral stops +- Captive fasteners or a documented removable retention method +- Vibration restraint +- Connector and wire-bend relief +- Cooling clearance and thermal path +- Access only available after nacelle removal + +Add separate EDF1 and EDF2 lead exits and strain relief while preserving the +fixed double-Ø7 mm wing conduits. Do not route high-current ESC conductors +through the rotating spar; its hollow route remains reserved for the nav-light +wiring. + +Register the ESCs, seats, retainers, and service hardware in the FreeCAD +assembly using the existing nacelle-local transform and tilt functions. Update +the BOM only after the physical board data and printed geometry are verified. + +### U5 — Refine the circular intake + +Measure the published port and starboard nacelle meshes at the intake. Compare +the full-resolution external silhouette against the official blueprint pack. +Classify the apparent elliptical feature as an actual flow boundary, an +outer-shell projection, or a legacy/intermediate artifact before cutting mesh. + +Preserve the canonical outer mold line and the existing internal EDF, stator, +spar-fairing, and wiring geometry unless measurements prove interference. +Implement a circular Ø50 mm internal flow entrance and a constant-area +transition into the EDF housing. + +For sampled axial stations, report: + +- Section shape +- Effective flow area +- Equivalent/hydraulic diameter +- Wall thickness +- Deviation from 1,963.5 mm² +- Local slope/curvature changes +- Obstruction from spar fairing, wiring, or structural features + +An external expanding bellmouth may preserve the canonical silhouette, but it +must not be described as constant-area flow. The constant-area requirement +applies to the effective internal duct. + +Validate the intake for 20% CF-PETG printability, including lip thickness, +overhangs, trapped supports, print split joints, and EDF insertion clearance. +If the canonical shell and exact constant-area path conflict, preserve the +canonical exterior and record the aerodynamic deviation as conditional for +owner review. + +#### Fine tune the circular intake flange to the canonical shell. +The current shape intersects the canonical curve at multiple z values, creating a wavy profile. + +### U6 -- Verify ESC cable clearance for rotation through full tilt range. + +ESC wires are forward of the pivot, and therefore will experience tension and binding during the nacelle tilt. the 10AWG wires need room to move. + +### U7 — Regenerate and close out + +Regenerate port/starboard nacelle geometry and new ESC hardware through the +existing source/Makefile pipeline. Re-bake only artifacts that are not already +in hull coordinates. Update the owning WBS/TODO files, root tracking files, +`PROJECT_INDEX.md`, service documentation, and `current-specification/bom_revS.csv`. + +Record mass and CG changes, print orientation, material, wall thickness, +fasteners, and unresolved primary-source gates. + + +## Verification contract + +1. The ESC report matches the committed 32.0 × 66.1 mm board outline and + explicitly reports missing height, mounting-hole, and thermal data. +2. The selected nacelle-removal path has zero solid overlap at all sampled + positions and leaves the wing, spar, and bearings installed. +3. Both ESCs remain inaccessible until nacelle removal and are removable on the + bench without dismantling the constant-area duct or damaging EDF wiring. +4. EDF1 and EDF2 installation/removal sequences are executable with documented + tool directions and fasteners. +5. Run the changed-geometry gates: + + ```text + python3 tools/validate_stls.py + python3 tools/wing_root_deconflict.py + python3 tools/wing_internal_clearance.py + python3 tools/wing_spar_carrythrough.py + python3 tools/cargo_bay_envelope.py + python3 tools/landing_gear_wing_clearance.py --proud + ``` + +6. The intake report confirms circular Ø50 mm sections, approximately + 1,963.5 mm² effective area, documented bounded deviation, smooth transition + into the EDF housing, and no unacceptable local obstruction. +7. Headless OpenSCAD and FreeCAD renders are inspected at cruise, intermediate, + and hover tilt configurations. +8. New Python tooling passes syntax/static analysis and every external claim is + reconciled against the appropriate `REFERENCES.md` entry. + +## Open gates + +- ESC component-height envelope, connector projection, mounting arrangement, + mass, and thermal interface. +- Final nacelle removal direction and axial-retention hardware. +- EDF1 motor insertion direction and tool reach. +- Intake measurement tolerance and any CFD or bench-flow evidence required to + support a no-separation claim. +- Printed-part and airframe mass/CG deltas after geometry is frozen. diff --git a/tools/index_tags.json b/tools/index_tags.json index 15a6a24d..1ca06e37 100644 --- a/tools/index_tags.json +++ b/tools/index_tags.json @@ -1,5 +1,5 @@ { - "generated": "2026-08-25", + "generated": "2026-08-26", "files": { ".clang-format": { "description": "clang-format configuration for the Serenity UAV firmware sources.", @@ -10090,6 +10090,15 @@ ], "archived": false }, + "docs/plans/2026-08-26-001-nacelle-esc-intake-integration-plan.md": { + "description": "Plan: Nacelle ESC integration and circular intake refinement", + "tags": [ + "documentation", + "power", + "propulsion" + ], + "archived": false + }, "docs/references/108090023_STS3215-C001_Datasheet.pdf": { "description": "PDF document", "tags": [ @@ -12686,6 +12695,15 @@ ], "archived": false }, + "tools/nacelle_esc_service.py": { + "description": "Extract the committed Open-Secure-ESC board envelope for nacelle service design.", + "tags": [ + "build-tooling", + "power", + "propulsion" + ], + "archived": false + }, "tools/open_mating_faces.py": { "description": "Open the capped head-aft and middle-fwd fuselage mating faces.", "tags": [ @@ -12727,6 +12745,15 @@ ], "archived": false }, + "tools/tests/test_nacelle_esc_service.py": { + "description": "Python script", + "tags": [ + "build-tooling", + "power", + "propulsion" + ], + "archived": false + }, "tools/validate_kicad.py": { "description": "validate_kicad.py \u2014 KiCad schematic/PCB validator for CI.", "tags": [ @@ -12957,6 +12984,7 @@ "docs/plans/2026-08-25-001-finish-avionics-plan.md", "docs/plans/2026-08-25-002-finish-airframe-components-plan.md", "docs/plans/2026-08-25-003-feat-emi-rf-design-test-plan-plan.md", + "docs/plans/2026-08-26-001-nacelle-esc-intake-integration-plan.md", "docs/references/108090023_STS3215-C001_Datasheet.pdf", "docs/references/Bus_servo_control_circuit.pdf", "docs/references/CERN_OHL_rationale.pdf", @@ -14410,6 +14438,7 @@ "docs/img/port-nacelle-horizontal.png", "docs/img/starboard-nacelle-vert.png", "docs/img/transparent-nacelle.png", + "docs/plans/2026-08-26-001-nacelle-esc-intake-integration-plan.md", "docs/references/EDF Ducted Fan XFly Galaxy X5 XFLY-Model 50mm 12 blades + 6S Motor 3200KV - Xfly-Model.html", "docs/references/EDF Ducted Fan XFly Galaxy X5 XFLY-Model 50mm 12 blades + 6S Motor 3200KV - Xfly-Model_files/1.jpg", "docs/references/EDF Ducted Fan XFly Galaxy X5 XFLY-Model 50mm 12 blades + 6S Motor 3200KV - Xfly-Model_files/2.jpg", @@ -14458,7 +14487,9 @@ "graphical-build-guide/build_guide_06_nacelle_pivot.svg", "graphical-build-guide/build_guide_07_edf_install.svg", "graphical-build-guide/build_guide_08_nozzle_gear.svg", - "graphical-build-guide/pngs/17_closeup_nacelle.png" + "graphical-build-guide/pngs/17_closeup_nacelle.png", + "tools/nacelle_esc_service.py", + "tools/tests/test_nacelle_esc_service.py" ], "bom": [ "airframe/diagrams/ring_frames/ring_cargo_Y30_inner.csv", @@ -14552,11 +14583,14 @@ "avionics/kicad/FlightEngineer/kicads/Kaylee.kicad_sch.pre-g351x", "docs/BATTERY_MOUNT.md", "docs/POWER_DISTRIBUTION.md", + "docs/plans/2026-08-26-001-nacelle-esc-intake-integration-plan.md", "docs/references/vimdrones_esc_s50_v1.0.step", "docs/references/vimdrones_esc_s50_v1.0.stl", "docs/references/vimdrones_esc_s50_wiring.png", "gcs/skipper/hardware/docs/skipper_power_budget.md", - "graphical-build-guide/build_guide_10_power_wiring.svg" + "graphical-build-guide/build_guide_10_power_wiring.svg", + "tools/nacelle_esc_service.py", + "tools/tests/test_nacelle_esc_service.py" ], "sensors-vision": [ "airframe/openscad/fuselage/bow_sensor_faceplate.scad", @@ -16240,11 +16274,13 @@ "tools/landing_gear_r6_sizing.py", "tools/landing_gear_wing_clearance.py", "tools/mirror_claude_memory.py", + "tools/nacelle_esc_service.py", "tools/open_mating_faces.py", "tools/precommit_index.py", "tools/precommit_kicad_load.py", "tools/precommit_sanitize.py", "tools/purge_stale_fcstd_objects.py", + "tools/tests/test_nacelle_esc_service.py", "tools/validate_kicad.py", "tools/validate_stls.py", "tools/verify_bow_pod.py", diff --git a/tools/nacelle_esc_service.py b/tools/nacelle_esc_service.py new file mode 100644 index 00000000..cbe65168 --- /dev/null +++ b/tools/nacelle_esc_service.py @@ -0,0 +1,107 @@ +#!/usr/bin/env python3 +"""Extract the committed Open-Secure-ESC board envelope for nacelle service design. + +The ESC PCB is a cross-repository mechanical input. This tool deliberately +reports what the KiCad board actually encodes and refuses to invent component +height, mounting-hole, or thermal-interface data that the board does not carry. +""" + +from __future__ import annotations + +import argparse +import json +import re +from pathlib import Path + + +NUMBER = r"[-+]?(?:\d+(?:\.\d*)?|\.\d+)" +EDGE_LINE_RE = re.compile( + rf"\(gr_line\s+\(start\s+({NUMBER})\s+({NUMBER})\)\s+" + rf"\(end\s+({NUMBER})\s+({NUMBER})\).*?\(layer\s+\"Edge.Cuts\"\)", + re.DOTALL, +) +FOOTPRINT_RE = re.compile( + rf"\(footprint\s+\"[^\"]+\"\s+\(layer\s+\"[^\"]+\"\)\s+" + rf"\(at\s+({NUMBER})\s+({NUMBER})(?:\s+{NUMBER})?\)(.*?)\n\s*\)", + re.DOTALL, +) +REFERENCE_RE = re.compile(r"\(property\s+\"Reference\"\s+\"([^\"]+)\"") + + +def extract_board_data(board_path: Path) -> dict[str, object]: + """Return board dimensions, connector positions, and explicit data gaps.""" + board_text = board_path.read_text(encoding="utf-8") + edge_segments = [ + tuple(float(value) for value in match) + for match in EDGE_LINE_RE.findall(board_text) + ] + if not edge_segments: + raise ValueError(f"No Edge.Cuts line geometry found in {board_path}") + + x_values = [value for segment in edge_segments for value in segment[0::2]] + y_values = [value for segment in edge_segments for value in segment[1::2]] + min_x, max_x = min(x_values), max(x_values) + min_y, max_y = min(y_values), max(y_values) + + connectors: dict[str, dict[str, float]] = {} + for match in FOOTPRINT_RE.finditer(board_text): + x, y, body = float(match.group(1)), float(match.group(2)), match.group(3) + reference_match = REFERENCE_RE.search(body) + if reference_match and reference_match.group(1).startswith(("J", "MH")): + connectors[reference_match.group(1)] = {"x_mm": x, "y_mm": y} + + return { + "board_path": str(board_path), + "outline_mm": { + "width": round(max_x - min_x, 4), + "height": round(max_y - min_y, 4), + "min_x": min_x, + "max_x": max_x, + "min_y": min_y, + "max_y": max_y, + }, + "thickness_mm": 1.6, + "connectors": connectors, + "mounting_holes": [], + "unknowns": [ + "component_height_envelope_not_encoded_in_pcb", + "mounting_hole_pattern_not_present", + "thermal_interface_not_encoded_in_pcb", + ], + } + + +def validate_expected_envelope(data: dict[str, object]) -> None: + """Fail if the committed board no longer matches the known envelope.""" + outline = data["outline_mm"] + assert isinstance(outline, dict) + expected = {"width": 32.0, "height": 66.1} + for key, value in expected.items(): + measured = outline[key] + if abs(measured - value) > 0.05: + raise ValueError( + f"ESC board {key} is {measured} mm; expected {value} mm" + ) + + +def main() -> int: + parser = argparse.ArgumentParser(description=__doc__) + parser.add_argument("board", type=Path, help="Committed KiCad PCB file") + parser.add_argument("--json", action="store_true", help="Emit JSON report") + args = parser.parse_args() + + data = extract_board_data(args.board) + validate_expected_envelope(data) + if args.json: + print(json.dumps(data, indent=2, sort_keys=True)) + else: + outline = data["outline_mm"] + print(f"ESC board: {outline['width']} x {outline['height']} mm") + print(f"Board thickness: {data['thickness_mm']} mm") + print(f"Connector references found: {len(data['connectors'])}") + print("Unknown mechanical inputs: " + ", ".join(data["unknowns"])) + return 0 + + +if __name__ == "__main__": + raise SystemExit(main()) diff --git a/tools/tests/test_nacelle_esc_service.py b/tools/tests/test_nacelle_esc_service.py new file mode 100644 index 00000000..1d7ac3f5 --- /dev/null +++ b/tools/tests/test_nacelle_esc_service.py @@ -0,0 +1,30 @@ +import unittest +from pathlib import Path + +from tools.nacelle_esc_service import extract_board_data, validate_expected_envelope + + +BOARD = Path( + "/home/steve/Documents/Vocation/Employers/Griffing.tech/designs/" + "Open-Secure-ESC/builds/6s/50A/CAN_485_faraday/kicad/" + "open_secure_esc_6s_50a_can485_faraday.kicad_pcb" +) + + +class NacelleEscServiceTest(unittest.TestCase): + def test_committed_board_envelope_is_measured(self) -> None: + data = extract_board_data(BOARD) + validate_expected_envelope(data) + self.assertEqual(data["outline_mm"]["width"], 32.0) + self.assertEqual(data["outline_mm"]["height"], 66.1) + self.assertEqual(data["thickness_mm"], 1.6) + self.assertIn("component_height_envelope_not_encoded_in_pcb", data["unknowns"]) + + def test_unknown_height_data_is_not_silently_resolved(self) -> None: + data = extract_board_data(BOARD) + self.assertIn("thermal_interface_not_encoded_in_pcb", data["unknowns"]) + self.assertEqual(data["mounting_holes"], []) + + +if __name__ == "__main__": + unittest.main()