{"schema":"el-pcb/1","pcb_sha256":"c046202efa3896d59d12bf19f55ed48b3a6c77532aac199a3a1e9a993e449310","revision":"LIGHT v0.1 — enclosure revision","generated":"2026-09-07","vocab":{"claim_kinds":{"documented":"recorded in the design sources or the part's datasheet","inference":"derived here from the design data; the derivation is stated","open":"not settled by anything in the design record"},"evidence":{"intended":"design intent -- what the circuit is meant to do","cad-checked":"checked by a CAD rule run on this exact layout (ERC, DRC, parity, net continuity, drill/land, mechanical)","modelled-current":"a calculation or solver run against this exact layout, under stated assumptions","simulated-historical":"a simulation bound to an earlier board revision; kept for its reasoning, not relabelled as current","measured":"never used on this page -- no LIGHT v0.1 board has been powered"}},"legend":"Nothing on this page is a measurement of this PCB. No LIGHT v0.1 board has been powered, and no firmware has been built or flashed. A clean CAD check means the files pass specific design rules; it neither replaces measurements nor proves the circuit works.","circuits":{"input":"24 V entry and protection","bus":"The protected 24 V bus","branch":"Branch fuses","buck5":"24 V to 5 V","buck3":"5 V to 3.3 V","mcu":"The controller","pwm":"The two PWM expanders","ambient":"Ambient zone channels","spot_supply":"The gated spotlight supply","spot":"Spotlight constant-current drivers","gating":"ARM, supervisor and the SAFE chain","can":"CAN and the motor ports","usb":"The USB-C island","sensor":"Board temperature","expansion":"Expansion pads and boot straps","mechanical":"Mounting","test":"Test points"},"families":{"bulk":{"label":"Bulk reservoir capacitor","refs":["C1","C3","C501","C506","C508","C510","C511","C512","C513"]},"decoupling":{"label":"Decoupling capacitor","refs":["C2","C4","C5","C20","C21","C22","C30","C31","C40","C41","C42","C43","C44","C45","C46","C500","C502","C505","C507","C514","C515","C517","C518"]},"unique":{"label":"Named part","refs":["C503","C504","C509","C516","D30","D500","D501","D505","J1","J12","J13","J14","J15","J16","J17","L500","L501","Q30","Q500","Q501","S1","S2","U1","U2","U3","U4","U5","U6","U10","U11","U12","U13","U14","U15","U16","U17","U18","U19","U20","U500","U501"]},"spot_input_cap":{"label":"Spotlight driver input capacitor","refs":["C519","C520","C521","C522","C523","C524"]},"spot_diode":{"label":"Spotlight catch diode","refs":["D502","D503","D504"]},"input_fuse":{"label":"Input backup fuse","refs":["F1"]},"motor_fuse":{"label":"Motor branch fuse","refs":["F2","F3"]},"zone_fuse":{"label":"Ambient zone fuse","refs":["F4","F5","F6","F7","F8","F9","F10"]},"logic_fuse":{"label":"Logic branch fuse","refs":["F11"]},"mounting_hole":{"label":"Mounting hole","refs":["H1","H2","H3","H4"]},"zone_connector":{"label":"Ambient zone connector","refs":["J2","J3","J4","J5","J6","J7","J8"]},"spot_connector":{"label":"Spotlight output connector","refs":["J9","J10","J11"]},"expansion_pads":{"label":"Expansion solder pads","refs":["J18"]},"jumper":{"label":"Solder jumper","refs":["JP1"]},"spot_inductor":{"label":"Spotlight inductor","refs":["L502","L503","L504"]},"ambient_mosfet":{"label":"Ambient channel switch","refs":["Q101","Q102","Q103","Q104","Q105","Q106","Q107","Q108","Q109","Q110","Q111","Q112","Q113","Q114","Q115","Q116","Q117","Q118","Q119","Q120","Q121"]},"pullup":{"label":"Pull-up resistor","refs":["R1","R2","R3","R6","R7","R8","R20","R36","R508","R509","R512","R513","R520"]},"pulldown":{"label":"Pull-down resistor","refs":["R4","R5","R9","R10","R11","R21","R30","R31","R37","R38","R40","R507","R514","R519","R521"]},"setting":{"label":"Setting resistor","refs":["R22","R32","R33","R42","R500","R515","R516"]},"divider":{"label":"Resistive divider leg","refs":["R34","R35","R39","R41","R501","R502","R503","R504","R505","R506","R510","R511","R517","R518"]},"ambient_gate_series":{"label":"Ambient gate series resistor","refs":["R101","R102","R103","R104","R105","R106","R107","R108","R109","R110","R111","R112","R113","R114","R115","R116","R117","R118","R119","R120","R121"]},"ambient_gate_pulldown":{"label":"Ambient gate pull-down","refs":["R201","R202","R203","R204","R205","R206","R207","R208","R209","R210","R211","R212","R213","R214","R215","R216","R217","R218","R219","R220","R221"]},"ambient_gate_pullup":{"label":"Ambient gate pull-up","refs":["R301","R302","R303","R304","R305","R306","R307","R308","R309","R310","R311","R312","R313","R314","R315","R316","R317","R318","R319","R320","R321"]},"spot_sense":{"label":"Spotlight current-sense resistor","refs":["R523","R524","R525"]},"spot_ctrl_pulldown":{"label":"Spotlight CTRL pull-down","refs":["R526","R527","R528"]},"test_point":{"label":"Test point","refs":["TP1","TP2","TP3","TP4","TP5","TP6","TP7","TP8","TP9","TP10","TP11","TP12"]},"boot_strap_probe":{"label":"Boot-strap probe pad","refs":["TP13","TP14","TP15"]},"spot_driver":{"label":"Spotlight driver","refs":["U7","U8","U9"]}},"components":{"C1":{"family":"bulk","claims":[{"kind":"documented","evidence":"intended","text":"Ceramic capacitors lose a large part of their marked value under DC bias, so the reservoir this circuit actually gets is smaller than the printed number. Two of this board's reservoirs were re-selected for exactly that reason.","basis":"engineering-history/rev_a_capacitor_correction.md"}],"open":[],"related":["R1","R42","S1","U1"],"assembly":[],"name":"MCU_EN reservoir","circuit":"mcu","here":"The reset timing capacitor: together with R1 it holds the module in reset while 3.3 V rises. Its two connections here are MCU_EN and GND, and unlike the small bypass capacitors nearby its job is to hold enough charge for demands that last far longer than a single switching edge.","how":"Larger capacitance covers slower, bigger demands than a decoupling capacitor can: an inrush, a radio transmit burst, or the gap between a switching converter's cycles. Ceramic capacitors also lose a large fraction of their nominal value under DC bias, so the number printed on the part is not the capacitance the circuit gets.","sheet":2,"bom":3,"nets":[{"pin":"1","net":"MCU_EN","role":""},{"pin":"2","net":"GND","role":""}],"sources":[{"label":"Primary source","url":"https://product.tdk.com/en/search/capacitor/ceramic/mlcc/info?part_no=C1608X7R1E105K080AB","context":"undated product page; source and stock dates distinguished"}]},"C2":{"family":"decoupling","claims":[{"kind":"inference","evidence":"intended","text":"This capacitor is assigned to U1 from the reviewed decoupling table and its own nets (+3V3 and GND). On a dense two-sided board that assignment is an engineering reading of the layout, not something the netlist states.","basis":"engineering-history/power_clusters.json and the part's nets in board.json"}],"open":[],"related":["U1"],"assembly":[],"name":"U1 decoupling capacitor","circuit":"mcu","here":"The radio module's high-frequency bypass. It sits between +3V3 and GND, placed within a few millimetres of U1, so that when U1 switches the current for that instant comes from here rather than down the length of copper back to the regulator.","how":"Every chip draws its supply current in bursts as it switches. The wiring back to the regulator has enough inductance that those bursts would show up as dips on the rail, so each chip gets a small capacitor right beside it to supply the burst locally. Small ceramics do this well because they respond quickly; larger values handle slower demands.","sheet":2,"bom":6,"nets":[{"pin":"1","net":"+3V3","role":""},{"pin":"2","net":"GND","role":""}],"sources":[{"label":"Primary source","url":"https://www.murata.com/products/productdetail?partno=GRM188R72A104KA35%23","context":"undated exact product page"}]},"C3":{"family":"bulk","claims":[{"kind":"documented","evidence":"modelled-current","text":"This part was changed to a 22 uF 25 V X7R in a 1210 package after a capacitance review: under DC bias the previous choice fell below the reservoir the design needs. The screen used characterised sample data plus an engineering reserve, not guaranteed lifetime minima.","basis":"engineering-history/rev_a_capacitor_correction.md"}],"open":[],"related":["U1"],"assembly":[],"name":"+3V3 reservoir","circuit":"mcu","here":"The radio module's local energy reservoir for transmit bursts. Its two connections here are +3V3 and GND, and unlike the small bypass capacitors nearby its job is to hold enough charge for demands that last far longer than a single switching edge.","how":"Larger capacitance covers slower, bigger demands than a decoupling capacitor can: an inrush, a radio transmit burst, or the gap between a switching converter's cycles. Ceramic capacitors also lose a large fraction of their nominal value under DC bias, so the number printed on the part is not the capacitance the circuit gets.","sheet":2,"bom":7,"nets":[{"pin":"1","net":"+3V3","role":""},{"pin":"2","net":"GND","role":""}],"sources":[{"label":"Primary source","url":"https://search.murata.co.jp/Ceramy/image/img/A01X/G101/ENG/GRM32ER71E226KE15-01.pdf","context":"-01, 2016-03-07"}]},"C4":{"family":"decoupling","claims":[{"kind":"inference","evidence":"intended","text":"This capacitor is assigned to U5 from the reviewed decoupling table and its own nets (+3V3 and GND). On a dense two-sided board that assignment is an engineering reading of the layout, not something the netlist states.","basis":"engineering-history/power_clusters.json and the part's nets in board.json"}],"open":[],"related":["U5"],"assembly":[],"name":"U5 decoupling capacitor","circuit":"gating","here":"Bypass for the AND gate that arms the spotlight PWM signals. It sits between +3V3 and GND, placed within a few millimetres of U5, so that when U5 switches the current for that instant comes from here rather than down the length of copper back to the regulator.","how":"Every chip draws its supply current in bursts as it switches. The wiring back to the regulator has enough inductance that those bursts would show up as dips on the rail, so each chip gets a small capacitor right beside it to supply the burst locally. Small ceramics do this well because they respond quickly; larger values handle slower demands.","sheet":2,"bom":6,"nets":[{"pin":"1","net":"+3V3","role":""},{"pin":"2","net":"GND","role":""}],"sources":[{"label":"Primary source","url":"https://www.murata.com/products/productdetail?partno=GRM188R72A104KA35%23","context":"undated exact product page"}]},"C5":{"family":"decoupling","claims":[{"kind":"inference","evidence":"intended","text":"This capacitor is assigned to U6 from the reviewed decoupling table and its own nets (+3V3 and GND). On a dense two-sided board that assignment is an engineering reading of the layout, not something the netlist states.","basis":"engineering-history/power_clusters.json and the part's nets in board.json"}],"open":[],"related":["U6"],"assembly":[],"name":"U6 decoupling capacitor","circuit":"gating","here":"Bypass for the inverter that drives the expanders' output-enable. It sits between +3V3 and GND, placed within a few millimetres of U6, so that when U6 switches the current for that instant comes from here rather than down the length of copper back to the regulator.","how":"Every chip draws its supply current in bursts as it switches. The wiring back to the regulator has enough inductance that those bursts would show up as dips on the rail, so each chip gets a small capacitor right beside it to supply the burst locally. Small ceramics do this well because they respond quickly; larger values handle slower demands.","sheet":2,"bom":6,"nets":[{"pin":"1","net":"+3V3","role":""},{"pin":"2","net":"GND","role":""}],"sources":[{"label":"Primary source","url":"https://www.murata.com/products/productdetail?partno=GRM188R72A104KA35%23","context":"undated exact product page"}]},"C20":{"family":"decoupling","claims":[{"kind":"inference","evidence":"intended","text":"This capacitor is assigned to U4 from the reviewed decoupling table and its own nets (+5V and GND). On a dense two-sided board that assignment is an engineering reading of the layout, not something the netlist states.","basis":"engineering-history/power_clusters.json and the part's nets in board.json"}],"open":[],"related":["U4"],"assembly":[],"name":"U4 decoupling capacitor","circuit":"can","here":"Bypass for the CAN transceiver's 5 V supply. It sits between +5V and GND, placed within a few millimetres of U4, so that when U4 switches the current for that instant comes from here rather than down the length of copper back to the regulator.","how":"Every chip draws its supply current in bursts as it switches. The wiring back to the regulator has enough inductance that those bursts would show up as dips on the rail, so each chip gets a small capacitor right beside it to supply the burst locally. Small ceramics do this well because they respond quickly; larger values handle slower demands.","sheet":4,"bom":6,"nets":[{"pin":"1","net":"+5V","role":""},{"pin":"2","net":"GND","role":""}],"sources":[{"label":"Primary source","url":"https://www.murata.com/products/productdetail?partno=GRM188R72A104KA35%23","context":"undated exact product page"}]},"C21":{"family":"decoupling","claims":[{"kind":"inference","evidence":"intended","text":"This capacitor is assigned to U4 from the reviewed decoupling table and its own nets (+3V3 and GND). On a dense two-sided board that assignment is an engineering reading of the layout, not something the netlist states.","basis":"engineering-history/power_clusters.json and the part's nets in board.json"}],"open":[],"related":["U4"],"assembly":[],"name":"U4 decoupling capacitor","circuit":"can","here":"Bypass for the CAN transceiver's 3.3 V logic-side supply. It sits between +3V3 and GND, placed within a few millimetres of U4, so that when U4 switches the current for that instant comes from here rather than down the length of copper back to the regulator.","how":"Every chip draws its supply current in bursts as it switches. The wiring back to the regulator has enough inductance that those bursts would show up as dips on the rail, so each chip gets a small capacitor right beside it to supply the burst locally. Small ceramics do this well because they respond quickly; larger values handle slower demands.","sheet":4,"bom":6,"nets":[{"pin":"1","net":"+3V3","role":""},{"pin":"2","net":"GND","role":""}],"sources":[{"label":"Primary source","url":"https://www.murata.com/products/productdetail?partno=GRM188R72A104KA35%23","context":"undated exact product page"}]},"C22":{"family":"decoupling","claims":[{"kind":"inference","evidence":"intended","text":"This capacitor is assigned to U4 from the reviewed decoupling table and its own nets (+5V and GND). On a dense two-sided board that assignment is an engineering reading of the layout, not something the netlist states.","basis":"engineering-history/power_clusters.json and the part's nets in board.json"}],"open":[],"related":["U4"],"assembly":[],"name":"U4 decoupling capacitor","circuit":"can","here":"The larger companion reservoir for the CAN transceiver's 5 V supply. It sits between +5V and GND, placed within a few millimetres of U4, so that when U4 switches the current for that instant comes from here rather than down the length of copper back to the regulator.","how":"Every chip draws its supply current in bursts as it switches. The wiring back to the regulator has enough inductance that those bursts would show up as dips on the rail, so each chip gets a small capacitor right beside it to supply the burst locally. Small ceramics do this well because they respond quickly; larger values handle slower demands.","sheet":4,"bom":3,"nets":[{"pin":"1","net":"+5V","role":""},{"pin":"2","net":"GND","role":""}],"sources":[{"label":"Primary source","url":"https://product.tdk.com/en/search/capacitor/ceramic/mlcc/info?part_no=C1608X7R1E105K080AB","context":"undated product page; source and stock dates distinguished"}]},"C30":{"family":"decoupling","claims":[{"kind":"inference","evidence":"intended","text":"This capacitor is assigned to J14 from the reviewed decoupling table and its own nets (USB_VBUS and GND). On a dense two-sided board that assignment is an engineering reading of the layout, not something the netlist states.","basis":"engineering-history/power_clusters.json and the part's nets in board.json"}],"open":[],"related":["J14"],"assembly":[],"name":"J14 decoupling capacitor","circuit":"usb","here":"Bypass on the USB bus voltage right at the connector. It sits between USB_VBUS and GND, placed within a few millimetres of J14, so that when J14 switches the current for that instant comes from here rather than down the length of copper back to the regulator.","how":"Every chip draws its supply current in bursts as it switches. The wiring back to the regulator has enough inductance that those bursts would show up as dips on the rail, so each chip gets a small capacitor right beside it to supply the burst locally. Small ceramics do this well because they respond quickly; larger values handle slower demands.","sheet":5,"bom":6,"nets":[{"pin":"1","net":"USB_VBUS","role":""},{"pin":"2","net":"GND","role":""}],"sources":[{"label":"Primary source","url":"https://www.murata.com/products/productdetail?partno=GRM188R72A104KA35%23","context":"undated exact product page"}]},"C31":{"family":"decoupling","claims":[{"kind":"inference","evidence":"intended","text":"This capacitor is assigned to U17 from the reviewed decoupling table and its own nets (USB_VBUS and GND). On a dense two-sided board that assignment is an engineering reading of the layout, not something the netlist states.","basis":"engineering-history/power_clusters.json and the part's nets in board.json"}],"open":[],"related":["U17"],"assembly":[],"name":"U17 decoupling capacitor","circuit":"usb","here":"Bypass on the USB bus voltage at the data mux's supply pin. It sits between USB_VBUS and GND, placed within a few millimetres of U17, so that when U17 switches the current for that instant comes from here rather than down the length of copper back to the regulator.","how":"Every chip draws its supply current in bursts as it switches. The wiring back to the regulator has enough inductance that those bursts would show up as dips on the rail, so each chip gets a small capacitor right beside it to supply the burst locally. Small ceramics do this well because they respond quickly; larger values handle slower demands.","sheet":5,"bom":6,"nets":[{"pin":"1","net":"USB_VBUS","role":""},{"pin":"2","net":"GND","role":""}],"sources":[{"label":"Primary source","url":"https://www.murata.com/products/productdetail?partno=GRM188R72A104KA35%23","context":"undated exact product page"}]},"C40":{"family":"decoupling","claims":[{"kind":"inference","evidence":"intended","text":"This capacitor is assigned to U2 from the reviewed decoupling table and its own nets (+3V3 and GND). On a dense two-sided board that assignment is an engineering reading of the layout, not something the netlist states.","basis":"engineering-history/power_clusters.json and the part's nets in board.json"}],"open":[],"related":["U2"],"assembly":[],"name":"U2 decoupling capacitor","circuit":"pwm","here":"High-frequency bypass for the first PWM expander. It sits between +3V3 and GND, placed within a few millimetres of U2, so that when U2 switches the current for that instant comes from here rather than down the length of copper back to the regulator.","how":"Every chip draws its supply current in bursts as it switches. The wiring back to the regulator has enough inductance that those bursts would show up as dips on the rail, so each chip gets a small capacitor right beside it to supply the burst locally. Small ceramics do this well because they respond quickly; larger values handle slower demands.","sheet":6,"bom":6,"nets":[{"pin":"1","net":"+3V3","role":""},{"pin":"2","net":"GND","role":""}],"sources":[{"label":"Primary source","url":"https://www.murata.com/products/productdetail?partno=GRM188R72A104KA35%23","context":"undated exact product page"}]},"C41":{"family":"decoupling","claims":[{"kind":"inference","evidence":"intended","text":"This capacitor is assigned to U3 from the reviewed decoupling table and its own nets (+3V3 and GND). On a dense two-sided board that assignment is an engineering reading of the layout, not something the netlist states.","basis":"engineering-history/power_clusters.json and the part's nets in board.json"}],"open":[],"related":["U3"],"assembly":[],"name":"U3 decoupling capacitor","circuit":"pwm","here":"High-frequency bypass for the second PWM expander. It sits between +3V3 and GND, placed within a few millimetres of U3, so that when U3 switches the current for that instant comes from here rather than down the length of copper back to the regulator.","how":"Every chip draws its supply current in bursts as it switches. The wiring back to the regulator has enough inductance that those bursts would show up as dips on the rail, so each chip gets a small capacitor right beside it to supply the burst locally. Small ceramics do this well because they respond quickly; larger values handle slower demands.","sheet":6,"bom":6,"nets":[{"pin":"1","net":"+3V3","role":""},{"pin":"2","net":"GND","role":""}],"sources":[{"label":"Primary source","url":"https://www.murata.com/products/productdetail?partno=GRM188R72A104KA35%23","context":"undated exact product page"}]},"C42":{"family":"decoupling","claims":[{"kind":"inference","evidence":"intended","text":"This capacitor is assigned to U2 from the reviewed decoupling table and its own nets (+3V3 and GND). On a dense two-sided board that assignment is an engineering reading of the layout, not something the netlist states.","basis":"engineering-history/power_clusters.json and the part's nets in board.json"}],"open":[],"related":["U2"],"assembly":[],"name":"U2 decoupling capacitor","circuit":"pwm","here":"The larger companion reservoir for the first PWM expander. It sits between +3V3 and GND, placed within a few millimetres of U2, so that when U2 switches the current for that instant comes from here rather than down the length of copper back to the regulator.","how":"Every chip draws its supply current in bursts as it switches. The wiring back to the regulator has enough inductance that those bursts would show up as dips on the rail, so each chip gets a small capacitor right beside it to supply the burst locally. Small ceramics do this well because they respond quickly; larger values handle slower demands.","sheet":6,"bom":3,"nets":[{"pin":"1","net":"+3V3","role":""},{"pin":"2","net":"GND","role":""}],"sources":[{"label":"Primary source","url":"https://product.tdk.com/en/search/capacitor/ceramic/mlcc/info?part_no=C1608X7R1E105K080AB","context":"undated product page; source and stock dates distinguished"}]},"C43":{"family":"decoupling","claims":[{"kind":"inference","evidence":"intended","text":"This capacitor is assigned to U3 from the reviewed decoupling table and its own nets (+3V3 and GND). On a dense two-sided board that assignment is an engineering reading of the layout, not something the netlist states.","basis":"engineering-history/power_clusters.json and the part's nets in board.json"}],"open":[],"related":["U3"],"assembly":[],"name":"U3 decoupling capacitor","circuit":"pwm","here":"The larger companion reservoir for the second PWM expander. It sits between +3V3 and GND, placed within a few millimetres of U3, so that when U3 switches the current for that instant comes from here rather than down the length of copper back to the regulator.","how":"Every chip draws its supply current in bursts as it switches. The wiring back to the regulator has enough inductance that those bursts would show up as dips on the rail, so each chip gets a small capacitor right beside it to supply the burst locally. Small ceramics do this well because they respond quickly; larger values handle slower demands.","sheet":6,"bom":3,"nets":[{"pin":"1","net":"+3V3","role":""},{"pin":"2","net":"GND","role":""}],"sources":[{"label":"Primary source","url":"https://product.tdk.com/en/search/capacitor/ceramic/mlcc/info?part_no=C1608X7R1E105K080AB","context":"undated product page; source and stock dates distinguished"}]},"C44":{"family":"decoupling","claims":[{"kind":"inference","evidence":"intended","text":"This capacitor is assigned to U18 from the reviewed decoupling table and its own nets (+3V3 and GND). On a dense two-sided board that assignment is an engineering reading of the layout, not something the netlist states.","basis":"engineering-history/power_clusters.json and the part's nets in board.json"}],"open":[],"related":["U18"],"assembly":[],"name":"U18 decoupling capacitor","circuit":"gating","here":"Bypass for the 3.3 V supervisor. It sits between +3V3 and GND, placed within a few millimetres of U18, so that when U18 switches the current for that instant comes from here rather than down the length of copper back to the regulator.","how":"Every chip draws its supply current in bursts as it switches. The wiring back to the regulator has enough inductance that those bursts would show up as dips on the rail, so each chip gets a small capacitor right beside it to supply the burst locally. Small ceramics do this well because they respond quickly; larger values handle slower demands.","sheet":3,"bom":6,"nets":[{"pin":"1","net":"+3V3","role":""},{"pin":"2","net":"GND","role":""}],"sources":[{"label":"Primary source","url":"https://www.murata.com/products/productdetail?partno=GRM188R72A104KA35%23","context":"undated exact product page"}]},"C45":{"family":"decoupling","claims":[{"kind":"inference","evidence":"intended","text":"This capacitor is assigned to U19 from the reviewed decoupling table and its own nets (+3V3 and GND). On a dense two-sided board that assignment is an engineering reading of the layout, not something the netlist states.","basis":"engineering-history/power_clusters.json and the part's nets in board.json"}],"open":[],"related":["U19"],"assembly":[],"name":"U19 decoupling capacitor","circuit":"gating","here":"Bypass for the Schmitt AND gate that produces SAFE. It sits between +3V3 and GND, placed within a few millimetres of U19, so that when U19 switches the current for that instant comes from here rather than down the length of copper back to the regulator.","how":"Every chip draws its supply current in bursts as it switches. The wiring back to the regulator has enough inductance that those bursts would show up as dips on the rail, so each chip gets a small capacitor right beside it to supply the burst locally. Small ceramics do this well because they respond quickly; larger values handle slower demands.","sheet":3,"bom":6,"nets":[{"pin":"1","net":"+3V3","role":""},{"pin":"2","net":"GND","role":""}],"sources":[{"label":"Primary source","url":"https://www.murata.com/products/productdetail?partno=GRM188R72A104KA35%23","context":"undated exact product page"}]},"C46":{"family":"decoupling","claims":[{"kind":"inference","evidence":"intended","text":"This capacitor is assigned to U20 from the reviewed decoupling table and its own nets (+3V3 and GND). On a dense two-sided board that assignment is an engineering reading of the layout, not something the netlist states.","basis":"engineering-history/power_clusters.json and the part's nets in board.json"}],"open":[],"related":["U20"],"assembly":[],"name":"U20 decoupling capacitor","circuit":"sensor","here":"Bypass for the temperature sensor. It sits between +3V3 and GND, placed within a few millimetres of U20, so that when U20 switches the current for that instant comes from here rather than down the length of copper back to the regulator.","how":"Every chip draws its supply current in bursts as it switches. The wiring back to the regulator has enough inductance that those bursts would show up as dips on the rail, so each chip gets a small capacitor right beside it to supply the burst locally. Small ceramics do this well because they respond quickly; larger values handle slower demands.","sheet":19,"bom":6,"nets":[{"pin":"1","net":"+3V3","role":""},{"pin":"2","net":"GND","role":""}],"sources":[{"label":"Primary source","url":"https://www.murata.com/products/productdetail?partno=GRM188R72A104KA35%23","context":"undated exact product page"}]},"C500":{"family":"decoupling","claims":[{"kind":"inference","evidence":"intended","text":"This capacitor is assigned to F1 from the reviewed decoupling table and its own nets (VIN24_FUSED and GND). On a dense two-sided board that assignment is an engineering reading of the layout, not something the netlist states.","basis":"engineering-history/power_clusters.json and the part's nets in board.json"}],"open":[],"related":["F1"],"assembly":[],"name":"F1 decoupling capacitor","circuit":"input","here":"High-frequency bypass on the incoming 24 V, just after the fuse. It sits between VIN24_FUSED and GND, placed within a few millimetres of F1, so that when F1 switches the current for that instant comes from here rather than down the length of copper back to the regulator.","how":"Every chip draws its supply current in bursts as it switches. The wiring back to the regulator has enough inductance that those bursts would show up as dips on the rail, so each chip gets a small capacitor right beside it to supply the burst locally. Small ceramics do this well because they respond quickly; larger values handle slower demands.","sheet":15,"bom":6,"nets":[{"pin":"1","net":"VIN24_FUSED","role":""},{"pin":"2","net":"GND","role":""}],"sources":[{"label":"Primary source","url":"https://www.murata.com/products/productdetail?partno=GRM188R72A104KA35%23","context":"undated exact product page"}]},"C501":{"family":"bulk","claims":[{"kind":"documented","evidence":"intended","text":"Ceramic capacitors lose a large part of their marked value under DC bias, so the reservoir this circuit actually gets is smaller than the printed number. Two of this board's reservoirs were re-selected for exactly that reason.","basis":"engineering-history/rev_a_capacitor_correction.md"}],"open":[],"related":["C500","D500","F1","Q500","Q501","R501"],"assembly":[],"name":"VIN24_FUSED reservoir","circuit":"input","here":"A small bulk reservoir on the incoming 24 V, rated 100 V because it sits upstream of the cutoff. Its two connections here are VIN24_FUSED and GND, and unlike the small bypass capacitors nearby its job is to hold enough charge for demands that last far longer than a single switching edge.","how":"Larger capacitance covers slower, bigger demands than a decoupling capacitor can: an inrush, a radio transmit burst, or the gap between a switching converter's cycles. Ceramic capacitors also lose a large fraction of their nominal value under DC bias, so the number printed on the part is not the capacitance the circuit gets.","sheet":15,"bom":47,"nets":[{"pin":"1","net":"VIN24_FUSED","role":""},{"pin":"2","net":"GND","role":""}],"sources":[{"label":"Primary source","url":"https://product.tdk.com/en/search/capacitor/ceramic/mlcc/info?part_no=C3216X7R2A105K160AA","context":"undated product page; source and stock dates distinguished"}]},"C502":{"family":"decoupling","claims":[{"kind":"inference","evidence":"intended","text":"This capacitor is assigned to Q500 from the reviewed decoupling table and its own nets (VIN24_RPP and GND). On a dense two-sided board that assignment is an engineering reading of the layout, not something the netlist states.","basis":"engineering-history/power_clusters.json and the part's nets in board.json"}],"open":[],"related":["Q500"],"assembly":[],"name":"Q500 decoupling capacitor","circuit":"input","here":"High-frequency bypass just after the reverse-blocking transistor. It sits between VIN24_RPP and GND, placed within a few millimetres of Q500, so that when Q500 switches the current for that instant comes from here rather than down the length of copper back to the regulator.","how":"Every chip draws its supply current in bursts as it switches. The wiring back to the regulator has enough inductance that those bursts would show up as dips on the rail, so each chip gets a small capacitor right beside it to supply the burst locally. Small ceramics do this well because they respond quickly; larger values handle slower demands.","sheet":15,"bom":6,"nets":[{"pin":"1","net":"VIN24_RPP","role":""},{"pin":"2","net":"GND","role":""}],"sources":[{"label":"Primary source","url":"https://www.murata.com/products/productdetail?partno=GRM188R72A104KA35%23","context":"undated exact product page"}]},"C503":{"family":"unique","claims":[{"kind":"documented","evidence":"modelled-current","text":"The typical ramp is about 49.9 ms, charging 1000 uF at roughly 0.48 A; a plus-20 % bulk sensitivity alone is about 0.58 A, before logic demand.","basis":"engineering-history/first_hardware_checklist.md"}],"open":[],"related":["U12","C504"],"assembly":[],"name":"eFuse output ramp capacitor","circuit":"input","here":"Sets how quickly the eFuse ramps V24_BUS up at startup, between EFUSE_DVDT and ground. It is the reason the bulk capacitor charges gently instead of slamming the supply with an inrush.","how":"The chip charges this capacitor with a fixed current, and its output voltage follows that ramp. A bigger capacitor means a slower, gentler start. Without a controlled ramp, switching on a large bulk capacitor looks like a short circuit for a few milliseconds.","sheet":15,"bom":6,"nets":[{"pin":"1","net":"EFUSE_DVDT","role":""},{"pin":"2","net":"GND","role":""}],"sources":[{"label":"Primary source","url":"https://www.murata.com/products/productdetail?partno=GRM188R72A104KA35%23","context":"undated exact product page"}]},"C504":{"family":"unique","claims":[{"kind":"documented","evidence":"modelled-current","text":"At 24 V this capacitor stores about 0.288 J. For scale, dumping 0.1 J into an ideal unloaded bus would raise it to about 27.9 V and 0.4 J to about 37.1 V -- which is why it cannot be treated as a sink for motor regeneration.","basis":"engineering-history/power_review.md"}],"open":["Whether the motors' regenerative energy has anywhere to go is an open hardware question. Do not rely on this capacitor, the transient suppressors or a reverse-blocked supply to absorb it."],"related":["U12","U501","D505","J16","J12","J13"],"assembly":["Provisional engineering-derived land pattern: the manufacturer publishes termination dimensions but no recommended land, and the footprint has no paste apertures.","The part's profile allows one reflow at 230 C peak for at most 5 s, so it is a factory controlled final installation after ordinary two-sided reflow, not a part that rides through both passes."],"name":"Bulk capacitor on the protected bus","circuit":"bus","here":"The 1000 uF can on the back of the board, between V24_BUS and ground. It is the local energy store that absorbs the motors' current spikes so the external supply and the cable do not have to follow them.","how":"An electrolytic capacitor stores far more energy per unit volume than a ceramic one, which is what you want for slow, large demands. It is polarised: fitted backwards it will fail, sometimes violently, so its polarity marking has to match the board.","inspect":"Check polarity and seating before power. This is the part whose orientation matters most.","sheet":15,"bom":48,"nets":[{"pin":"1","net":"V24_BUS","role":""},{"pin":"2","net":"GND","role":""}],"sources":[{"label":"Primary source","url":"https://www.cde.com/resources/catalogs/AFK.pdf","context":"undated product page; source and stock dates distinguished"}]},"C505":{"family":"decoupling","claims":[{"kind":"inference","evidence":"intended","text":"This capacitor is assigned to U12 from the reviewed decoupling table and its own nets (V24_BUS and GND). On a dense two-sided board that assignment is an engineering reading of the layout, not something the netlist states.","basis":"engineering-history/power_clusters.json and the part's nets in board.json"}],"open":[],"related":["U12"],"assembly":[],"name":"U12 decoupling capacitor","circuit":"bus","here":"High-frequency bypass on the protected bus at the eFuse's output. It sits between V24_BUS and GND, placed within a few millimetres of U12, so that when U12 switches the current for that instant comes from here rather than down the length of copper back to the regulator.","how":"Every chip draws its supply current in bursts as it switches. The wiring back to the regulator has enough inductance that those bursts would show up as dips on the rail, so each chip gets a small capacitor right beside it to supply the burst locally. Small ceramics do this well because they respond quickly; larger values handle slower demands.","sheet":15,"bom":6,"nets":[{"pin":"1","net":"V24_BUS","role":""},{"pin":"2","net":"GND","role":""}],"sources":[{"label":"Primary source","url":"https://www.murata.com/products/productdetail?partno=GRM188R72A104KA35%23","context":"undated exact product page"}]},"C506":{"family":"bulk","claims":[{"kind":"documented","evidence":"intended","text":"Ceramic capacitors lose a large part of their marked value under DC bias, so the reservoir this circuit actually gets is smaller than the printed number. Two of this board's reservoirs were re-selected for exactly that reason.","basis":"engineering-history/rev_a_capacitor_correction.md"}],"open":[],"related":["C507","F11","U10"],"assembly":[],"name":"V24_LOGIC reservoir","circuit":"buck5","here":"The 5 V converter's input reservoir, which supplies its switching current pulses. Its two connections here are V24_LOGIC and GND, and unlike the small bypass capacitors nearby its job is to hold enough charge for demands that last far longer than a single switching edge.","how":"Larger capacitance covers slower, bigger demands than a decoupling capacitor can: an inrush, a radio transmit burst, or the gap between a switching converter's cycles. Ceramic capacitors also lose a large fraction of their nominal value under DC bias, so the number printed on the part is not the capacitance the circuit gets.","sheet":16,"bom":51,"nets":[{"pin":"1","net":"V24_LOGIC","role":""},{"pin":"2","net":"GND","role":""}],"sources":[{"label":"Primary source","url":"https://search.murata.co.jp/Ceramy/image/img/A01X/G101/ENG/GRM32ER71H106KA12-04A.pdf","context":"-04A"}]},"C507":{"family":"decoupling","claims":[{"kind":"inference","evidence":"intended","text":"This capacitor is assigned to U10 from the reviewed decoupling table and its own nets (V24_LOGIC and GND). On a dense two-sided board that assignment is an engineering reading of the layout, not something the netlist states.","basis":"engineering-history/power_clusters.json and the part's nets in board.json"}],"open":[],"related":["U10"],"assembly":[],"name":"U10 decoupling capacitor","circuit":"buck5","here":"The high-frequency partner to C506 at the 5 V converter's input. It sits between V24_LOGIC and GND, placed within a few millimetres of U10, so that when U10 switches the current for that instant comes from here rather than down the length of copper back to the regulator.","how":"Every chip draws its supply current in bursts as it switches. The wiring back to the regulator has enough inductance that those bursts would show up as dips on the rail, so each chip gets a small capacitor right beside it to supply the burst locally. Small ceramics do this well because they respond quickly; larger values handle slower demands.","sheet":16,"bom":52,"nets":[{"pin":"1","net":"V24_LOGIC","role":""},{"pin":"2","net":"GND","role":""}],"sources":[{"label":"Primary source","url":"https://product.tdk.com/en/search/capacitor/ceramic/mlcc/info?part_no=C2012X7R1H224K125AA","context":"undated product page; source and stock dates distinguished"}]},"C508":{"family":"bulk","claims":[{"kind":"documented","evidence":"intended","text":"Ceramic capacitors lose a large part of their marked value under DC bias, so the reservoir this circuit actually gets is smaller than the printed number. Two of this board's reservoirs were re-selected for exactly that reason.","basis":"engineering-history/rev_a_capacitor_correction.md"}],"open":[],"related":["U10"],"assembly":[],"name":"BUCK5_VCC reservoir","circuit":"buck5","here":"The 5 V converter's internal-supply capacitor. Its two connections here are BUCK5_VCC and GND, and unlike the small bypass capacitors nearby its job is to hold enough charge for demands that last far longer than a single switching edge.","how":"Larger capacitance covers slower, bigger demands than a decoupling capacitor can: an inrush, a radio transmit burst, or the gap between a switching converter's cycles. Ceramic capacitors also lose a large fraction of their nominal value under DC bias, so the number printed on the part is not the capacitance the circuit gets.","sheet":16,"bom":3,"nets":[{"pin":"1","net":"BUCK5_VCC","role":""},{"pin":"2","net":"GND","role":""}],"sources":[{"label":"Primary source","url":"https://product.tdk.com/en/search/capacitor/ceramic/mlcc/info?part_no=C1608X7R1E105K080AB","context":"undated product page; source and stock dates distinguished"}]},"C509":{"family":"unique","claims":[{"kind":"documented","evidence":"intended","text":"This is the only capacitor on the board that is not referenced to ground: it rides on the switching node, so probing it against ground during bring-up gives a misleading reading.","basis":"board.json nets for C509"}],"open":[],"related":["U10","L500","C508"],"assembly":[],"name":"Bootstrap capacitor","circuit":"buck5","here":"The only capacitor on the board that is not referenced to ground: it sits between BUCK5_BOOT and BUCK5_SW, riding on the 5 V converter's switching node.","how":"The converter's high-side switch needs a gate voltage above its own source, and that source moves up and down with the switching node. A bootstrap capacitor is charged while the node is low and then floats up with it, carrying its charge along to supply the gate drive.","sheet":16,"bom":6,"nets":[{"pin":"1","net":"BUCK5_BOOT","role":""},{"pin":"2","net":"BUCK5_SW","role":""}],"sources":[{"label":"Primary source","url":"https://www.murata.com/products/productdetail?partno=GRM188R72A104KA35%23","context":"undated exact product page"}]},"C510":{"family":"bulk","claims":[{"kind":"documented","evidence":"intended","text":"Ceramic capacitors lose a large part of their marked value under DC bias, so the reservoir this circuit actually gets is smaller than the printed number. Two of this board's reservoirs were re-selected for exactly that reason.","basis":"engineering-history/rev_a_capacitor_correction.md"}],"open":[],"related":["C20","C22","C511","C512","L500","R510"],"assembly":[],"name":"+5V reservoir","circuit":"buck5","here":"Half of the 5 V converter's output reservoir. Its two connections here are +5V and GND, and unlike the small bypass capacitors nearby its job is to hold enough charge for demands that last far longer than a single switching edge.","how":"Larger capacitance covers slower, bigger demands than a decoupling capacitor can: an inrush, a radio transmit burst, or the gap between a switching converter's cycles. Ceramic capacitors also lose a large fraction of their nominal value under DC bias, so the number printed on the part is not the capacitance the circuit gets.","sheet":16,"bom":7,"nets":[{"pin":"1","net":"+5V","role":""},{"pin":"2","net":"GND","role":""}],"sources":[{"label":"Primary source","url":"https://search.murata.co.jp/Ceramy/image/img/A01X/G101/ENG/GRM32ER71E226KE15-01.pdf","context":"-01, 2016-03-07"}]},"C511":{"family":"bulk","claims":[{"kind":"documented","evidence":"intended","text":"Ceramic capacitors lose a large part of their marked value under DC bias, so the reservoir this circuit actually gets is smaller than the printed number. Two of this board's reservoirs were re-selected for exactly that reason.","basis":"engineering-history/rev_a_capacitor_correction.md"}],"open":[],"related":["C20","C22","C510","C512","L500","R510"],"assembly":[],"name":"+5V reservoir","circuit":"buck5","here":"Half of the 5 V converter's output reservoir. Its two connections here are +5V and GND, and unlike the small bypass capacitors nearby its job is to hold enough charge for demands that last far longer than a single switching edge.","how":"Larger capacitance covers slower, bigger demands than a decoupling capacitor can: an inrush, a radio transmit burst, or the gap between a switching converter's cycles. Ceramic capacitors also lose a large fraction of their nominal value under DC bias, so the number printed on the part is not the capacitance the circuit gets.","sheet":16,"bom":7,"nets":[{"pin":"1","net":"+5V","role":""},{"pin":"2","net":"GND","role":""}],"sources":[{"label":"Primary source","url":"https://search.murata.co.jp/Ceramy/image/img/A01X/G101/ENG/GRM32ER71E226KE15-01.pdf","context":"-01, 2016-03-07"}]},"C512":{"family":"bulk","claims":[{"kind":"documented","evidence":"modelled-current","text":"This part was changed to a 22 uF 25 V X7R in a 1210 package after a capacitance review: under DC bias the previous choice fell below the reservoir the design needs. The screen used characterised sample data plus an engineering reserve, not guaranteed lifetime minima.","basis":"engineering-history/rev_a_capacitor_correction.md"}],"open":[],"related":["C20","C22","C510","C511","L500","R510"],"assembly":[],"name":"+5V reservoir","circuit":"buck3","here":"The 3.3 V converter's input reservoir. Its two connections here are +5V and GND, and unlike the small bypass capacitors nearby its job is to hold enough charge for demands that last far longer than a single switching edge.","how":"Larger capacitance covers slower, bigger demands than a decoupling capacitor can: an inrush, a radio transmit burst, or the gap between a switching converter's cycles. Ceramic capacitors also lose a large fraction of their nominal value under DC bias, so the number printed on the part is not the capacitance the circuit gets.","sheet":16,"bom":7,"nets":[{"pin":"1","net":"+5V","role":""},{"pin":"2","net":"GND","role":""}],"sources":[{"label":"Primary source","url":"https://search.murata.co.jp/Ceramy/image/img/A01X/G101/ENG/GRM32ER71E226KE15-01.pdf","context":"-01, 2016-03-07"}]},"C513":{"family":"bulk","claims":[{"kind":"documented","evidence":"intended","text":"Ceramic capacitors lose a large part of their marked value under DC bias, so the reservoir this circuit actually gets is smaller than the printed number. Two of this board's reservoirs were re-selected for exactly that reason.","basis":"engineering-history/rev_a_capacitor_correction.md"}],"open":[],"related":["U1"],"assembly":[],"name":"+3V3 reservoir","circuit":"buck3","here":"The 3.3 V converter's output reservoir, which is also where it senses the rail. Its two connections here are +3V3 and GND, and unlike the small bypass capacitors nearby its job is to hold enough charge for demands that last far longer than a single switching edge.","how":"Larger capacitance covers slower, bigger demands than a decoupling capacitor can: an inrush, a radio transmit burst, or the gap between a switching converter's cycles. Ceramic capacitors also lose a large fraction of their nominal value under DC bias, so the number printed on the part is not the capacitance the circuit gets.","sheet":16,"bom":7,"nets":[{"pin":"1","net":"+3V3","role":""},{"pin":"2","net":"GND","role":""}],"sources":[{"label":"Primary source","url":"https://search.murata.co.jp/Ceramy/image/img/A01X/G101/ENG/GRM32ER71E226KE15-01.pdf","context":"-01, 2016-03-07"}]},"C514":{"family":"decoupling","claims":[{"kind":"inference","evidence":"intended","text":"This capacitor is assigned to U13 from the reviewed decoupling table and its own nets (+3V3 and GND). On a dense two-sided board that assignment is an engineering reading of the layout, not something the netlist states.","basis":"engineering-history/power_clusters.json and the part's nets in board.json"}],"open":[],"related":["U13"],"assembly":[],"name":"U13 decoupling capacitor","circuit":"gating","here":"Bypass on the gate-bias switch's input. It sits between +3V3 and GND, placed within a few millimetres of U13, so that when U13 switches the current for that instant comes from here rather than down the length of copper back to the regulator.","how":"Every chip draws its supply current in bursts as it switches. The wiring back to the regulator has enough inductance that those bursts would show up as dips on the rail, so each chip gets a small capacitor right beside it to supply the burst locally. Small ceramics do this well because they respond quickly; larger values handle slower demands.","sheet":16,"bom":6,"nets":[{"pin":"1","net":"+3V3","role":""},{"pin":"2","net":"GND","role":""}],"sources":[{"label":"Primary source","url":"https://www.murata.com/products/productdetail?partno=GRM188R72A104KA35%23","context":"undated exact product page"}]},"C515":{"family":"decoupling","claims":[{"kind":"inference","evidence":"intended","text":"This capacitor is assigned to U13 from the reviewed decoupling table and its own nets (GATE_BIAS and GND). On a dense two-sided board that assignment is an engineering reading of the layout, not something the netlist states.","basis":"engineering-history/power_clusters.json and the part's nets in board.json"}],"open":[],"related":["U13"],"assembly":[],"name":"U13 decoupling capacitor","circuit":"gating","here":"Bypass on the switched gate-bias rail itself. It sits between GATE_BIAS and GND, placed within a few millimetres of U13, so that when U13 switches the current for that instant comes from here rather than down the length of copper back to the regulator.","how":"Every chip draws its supply current in bursts as it switches. The wiring back to the regulator has enough inductance that those bursts would show up as dips on the rail, so each chip gets a small capacitor right beside it to supply the burst locally. Small ceramics do this well because they respond quickly; larger values handle slower demands.","sheet":16,"bom":6,"nets":[{"pin":"1","net":"GATE_BIAS","role":""},{"pin":"2","net":"GND","role":""}],"sources":[{"label":"Primary source","url":"https://www.murata.com/products/productdetail?partno=GRM188R72A104KA35%23","context":"undated exact product page"}]},"C516":{"family":"unique","claims":[{"kind":"documented","evidence":"intended","text":"It returns to SPOT_RTN, the spotlight eFuse's own island, not to ground. That island is deliberately kept separate, so measuring anything on this part against board ground is the wrong reference.","basis":"hardware-current/engineering/design_parts.json (U14 notes)"}],"open":[],"related":["U14","C519","C521","C523"],"assembly":[],"name":"Spotlight eFuse ramp capacitor","circuit":"spot_supply","here":"Sets how quickly V24_SPOT ramps up when lighting is enabled, between SPOT_EFUSE_DVDT and SPOT_RTN. Note the return: like the rest of that eFuse's small signals it references the spotlight return island, not ground.","how":"As with the main eFuse, the chip charges this capacitor at a fixed current and its output follows that ramp, so the three drivers' input capacitors charge gently rather than as an inrush.","sheet":17,"bom":62,"nets":[{"pin":"1","net":"SPOT_EFUSE_DVDT","role":""},{"pin":"2","net":"SPOT_RTN","role":""}],"sources":[{"label":"Primary source","url":"https://product.tdk.com/en/search/capacitor/ceramic/mlcc/info?part_no=C1608X7R1H473K080AA","context":"undated product page; source and stock dates distinguished"}]},"C517":{"family":"decoupling","claims":[{"kind":"inference","evidence":"intended","text":"This capacitor is assigned to U14 from the reviewed decoupling table and its own nets (V24_BUS and GND). On a dense two-sided board that assignment is an engineering reading of the layout, not something the netlist states.","basis":"engineering-history/power_clusters.json and the part's nets in board.json"}],"open":[],"related":["U14"],"assembly":[],"name":"U14 decoupling capacitor","circuit":"spot_supply","here":"Bypass at the spotlight eFuse's input. It sits between V24_BUS and GND, placed within a few millimetres of U14, so that when U14 switches the current for that instant comes from here rather than down the length of copper back to the regulator.","how":"Every chip draws its supply current in bursts as it switches. The wiring back to the regulator has enough inductance that those bursts would show up as dips on the rail, so each chip gets a small capacitor right beside it to supply the burst locally. Small ceramics do this well because they respond quickly; larger values handle slower demands.","sheet":17,"bom":6,"nets":[{"pin":"1","net":"V24_BUS","role":""},{"pin":"2","net":"GND","role":""}],"sources":[{"label":"Primary source","url":"https://www.murata.com/products/productdetail?partno=GRM188R72A104KA35%23","context":"undated exact product page"}]},"C518":{"family":"decoupling","claims":[{"kind":"inference","evidence":"intended","text":"This capacitor is assigned to U14 from the reviewed decoupling table and its own nets (V24_SPOT and GND). On a dense two-sided board that assignment is an engineering reading of the layout, not something the netlist states.","basis":"engineering-history/power_clusters.json and the part's nets in board.json"}],"open":[],"related":["U14"],"assembly":[],"name":"U14 decoupling capacitor","circuit":"spot_supply","here":"Bypass at the spotlight eFuse's output. It sits between V24_SPOT and GND, placed within a few millimetres of U14, so that when U14 switches the current for that instant comes from here rather than down the length of copper back to the regulator.","how":"Every chip draws its supply current in bursts as it switches. The wiring back to the regulator has enough inductance that those bursts would show up as dips on the rail, so each chip gets a small capacitor right beside it to supply the burst locally. Small ceramics do this well because they respond quickly; larger values handle slower demands.","sheet":17,"bom":6,"nets":[{"pin":"1","net":"V24_SPOT","role":""},{"pin":"2","net":"GND","role":""}],"sources":[{"label":"Primary source","url":"https://www.murata.com/products/productdetail?partno=GRM188R72A104KA35%23","context":"undated exact product page"}]},"C519":{"family":"spot_input_cap","claims":[{"kind":"inference","evidence":"intended","text":"This capacitor belongs to spotlight channel 1 specifically, even though all six sit on the same V24_SPOT net. The pairing comes from the reviewed placement cluster, not from the netlist.","basis":"engineering-history/power_clusters.json (spot template)"}],"open":[],"related":["U7","R523","L502","D502","R526","J9","C520"],"assembly":[],"name":"Spotlight 1 input capacitor","circuit":"spot","here":"One of the pair of 10 uF capacitors that supply driver U7's switching current pulses locally, between the gated rail V24_SPOT and ground.","how":"A switching driver draws current in sharp pulses. Pulling those through the length of the board would put noise on the shared rail and starve the driver at the moment it switches, so each driver gets its own reservoir a few millimetres away.","sheet":17,"bom":51,"nets":[{"pin":"1","net":"V24_SPOT","role":""},{"pin":"2","net":"GND","role":""}],"sources":[{"label":"Primary source","url":"https://search.murata.co.jp/Ceramy/image/img/A01X/G101/ENG/GRM32ER71H106KA12-04A.pdf","context":"-04A"}]},"C520":{"family":"spot_input_cap","claims":[{"kind":"inference","evidence":"intended","text":"This capacitor belongs to spotlight channel 1 specifically, even though all six sit on the same V24_SPOT net. The pairing comes from the reviewed placement cluster, not from the netlist.","basis":"engineering-history/power_clusters.json (spot template)"}],"open":[],"related":["U7","R523","L502","D502","R526","J9","C519"],"assembly":[],"name":"Spotlight 1 input capacitor","circuit":"spot","here":"One of the pair of 10 uF capacitors that supply driver U7's switching current pulses locally, between the gated rail V24_SPOT and ground.","how":"A switching driver draws current in sharp pulses. Pulling those through the length of the board would put noise on the shared rail and starve the driver at the moment it switches, so each driver gets its own reservoir a few millimetres away.","sheet":17,"bom":51,"nets":[{"pin":"1","net":"V24_SPOT","role":""},{"pin":"2","net":"GND","role":""}],"sources":[{"label":"Primary source","url":"https://search.murata.co.jp/Ceramy/image/img/A01X/G101/ENG/GRM32ER71H106KA12-04A.pdf","context":"-04A"}]},"C521":{"family":"spot_input_cap","claims":[{"kind":"inference","evidence":"intended","text":"This capacitor belongs to spotlight channel 2 specifically, even though all six sit on the same V24_SPOT net. The pairing comes from the reviewed placement cluster, not from the netlist.","basis":"engineering-history/power_clusters.json (spot template)"}],"open":[],"related":["U8","R524","L503","D503","R527","J10","C522"],"assembly":[],"name":"Spotlight 2 input capacitor","circuit":"spot","here":"One of the pair of 10 uF capacitors that supply driver U8's switching current pulses locally, between the gated rail V24_SPOT and ground.","how":"A switching driver draws current in sharp pulses. Pulling those through the length of the board would put noise on the shared rail and starve the driver at the moment it switches, so each driver gets its own reservoir a few millimetres away.","sheet":17,"bom":51,"nets":[{"pin":"1","net":"V24_SPOT","role":""},{"pin":"2","net":"GND","role":""}],"sources":[{"label":"Primary source","url":"https://search.murata.co.jp/Ceramy/image/img/A01X/G101/ENG/GRM32ER71H106KA12-04A.pdf","context":"-04A"}]},"C522":{"family":"spot_input_cap","claims":[{"kind":"inference","evidence":"intended","text":"This capacitor belongs to spotlight channel 2 specifically, even though all six sit on the same V24_SPOT net. The pairing comes from the reviewed placement cluster, not from the netlist.","basis":"engineering-history/power_clusters.json (spot template)"}],"open":[],"related":["U8","R524","L503","D503","R527","J10","C521"],"assembly":[],"name":"Spotlight 2 input capacitor","circuit":"spot","here":"One of the pair of 10 uF capacitors that supply driver U8's switching current pulses locally, between the gated rail V24_SPOT and ground.","how":"A switching driver draws current in sharp pulses. Pulling those through the length of the board would put noise on the shared rail and starve the driver at the moment it switches, so each driver gets its own reservoir a few millimetres away.","sheet":17,"bom":51,"nets":[{"pin":"1","net":"V24_SPOT","role":""},{"pin":"2","net":"GND","role":""}],"sources":[{"label":"Primary source","url":"https://search.murata.co.jp/Ceramy/image/img/A01X/G101/ENG/GRM32ER71H106KA12-04A.pdf","context":"-04A"}]},"C523":{"family":"spot_input_cap","claims":[{"kind":"inference","evidence":"intended","text":"This capacitor belongs to spotlight channel 3 specifically, even though all six sit on the same V24_SPOT net. The pairing comes from the reviewed placement cluster, not from the netlist.","basis":"engineering-history/power_clusters.json (spot template)"}],"open":[],"related":["U9","R525","L504","D504","R528","J11","C524"],"assembly":[],"name":"Spotlight 3 input capacitor","circuit":"spot","here":"One of the pair of 10 uF capacitors that supply driver U9's switching current pulses locally, between the gated rail V24_SPOT and ground.","how":"A switching driver draws current in sharp pulses. Pulling those through the length of the board would put noise on the shared rail and starve the driver at the moment it switches, so each driver gets its own reservoir a few millimetres away.","sheet":18,"bom":51,"nets":[{"pin":"1","net":"V24_SPOT","role":""},{"pin":"2","net":"GND","role":""}],"sources":[{"label":"Primary source","url":"https://search.murata.co.jp/Ceramy/image/img/A01X/G101/ENG/GRM32ER71H106KA12-04A.pdf","context":"-04A"}]},"C524":{"family":"spot_input_cap","claims":[{"kind":"inference","evidence":"intended","text":"This capacitor belongs to spotlight channel 3 specifically, even though all six sit on the same V24_SPOT net. The pairing comes from the reviewed placement cluster, not from the netlist.","basis":"engineering-history/power_clusters.json (spot template)"}],"open":[],"related":["U9","R525","L504","D504","R528","J11","C523"],"assembly":[],"name":"Spotlight 3 input capacitor","circuit":"spot","here":"One of the pair of 10 uF capacitors that supply driver U9's switching current pulses locally, between the gated rail V24_SPOT and ground.","how":"A switching driver draws current in sharp pulses. Pulling those through the length of the board would put noise on the shared rail and starve the driver at the moment it switches, so each driver gets its own reservoir a few millimetres away.","sheet":18,"bom":51,"nets":[{"pin":"1","net":"V24_SPOT","role":""},{"pin":"2","net":"GND","role":""}],"sources":[{"label":"Primary source","url":"https://search.murata.co.jp/Ceramy/image/img/A01X/G101/ENG/GRM32ER71H106KA12-04A.pdf","context":"-04A"}]},"D30":{"family":"unique","claims":[{"kind":"documented","evidence":"intended","text":"The bus voltage gets its own clamp because the data lines' protection has a much tighter capacitance budget: anything hung on a high-speed pair slows its edges.","basis":"engineering-history/rev_a_usb_correction.md"}],"open":["Electrostatic-discharge immunity has not been tested."],"related":["J14","C30","R40","U17"],"assembly":[],"name":"USB bus-voltage protection","circuit":"usb","here":"A dedicated clamp on USB_VBUS to ground, protecting the small USB island's supply where the cable arrives. The island is the only thing USB powers on this board, so this diode guards the presence-sense network and the data mux rather than any board rail.","how":"A single-line suppression diode: invisible in normal operation, conducting during a transient. The data lines get their own protection separately, because their capacitance budget is tighter.","sheet":5,"bom":20,"nets":[{"pin":"1","net":"USB_VBUS","role":""},{"pin":"2","net":"GND","role":""}],"sources":[{"label":"Primary source","url":"https://www.ti.com/lit/ds/symlink/tpd1e10b06.pdf","context":"SLLSEB1G August2024"}]},"D500":{"family":"unique","claims":[{"kind":"documented","evidence":"intended","text":"Its specified clamping voltage at the rated pulse current is 53.3 V, which is why local flat-clamp devices were added downstream: 53 V is far too high to treat the spotlight driver's 40 V input limit as protected by this part alone.","basis":"engineering-history/bom_audit.md"}],"open":["This is a pulse device. It is not a brake and not a continuous energy sink."],"related":["F1","Q500","U501","U500","C501"],"assembly":[],"name":"Input transient suppressor","circuit":"input","here":"Sits across VIN24_FUSED and ground, right where the supply enters, to clamp voltage spikes coming in on the cable before they reach the reverse-blocking transistor and the eFuse.","how":"A transient-voltage-suppression diode is normally an open circuit, but conducts hard once the voltage across it exceeds its rated standoff, dumping the spike's energy instead of letting it pass downstream. This one is bidirectional, so it clamps spikes of either polarity.","sheet":15,"bom":38,"nets":[{"pin":"1","net":"VIN24_FUSED","role":""},{"pin":"2","net":"GND","role":""}],"sources":[{"label":"Primary source","url":"https://www.littelfuse.com/~/media/electronics/datasheets/tvs_diodes/littelfuse_tvs_diode_smbj_datasheet.pdf.pdf","context":"revision not captured"}]},"D501":{"family":"unique","claims":[{"kind":"documented","evidence":"intended","text":"Cathode on the rail, anode on ground: it does nothing in normal operation and conducts only on a negative excursion. Fitted the other way round it would short the spotlight supply.","basis":"board.json nets for D501"}],"open":[],"related":["U14","U500","R521"],"assembly":[],"name":"Spotlight rail negative-transient diode","circuit":"spot_supply","here":"Cathode on V24_SPOT and anode on ground, bounding how far the spotlight rail can be driven below ground. The three drivers switch inductive loads through long LED leads, which is exactly the arrangement that produces negative excursions on a rail.","how":"Like the bus diode, it does nothing in normal operation and conducts only if the rail is pushed negative, which switching converters and long LED leads can do at the moment they turn off.","sheet":17,"bom":63,"nets":[{"pin":"1","net":"V24_SPOT","role":""},{"pin":"2","net":"GND","role":""}],"sources":[{"label":"Primary source","url":"https://www.diodes.com/datasheet/download/B130.pdf","context":"DS13002 Rev.20-2, April 2023"}]},"D502":{"family":"spot_diode","claims":[{"kind":"documented","evidence":"intended","text":"Its cathode is on V24_SPOT and its anode on SPOT1_SW. Fitted the other way round it would short the rail every time the driver switched.","basis":"board.json nets for this reference"}],"open":[],"related":["U7","R523","L502","R526","J9","C519","C520"],"assembly":[],"name":"Spotlight 1 catch diode","circuit":"spot","here":"Gives spotlight 1's inductor current somewhere to go while the driver's switch is off. Its cathode is on the rail V24_SPOT and its anode on the switching node SPOT1_SW.","how":"Interrupting current through an inductor produces a large voltage spike unless the current has another path. This Schottky diode is that path: it conducts as soon as the switching node swings, so the inductor keeps running instead of stressing the driver. Schottky parts are used because they turn on quickly and drop little voltage.","sheet":17,"bom":63,"nets":[{"pin":"1","net":"V24_SPOT","role":""},{"pin":"2","net":"SPOT1_SW","role":""}],"sources":[{"label":"Primary source","url":"https://www.diodes.com/datasheet/download/B130.pdf","context":"DS13002 Rev.20-2, April 2023"}]},"D503":{"family":"spot_diode","claims":[{"kind":"documented","evidence":"intended","text":"Its cathode is on V24_SPOT and its anode on SPOT2_SW. Fitted the other way round it would short the rail every time the driver switched.","basis":"board.json nets for this reference"}],"open":[],"related":["U8","R524","L503","R527","J10","C521","C522"],"assembly":[],"name":"Spotlight 2 catch diode","circuit":"spot","here":"Gives spotlight 2's inductor current somewhere to go while the driver's switch is off. Its cathode is on the rail V24_SPOT and its anode on the switching node SPOT2_SW.","how":"Interrupting current through an inductor produces a large voltage spike unless the current has another path. This Schottky diode is that path: it conducts as soon as the switching node swings, so the inductor keeps running instead of stressing the driver. Schottky parts are used because they turn on quickly and drop little voltage.","sheet":17,"bom":63,"nets":[{"pin":"1","net":"V24_SPOT","role":""},{"pin":"2","net":"SPOT2_SW","role":""}],"sources":[{"label":"Primary source","url":"https://www.diodes.com/datasheet/download/B130.pdf","context":"DS13002 Rev.20-2, April 2023"}]},"D504":{"family":"spot_diode","claims":[{"kind":"documented","evidence":"intended","text":"Its cathode is on V24_SPOT and its anode on SPOT3_SW. Fitted the other way round it would short the rail every time the driver switched.","basis":"board.json nets for this reference"}],"open":[],"related":["U9","R525","L504","R528","J11","C523","C524"],"assembly":[],"name":"Spotlight 3 catch diode","circuit":"spot","here":"Gives spotlight 3's inductor current somewhere to go while the driver's switch is off. Its cathode is on the rail V24_SPOT and its anode on the switching node SPOT3_SW.","how":"Interrupting current through an inductor produces a large voltage spike unless the current has another path. This Schottky diode is that path: it conducts as soon as the switching node swings, so the inductor keeps running instead of stressing the driver. Schottky parts are used because they turn on quickly and drop little voltage.","sheet":18,"bom":63,"nets":[{"pin":"1","net":"V24_SPOT","role":""},{"pin":"2","net":"SPOT3_SW","role":""}],"sources":[{"label":"Primary source","url":"https://www.diodes.com/datasheet/download/B130.pdf","context":"DS13002 Rev.20-2, April 2023"}]},"D505":{"family":"unique","claims":[],"open":["Bounded negative excursions only. This is not a regenerative brake."],"related":["C504","U501","U12"],"assembly":[],"name":"Bus negative-transient diode","circuit":"bus","here":"Cathode on V24_BUS, anode on ground. It bounds how far the protected bus can be driven below ground by a transient -- for instance when an inductive load is disconnected.","how":"A diode conducts in one direction only. Facing it this way, it does nothing at all in normal operation and conducts only if the rail is pushed negative, clamping the excursion to about one diode drop below ground.","sheet":16,"bom":67,"nets":[{"pin":"1","net":"V24_BUS","role":""},{"pin":"2","net":"GND","role":""}],"sources":[{"label":"Primary source","url":"https://www.diodes.com/datasheet/download/B520C.pdf","context":"DS13012 Rev.18-2, March2023"}]},"F1":{"family":"input_fuse","claims":[{"kind":"documented","evidence":"intended","text":"F1 is backup protection. Functional current control is U12, the eFuse; a current-limited supply may stop this fuse ever opening.","basis":"hardware-current/engineering/design_parts.json (F1 notes)"}],"open":["How this fuse coordinates with a real fault, and whether the branch wiring survives one, has not been tested on hardware."],"related":["J1","U12","Q500"],"assembly":[],"name":"Input backup fuse","circuit":"input","here":"A 6.3A cartridge fuse protecting the whole board: it is the first thing the incoming supply meets after VIN24_RAW. Its two connections here are VIN24_RAW and VIN24_FUSED, so every amp that reaches that branch passes through this part.","how":"A fuse is a deliberate weak link: sustained current above its rating heats it until it opens, disconnecting that branch permanently until the fuse is replaced. It protects the wiring and limits what a fault downstream can draw. It does not regulate current, and its rating says nothing about what the copper or the connectors can carry.","sheet":15,"bom":39,"nets":[{"pin":"1","net":"VIN24_RAW","role":""},{"pin":"2","net":"VIN24_FUSED","role":""}],"sources":[{"label":"Primary source","url":"https://www.littelfuse.com/assetdocs/fuse-451-and-453-datasheet?assetguid=533cd5cc-956c-4243-867f-6ab5a62f6ba1","context":"Revised 12/01/25"}]},"F2":{"family":"motor_fuse","claims":[{"kind":"documented","evidence":"cad-checked","text":"Every branch is fed through its own fuse: V24_BUS reaches V24_MOTOR1 only through this part.","basis":"163-net continuity check on c046202e"}],"open":["How this fuse coordinates with a real fault, and whether the branch wiring survives one, has not been tested on hardware."],"related":["J12","U12"],"assembly":[],"name":"Motor 1 fuse","circuit":"branch","here":"A 1A cartridge fuse protecting motor 1's 24 V supply (V24_MOTOR1), which leaves through J12. Its two connections here are V24_BUS and V24_MOTOR1, so every amp that reaches that branch passes through this part.","how":"A fuse is a deliberate weak link: sustained current above its rating heats it until it opens, disconnecting that branch permanently until the fuse is replaced. It protects the wiring and limits what a fault downstream can draw. It does not regulate current, and its rating says nothing about what the copper or the connectors can carry.","sheet":15,"bom":40,"nets":[{"pin":"1","net":"V24_BUS","role":""},{"pin":"2","net":"V24_MOTOR1","role":""}],"sources":[{"label":"Primary source","url":"https://www.littelfuse.com/assetdocs/fuse-451-and-453-datasheet?assetguid=533cd5cc-956c-4243-867f-6ab5a62f6ba1","context":"Revised 12/01/25"}]},"F3":{"family":"motor_fuse","claims":[{"kind":"documented","evidence":"cad-checked","text":"Every branch is fed through its own fuse: V24_BUS reaches V24_MOTOR2 only through this part.","basis":"163-net continuity check on c046202e"}],"open":["How this fuse coordinates with a real fault, and whether the branch wiring survives one, has not been tested on hardware."],"related":["J13","U12"],"assembly":[],"name":"Motor 2 fuse","circuit":"branch","here":"A 1A cartridge fuse protecting motor 2's 24 V supply (V24_MOTOR2), which leaves through J13. Its two connections here are V24_BUS and V24_MOTOR2, so every amp that reaches that branch passes through this part.","how":"A fuse is a deliberate weak link: sustained current above its rating heats it until it opens, disconnecting that branch permanently until the fuse is replaced. It protects the wiring and limits what a fault downstream can draw. It does not regulate current, and its rating says nothing about what the copper or the connectors can carry.","sheet":15,"bom":40,"nets":[{"pin":"1","net":"V24_BUS","role":""},{"pin":"2","net":"V24_MOTOR2","role":""}],"sources":[{"label":"Primary source","url":"https://www.littelfuse.com/assetdocs/fuse-451-and-453-datasheet?assetguid=533cd5cc-956c-4243-867f-6ab5a62f6ba1","context":"Revised 12/01/25"}]},"F4":{"family":"zone_fuse","claims":[{"kind":"documented","evidence":"cad-checked","text":"Every branch is fed through its own fuse: V24_BUS reaches ZONE1_24V only through this part.","basis":"163-net continuity check on c046202e"}],"open":["How this fuse coordinates with a real fault, and whether the branch wiring survives one, has not been tested on hardware."],"related":["J2","U12"],"assembly":[],"name":"Ambient zone 1 fuse","circuit":"branch","here":"A 0.75A cartridge fuse protecting ambient zone 1's strip supply (ZONE1_24V), which leaves through J2. Its two connections here are V24_BUS and ZONE1_24V, so every amp that reaches that branch passes through this part.","how":"A fuse is a deliberate weak link: sustained current above its rating heats it until it opens, disconnecting that branch permanently until the fuse is replaced. It protects the wiring and limits what a fault downstream can draw. It does not regulate current, and its rating says nothing about what the copper or the connectors can carry.","sheet":15,"bom":41,"nets":[{"pin":"1","net":"V24_BUS","role":""},{"pin":"2","net":"ZONE1_24V","role":""}],"sources":[{"label":"Primary source","url":"https://www.littelfuse.com/assetdocs/fuse-451-and-453-datasheet?assetguid=533cd5cc-956c-4243-867f-6ab5a62f6ba1","context":"Revised 12/01/25"}]},"F5":{"family":"zone_fuse","claims":[{"kind":"documented","evidence":"cad-checked","text":"Every branch is fed through its own fuse: V24_BUS reaches ZONE2_24V only through this part.","basis":"163-net continuity check on c046202e"}],"open":["How this fuse coordinates with a real fault, and whether the branch wiring survives one, has not been tested on hardware."],"related":["J3","U12"],"assembly":[],"name":"Ambient zone 2 fuse","circuit":"branch","here":"A 0.75A cartridge fuse protecting ambient zone 2's strip supply (ZONE2_24V), which leaves through J3. Its two connections here are V24_BUS and ZONE2_24V, so every amp that reaches that branch passes through this part.","how":"A fuse is a deliberate weak link: sustained current above its rating heats it until it opens, disconnecting that branch permanently until the fuse is replaced. It protects the wiring and limits what a fault downstream can draw. It does not regulate current, and its rating says nothing about what the copper or the connectors can carry.","sheet":15,"bom":41,"nets":[{"pin":"1","net":"V24_BUS","role":""},{"pin":"2","net":"ZONE2_24V","role":""}],"sources":[{"label":"Primary source","url":"https://www.littelfuse.com/assetdocs/fuse-451-and-453-datasheet?assetguid=533cd5cc-956c-4243-867f-6ab5a62f6ba1","context":"Revised 12/01/25"}]},"F6":{"family":"zone_fuse","claims":[{"kind":"documented","evidence":"cad-checked","text":"Every branch is fed through its own fuse: V24_BUS reaches ZONE3_24V only through this part.","basis":"163-net continuity check on c046202e"}],"open":["How this fuse coordinates with a real fault, and whether the branch wiring survives one, has not been tested on hardware."],"related":["J4","U12"],"assembly":[],"name":"Ambient zone 3 fuse","circuit":"branch","here":"A 0.75A cartridge fuse protecting ambient zone 3's strip supply (ZONE3_24V), which leaves through J4. Its two connections here are V24_BUS and ZONE3_24V, so every amp that reaches that branch passes through this part.","how":"A fuse is a deliberate weak link: sustained current above its rating heats it until it opens, disconnecting that branch permanently until the fuse is replaced. It protects the wiring and limits what a fault downstream can draw. It does not regulate current, and its rating says nothing about what the copper or the connectors can carry.","sheet":15,"bom":41,"nets":[{"pin":"1","net":"V24_BUS","role":""},{"pin":"2","net":"ZONE3_24V","role":""}],"sources":[{"label":"Primary source","url":"https://www.littelfuse.com/assetdocs/fuse-451-and-453-datasheet?assetguid=533cd5cc-956c-4243-867f-6ab5a62f6ba1","context":"Revised 12/01/25"}]},"F7":{"family":"zone_fuse","claims":[{"kind":"documented","evidence":"cad-checked","text":"Every branch is fed through its own fuse: V24_BUS reaches ZONE4_24V only through this part.","basis":"163-net continuity check on c046202e"}],"open":["How this fuse coordinates with a real fault, and whether the branch wiring survives one, has not been tested on hardware."],"related":["J5","U12"],"assembly":[],"name":"Ambient zone 4 fuse","circuit":"branch","here":"A 0.75A cartridge fuse protecting ambient zone 4's strip supply (ZONE4_24V), which leaves through J5. Its two connections here are V24_BUS and ZONE4_24V, so every amp that reaches that branch passes through this part.","how":"A fuse is a deliberate weak link: sustained current above its rating heats it until it opens, disconnecting that branch permanently until the fuse is replaced. It protects the wiring and limits what a fault downstream can draw. It does not regulate current, and its rating says nothing about what the copper or the connectors can carry.","sheet":15,"bom":41,"nets":[{"pin":"1","net":"V24_BUS","role":""},{"pin":"2","net":"ZONE4_24V","role":""}],"sources":[{"label":"Primary source","url":"https://www.littelfuse.com/assetdocs/fuse-451-and-453-datasheet?assetguid=533cd5cc-956c-4243-867f-6ab5a62f6ba1","context":"Revised 12/01/25"}]},"F8":{"family":"zone_fuse","claims":[{"kind":"documented","evidence":"cad-checked","text":"Every branch is fed through its own fuse: V24_BUS reaches ZONE5_24V only through this part.","basis":"163-net continuity check on c046202e"}],"open":["How this fuse coordinates with a real fault, and whether the branch wiring survives one, has not been tested on hardware."],"related":["J6","U12"],"assembly":[],"name":"Ambient zone 5 fuse","circuit":"branch","here":"A 0.75A cartridge fuse protecting ambient zone 5's strip supply (ZONE5_24V), which leaves through J6. Its two connections here are V24_BUS and ZONE5_24V, so every amp that reaches that branch passes through this part.","how":"A fuse is a deliberate weak link: sustained current above its rating heats it until it opens, disconnecting that branch permanently until the fuse is replaced. It protects the wiring and limits what a fault downstream can draw. It does not regulate current, and its rating says nothing about what the copper or the connectors can carry.","sheet":15,"bom":41,"nets":[{"pin":"1","net":"V24_BUS","role":""},{"pin":"2","net":"ZONE5_24V","role":""}],"sources":[{"label":"Primary source","url":"https://www.littelfuse.com/assetdocs/fuse-451-and-453-datasheet?assetguid=533cd5cc-956c-4243-867f-6ab5a62f6ba1","context":"Revised 12/01/25"}]},"F9":{"family":"zone_fuse","claims":[{"kind":"documented","evidence":"cad-checked","text":"Every branch is fed through its own fuse: V24_BUS reaches ZONE6_24V only through this part.","basis":"163-net continuity check on c046202e"}],"open":["How this fuse coordinates with a real fault, and whether the branch wiring survives one, has not been tested on hardware."],"related":["J7","U12"],"assembly":[],"name":"Ambient zone 6 fuse","circuit":"branch","here":"A 0.75A cartridge fuse protecting ambient zone 6's strip supply (ZONE6_24V), which leaves through J7. Its two connections here are V24_BUS and ZONE6_24V, so every amp that reaches that branch passes through this part.","how":"A fuse is a deliberate weak link: sustained current above its rating heats it until it opens, disconnecting that branch permanently until the fuse is replaced. It protects the wiring and limits what a fault downstream can draw. It does not regulate current, and its rating says nothing about what the copper or the connectors can carry.","sheet":15,"bom":41,"nets":[{"pin":"1","net":"V24_BUS","role":""},{"pin":"2","net":"ZONE6_24V","role":""}],"sources":[{"label":"Primary source","url":"https://www.littelfuse.com/assetdocs/fuse-451-and-453-datasheet?assetguid=533cd5cc-956c-4243-867f-6ab5a62f6ba1","context":"Revised 12/01/25"}]},"F10":{"family":"zone_fuse","claims":[{"kind":"documented","evidence":"cad-checked","text":"Every branch is fed through its own fuse: V24_BUS reaches ZONE7_24V only through this part.","basis":"163-net continuity check on c046202e"}],"open":["How this fuse coordinates with a real fault, and whether the branch wiring survives one, has not been tested on hardware."],"related":["J8","U12"],"assembly":[],"name":"Ambient zone 7 fuse","circuit":"branch","here":"A 0.75A cartridge fuse protecting ambient zone 7's strip supply (ZONE7_24V), which leaves through J8. Its two connections here are V24_BUS and ZONE7_24V, so every amp that reaches that branch passes through this part.","how":"A fuse is a deliberate weak link: sustained current above its rating heats it until it opens, disconnecting that branch permanently until the fuse is replaced. It protects the wiring and limits what a fault downstream can draw. It does not regulate current, and its rating says nothing about what the copper or the connectors can carry.","sheet":15,"bom":41,"nets":[{"pin":"1","net":"V24_BUS","role":""},{"pin":"2","net":"ZONE7_24V","role":""}],"sources":[{"label":"Primary source","url":"https://www.littelfuse.com/assetdocs/fuse-451-and-453-datasheet?assetguid=533cd5cc-956c-4243-867f-6ab5a62f6ba1","context":"Revised 12/01/25"}]},"F11":{"family":"logic_fuse","claims":[{"kind":"documented","evidence":"cad-checked","text":"Every branch is fed through its own fuse: V24_BUS reaches V24_LOGIC only through this part.","basis":"163-net continuity check on c046202e"}],"open":["How this fuse coordinates with a real fault, and whether the branch wiring survives one, has not been tested on hardware."],"related":["U10","U12"],"assembly":[],"name":"Logic branch fuse","circuit":"branch","here":"A 0.5A cartridge fuse protecting the logic branch (V24_LOGIC) that feeds the 5 V converter and everything downstream of it. Its two connections here are V24_BUS and V24_LOGIC, so every amp that reaches that branch passes through this part.","how":"A fuse is a deliberate weak link: sustained current above its rating heats it until it opens, disconnecting that branch permanently until the fuse is replaced. It protects the wiring and limits what a fault downstream can draw. It does not regulate current, and its rating says nothing about what the copper or the connectors can carry.","sheet":15,"bom":42,"nets":[{"pin":"1","net":"V24_BUS","role":""},{"pin":"2","net":"V24_LOGIC","role":""}],"sources":[{"label":"Primary source","url":"https://www.littelfuse.com/assetdocs/fuse-451-and-453-datasheet?assetguid=533cd5cc-956c-4243-867f-6ab5a62f6ba1","context":"Revised 12/01/25"}]},"H1":{"family":"mounting_hole","claims":[{"kind":"documented","evidence":"cad-checked","text":"Each hole reserves an 8 mm diameter for the screw head and standoff, and the mechanical audit found no pad or courtyard from either face inside that reserve.","basis":"hardware-current/reports/mechanical-final-audit.json"},{"kind":"documented","evidence":"intended","text":"Nonmetallic M3 screws and standoffs are recommended near the upper pair, which sits close to the radio antenna. The 8 mm reserve is not permission to fit a larger washer.","basis":"hardware-current/manufacturing/enclosure_assembly_notes.md"}],"open":["Radio behaviour inside a real enclosure, with real fasteners and cables, is unmeasured."],"related":["H2","H3","H4"],"assembly":[],"name":"M3 mounting hole","circuit":"mechanical","here":"One of the four M3 holes that hold the board in the fixture. It is 3.2 mm and unplated, so it makes no electrical connection to anything.","how":"Unplated -- NPTH -- means the hole has no copper barrel: it is purely mechanical. The four holes form a trapezoid rather than a square: 34 mm across the upper pair, 48 mm across the lower pair, 53.5 mm between the rows, so the board only fits its mounts one way round.","sheet":19,"bom":null,"nets":[],"sources":[]},"H2":{"family":"mounting_hole","claims":[{"kind":"documented","evidence":"cad-checked","text":"Each hole reserves an 8 mm diameter for the screw head and standoff, and the mechanical audit found no pad or courtyard from either face inside that reserve.","basis":"hardware-current/reports/mechanical-final-audit.json"},{"kind":"documented","evidence":"intended","text":"Nonmetallic M3 screws and standoffs are recommended near the upper pair, which sits close to the radio antenna. The 8 mm reserve is not permission to fit a larger washer.","basis":"hardware-current/manufacturing/enclosure_assembly_notes.md"}],"open":["Radio behaviour inside a real enclosure, with real fasteners and cables, is unmeasured."],"related":["H1","H3","H4"],"assembly":[],"name":"M3 mounting hole","circuit":"mechanical","here":"One of the four M3 holes that hold the board in the fixture. It is 3.2 mm and unplated, so it makes no electrical connection to anything.","how":"Unplated -- NPTH -- means the hole has no copper barrel: it is purely mechanical. The four holes form a trapezoid rather than a square: 34 mm across the upper pair, 48 mm across the lower pair, 53.5 mm between the rows, so the board only fits its mounts one way round.","sheet":19,"bom":null,"nets":[],"sources":[]},"H3":{"family":"mounting_hole","claims":[{"kind":"documented","evidence":"cad-checked","text":"Each hole reserves an 8 mm diameter for the screw head and standoff, and the mechanical audit found no pad or courtyard from either face inside that reserve.","basis":"hardware-current/reports/mechanical-final-audit.json"},{"kind":"documented","evidence":"intended","text":"Nonmetallic M3 screws and standoffs are recommended near the upper pair, which sits close to the radio antenna. The 8 mm reserve is not permission to fit a larger washer.","basis":"hardware-current/manufacturing/enclosure_assembly_notes.md"}],"open":["Radio behaviour inside a real enclosure, with real fasteners and cables, is unmeasured."],"related":["H1","H2","H4"],"assembly":[],"name":"M3 mounting hole","circuit":"mechanical","here":"One of the four M3 holes that hold the board in the fixture. It is 3.2 mm and unplated, so it makes no electrical connection to anything.","how":"Unplated -- NPTH -- means the hole has no copper barrel: it is purely mechanical. The four holes form a trapezoid rather than a square: 34 mm across the upper pair, 48 mm across the lower pair, 53.5 mm between the rows, so the board only fits its mounts one way round.","sheet":19,"bom":null,"nets":[],"sources":[]},"H4":{"family":"mounting_hole","claims":[{"kind":"documented","evidence":"cad-checked","text":"Each hole reserves an 8 mm diameter for the screw head and standoff, and the mechanical audit found no pad or courtyard from either face inside that reserve.","basis":"hardware-current/reports/mechanical-final-audit.json"},{"kind":"documented","evidence":"intended","text":"Nonmetallic M3 screws and standoffs are recommended near the upper pair, which sits close to the radio antenna. The 8 mm reserve is not permission to fit a larger washer.","basis":"hardware-current/manufacturing/enclosure_assembly_notes.md"}],"open":["Radio behaviour inside a real enclosure, with real fasteners and cables, is unmeasured."],"related":["H1","H2","H3"],"assembly":[],"name":"M3 mounting hole","circuit":"mechanical","here":"One of the four M3 holes that hold the board in the fixture. It is 3.2 mm and unplated, so it makes no electrical connection to anything.","how":"Unplated -- NPTH -- means the hole has no copper barrel: it is purely mechanical. The four holes form a trapezoid rather than a square: 34 mm across the upper pair, 48 mm across the lower pair, 53.5 mm between the rows, so the board only fits its mounts one way round.","sheet":19,"bom":null,"nets":[],"sources":[]},"J1":{"family":"unique","claims":[{"kind":"documented","evidence":"intended","text":"Use 0.5 mm2 / AWG20 conductors with a 6 mm strip length, and verify the exact wire preparation against the manufacturer's data.","basis":"hardware-current/manufacturing/enclosure_assembly_notes.md"},{"kind":"documented","evidence":"intended","text":"The connector's 6 A nominal rating is not permission to run this board at 6 A. The initial commissioning envelope is 4 A for the whole board.","basis":"hardware-current/manufacturing/enclosure_assembly_notes.md and enclosure_addendum.md"},{"kind":"documented","evidence":"intended","text":"This port mates upward, out of the front face -- perpendicular to the board, not toward any edge.","basis":"hardware-current/reports/mechanical-final-audit.json (port mating faces)"}],"open":["Confirm the physical contact numbering on the assembled unit before applying power."],"related":["F1","D500","Q500","U12","TP2","J16"],"assembly":[],"name":"24 V input terminal","circuit":"input","here":"The board's only power inlet. Contact 1 is VIN24_RAW and contact 2 is GND. Everything on the fixture is fed from here, through F1 and the reverse-blocking and eFuse stage, before it becomes the protected bus.","how":"A spring-cage terminal: the stripped wire pushes straight into the opening and a spring clamps it, so there is no mating plug to buy or crimp. The external supply is a separate unit -- mains never reaches this PCB.","inspect":"Confirm contact 1 really is the positive terminal on the board in front of you before wiring it.","sheet":16,"bom":69,"nets":[{"pin":"1","net":"VIN24_RAW","role":""},{"pin":"2","net":"GND","role":""}],"sources":[{"label":"Primary source","url":"https://www.phoenixcontact.com/en-us/products/printed-circuit-board-terminal-ptsm-05-2-25-v-smd-r44-1771091","context":"Public manufacturer data reviewed 2026-09-06; exact stock/quotation unconfirmed"}]},"J2":{"family":"zone_connector","claims":[{"kind":"documented","evidence":"intended","text":"Mating hardware: JST GH 4-way, mating GHR-04V-S with SSHL-002T-P0.2 contacts.","basis":"hardware-current/manufacturing/enclosure_assembly_notes.md"}],"open":["Harness crimping, wire gauge and continuity are the assembler's to confirm. The connector's own rating does not lift the 0.75 A branch fuse."],"related":["F4","Q101","Q102","Q103"],"assembly":[],"name":"Ambient zone 1 connector","circuit":"ambient","group":{"zone":1},"here":"Where ambient zone 1's tunable-white strip plugs in. Contacts in numeric order: 1 = ZONE1_24V, 2 = ZONE1_W, 3 = ZONE1_N, 4 = ZONE1_C. Contact 1 is the strip's shared positive, fused on its own by F4; the other three are the switched returns for warm, neutral and cool.","how":"The strip has one positive wire and three colour wires. All three colours share that positive, so the shared contact carries the sum of the three channel currents -- a per-contact rating is not a per-channel allowance. This connector side-entry across the front face.","sheet":7,"bom":23,"nets":[{"pin":"1","net":"ZONE1_24V","role":""},{"pin":"2","net":"ZONE1_W","role":""},{"pin":"3","net":"ZONE1_N","role":""},{"pin":"4","net":"ZONE1_C","role":""}],"sources":[{"label":"Primary source","url":"https://www.jst-mfg.com/product/pdf/eng/eGH.pdf","context":"Undated GH catalog p2/3; mechanical drawing visually reviewed"}]},"J3":{"family":"zone_connector","claims":[{"kind":"documented","evidence":"intended","text":"Mating hardware: JST GH 4-way, mating GHR-04V-S with SSHL-002T-P0.2 contacts.","basis":"hardware-current/manufacturing/enclosure_assembly_notes.md"}],"open":["Harness crimping, wire gauge and continuity are the assembler's to confirm. The connector's own rating does not lift the 0.75 A branch fuse."],"related":["F5","Q104","Q105","Q106"],"assembly":[],"name":"Ambient zone 2 connector","circuit":"ambient","group":{"zone":2},"here":"Where ambient zone 2's tunable-white strip plugs in. Contacts in numeric order: 1 = ZONE2_24V, 2 = ZONE2_W, 3 = ZONE2_N, 4 = ZONE2_C. Contact 1 is the strip's shared positive, fused on its own by F5; the other three are the switched returns for warm, neutral and cool.","how":"The strip has one positive wire and three colour wires. All three colours share that positive, so the shared contact carries the sum of the three channel currents -- a per-contact rating is not a per-channel allowance. This connector side-entry across the front face.","sheet":8,"bom":23,"nets":[{"pin":"1","net":"ZONE2_24V","role":""},{"pin":"2","net":"ZONE2_W","role":""},{"pin":"3","net":"ZONE2_N","role":""},{"pin":"4","net":"ZONE2_C","role":""}],"sources":[{"label":"Primary source","url":"https://www.jst-mfg.com/product/pdf/eng/eGH.pdf","context":"Undated GH catalog p2/3; mechanical drawing visually reviewed"}]},"J4":{"family":"zone_connector","claims":[{"kind":"documented","evidence":"intended","text":"Mating hardware: JST GH 4-way, mating GHR-04V-S with SSHL-002T-P0.2 contacts.","basis":"hardware-current/manufacturing/enclosure_assembly_notes.md"}],"open":["Harness crimping, wire gauge and continuity are the assembler's to confirm. The connector's own rating does not lift the 0.75 A branch fuse."],"related":["F6","Q107","Q108","Q109"],"assembly":[],"name":"Ambient zone 3 connector","circuit":"ambient","group":{"zone":3},"here":"Where ambient zone 3's tunable-white strip plugs in. Contacts in numeric order: 1 = ZONE3_24V, 2 = ZONE3_W, 3 = ZONE3_N, 4 = ZONE3_C. Contact 1 is the strip's shared positive, fused on its own by F6; the other three are the switched returns for warm, neutral and cool.","how":"The strip has one positive wire and three colour wires. All three colours share that positive, so the shared contact carries the sum of the three channel currents -- a per-contact rating is not a per-channel allowance. This connector side-entry across the front face.","sheet":9,"bom":23,"nets":[{"pin":"1","net":"ZONE3_24V","role":""},{"pin":"2","net":"ZONE3_W","role":""},{"pin":"3","net":"ZONE3_N","role":""},{"pin":"4","net":"ZONE3_C","role":""}],"sources":[{"label":"Primary source","url":"https://www.jst-mfg.com/product/pdf/eng/eGH.pdf","context":"Undated GH catalog p2/3; mechanical drawing visually reviewed"}]},"J5":{"family":"zone_connector","claims":[{"kind":"documented","evidence":"intended","text":"Mating hardware: JST GH 4-way, mating GHR-04V-S with SSHL-002T-P0.2 contacts.","basis":"hardware-current/manufacturing/enclosure_assembly_notes.md"}],"open":["Harness crimping, wire gauge and continuity are the assembler's to confirm. The connector's own rating does not lift the 0.75 A branch fuse."],"related":["F7","Q110","Q111","Q112"],"assembly":[],"name":"Ambient zone 4 connector","circuit":"ambient","group":{"zone":4},"here":"Where ambient zone 4's tunable-white strip plugs in. Contacts in numeric order: 1 = ZONE4_24V, 2 = ZONE4_W, 3 = ZONE4_N, 4 = ZONE4_C. Contact 1 is the strip's shared positive, fused on its own by F7; the other three are the switched returns for warm, neutral and cool.","how":"The strip has one positive wire and three colour wires. All three colours share that positive, so the shared contact carries the sum of the three channel currents -- a per-contact rating is not a per-channel allowance. This connector side-entry across the front face.","sheet":10,"bom":26,"nets":[{"pin":"1","net":"ZONE4_24V","role":""},{"pin":"2","net":"ZONE4_W","role":""},{"pin":"3","net":"ZONE4_N","role":""},{"pin":"4","net":"ZONE4_C","role":""}],"sources":[{"label":"Primary source","url":"https://www.jst-mfg.com/product/pdf/eng/eGH.pdf","context":"Undated GH catalog p2/3; mechanical drawing visually reviewed"}]},"J6":{"family":"zone_connector","claims":[{"kind":"documented","evidence":"intended","text":"Mating hardware: JST GH 4-way, mating GHR-04V-S with SSHL-002T-P0.2 contacts.","basis":"hardware-current/manufacturing/enclosure_assembly_notes.md"}],"open":["Harness crimping, wire gauge and continuity are the assembler's to confirm. The connector's own rating does not lift the 0.75 A branch fuse."],"related":["F8","Q113","Q114","Q115"],"assembly":[],"name":"Ambient zone 5 connector","circuit":"ambient","group":{"zone":5},"here":"Where ambient zone 5's tunable-white strip plugs in. Contacts in numeric order: 1 = ZONE5_24V, 2 = ZONE5_W, 3 = ZONE5_N, 4 = ZONE5_C. Contact 1 is the strip's shared positive, fused on its own by F8; the other three are the switched returns for warm, neutral and cool.","how":"The strip has one positive wire and three colour wires. All three colours share that positive, so the shared contact carries the sum of the three channel currents -- a per-contact rating is not a per-channel allowance. This connector side-entry across the front face.","sheet":11,"bom":27,"nets":[{"pin":"1","net":"ZONE5_24V","role":""},{"pin":"2","net":"ZONE5_W","role":""},{"pin":"3","net":"ZONE5_N","role":""},{"pin":"4","net":"ZONE5_C","role":""}],"sources":[{"label":"Primary source","url":"https://www.jst-mfg.com/product/pdf/eng/eGH.pdf","context":"Undated GH catalog p2/3; mechanical drawing visually reviewed"}]},"J7":{"family":"zone_connector","claims":[{"kind":"documented","evidence":"intended","text":"Mating hardware: JST GH 4-way, mating GHR-04V-S with SSHL-002T-P0.2 contacts.","basis":"hardware-current/manufacturing/enclosure_assembly_notes.md"}],"open":["Harness crimping, wire gauge and continuity are the assembler's to confirm. The connector's own rating does not lift the 0.75 A branch fuse."],"related":["F9","Q116","Q117","Q118"],"assembly":[],"name":"Ambient zone 6 connector","circuit":"ambient","group":{"zone":6},"here":"Where ambient zone 6's tunable-white strip plugs in. Contacts in numeric order: 1 = ZONE6_24V, 2 = ZONE6_W, 3 = ZONE6_N, 4 = ZONE6_C. Contact 1 is the strip's shared positive, fused on its own by F9; the other three are the switched returns for warm, neutral and cool.","how":"The strip has one positive wire and three colour wires. All three colours share that positive, so the shared contact carries the sum of the three channel currents -- a per-contact rating is not a per-channel allowance. This connector side-entry across the front face.","sheet":12,"bom":23,"nets":[{"pin":"1","net":"ZONE6_24V","role":""},{"pin":"2","net":"ZONE6_W","role":""},{"pin":"3","net":"ZONE6_N","role":""},{"pin":"4","net":"ZONE6_C","role":""}],"sources":[{"label":"Primary source","url":"https://www.jst-mfg.com/product/pdf/eng/eGH.pdf","context":"Undated GH catalog p2/3; mechanical drawing visually reviewed"}]},"J8":{"family":"zone_connector","claims":[{"kind":"documented","evidence":"intended","text":"Mating hardware: JST GH 4-way vertical BM04B-GHS-TBT, mating GHR-04V-S.","basis":"hardware-current/manufacturing/enclosure_assembly_notes.md"}],"open":["Harness crimping, wire gauge and continuity are the assembler's to confirm. The connector's own rating does not lift the 0.75 A branch fuse."],"related":["F10","Q119","Q120","Q121"],"assembly":[],"name":"Ambient zone 7 connector","circuit":"ambient","group":{"zone":7},"here":"Where ambient zone 7's tunable-white strip plugs in. Contacts in numeric order: 1 = ZONE7_24V, 2 = ZONE7_W, 3 = ZONE7_N, 4 = ZONE7_C. Contact 1 is the strip's shared positive, fused on its own by F10; the other three are the switched returns for warm, neutral and cool.","how":"The strip has one positive wire and three colour wires. All three colours share that positive, so the shared contact carries the sum of the three channel currents -- a per-contact rating is not a per-channel allowance. This connector mates downward, out of the back face.","sheet":13,"bom":28,"nets":[{"pin":"1","net":"ZONE7_24V","role":""},{"pin":"2","net":"ZONE7_W","role":""},{"pin":"3","net":"ZONE7_N","role":""},{"pin":"4","net":"ZONE7_C","role":""}],"sources":[{"label":"Primary source","url":"https://www.jst-mfg.com/product/pdf/eng/eGH.pdf","context":"Public manufacturer data reviewed 2026-09-06; exact stock/quotation unconfirmed"}]},"J9":{"family":"spot_connector","claims":[{"kind":"documented","evidence":"intended","text":"Mating hardware: JST GH 2-way vertical BM02B-GHS-TBT, mating GHR-02V-S.","basis":"hardware-current/manufacturing/enclosure_assembly_notes.md"}],"open":[],"related":["U7","R523","L502","D502","R526","C519","C520"],"assembly":[],"name":"Spotlight 1 output","circuit":"spot","here":"Where spotlight LED pair 1 plugs in: 1 = SPOT1_LED_PLUS, 2 = SPOT1_LED_MINUS. It mates downward, out of the back face, and its return contact belongs to this channel alone.","how":"Contact 2 is this channel's own return, and it goes to this channel's inductor -- not to ground, and not to another channel. Joining spotlight returns together, or to ground, breaks the current regulation and can damage the driver.","sheet":18,"bom":72,"nets":[{"pin":"1","net":"SPOT1_LED_PLUS","role":""},{"pin":"2","net":"SPOT1_LED_MINUS","role":""}],"sources":[{"label":"Primary source","url":"https://www.jst-mfg.com/product/pdf/eng/eGH.pdf","context":"Public manufacturer data reviewed 2026-09-06; exact stock/quotation unconfirmed"}]},"J10":{"family":"spot_connector","claims":[{"kind":"documented","evidence":"intended","text":"Mating hardware: JST GH 2-way vertical BM02B-GHS-TBT, mating GHR-02V-S.","basis":"hardware-current/manufacturing/enclosure_assembly_notes.md"}],"open":[],"related":["U8","R524","L503","D503","R527","C521","C522"],"assembly":[],"name":"Spotlight 2 output","circuit":"spot","here":"Where spotlight LED pair 2 plugs in: 1 = SPOT2_LED_PLUS, 2 = SPOT2_LED_MINUS. It mates downward, out of the back face, and its return contact belongs to this channel alone.","how":"Contact 2 is this channel's own return, and it goes to this channel's inductor -- not to ground, and not to another channel. Joining spotlight returns together, or to ground, breaks the current regulation and can damage the driver.","sheet":18,"bom":73,"nets":[{"pin":"1","net":"SPOT2_LED_PLUS","role":""},{"pin":"2","net":"SPOT2_LED_MINUS","role":""}],"sources":[{"label":"Primary source","url":"https://www.jst-mfg.com/product/pdf/eng/eGH.pdf","context":"Public manufacturer data reviewed 2026-09-06; exact stock/quotation unconfirmed"}]},"J11":{"family":"spot_connector","claims":[{"kind":"documented","evidence":"intended","text":"Mating hardware: JST GH 2-way vertical BM02B-GHS-TBT, mating GHR-02V-S.","basis":"hardware-current/manufacturing/enclosure_assembly_notes.md"}],"open":[],"related":["U9","R525","L504","D504","R528","C523","C524"],"assembly":[],"name":"Spotlight 3 output","circuit":"spot","here":"Where spotlight LED pair 3 plugs in: 1 = SPOT3_LED_PLUS, 2 = SPOT3_LED_MINUS. It mates downward, out of the back face, and its return contact belongs to this channel alone.","how":"Contact 2 is this channel's own return, and it goes to this channel's inductor -- not to ground, and not to another channel. Joining spotlight returns together, or to ground, breaks the current regulation and can damage the driver.","sheet":18,"bom":74,"nets":[{"pin":"1","net":"SPOT3_LED_PLUS","role":""},{"pin":"2","net":"SPOT3_LED_MINUS","role":""}],"sources":[{"label":"Primary source","url":"https://www.jst-mfg.com/product/pdf/eng/eGH.pdf","context":"Public manufacturer data reviewed 2026-09-06; exact stock/quotation unconfirmed"}]},"J12":{"family":"unique","claims":[{"kind":"documented","evidence":"intended","text":"Mating housing PAP-04V-S with SPHD-001T-P0.5 contacts; select AWG22 for the motor leads. Two housings and eight contacts per fully cabled board.","basis":"hardware-current/manufacturing/enclosure_assembly_notes.md"},{"kind":"documented","evidence":"intended","text":"The connector's 3 A rating with AWG22 does not lift the 1 A branch fuse, and the initial commissioning limit is 0.75 A per motor.","basis":"hardware-current/engineering/enclosure_addendum.md"}],"open":["Motor regeneration into this port is an open hardware question."],"related":["F2","U4","J13","R22","JP1","C504"],"assembly":[],"name":"Motor 1 connector","circuit":"can","here":"Motor 1's whole connection: contact 1 is V24_MOTOR1 from fuse F2, contact 2 is ground, and contacts 3 and 4 are CAN_H and CAN_L. It mates downward, out of the back face.","how":"The smart motor takes power and a data bus over one four-way cable and does its own drive and encoder work internally. Keep the CAN pair twisted; the power pair should be the heavier gauge.","inspect":"This connector is rotated on the board -- check contact numbering against the assembly drawing, not against the board's edge.","sheet":4,"bom":71,"nets":[{"pin":"1","net":"V24_MOTOR1","role":""},{"pin":"2","net":"GND","role":""},{"pin":"3","net":"CAN_H","role":""},{"pin":"4","net":"CAN_L","role":""}],"sources":[{"label":"Primary source","url":"https://www.jst-mfg.com/product/pdf/eng/ePA-F.pdf","context":"Public manufacturer data reviewed 2026-09-06; exact stock/quotation unconfirmed"}]},"J13":{"family":"unique","claims":[{"kind":"documented","evidence":"intended","text":"Mating housing PAP-04V-S with SPHD-001T-P0.5 contacts; AWG22 for the motor leads, CAN_H and CAN_L kept as a twisted pair.","basis":"hardware-current/manufacturing/enclosure_assembly_notes.md"}],"open":["Motor regeneration into this port is an open hardware question."],"related":["F3","U4","J12","R22","JP1"],"assembly":[],"name":"Motor 2 connector","circuit":"can","here":"Motor 2's connection, identical in shape to motor 1's: contact 1 is V24_MOTOR2 from fuse F3, contact 2 is ground, contacts 3 and 4 are the shared CAN_H and CAN_L pair. It mates downward, out of the back face.","how":"Both motors sit on the same CAN bus and are told apart by their identifiers, not by their wiring. The two power feeds are separately fused so a fault in one motor does not take the other down.","inspect":"Rotated the opposite way from J12 -- confirm contact numbering before wiring.","sheet":4,"bom":71,"nets":[{"pin":"1","net":"V24_MOTOR2","role":""},{"pin":"2","net":"GND","role":""},{"pin":"3","net":"CAN_H","role":""},{"pin":"4","net":"CAN_L","role":""}],"sources":[{"label":"Primary source","url":"https://www.jst-mfg.com/product/pdf/eng/ePA-F.pdf","context":"Public manufacturer data reviewed 2026-09-06; exact stock/quotation unconfirmed"}]},"J14":{"family":"unique","claims":[{"kind":"documented","evidence":"intended","text":"Self-powered: USB_VBUS is used for sensing and for the data mux's supply only, and is never tied to the 5 V or 3.3 V rails.","basis":"hardware-current/engineering/design_parts.json (J14 note)"},{"kind":"documented","evidence":"intended","text":"Its two SBU contacts are deliberately unconnected.","basis":"board.json pins for J14"},{"kind":"documented","evidence":"cad-checked","text":"Its four shield stakes are plated through-hole slots that must be soldered, plus two unplated locating pegs. Zero through-hole component packages does not mean zero through-hole solder joints.","basis":"hardware-current/reports/drilled-solder-candidate.json and enclosure_assembly_notes.md"}],"open":["The 90 Ohm differential geometry for the USB pair is a request to the factory, not an accepted stack-up. Thirteen modelled two-dimensional cases on the native geometry spread from 71 to 114 Ohm.","No USB certification, enumeration test or electrostatic-discharge test has been performed."],"related":["U15","U17","D30","C30","C31","R30","R31","Q30","R40","R36"],"assembly":["The shield slots must keep their geometry and plating and must not be filled or capped."],"name":"USB-C connector","circuit":"usb","here":"The programming and serial port. It brings in USB_VBUS -- which powers only the small sensing and isolation island, never the controller -- the data pair USB_DP_HOST and USB_DM_HOST, and the two configuration lines USB_CC1 and USB_CC2 that tell a host this board is a device.","how":"USB-C is reversible, so the data pair appears twice in the connector and both copies are wired together here. This board is self-powered: it still needs external 24 V while USB is connected, because USB only supplies the island.","inspect":"Check that all four shield stakes are soldered, not just tacked, and that the slots are open.","sheet":5,"bom":16,"nets":[{"pin":"A1","net":"GND","role":""},{"pin":"A4","net":"USB_VBUS","role":""},{"pin":"A5","net":"USB_CC1","role":""},{"pin":"A6","net":"USB_DP_HOST","role":""},{"pin":"A7","net":"USB_DM_HOST","role":""},{"pin":"A8","net":null,"role":"no connect (intentional)"},{"pin":"A9","net":"USB_VBUS","role":""},{"pin":"B1","net":"GND","role":""},{"pin":"B4","net":"USB_VBUS","role":""},{"pin":"B5","net":"USB_CC2","role":""},{"pin":"B6","net":"USB_DP_HOST","role":""},{"pin":"B7","net":"USB_DM_HOST","role":""},{"pin":"B8","net":null,"role":"no connect (intentional)"},{"pin":"B9","net":"USB_VBUS","role":""},{"pin":"SH","net":"GND","role":""},{"pin":"A12","net":"GND","role":""},{"pin":"B12","net":"GND","role":""}],"sources":[{"label":"Primary source","url":"https://gct.co/files/drawings/usb4105.pdf","context":"Drawing B4 2023-12-18 visually checked; relevant lands/body match native and B3"}]},"J15":{"family":"unique","claims":[{"kind":"documented","evidence":"intended","text":"3.3 V logic. The adapter must not drive the power contact; it is there to reference or feed a low-power adapter, not to power the board.","basis":"hardware-current/engineering/design_parts.json (J15 note)"}],"open":[],"related":["U1","S1","S2","J17"],"assembly":[],"name":"UART service port","circuit":"mcu","here":"A four-way service header carrying +3V3, ground and the serial pair: UART_TX is the board's output and UART_RX its input. It is the console when USB is not convenient.","how":"A serial console needs the two lines crossed -- the board's transmit goes to the adapter's receive. This connector is deliberately a different size from the ambient strip connectors so a strip cable cannot be forced into it.","sheet":2,"bom":10,"nets":[{"pin":"1","net":"+3V3","role":""},{"pin":"2","net":"GND","role":""},{"pin":"3","net":"UART_TX","role":""},{"pin":"4","net":"UART_RX","role":""}],"sources":[{"label":"Primary source","url":"https://www.jst-mfg.com/product/pdf/eng/eSH.pdf","context":"SH catalog p1-3; exact OPN and land drawing visually reviewed"}]},"J16":{"family":"unique","claims":[{"kind":"documented","evidence":"intended","text":"An external brake needs a controlled chopper. A bare resistor across this port is not a brake and is not what this connector is for.","basis":"hardware-current/manufacturing/enclosure_assembly_notes.md"}],"open":["The brake itself is not designed, and the motors' regenerative behaviour is unmeasured."],"related":["C504","U501","U12","J12","J13"],"assembly":[],"name":"Protected-bus service port","circuit":"bus","here":"A two-way connector exposing V24_BUS and ground on the front face, intended as the connection point for a separately designed brake for the motors.","how":"It is a tap on the protected bus, downstream of the eFuse, so anything connected here is inside the board's protection. It is a connection point, not an installed brake.","sheet":16,"bom":70,"nets":[{"pin":"1","net":"V24_BUS","role":""},{"pin":"2","net":"GND","role":""}],"sources":[{"label":"Primary source","url":"https://www.molex.com/content/dam/molex/molex-dot-com/products/automated/en-us/productspecificationpdf/205/205341/2053410000-PS-000.pdf","context":"2053410000-PS C1 2023-09-15; drawing revB visually reviewed"}]},"J17":{"family":"unique","claims":[{"kind":"documented","evidence":"intended","text":"The connector is a different size from the ambient ports so a strip cable cannot be plugged in here, and it ships open, which means disarmed.","basis":"hardware-current/manufacturing/enclosure_assembly_notes.md"}],"open":["ARM gates lighting only. It does not remove motor power."],"related":["R5","U5","U19","U13","U14"],"assembly":[],"name":"ARM switch connector","circuit":"gating","here":"Where the physical ARM switch plugs in: contact 1 is +3V3 and contact 2 is ARM. With nothing connected, R5 holds ARM low, so the board reads as disarmed.","how":"The ARM signal is one of the two inputs to the AND gate that produces the lighting request, so a physical switch -- or the absence of one -- can veto lighting no matter what the firmware asks for. It ships open, which means disarmed.","sheet":2,"bom":9,"nets":[{"pin":"1","net":"+3V3","role":""},{"pin":"2","net":"ARM","role":""}],"sources":[{"label":"Primary source","url":"https://www.jst-mfg.com/product/pdf/eng/ePH.pdf","context":"Public manufacturer data reviewed 2026-09-06; exact stock/quotation unconfirmed"}]},"J18":{"family":"expansion_pads","claims":[{"kind":"documented","evidence":"intended","text":"3.3 V logic only. Do not back-power the rail through these pads, and do not assume a spare peripheral power budget; any accessory needs its own input and output protection.","basis":"hardware-current/engineering/enclosure_addendum.md"}],"open":[],"related":["U1"],"assembly":[],"name":"Expansion solder pads","circuit":"expansion","here":"Seven bare lands on the back face: 1 = +3V3, 2 = GND, 3 = GPIO19, 4 = GPIO20, 5 = GPIO21, 6 = GPIO22, 7 = GPIO23. No header is fitted -- these are pads the PCB makes, not a purchased connector.","how":"The five GPIO lines are spare controller pins brought out so a future accessory can be soldered on. They are 3.3 V logic with no protection of their own.","sheet":19,"bom":null,"nets":[{"pin":"1","net":"+3V3","role":""},{"pin":"2","net":"GND","role":""},{"pin":"3","net":"GPIO19","role":""},{"pin":"4","net":"GPIO20","role":""},{"pin":"5","net":"GPIO21","role":""},{"pin":"6","net":"GPIO22","role":""},{"pin":"7","net":"GPIO23","role":""}],"sources":[]},"JP1":{"family":"jumper","claims":[{"kind":"documented","evidence":"intended","text":"Check for roughly 60 Ohm across the finished bus -- what two 120 Ohm terminators in parallel look like -- before powering it.","basis":"engineering-history/first_hardware_checklist.md"}],"open":[],"related":["R22","U4","J12","J13"],"assembly":[],"name":"CAN termination jumper","circuit":"can","here":"Two bare pads in series with the 120 Ohm terminator R22, between CAN_TERM and CAN_L. As manufactured the jumper is open, so the terminator is not connected.","how":"A CAN bus needs exactly two terminators, one at each physical end. Whether this board is an end depends on how the harness is built, so termination is a solder decision rather than a fixed part: bridge these two pads only if this board is one of the two ends.","sheet":4,"bom":null,"nets":[{"pin":"1","net":"CAN_TERM","role":""},{"pin":"2","net":"CAN_L","role":""}],"sources":[]},"L500":{"family":"unique","claims":[{"kind":"documented","evidence":"intended","text":"Rated 2.5 A RMS with 5.5 A saturation and at most 0.170 Ohm of winding resistance.","basis":"hardware-current/engineering/design_parts.json"}],"open":[],"related":["U10","C510","C511"],"assembly":["Custom land pattern derived from the manufacturer's drawing: the catalogue's 2.5 mm figure is the gap between lands, not the pad width."],"name":"5 V converter inductor","circuit":"buck5","here":"The energy-storage inductor for the 5 V converter, between the switching node BUCK5_SW and the +5V rail. All of the 5 V rail's current passes through it.","how":"In a buck converter the inductor is what makes the averaging work: it stores energy while the switch is on and releases it while the switch is off, so the output sees a nearly steady current even though the input is being chopped.","sheet":16,"bom":50,"nets":[{"pin":"1","net":"BUCK5_SW","role":""},{"pin":"2","net":"+5V","role":""}],"sources":[{"label":"Primary source","url":"https://www.bourns.com/docs/Product-Datasheets/SRP7050TA.pdf","context":"REV.06/26, visually confirmed by mechanical reviewer"}]},"L501":{"family":"unique","claims":[{"kind":"documented","evidence":"intended","text":"Rated 2.9 A RMS with 3 A saturation and at most 0.044 Ohm of winding resistance.","basis":"hardware-current/engineering/design_parts.json"}],"open":[],"related":["U11","C513"],"assembly":[],"name":"3.3 V converter inductor","circuit":"buck3","here":"The energy-storage inductor for the 3.3 V converter, between BUCK3_SW and the +3V3 rail that supplies all the logic on this board.","how":"The same role as the 5 V converter's inductor: it smooths the chopped switching node into a steady current. It is physically smaller because this converter runs at a higher frequency and a lower voltage step.","sheet":16,"bom":55,"nets":[{"pin":"1","net":"BUCK3_SW","role":""},{"pin":"2","net":"+3V3","role":""}],"sources":[{"label":"Primary source","url":"https://www.bourns.com/docs/product-datasheets/srn4018.pdf","context":"revision date not captured"}]},"L502":{"family":"spot_inductor","claims":[{"kind":"documented","evidence":"modelled-current","text":"A triangular-ripple model puts about 0.353 A RMS through this part and roughly 0.147 W of copper loss, against a 0.6 A RMS rating.","basis":"engineering-history/power_review.md"}],"open":[],"related":["U7","R523","D502","R526","J9","C519","C520"],"assembly":["Custom land pattern taken from the manufacturer's drawing; maximum reflow peak 250 C."],"name":"Spotlight 1 inductor","circuit":"spot","here":"Carries spotlight 1's LED current. Pin 1 is SPOT1_LED_MINUS, the LED string's return, and pin 2 is the driver's switching node SPOT1_SW. The LED current flows through this inductor, which is exactly why the LED-minus wire is not a ground wire.","how":"An inductor resists sudden changes in the current through it. In a switching driver that is the whole trick: the switch chops the supply on and off, and the inductor turns that chopping into a nearly steady current through the LEDs.","sheet":17,"bom":66,"nets":[{"pin":"1","net":"SPOT1_LED_MINUS","role":""},{"pin":"2","net":"SPOT1_SW","role":""}],"sources":[{"label":"Primary source","url":"https://www.bourns.com/docs/Product-Datasheets/SRN6045.pdf","context":"01/20"}]},"L503":{"family":"spot_inductor","claims":[{"kind":"documented","evidence":"modelled-current","text":"A triangular-ripple model puts about 0.353 A RMS through this part and roughly 0.147 W of copper loss, against a 0.6 A RMS rating.","basis":"engineering-history/power_review.md"}],"open":[],"related":["U8","R524","D503","R527","J10","C521","C522"],"assembly":["Custom land pattern taken from the manufacturer's drawing; maximum reflow peak 250 C."],"name":"Spotlight 2 inductor","circuit":"spot","here":"Carries spotlight 2's LED current. Pin 1 is SPOT2_LED_MINUS, the LED string's return, and pin 2 is the driver's switching node SPOT2_SW. The LED current flows through this inductor, which is exactly why the LED-minus wire is not a ground wire.","how":"An inductor resists sudden changes in the current through it. In a switching driver that is the whole trick: the switch chops the supply on and off, and the inductor turns that chopping into a nearly steady current through the LEDs.","sheet":17,"bom":66,"nets":[{"pin":"1","net":"SPOT2_LED_MINUS","role":""},{"pin":"2","net":"SPOT2_SW","role":""}],"sources":[{"label":"Primary source","url":"https://www.bourns.com/docs/Product-Datasheets/SRN6045.pdf","context":"01/20"}]},"L504":{"family":"spot_inductor","claims":[{"kind":"documented","evidence":"modelled-current","text":"A triangular-ripple model puts about 0.353 A RMS through this part and roughly 0.147 W of copper loss, against a 0.6 A RMS rating.","basis":"engineering-history/power_review.md"}],"open":[],"related":["U9","R525","D504","R528","J11","C523","C524"],"assembly":["Custom land pattern taken from the manufacturer's drawing; maximum reflow peak 250 C."],"name":"Spotlight 3 inductor","circuit":"spot","here":"Carries spotlight 3's LED current. Pin 1 is SPOT3_LED_MINUS, the LED string's return, and pin 2 is the driver's switching node SPOT3_SW. The LED current flows through this inductor, which is exactly why the LED-minus wire is not a ground wire.","how":"An inductor resists sudden changes in the current through it. In a switching driver that is the whole trick: the switch chops the supply on and off, and the inductor turns that chopping into a nearly steady current through the LEDs.","sheet":17,"bom":66,"nets":[{"pin":"1","net":"SPOT3_LED_MINUS","role":""},{"pin":"2","net":"SPOT3_SW","role":""}],"sources":[{"label":"Primary source","url":"https://www.bourns.com/docs/Product-Datasheets/SRN6045.pdf","context":"01/20"}]},"Q30":{"family":"unique","claims":[{"kind":"documented","evidence":"intended","text":"USB sensing only: no host power reaches the logic supply through this path.","basis":"hardware-current/engineering/design_parts.json (Q30 note)"}],"open":["Unplug timing was modelled across a range of transistor gains, giving 1.8 to 2.5 ms before the signal releases. That is a model, not a measurement."],"related":["R34","R35","R36","J14","U17","U1","R40"],"assembly":[],"name":"USB presence sensor","circuit":"usb","here":"Tells the controller whether a USB host is plugged in. R34 and R35 divide USB_VBUS into USB_SENSE_BASE, which drives this transistor's base; its collector pulls USB_PRESENT_N down against R36 when a host is present.","how":"A bipolar transistor conducts between collector and emitter in proportion to the small current into its base. Used as a switch like this, it converts 'is there 5 V on the cable?' into a clean logic level -- without connecting the two power domains, which a simple divider to a GPIO would do.","sheet":5,"bom":21,"nets":[{"pin":"1","net":"USB_SENSE_BASE","role":""},{"pin":"2","net":"GND","role":""},{"pin":"3","net":"USB_PRESENT_N","role":""}],"sources":[{"label":"Primary source","url":"https://www.diodes.com/datasheet/download/MMBT3904.pdf","context":"Primary transistor pinout and voltage ratings reviewed"}]},"Q101":{"family":"ambient_mosfet","claims":[{"kind":"documented","evidence":"intended","text":"Channel 1 is logical PWM 1: U2 output 0, package pin 6, driving zone 1 warm.","basis":"engineering-history/firmware_port_map.md, cross-checked against this board's nets"},{"kind":"documented","evidence":"intended","text":"The expander outputs are configured open-drain, so a low output holds this gate off and the light is on when the output is released. Optical duty is the complement of the sink-active duty the firmware writes.","basis":"engineering-history/firmware_port_map.md"}],"open":["Actual channel current is unmeasured. The project's provisional envelope is 0.2 A per channel, and per-zone duty is scheduled so warm, neutral and cool never conduct at once."],"related":["R101","R201","R301","J2","F4","U2"],"assembly":[],"name":"Zone 1 warm channel switch","circuit":"ambient","group":{"zone":1,"colour":"warm","channel":1},"here":"The low-side switch for the warm white LEDs in ambient zone 1. Its drain is ZONE1_W, which leaves the board on J2 contact 2; the strip's positive end arrives on contact 1 from ZONE1_24V through fuse F4. Turning this transistor on completes that circuit to ground, which is why ZONE1_W is a switched return rather than a ground wire.","how":"An N-channel MOSFET conducts between drain and source once its gate sits a few volts above the source. Here the source is ground, so the voltage on GATE_01 alone decides whether the zone's warm LEDs light. This part was chosen on its resistance quoted at a low gate voltage rather than on threshold voltage, because the gate is raised from a 3.3 V rail through a 2.2 kOhm resistor, not driven hard by a gate driver.","sheet":7,"bom":24,"nets":[{"pin":"1","net":"GATE_01","role":""},{"pin":"2","net":"GND","role":""},{"pin":"3","net":"ZONE1_W","role":""}],"sources":[{"label":"Primary source","url":"https://www.aosmd.com/res/data_sheets/AO3422.pdf","context":"Rev.2.1, March 2024"}]},"Q102":{"family":"ambient_mosfet","claims":[{"kind":"documented","evidence":"intended","text":"Channel 2 is logical PWM 2: U2 output 1, package pin 7, driving zone 1 neutral.","basis":"engineering-history/firmware_port_map.md, cross-checked against this board's nets"},{"kind":"documented","evidence":"intended","text":"The expander outputs are configured open-drain, so a low output holds this gate off and the light is on when the output is released. Optical duty is the complement of the sink-active duty the firmware writes.","basis":"engineering-history/firmware_port_map.md"}],"open":["Actual channel current is unmeasured. The project's provisional envelope is 0.2 A per channel, and per-zone duty is scheduled so warm, neutral and cool never conduct at once."],"related":["R102","R202","R302","J2","F4","U2"],"assembly":[],"name":"Zone 1 neutral channel switch","circuit":"ambient","group":{"zone":1,"colour":"neutral","channel":2},"here":"The low-side switch for the neutral white LEDs in ambient zone 1. Its drain is ZONE1_N, which leaves the board on J2 contact 3; the strip's positive end arrives on contact 1 from ZONE1_24V through fuse F4. Turning this transistor on completes that circuit to ground, which is why ZONE1_N is a switched return rather than a ground wire.","how":"An N-channel MOSFET conducts between drain and source once its gate sits a few volts above the source. Here the source is ground, so the voltage on GATE_02 alone decides whether the zone's neutral LEDs light. This part was chosen on its resistance quoted at a low gate voltage rather than on threshold voltage, because the gate is raised from a 3.3 V rail through a 2.2 kOhm resistor, not driven hard by a gate driver.","sheet":7,"bom":24,"nets":[{"pin":"1","net":"GATE_02","role":""},{"pin":"2","net":"GND","role":""},{"pin":"3","net":"ZONE1_N","role":""}],"sources":[{"label":"Primary source","url":"https://www.aosmd.com/res/data_sheets/AO3422.pdf","context":"Rev.2.1, March 2024"}]},"Q103":{"family":"ambient_mosfet","claims":[{"kind":"documented","evidence":"intended","text":"Channel 3 is logical PWM 3: U2 output 2, package pin 8, driving zone 1 cool.","basis":"engineering-history/firmware_port_map.md, cross-checked against this board's nets"},{"kind":"documented","evidence":"intended","text":"The expander outputs are configured open-drain, so a low output holds this gate off and the light is on when the output is released. Optical duty is the complement of the sink-active duty the firmware writes.","basis":"engineering-history/firmware_port_map.md"}],"open":["Actual channel current is unmeasured. The project's provisional envelope is 0.2 A per channel, and per-zone duty is scheduled so warm, neutral and cool never conduct at once."],"related":["R103","R203","R303","J2","F4","U2"],"assembly":[],"name":"Zone 1 cool channel switch","circuit":"ambient","group":{"zone":1,"colour":"cool","channel":3},"here":"The low-side switch for the cool white LEDs in ambient zone 1. Its drain is ZONE1_C, which leaves the board on J2 contact 4; the strip's positive end arrives on contact 1 from ZONE1_24V through fuse F4. Turning this transistor on completes that circuit to ground, which is why ZONE1_C is a switched return rather than a ground wire.","how":"An N-channel MOSFET conducts between drain and source once its gate sits a few volts above the source. Here the source is ground, so the voltage on GATE_03 alone decides whether the zone's cool LEDs light. This part was chosen on its resistance quoted at a low gate voltage rather than on threshold voltage, because the gate is raised from a 3.3 V rail through a 2.2 kOhm resistor, not driven hard by a gate driver.","sheet":7,"bom":24,"nets":[{"pin":"1","net":"GATE_03","role":""},{"pin":"2","net":"GND","role":""},{"pin":"3","net":"ZONE1_C","role":""}],"sources":[{"label":"Primary source","url":"https://www.aosmd.com/res/data_sheets/AO3422.pdf","context":"Rev.2.1, March 2024"}]},"Q104":{"family":"ambient_mosfet","claims":[{"kind":"documented","evidence":"intended","text":"Channel 4 is logical PWM 4: U2 output 3, package pin 9, driving zone 2 warm.","basis":"engineering-history/firmware_port_map.md, cross-checked against this board's nets"},{"kind":"documented","evidence":"intended","text":"The expander outputs are configured open-drain, so a low output holds this gate off and the light is on when the output is released. Optical duty is the complement of the sink-active duty the firmware writes.","basis":"engineering-history/firmware_port_map.md"}],"open":["Actual channel current is unmeasured. The project's provisional envelope is 0.2 A per channel, and per-zone duty is scheduled so warm, neutral and cool never conduct at once."],"related":["R104","R204","R304","J3","F5","U2"],"assembly":[],"name":"Zone 2 warm channel switch","circuit":"ambient","group":{"zone":2,"colour":"warm","channel":4},"here":"The low-side switch for the warm white LEDs in ambient zone 2. Its drain is ZONE2_W, which leaves the board on J3 contact 2; the strip's positive end arrives on contact 1 from ZONE2_24V through fuse F5. Turning this transistor on completes that circuit to ground, which is why ZONE2_W is a switched return rather than a ground wire.","how":"An N-channel MOSFET conducts between drain and source once its gate sits a few volts above the source. Here the source is ground, so the voltage on GATE_04 alone decides whether the zone's warm LEDs light. This part was chosen on its resistance quoted at a low gate voltage rather than on threshold voltage, because the gate is raised from a 3.3 V rail through a 2.2 kOhm resistor, not driven hard by a gate driver.","sheet":8,"bom":24,"nets":[{"pin":"1","net":"GATE_04","role":""},{"pin":"2","net":"GND","role":""},{"pin":"3","net":"ZONE2_W","role":""}],"sources":[{"label":"Primary source","url":"https://www.aosmd.com/res/data_sheets/AO3422.pdf","context":"Rev.2.1, March 2024"}]},"Q105":{"family":"ambient_mosfet","claims":[{"kind":"documented","evidence":"intended","text":"Channel 5 is logical PWM 5: U2 output 4, package pin 10, driving zone 2 neutral.","basis":"engineering-history/firmware_port_map.md, cross-checked against this board's nets"},{"kind":"documented","evidence":"intended","text":"The expander outputs are configured open-drain, so a low output holds this gate off and the light is on when the output is released. Optical duty is the complement of the sink-active duty the firmware writes.","basis":"engineering-history/firmware_port_map.md"}],"open":["Actual channel current is unmeasured. The project's provisional envelope is 0.2 A per channel, and per-zone duty is scheduled so warm, neutral and cool never conduct at once."],"related":["R105","R205","R305","J3","F5","U2"],"assembly":[],"name":"Zone 2 neutral channel switch","circuit":"ambient","group":{"zone":2,"colour":"neutral","channel":5},"here":"The low-side switch for the neutral white LEDs in ambient zone 2. Its drain is ZONE2_N, which leaves the board on J3 contact 3; the strip's positive end arrives on contact 1 from ZONE2_24V through fuse F5. Turning this transistor on completes that circuit to ground, which is why ZONE2_N is a switched return rather than a ground wire.","how":"An N-channel MOSFET conducts between drain and source once its gate sits a few volts above the source. Here the source is ground, so the voltage on GATE_05 alone decides whether the zone's neutral LEDs light. This part was chosen on its resistance quoted at a low gate voltage rather than on threshold voltage, because the gate is raised from a 3.3 V rail through a 2.2 kOhm resistor, not driven hard by a gate driver.","sheet":8,"bom":24,"nets":[{"pin":"1","net":"GATE_05","role":""},{"pin":"2","net":"GND","role":""},{"pin":"3","net":"ZONE2_N","role":""}],"sources":[{"label":"Primary source","url":"https://www.aosmd.com/res/data_sheets/AO3422.pdf","context":"Rev.2.1, March 2024"}]},"Q106":{"family":"ambient_mosfet","claims":[{"kind":"documented","evidence":"intended","text":"Channel 6 is logical PWM 6: U2 output 5, package pin 11, driving zone 2 cool.","basis":"engineering-history/firmware_port_map.md, cross-checked against this board's nets"},{"kind":"documented","evidence":"intended","text":"The expander outputs are configured open-drain, so a low output holds this gate off and the light is on when the output is released. Optical duty is the complement of the sink-active duty the firmware writes.","basis":"engineering-history/firmware_port_map.md"}],"open":["Actual channel current is unmeasured. The project's provisional envelope is 0.2 A per channel, and per-zone duty is scheduled so warm, neutral and cool never conduct at once."],"related":["R106","R206","R306","J3","F5","U2"],"assembly":[],"name":"Zone 2 cool channel switch","circuit":"ambient","group":{"zone":2,"colour":"cool","channel":6},"here":"The low-side switch for the cool white LEDs in ambient zone 2. Its drain is ZONE2_C, which leaves the board on J3 contact 4; the strip's positive end arrives on contact 1 from ZONE2_24V through fuse F5. Turning this transistor on completes that circuit to ground, which is why ZONE2_C is a switched return rather than a ground wire.","how":"An N-channel MOSFET conducts between drain and source once its gate sits a few volts above the source. Here the source is ground, so the voltage on GATE_06 alone decides whether the zone's cool LEDs light. This part was chosen on its resistance quoted at a low gate voltage rather than on threshold voltage, because the gate is raised from a 3.3 V rail through a 2.2 kOhm resistor, not driven hard by a gate driver.","sheet":8,"bom":24,"nets":[{"pin":"1","net":"GATE_06","role":""},{"pin":"2","net":"GND","role":""},{"pin":"3","net":"ZONE2_C","role":""}],"sources":[{"label":"Primary source","url":"https://www.aosmd.com/res/data_sheets/AO3422.pdf","context":"Rev.2.1, March 2024"}]},"Q107":{"family":"ambient_mosfet","claims":[{"kind":"documented","evidence":"intended","text":"Channel 7 is logical PWM 7: U2 output 6, package pin 12, driving zone 3 warm.","basis":"engineering-history/firmware_port_map.md, cross-checked against this board's nets"},{"kind":"documented","evidence":"intended","text":"The expander outputs are configured open-drain, so a low output holds this gate off and the light is on when the output is released. Optical duty is the complement of the sink-active duty the firmware writes.","basis":"engineering-history/firmware_port_map.md"}],"open":["Actual channel current is unmeasured. The project's provisional envelope is 0.2 A per channel, and per-zone duty is scheduled so warm, neutral and cool never conduct at once."],"related":["R107","R207","R307","J4","F6","U2"],"assembly":[],"name":"Zone 3 warm channel switch","circuit":"ambient","group":{"zone":3,"colour":"warm","channel":7},"here":"The low-side switch for the warm white LEDs in ambient zone 3. Its drain is ZONE3_W, which leaves the board on J4 contact 2; the strip's positive end arrives on contact 1 from ZONE3_24V through fuse F6. Turning this transistor on completes that circuit to ground, which is why ZONE3_W is a switched return rather than a ground wire.","how":"An N-channel MOSFET conducts between drain and source once its gate sits a few volts above the source. Here the source is ground, so the voltage on GATE_07 alone decides whether the zone's warm LEDs light. This part was chosen on its resistance quoted at a low gate voltage rather than on threshold voltage, because the gate is raised from a 3.3 V rail through a 2.2 kOhm resistor, not driven hard by a gate driver.","sheet":9,"bom":24,"nets":[{"pin":"1","net":"GATE_07","role":""},{"pin":"2","net":"GND","role":""},{"pin":"3","net":"ZONE3_W","role":""}],"sources":[{"label":"Primary source","url":"https://www.aosmd.com/res/data_sheets/AO3422.pdf","context":"Rev.2.1, March 2024"}]},"Q108":{"family":"ambient_mosfet","claims":[{"kind":"documented","evidence":"intended","text":"Channel 8 is logical PWM 8: U2 output 7, package pin 13, driving zone 3 neutral.","basis":"engineering-history/firmware_port_map.md, cross-checked against this board's nets"},{"kind":"documented","evidence":"intended","text":"The expander outputs are configured open-drain, so a low output holds this gate off and the light is on when the output is released. Optical duty is the complement of the sink-active duty the firmware writes.","basis":"engineering-history/firmware_port_map.md"}],"open":["Actual channel current is unmeasured. The project's provisional envelope is 0.2 A per channel, and per-zone duty is scheduled so warm, neutral and cool never conduct at once."],"related":["R108","R208","R308","J4","F6","U2"],"assembly":[],"name":"Zone 3 neutral channel switch","circuit":"ambient","group":{"zone":3,"colour":"neutral","channel":8},"here":"The low-side switch for the neutral white LEDs in ambient zone 3. Its drain is ZONE3_N, which leaves the board on J4 contact 3; the strip's positive end arrives on contact 1 from ZONE3_24V through fuse F6. Turning this transistor on completes that circuit to ground, which is why ZONE3_N is a switched return rather than a ground wire.","how":"An N-channel MOSFET conducts between drain and source once its gate sits a few volts above the source. Here the source is ground, so the voltage on GATE_08 alone decides whether the zone's neutral LEDs light. This part was chosen on its resistance quoted at a low gate voltage rather than on threshold voltage, because the gate is raised from a 3.3 V rail through a 2.2 kOhm resistor, not driven hard by a gate driver.","sheet":9,"bom":24,"nets":[{"pin":"1","net":"GATE_08","role":""},{"pin":"2","net":"GND","role":""},{"pin":"3","net":"ZONE3_N","role":""}],"sources":[{"label":"Primary source","url":"https://www.aosmd.com/res/data_sheets/AO3422.pdf","context":"Rev.2.1, March 2024"}]},"Q109":{"family":"ambient_mosfet","claims":[{"kind":"documented","evidence":"intended","text":"Channel 9 is logical PWM 9: U2 output 8, package pin 15, driving zone 3 cool.","basis":"engineering-history/firmware_port_map.md, cross-checked against this board's nets"},{"kind":"documented","evidence":"intended","text":"The expander outputs are configured open-drain, so a low output holds this gate off and the light is on when the output is released. Optical duty is the complement of the sink-active duty the firmware writes.","basis":"engineering-history/firmware_port_map.md"}],"open":["Actual channel current is unmeasured. The project's provisional envelope is 0.2 A per channel, and per-zone duty is scheduled so warm, neutral and cool never conduct at once."],"related":["R109","R209","R309","J4","F6","U2"],"assembly":[],"name":"Zone 3 cool channel switch","circuit":"ambient","group":{"zone":3,"colour":"cool","channel":9},"here":"The low-side switch for the cool white LEDs in ambient zone 3. Its drain is ZONE3_C, which leaves the board on J4 contact 4; the strip's positive end arrives on contact 1 from ZONE3_24V through fuse F6. Turning this transistor on completes that circuit to ground, which is why ZONE3_C is a switched return rather than a ground wire.","how":"An N-channel MOSFET conducts between drain and source once its gate sits a few volts above the source. Here the source is ground, so the voltage on GATE_09 alone decides whether the zone's cool LEDs light. This part was chosen on its resistance quoted at a low gate voltage rather than on threshold voltage, because the gate is raised from a 3.3 V rail through a 2.2 kOhm resistor, not driven hard by a gate driver.","sheet":9,"bom":24,"nets":[{"pin":"1","net":"GATE_09","role":""},{"pin":"2","net":"GND","role":""},{"pin":"3","net":"ZONE3_C","role":""}],"sources":[{"label":"Primary source","url":"https://www.aosmd.com/res/data_sheets/AO3422.pdf","context":"Rev.2.1, March 2024"}]},"Q110":{"family":"ambient_mosfet","claims":[{"kind":"documented","evidence":"intended","text":"Channel 10 is logical PWM 10: U2 output 9, package pin 16, driving zone 4 warm.","basis":"engineering-history/firmware_port_map.md, cross-checked against this board's nets"},{"kind":"documented","evidence":"intended","text":"The expander outputs are configured open-drain, so a low output holds this gate off and the light is on when the output is released. Optical duty is the complement of the sink-active duty the firmware writes.","basis":"engineering-history/firmware_port_map.md"}],"open":["Actual channel current is unmeasured. The project's provisional envelope is 0.2 A per channel, and per-zone duty is scheduled so warm, neutral and cool never conduct at once."],"related":["R110","R210","R310","J5","F7","U2"],"assembly":[],"name":"Zone 4 warm channel switch","circuit":"ambient","group":{"zone":4,"colour":"warm","channel":10},"here":"The low-side switch for the warm white LEDs in ambient zone 4. Its drain is ZONE4_W, which leaves the board on J5 contact 2; the strip's positive end arrives on contact 1 from ZONE4_24V through fuse F7. Turning this transistor on completes that circuit to ground, which is why ZONE4_W is a switched return rather than a ground wire.","how":"An N-channel MOSFET conducts between drain and source once its gate sits a few volts above the source. Here the source is ground, so the voltage on GATE_10 alone decides whether the zone's warm LEDs light. This part was chosen on its resistance quoted at a low gate voltage rather than on threshold voltage, because the gate is raised from a 3.3 V rail through a 2.2 kOhm resistor, not driven hard by a gate driver.","sheet":10,"bom":24,"nets":[{"pin":"1","net":"GATE_10","role":""},{"pin":"2","net":"GND","role":""},{"pin":"3","net":"ZONE4_W","role":""}],"sources":[{"label":"Primary source","url":"https://www.aosmd.com/res/data_sheets/AO3422.pdf","context":"Rev.2.1, March 2024"}]},"Q111":{"family":"ambient_mosfet","claims":[{"kind":"documented","evidence":"intended","text":"Channel 11 is logical PWM 11: U2 output 10, package pin 17, driving zone 4 neutral.","basis":"engineering-history/firmware_port_map.md, cross-checked against this board's nets"},{"kind":"documented","evidence":"intended","text":"The expander outputs are configured open-drain, so a low output holds this gate off and the light is on when the output is released. Optical duty is the complement of the sink-active duty the firmware writes.","basis":"engineering-history/firmware_port_map.md"}],"open":["Actual channel current is unmeasured. The project's provisional envelope is 0.2 A per channel, and per-zone duty is scheduled so warm, neutral and cool never conduct at once."],"related":["R111","R211","R311","J5","F7","U2"],"assembly":[],"name":"Zone 4 neutral channel switch","circuit":"ambient","group":{"zone":4,"colour":"neutral","channel":11},"here":"The low-side switch for the neutral white LEDs in ambient zone 4. Its drain is ZONE4_N, which leaves the board on J5 contact 3; the strip's positive end arrives on contact 1 from ZONE4_24V through fuse F7. Turning this transistor on completes that circuit to ground, which is why ZONE4_N is a switched return rather than a ground wire.","how":"An N-channel MOSFET conducts between drain and source once its gate sits a few volts above the source. Here the source is ground, so the voltage on GATE_11 alone decides whether the zone's neutral LEDs light. This part was chosen on its resistance quoted at a low gate voltage rather than on threshold voltage, because the gate is raised from a 3.3 V rail through a 2.2 kOhm resistor, not driven hard by a gate driver.","sheet":10,"bom":24,"nets":[{"pin":"1","net":"GATE_11","role":""},{"pin":"2","net":"GND","role":""},{"pin":"3","net":"ZONE4_N","role":""}],"sources":[{"label":"Primary source","url":"https://www.aosmd.com/res/data_sheets/AO3422.pdf","context":"Rev.2.1, March 2024"}]},"Q112":{"family":"ambient_mosfet","claims":[{"kind":"documented","evidence":"intended","text":"Channel 12 is logical PWM 12: U2 output 11, package pin 18, driving zone 4 cool.","basis":"engineering-history/firmware_port_map.md, cross-checked against this board's nets"},{"kind":"documented","evidence":"intended","text":"The expander outputs are configured open-drain, so a low output holds this gate off and the light is on when the output is released. Optical duty is the complement of the sink-active duty the firmware writes.","basis":"engineering-history/firmware_port_map.md"}],"open":["Actual channel current is unmeasured. The project's provisional envelope is 0.2 A per channel, and per-zone duty is scheduled so warm, neutral and cool never conduct at once."],"related":["R112","R212","R312","J5","F7","U2"],"assembly":[],"name":"Zone 4 cool channel switch","circuit":"ambient","group":{"zone":4,"colour":"cool","channel":12},"here":"The low-side switch for the cool white LEDs in ambient zone 4. Its drain is ZONE4_C, which leaves the board on J5 contact 4; the strip's positive end arrives on contact 1 from ZONE4_24V through fuse F7. Turning this transistor on completes that circuit to ground, which is why ZONE4_C is a switched return rather than a ground wire.","how":"An N-channel MOSFET conducts between drain and source once its gate sits a few volts above the source. Here the source is ground, so the voltage on GATE_12 alone decides whether the zone's cool LEDs light. This part was chosen on its resistance quoted at a low gate voltage rather than on threshold voltage, because the gate is raised from a 3.3 V rail through a 2.2 kOhm resistor, not driven hard by a gate driver.","sheet":10,"bom":24,"nets":[{"pin":"1","net":"GATE_12","role":""},{"pin":"2","net":"GND","role":""},{"pin":"3","net":"ZONE4_C","role":""}],"sources":[{"label":"Primary source","url":"https://www.aosmd.com/res/data_sheets/AO3422.pdf","context":"Rev.2.1, March 2024"}]},"Q113":{"family":"ambient_mosfet","claims":[{"kind":"documented","evidence":"intended","text":"Channel 13 is logical PWM 13: U2 output 12, package pin 19, driving zone 5 warm.","basis":"engineering-history/firmware_port_map.md, cross-checked against this board's nets"},{"kind":"documented","evidence":"intended","text":"The expander outputs are configured open-drain, so a low output holds this gate off and the light is on when the output is released. Optical duty is the complement of the sink-active duty the firmware writes.","basis":"engineering-history/firmware_port_map.md"}],"open":["Actual channel current is unmeasured. The project's provisional envelope is 0.2 A per channel, and per-zone duty is scheduled so warm, neutral and cool never conduct at once."],"related":["R113","R213","R313","J6","F8","U2"],"assembly":[],"name":"Zone 5 warm channel switch","circuit":"ambient","group":{"zone":5,"colour":"warm","channel":13},"here":"The low-side switch for the warm white LEDs in ambient zone 5. Its drain is ZONE5_W, which leaves the board on J6 contact 2; the strip's positive end arrives on contact 1 from ZONE5_24V through fuse F8. Turning this transistor on completes that circuit to ground, which is why ZONE5_W is a switched return rather than a ground wire.","how":"An N-channel MOSFET conducts between drain and source once its gate sits a few volts above the source. Here the source is ground, so the voltage on GATE_13 alone decides whether the zone's warm LEDs light. This part was chosen on its resistance quoted at a low gate voltage rather than on threshold voltage, because the gate is raised from a 3.3 V rail through a 2.2 kOhm resistor, not driven hard by a gate driver.","sheet":11,"bom":24,"nets":[{"pin":"1","net":"GATE_13","role":""},{"pin":"2","net":"GND","role":""},{"pin":"3","net":"ZONE5_W","role":""}],"sources":[{"label":"Primary source","url":"https://www.aosmd.com/res/data_sheets/AO3422.pdf","context":"Rev.2.1, March 2024"}]},"Q114":{"family":"ambient_mosfet","claims":[{"kind":"documented","evidence":"intended","text":"Channel 14 is logical PWM 14: U2 output 13, package pin 20, driving zone 5 neutral.","basis":"engineering-history/firmware_port_map.md, cross-checked against this board's nets"},{"kind":"documented","evidence":"intended","text":"The expander outputs are configured open-drain, so a low output holds this gate off and the light is on when the output is released. Optical duty is the complement of the sink-active duty the firmware writes.","basis":"engineering-history/firmware_port_map.md"}],"open":["Actual channel current is unmeasured. The project's provisional envelope is 0.2 A per channel, and per-zone duty is scheduled so warm, neutral and cool never conduct at once."],"related":["R114","R214","R314","J6","F8","U2"],"assembly":[],"name":"Zone 5 neutral channel switch","circuit":"ambient","group":{"zone":5,"colour":"neutral","channel":14},"here":"The low-side switch for the neutral white LEDs in ambient zone 5. Its drain is ZONE5_N, which leaves the board on J6 contact 3; the strip's positive end arrives on contact 1 from ZONE5_24V through fuse F8. Turning this transistor on completes that circuit to ground, which is why ZONE5_N is a switched return rather than a ground wire.","how":"An N-channel MOSFET conducts between drain and source once its gate sits a few volts above the source. Here the source is ground, so the voltage on GATE_14 alone decides whether the zone's neutral LEDs light. This part was chosen on its resistance quoted at a low gate voltage rather than on threshold voltage, because the gate is raised from a 3.3 V rail through a 2.2 kOhm resistor, not driven hard by a gate driver.","sheet":11,"bom":24,"nets":[{"pin":"1","net":"GATE_14","role":""},{"pin":"2","net":"GND","role":""},{"pin":"3","net":"ZONE5_N","role":""}],"sources":[{"label":"Primary source","url":"https://www.aosmd.com/res/data_sheets/AO3422.pdf","context":"Rev.2.1, March 2024"}]},"Q115":{"family":"ambient_mosfet","claims":[{"kind":"documented","evidence":"intended","text":"Channel 15 is logical PWM 15: U2 output 14, package pin 21, driving zone 5 cool.","basis":"engineering-history/firmware_port_map.md, cross-checked against this board's nets"},{"kind":"documented","evidence":"intended","text":"The expander outputs are configured open-drain, so a low output holds this gate off and the light is on when the output is released. Optical duty is the complement of the sink-active duty the firmware writes.","basis":"engineering-history/firmware_port_map.md"}],"open":["Actual channel current is unmeasured. The project's provisional envelope is 0.2 A per channel, and per-zone duty is scheduled so warm, neutral and cool never conduct at once."],"related":["R115","R215","R315","J6","F8","U2"],"assembly":[],"name":"Zone 5 cool channel switch","circuit":"ambient","group":{"zone":5,"colour":"cool","channel":15},"here":"The low-side switch for the cool white LEDs in ambient zone 5. Its drain is ZONE5_C, which leaves the board on J6 contact 4; the strip's positive end arrives on contact 1 from ZONE5_24V through fuse F8. Turning this transistor on completes that circuit to ground, which is why ZONE5_C is a switched return rather than a ground wire.","how":"An N-channel MOSFET conducts between drain and source once its gate sits a few volts above the source. Here the source is ground, so the voltage on GATE_15 alone decides whether the zone's cool LEDs light. This part was chosen on its resistance quoted at a low gate voltage rather than on threshold voltage, because the gate is raised from a 3.3 V rail through a 2.2 kOhm resistor, not driven hard by a gate driver.","sheet":11,"bom":24,"nets":[{"pin":"1","net":"GATE_15","role":""},{"pin":"2","net":"GND","role":""},{"pin":"3","net":"ZONE5_C","role":""}],"sources":[{"label":"Primary source","url":"https://www.aosmd.com/res/data_sheets/AO3422.pdf","context":"Rev.2.1, March 2024"}]},"Q116":{"family":"ambient_mosfet","claims":[{"kind":"documented","evidence":"intended","text":"Channel 16 is logical PWM 16: U3 output 0, package pin 6, driving zone 6 warm.","basis":"engineering-history/firmware_port_map.md, cross-checked against this board's nets"},{"kind":"documented","evidence":"intended","text":"The expander outputs are configured open-drain, so a low output holds this gate off and the light is on when the output is released. Optical duty is the complement of the sink-active duty the firmware writes.","basis":"engineering-history/firmware_port_map.md"}],"open":["Actual channel current is unmeasured. The project's provisional envelope is 0.2 A per channel, and per-zone duty is scheduled so warm, neutral and cool never conduct at once."],"related":["R116","R216","R316","J7","F9","U3"],"assembly":[],"name":"Zone 6 warm channel switch","circuit":"ambient","group":{"zone":6,"colour":"warm","channel":16},"here":"The low-side switch for the warm white LEDs in ambient zone 6. Its drain is ZONE6_W, which leaves the board on J7 contact 2; the strip's positive end arrives on contact 1 from ZONE6_24V through fuse F9. Turning this transistor on completes that circuit to ground, which is why ZONE6_W is a switched return rather than a ground wire.","how":"An N-channel MOSFET conducts between drain and source once its gate sits a few volts above the source. Here the source is ground, so the voltage on GATE_16 alone decides whether the zone's warm LEDs light. This part was chosen on its resistance quoted at a low gate voltage rather than on threshold voltage, because the gate is raised from a 3.3 V rail through a 2.2 kOhm resistor, not driven hard by a gate driver.","sheet":12,"bom":24,"nets":[{"pin":"1","net":"GATE_16","role":""},{"pin":"2","net":"GND","role":""},{"pin":"3","net":"ZONE6_W","role":""}],"sources":[{"label":"Primary source","url":"https://www.aosmd.com/res/data_sheets/AO3422.pdf","context":"Rev.2.1, March 2024"}]},"Q117":{"family":"ambient_mosfet","claims":[{"kind":"documented","evidence":"intended","text":"Channel 17 is logical PWM 17: U3 output 1, package pin 7, driving zone 6 neutral.","basis":"engineering-history/firmware_port_map.md, cross-checked against this board's nets"},{"kind":"documented","evidence":"intended","text":"The expander outputs are configured open-drain, so a low output holds this gate off and the light is on when the output is released. Optical duty is the complement of the sink-active duty the firmware writes.","basis":"engineering-history/firmware_port_map.md"}],"open":["Actual channel current is unmeasured. The project's provisional envelope is 0.2 A per channel, and per-zone duty is scheduled so warm, neutral and cool never conduct at once."],"related":["R117","R217","R317","J7","F9","U3"],"assembly":[],"name":"Zone 6 neutral channel switch","circuit":"ambient","group":{"zone":6,"colour":"neutral","channel":17},"here":"The low-side switch for the neutral white LEDs in ambient zone 6. Its drain is ZONE6_N, which leaves the board on J7 contact 3; the strip's positive end arrives on contact 1 from ZONE6_24V through fuse F9. Turning this transistor on completes that circuit to ground, which is why ZONE6_N is a switched return rather than a ground wire.","how":"An N-channel MOSFET conducts between drain and source once its gate sits a few volts above the source. Here the source is ground, so the voltage on GATE_17 alone decides whether the zone's neutral LEDs light. This part was chosen on its resistance quoted at a low gate voltage rather than on threshold voltage, because the gate is raised from a 3.3 V rail through a 2.2 kOhm resistor, not driven hard by a gate driver.","sheet":12,"bom":24,"nets":[{"pin":"1","net":"GATE_17","role":""},{"pin":"2","net":"GND","role":""},{"pin":"3","net":"ZONE6_N","role":""}],"sources":[{"label":"Primary source","url":"https://www.aosmd.com/res/data_sheets/AO3422.pdf","context":"Rev.2.1, March 2024"}]},"Q118":{"family":"ambient_mosfet","claims":[{"kind":"documented","evidence":"intended","text":"Channel 18 is logical PWM 18: U3 output 13, package pin 20, driving zone 6 cool.","basis":"engineering-history/firmware_port_map.md, cross-checked against this board's nets"},{"kind":"documented","evidence":"intended","text":"The expander outputs are configured open-drain, so a low output holds this gate off and the light is on when the output is released. Optical duty is the complement of the sink-active duty the firmware writes.","basis":"engineering-history/firmware_port_map.md"},{"kind":"documented","evidence":"intended","text":"This channel is a routing-driven remap: logical PWM 18 is U3 output 13 on package pin 20, not output 2. Never work out the second expander's output index by subtracting 16.","basis":"engineering-history/firmware_port_map.md"}],"open":["Actual channel current is unmeasured. The project's provisional envelope is 0.2 A per channel, and per-zone duty is scheduled so warm, neutral and cool never conduct at once."],"related":["R118","R218","R318","J7","F9","U3"],"assembly":[],"name":"Zone 6 cool channel switch","circuit":"ambient","group":{"zone":6,"colour":"cool","channel":18},"here":"The low-side switch for the cool white LEDs in ambient zone 6. Its drain is ZONE6_C, which leaves the board on J7 contact 4; the strip's positive end arrives on contact 1 from ZONE6_24V through fuse F9. Turning this transistor on completes that circuit to ground, which is why ZONE6_C is a switched return rather than a ground wire.","how":"An N-channel MOSFET conducts between drain and source once its gate sits a few volts above the source. Here the source is ground, so the voltage on GATE_18 alone decides whether the zone's cool LEDs light. This part was chosen on its resistance quoted at a low gate voltage rather than on threshold voltage, because the gate is raised from a 3.3 V rail through a 2.2 kOhm resistor, not driven hard by a gate driver.","sheet":12,"bom":24,"nets":[{"pin":"1","net":"GATE_18","role":""},{"pin":"2","net":"GND","role":""},{"pin":"3","net":"ZONE6_C","role":""}],"sources":[{"label":"Primary source","url":"https://www.aosmd.com/res/data_sheets/AO3422.pdf","context":"Rev.2.1, March 2024"}]},"Q119":{"family":"ambient_mosfet","claims":[{"kind":"documented","evidence":"intended","text":"Channel 19 is logical PWM 19: U3 output 3, package pin 9, driving zone 7 warm.","basis":"engineering-history/firmware_port_map.md, cross-checked against this board's nets"},{"kind":"documented","evidence":"intended","text":"The expander outputs are configured open-drain, so a low output holds this gate off and the light is on when the output is released. Optical duty is the complement of the sink-active duty the firmware writes.","basis":"engineering-history/firmware_port_map.md"}],"open":["Actual channel current is unmeasured. The project's provisional envelope is 0.2 A per channel, and per-zone duty is scheduled so warm, neutral and cool never conduct at once."],"related":["R119","R219","R319","J8","F10","U3"],"assembly":[],"name":"Zone 7 warm channel switch","circuit":"ambient","group":{"zone":7,"colour":"warm","channel":19},"here":"The low-side switch for the warm white LEDs in ambient zone 7. Its drain is ZONE7_W, which leaves the board on J8 contact 2; the strip's positive end arrives on contact 1 from ZONE7_24V through fuse F10. Turning this transistor on completes that circuit to ground, which is why ZONE7_W is a switched return rather than a ground wire.","how":"An N-channel MOSFET conducts between drain and source once its gate sits a few volts above the source. Here the source is ground, so the voltage on GATE_19 alone decides whether the zone's warm LEDs light. This part was chosen on its resistance quoted at a low gate voltage rather than on threshold voltage, because the gate is raised from a 3.3 V rail through a 2.2 kOhm resistor, not driven hard by a gate driver.","sheet":13,"bom":24,"nets":[{"pin":"1","net":"GATE_19","role":""},{"pin":"2","net":"GND","role":""},{"pin":"3","net":"ZONE7_W","role":""}],"sources":[{"label":"Primary source","url":"https://www.aosmd.com/res/data_sheets/AO3422.pdf","context":"Rev.2.1, March 2024"}]},"Q120":{"family":"ambient_mosfet","claims":[{"kind":"documented","evidence":"intended","text":"Channel 20 is logical PWM 20: U3 output 12, package pin 19, driving zone 7 neutral.","basis":"engineering-history/firmware_port_map.md, cross-checked against this board's nets"},{"kind":"documented","evidence":"intended","text":"The expander outputs are configured open-drain, so a low output holds this gate off and the light is on when the output is released. Optical duty is the complement of the sink-active duty the firmware writes.","basis":"engineering-history/firmware_port_map.md"},{"kind":"documented","evidence":"intended","text":"This channel is a routing-driven remap: logical PWM 20 is U3 output 12 on package pin 19, not output 4. Never work out the second expander's output index by subtracting 16.","basis":"engineering-history/firmware_port_map.md"}],"open":["Actual channel current is unmeasured. The project's provisional envelope is 0.2 A per channel, and per-zone duty is scheduled so warm, neutral and cool never conduct at once."],"related":["R120","R220","R320","J8","F10","U3"],"assembly":[],"name":"Zone 7 neutral channel switch","circuit":"ambient","group":{"zone":7,"colour":"neutral","channel":20},"here":"The low-side switch for the neutral white LEDs in ambient zone 7. Its drain is ZONE7_N, which leaves the board on J8 contact 3; the strip's positive end arrives on contact 1 from ZONE7_24V through fuse F10. Turning this transistor on completes that circuit to ground, which is why ZONE7_N is a switched return rather than a ground wire.","how":"An N-channel MOSFET conducts between drain and source once its gate sits a few volts above the source. Here the source is ground, so the voltage on GATE_20 alone decides whether the zone's neutral LEDs light. This part was chosen on its resistance quoted at a low gate voltage rather than on threshold voltage, because the gate is raised from a 3.3 V rail through a 2.2 kOhm resistor, not driven hard by a gate driver.","sheet":13,"bom":24,"nets":[{"pin":"1","net":"GATE_20","role":""},{"pin":"2","net":"GND","role":""},{"pin":"3","net":"ZONE7_N","role":""}],"sources":[{"label":"Primary source","url":"https://www.aosmd.com/res/data_sheets/AO3422.pdf","context":"Rev.2.1, March 2024"}]},"Q121":{"family":"ambient_mosfet","claims":[{"kind":"documented","evidence":"intended","text":"Channel 21 is logical PWM 21: U3 output 5, package pin 11, driving zone 7 cool.","basis":"engineering-history/firmware_port_map.md, cross-checked against this board's nets"},{"kind":"documented","evidence":"intended","text":"The expander outputs are configured open-drain, so a low output holds this gate off and the light is on when the output is released. Optical duty is the complement of the sink-active duty the firmware writes.","basis":"engineering-history/firmware_port_map.md"}],"open":["Actual channel current is unmeasured. The project's provisional envelope is 0.2 A per channel, and per-zone duty is scheduled so warm, neutral and cool never conduct at once."],"related":["R121","R221","R321","J8","F10","U3"],"assembly":[],"name":"Zone 7 cool channel switch","circuit":"ambient","group":{"zone":7,"colour":"cool","channel":21},"here":"The low-side switch for the cool white LEDs in ambient zone 7. Its drain is ZONE7_C, which leaves the board on J8 contact 4; the strip's positive end arrives on contact 1 from ZONE7_24V through fuse F10. Turning this transistor on completes that circuit to ground, which is why ZONE7_C is a switched return rather than a ground wire.","how":"An N-channel MOSFET conducts between drain and source once its gate sits a few volts above the source. Here the source is ground, so the voltage on GATE_21 alone decides whether the zone's cool LEDs light. This part was chosen on its resistance quoted at a low gate voltage rather than on threshold voltage, because the gate is raised from a 3.3 V rail through a 2.2 kOhm resistor, not driven hard by a gate driver.","sheet":13,"bom":24,"nets":[{"pin":"1","net":"GATE_21","role":""},{"pin":"2","net":"GND","role":""},{"pin":"3","net":"ZONE7_C","role":""}],"sources":[{"label":"Primary source","url":"https://www.aosmd.com/res/data_sheets/AO3422.pdf","context":"Rev.2.1, March 2024"}]},"Q500":{"family":"unique","claims":[{"kind":"documented","evidence":"intended","text":"A 100 V part was chosen deliberately. A 60 V alternative was rejected because a negative clamped input and a charged output can add across the blocking transistor.","basis":"engineering-history/bom_audit.md and design_parts.json (Q500 notes)"}],"open":[],"related":["U12","Q501","C502","D500","F1"],"assembly":["The footprint merges the physical drain terminals and the exposed drain into one pad; orientation and land pattern were flagged for inspection before release."],"name":"Reverse-blocking transistor","circuit":"input","here":"Sits in the positive path between VIN24_FUSED and VIN24_RPP, driven by the eFuse through EFUSE_BGATE. If the supply is connected backwards it stays off, so nothing downstream sees reverse voltage.","how":"A MOSFET conducts in one direction only when its gate is driven, but its body diode conducts the other way regardless -- so orientation matters. Facing it this way and having the eFuse control the gate gives a blocking switch that also drops far less voltage than a plain series diode would.","sheet":15,"bom":36,"nets":[{"pin":"1","net":"VIN24_FUSED","role":""},{"pin":"2","net":"VIN24_FUSED","role":""},{"pin":"3","net":"VIN24_FUSED","role":""},{"pin":"4","net":"EFUSE_BGATE","role":""},{"pin":"5","net":"VIN24_RPP","role":""}],"sources":[{"label":"Primary source","url":"https://www.ti.com/lit/ds/symlink/csd19537q3.pdf","context":"SLPS549B, November 2022; package addendum 2025-11-09"}]},"Q501":{"family":"unique","claims":[{"kind":"documented","evidence":"intended","text":"Its gate is driven by the eFuse, not by firmware. Turning the blocking transistor off quickly is the whole reason this part exists: a resistor alone would let the gate coast down while reverse current flowed.","basis":"hardware-current/engineering/design_parts.json (Q501 notes)"}],"open":[],"related":["Q500","U12"],"assembly":[],"name":"Reverse gate pull-down","circuit":"input","here":"Pulls EFUSE_BGATE down quickly to VIN24_FUSED when the eFuse asserts EFUSE_DRV, so the reverse-blocking transistor turns off fast rather than coasting.","how":"Turning a power MOSFET off means removing the charge on its gate. Doing that through a small signal transistor is much faster than relying on a resistor, and speed is the point when the purpose is to stop reverse current.","sheet":15,"bom":37,"nets":[{"pin":"1","net":"EFUSE_DRV","role":""},{"pin":"2","net":"VIN24_FUSED","role":""},{"pin":"3","net":"EFUSE_BGATE","role":""}],"sources":[{"label":"Primary source","url":"https://assets.nexperia.com/documents/data-sheet/2N7002BK.pdf","context":"2024-10-17"}]},"R1":{"family":"pullup","claims":[{"kind":"documented","evidence":"intended","text":"MCU_EN therefore reads as high whenever nothing is driving it, including before any firmware runs.","basis":"board.json nets, and the default-off requirement in the inhibit review"}],"open":[],"related":["C1","R42","S1","U1"],"assembly":[],"name":"MCU_EN pull-up","circuit":"mcu","here":"Ties MCU_EN to +3V3, which holds the module out of reset once 3.3 V is up; with C1 it sets the reset delay. Its two connections here are +3V3 and MCU_EN, and it is the part that decides what MCU_EN reads when nothing on the board is actively driving it.","how":"A logic line that nothing is actively driving does not read as a clean high or low: it floats and picks up noise. A resistor to a rail decides what the line reads when nobody drives it, while staying weak enough for a driver to override.","sheet":2,"bom":2,"nets":[{"pin":"1","net":"+3V3","role":""},{"pin":"2","net":"MCU_EN","role":""}],"sources":[{"label":"Primary source","url":"https://www.yageogroup.com/component-documentation/download/specsheet/RC0603FR-0710KL","context":"Exact manufacturer specsheet; dynamically generated2026, access2026-09-06"}]},"R2":{"family":"pullup","claims":[{"kind":"documented","evidence":"intended","text":"BOOT_GPIO9 therefore reads as high whenever nothing is driving it, including before any firmware runs.","basis":"board.json nets, and the default-off requirement in the inhibit review"}],"open":[],"related":["S2","U1"],"assembly":[],"name":"BOOT_GPIO9 pull-up","circuit":"mcu","here":"Ties BOOT_GPIO9 to +3V3, which keeps the boot strap high, so the module runs its own firmware unless S2 is held down. Its two connections here are +3V3 and BOOT_GPIO9, and it is the part that decides what BOOT_GPIO9 reads when nothing on the board is actively driving it.","how":"A logic line that nothing is actively driving does not read as a clean high or low: it floats and picks up noise. A resistor to a rail decides what the line reads when nobody drives it, while staying weak enough for a driver to override.","sheet":2,"bom":2,"nets":[{"pin":"1","net":"+3V3","role":""},{"pin":"2","net":"BOOT_GPIO9","role":""}],"sources":[{"label":"Primary source","url":"https://www.yageogroup.com/component-documentation/download/specsheet/RC0603FR-0710KL","context":"Exact manufacturer specsheet; dynamically generated2026, access2026-09-06"}]},"R3":{"family":"pullup","claims":[{"kind":"documented","evidence":"intended","text":"BOOT_GPIO8 therefore reads as high whenever nothing is driving it, including before any firmware runs.","basis":"board.json nets, and the default-off requirement in the inhibit review"}],"open":[],"related":["U1"],"assembly":[],"name":"BOOT_GPIO8 pull-up","circuit":"mcu","here":"Ties BOOT_GPIO8 to +3V3, which keeps the second boot strap in its normal state. Its two connections here are +3V3 and BOOT_GPIO8, and it is the part that decides what BOOT_GPIO8 reads when nothing on the board is actively driving it.","how":"A logic line that nothing is actively driving does not read as a clean high or low: it floats and picks up noise. A resistor to a rail decides what the line reads when nobody drives it, while staying weak enough for a driver to override.","sheet":2,"bom":2,"nets":[{"pin":"1","net":"+3V3","role":""},{"pin":"2","net":"BOOT_GPIO8","role":""}],"sources":[{"label":"Primary source","url":"https://www.yageogroup.com/component-documentation/download/specsheet/RC0603FR-0710KL","context":"Exact manufacturer specsheet; dynamically generated2026, access2026-09-06"}]},"R4":{"family":"pulldown","claims":[{"kind":"documented","evidence":"intended","text":"LIGHT_ENABLE therefore reads as low whenever nothing is driving it, including before any firmware runs.","basis":"board.json nets, and the default-off requirement in the inhibit review"}],"open":[],"related":["U1","U5"],"assembly":[],"name":"LIGHT_ENABLE pull-down","circuit":"gating","here":"Ties LIGHT_ENABLE to GND, which makes the firmware's lighting request default to off, including before any firmware runs. Its two connections here are LIGHT_ENABLE and GND, and it is the part that decides what LIGHT_ENABLE reads when nothing on the board is actively driving it.","how":"A logic line that nothing is actively driving does not read as a clean high or low: it floats and picks up noise. A resistor to a rail decides what the line reads when nobody drives it, while staying weak enough for a driver to override.","sheet":2,"bom":2,"nets":[{"pin":"1","net":"LIGHT_ENABLE","role":""},{"pin":"2","net":"GND","role":""}],"sources":[{"label":"Primary source","url":"https://www.yageogroup.com/component-documentation/download/specsheet/RC0603FR-0710KL","context":"Exact manufacturer specsheet; dynamically generated2026, access2026-09-06"}]},"R5":{"family":"pulldown","claims":[{"kind":"documented","evidence":"intended","text":"ARM therefore reads as low whenever nothing is driving it, including before any firmware runs.","basis":"board.json nets, and the default-off requirement in the inhibit review"}],"open":[],"related":["J17","U5"],"assembly":[],"name":"ARM pull-down","circuit":"gating","here":"Ties ARM to GND, which makes the board read as disarmed whenever the ARM switch is open or unplugged. Its two connections here are ARM and GND, and it is the part that decides what ARM reads when nothing on the board is actively driving it.","how":"A logic line that nothing is actively driving does not read as a clean high or low: it floats and picks up noise. A resistor to a rail decides what the line reads when nobody drives it, while staying weak enough for a driver to override.","sheet":2,"bom":2,"nets":[{"pin":"1","net":"ARM","role":""},{"pin":"2","net":"GND","role":""}],"sources":[{"label":"Primary source","url":"https://www.yageogroup.com/component-documentation/download/specsheet/RC0603FR-0710KL","context":"Exact manufacturer specsheet; dynamically generated2026, access2026-09-06"}]},"R6":{"family":"pullup","claims":[{"kind":"documented","evidence":"intended","text":"PCA_OE therefore reads as high whenever nothing is driving it, including before any firmware runs.","basis":"board.json nets, and the default-off requirement in the inhibit review"}],"open":[],"related":["TP12","U2","U3","U6"],"assembly":[],"name":"PCA_OE pull-up","circuit":"gating","here":"Ties PCA_OE to +3V3, which holds the expanders' outputs disabled by default, since output-enable is active-low. Its two connections here are PCA_OE and +3V3, and it is the part that decides what PCA_OE reads when nothing on the board is actively driving it.","how":"A logic line that nothing is actively driving does not read as a clean high or low: it floats and picks up noise. A resistor to a rail decides what the line reads when nobody drives it, while staying weak enough for a driver to override.","sheet":2,"bom":2,"nets":[{"pin":"1","net":"PCA_OE","role":""},{"pin":"2","net":"+3V3","role":""}],"sources":[{"label":"Primary source","url":"https://www.yageogroup.com/component-documentation/download/specsheet/RC0603FR-0710KL","context":"Exact manufacturer specsheet; dynamically generated2026, access2026-09-06"}]},"R7":{"family":"pullup","claims":[{"kind":"documented","evidence":"intended","text":"I2C_SDA therefore reads as high whenever nothing is driving it, including before any firmware runs.","basis":"board.json nets, and the default-off requirement in the inhibit review"}],"open":[],"related":["TP10","U1","U2","U3","U20"],"assembly":[],"name":"I2C_SDA pull-up","circuit":"pwm","here":"Ties I2C_SDA to +3V3, which gives the data line something to pull it high, because I2C devices can only pull down. Its two connections here are I2C_SDA and +3V3, and it is the part that decides what I2C_SDA reads when nothing on the board is actively driving it.","how":"A logic line that nothing is actively driving does not read as a clean high or low: it floats and picks up noise. A resistor to a rail decides what the line reads when nobody drives it, while staying weak enough for a driver to override.","sheet":2,"bom":4,"nets":[{"pin":"1","net":"I2C_SDA","role":""},{"pin":"2","net":"+3V3","role":""}],"sources":[{"label":"Primary source","url":"https://www.yageogroup.com/component-documentation/download/specsheet/RC0603FR-072K2L","context":"Exact manufacturer specsheet; dynamically generated2026, access2026-09-06"}]},"R8":{"family":"pullup","claims":[{"kind":"documented","evidence":"intended","text":"I2C_SCL therefore reads as high whenever nothing is driving it, including before any firmware runs.","basis":"board.json nets, and the default-off requirement in the inhibit review"}],"open":[],"related":["TP11","U1","U2","U3","U20"],"assembly":[],"name":"I2C_SCL pull-up","circuit":"pwm","here":"Ties I2C_SCL to +3V3, which gives the clock line something to pull it high, because I2C devices can only pull down. Its two connections here are I2C_SCL and +3V3, and it is the part that decides what I2C_SCL reads when nothing on the board is actively driving it.","how":"A logic line that nothing is actively driving does not read as a clean high or low: it floats and picks up noise. A resistor to a rail decides what the line reads when nobody drives it, while staying weak enough for a driver to override.","sheet":2,"bom":4,"nets":[{"pin":"1","net":"I2C_SCL","role":""},{"pin":"2","net":"+3V3","role":""}],"sources":[{"label":"Primary source","url":"https://www.yageogroup.com/component-documentation/download/specsheet/RC0603FR-072K2L","context":"Exact manufacturer specsheet; dynamically generated2026, access2026-09-06"}]},"R9":{"family":"pulldown","claims":[{"kind":"documented","evidence":"intended","text":"SPOT1_PWM therefore reads as low whenever nothing is driving it, including before any firmware runs.","basis":"board.json nets, and the default-off requirement in the inhibit review"}],"open":[],"related":["U1","U5"],"assembly":[],"name":"SPOT1_PWM pull-down","circuit":"mcu","here":"Ties SPOT1_PWM to GND, which keeps spotlight 1's request off while the controller is unprogrammed or in reset. Its two connections here are SPOT1_PWM and GND, and it is the part that decides what SPOT1_PWM reads when nothing on the board is actively driving it.","how":"A logic line that nothing is actively driving does not read as a clean high or low: it floats and picks up noise. A resistor to a rail decides what the line reads when nobody drives it, while staying weak enough for a driver to override.","sheet":2,"bom":5,"nets":[{"pin":"1","net":"SPOT1_PWM","role":""},{"pin":"2","net":"GND","role":""}],"sources":[{"label":"Primary source","url":"https://www.yageogroup.com/component-documentation/download/specsheet/RC0603FR-07100KL","context":"Exact manufacturer specsheet; dynamically generated2026, access2026-09-06"}]},"R10":{"family":"pulldown","claims":[{"kind":"documented","evidence":"intended","text":"SPOT2_PWM therefore reads as low whenever nothing is driving it, including before any firmware runs.","basis":"board.json nets, and the default-off requirement in the inhibit review"}],"open":[],"related":["U1","U5"],"assembly":[],"name":"SPOT2_PWM pull-down","circuit":"mcu","here":"Ties SPOT2_PWM to GND, which keeps spotlight 2's request off while the controller is unprogrammed or in reset. Its two connections here are SPOT2_PWM and GND, and it is the part that decides what SPOT2_PWM reads when nothing on the board is actively driving it.","how":"A logic line that nothing is actively driving does not read as a clean high or low: it floats and picks up noise. A resistor to a rail decides what the line reads when nobody drives it, while staying weak enough for a driver to override.","sheet":2,"bom":5,"nets":[{"pin":"1","net":"SPOT2_PWM","role":""},{"pin":"2","net":"GND","role":""}],"sources":[{"label":"Primary source","url":"https://www.yageogroup.com/component-documentation/download/specsheet/RC0603FR-07100KL","context":"Exact manufacturer specsheet; dynamically generated2026, access2026-09-06"}]},"R11":{"family":"pulldown","claims":[{"kind":"documented","evidence":"intended","text":"SPOT3_PWM therefore reads as low whenever nothing is driving it, including before any firmware runs.","basis":"board.json nets, and the default-off requirement in the inhibit review"}],"open":[],"related":["U1","U5"],"assembly":[],"name":"SPOT3_PWM pull-down","circuit":"mcu","here":"Ties SPOT3_PWM to GND, which keeps spotlight 3's request off while the controller is unprogrammed or in reset. Its two connections here are SPOT3_PWM and GND, and it is the part that decides what SPOT3_PWM reads when nothing on the board is actively driving it.","how":"A logic line that nothing is actively driving does not read as a clean high or low: it floats and picks up noise. A resistor to a rail decides what the line reads when nobody drives it, while staying weak enough for a driver to override.","sheet":2,"bom":5,"nets":[{"pin":"1","net":"SPOT3_PWM","role":""},{"pin":"2","net":"GND","role":""}],"sources":[{"label":"Primary source","url":"https://www.yageogroup.com/component-documentation/download/specsheet/RC0603FR-07100KL","context":"Exact manufacturer specsheet; dynamically generated2026, access2026-09-06"}]},"R20":{"family":"pullup","claims":[{"kind":"documented","evidence":"intended","text":"CAN_TX therefore reads as high whenever nothing is driving it, including before any firmware runs.","basis":"board.json nets, and the default-off requirement in the inhibit review"}],"open":[],"related":["U1","U4"],"assembly":[],"name":"CAN_TX pull-up","circuit":"can","here":"Ties CAN_TX to +3V3, which holds the transmit line in its idle state so an unprogrammed controller cannot jam the bus. Its two connections here are CAN_TX and +3V3, and it is the part that decides what CAN_TX reads when nothing on the board is actively driving it.","how":"A logic line that nothing is actively driving does not read as a clean high or low: it floats and picks up noise. A resistor to a rail decides what the line reads when nobody drives it, while staying weak enough for a driver to override.","sheet":4,"bom":2,"nets":[{"pin":"1","net":"CAN_TX","role":""},{"pin":"2","net":"+3V3","role":""}],"sources":[{"label":"Primary source","url":"https://www.yageogroup.com/component-documentation/download/specsheet/RC0603FR-0710KL","context":"Exact manufacturer specsheet; dynamically generated2026, access2026-09-06"}]},"R21":{"family":"pulldown","claims":[{"kind":"documented","evidence":"intended","text":"CAN_STB therefore reads as low whenever nothing is driving it, including before any firmware runs.","basis":"board.json nets, and the default-off requirement in the inhibit review"}],"open":[],"related":["U4"],"assembly":[],"name":"CAN_STB pull-down","circuit":"can","here":"Ties CAN_STB to GND, which ties the transceiver's standby pin low, which selects normal mode. Its two connections here are CAN_STB and GND, and it is the part that decides what CAN_STB reads when nothing on the board is actively driving it.","how":"A logic line that nothing is actively driving does not read as a clean high or low: it floats and picks up noise. A resistor to a rail decides what the line reads when nobody drives it, while staying weak enough for a driver to override.","sheet":4,"bom":2,"nets":[{"pin":"1","net":"CAN_STB","role":""},{"pin":"2","net":"GND","role":""}],"sources":[{"label":"Primary source","url":"https://www.yageogroup.com/component-documentation/download/specsheet/RC0603FR-0710KL","context":"Exact manufacturer specsheet; dynamically generated2026, access2026-09-06"}]},"R22":{"family":"setting","claims":[{"kind":"documented","evidence":"intended","text":"This is a configuration value chosen at design time. Changing it changes the circuit's behaviour and needs the same review the original choice had.","basis":"hardware-current/engineering/design_parts.json"}],"open":[],"related":["J12","J13","JP1","U4","U16"],"assembly":[],"name":"Setting resistor on CAN_TERM","circuit":"can","here":"Connected to CAN_TERM, where it is the 120 Ohm CAN terminator, in series with the JP1 solder jumper so it only counts when this board is one of the bus's two ends. Its two connections here are CAN_H and CAN_TERM, so its value is part of the circuit's configuration rather than something firmware can change.","how":"Many power-management chips are configured by a resistor rather than by software: the chip pushes a known current out of the pin, or compares the pin against an internal reference, and reads the resistor's value as a setting. The number is fixed when the board is built.","sheet":4,"bom":15,"nets":[{"pin":"1","net":"CAN_H","role":""},{"pin":"2","net":"CAN_TERM","role":""}],"sources":[{"label":"Primary source","url":"https://www.yageogroup.com/component-documentation/download/specsheet/RC0805FR-07120RL","context":"Exact manufacturer specsheet; dynamically generated2026, access2026-09-06"}]},"R30":{"family":"pulldown","claims":[{"kind":"documented","evidence":"intended","text":"USB_CC1 therefore reads as low whenever nothing is driving it, including before any firmware runs.","basis":"board.json nets, and the default-off requirement in the inhibit review"}],"open":[],"related":["J14"],"assembly":[],"name":"USB_CC1 pull-down","circuit":"usb","here":"Ties USB_CC1 to GND, which is one of the two 5.1 k resistors that tell a USB-C host this board is a device. Its two connections here are USB_CC1 and GND, and it is the part that decides what USB_CC1 reads when nothing on the board is actively driving it.","how":"A logic line that nothing is actively driving does not read as a clean high or low: it floats and picks up noise. A resistor to a rail decides what the line reads when nobody drives it, while staying weak enough for a driver to override.","sheet":5,"bom":17,"nets":[{"pin":"1","net":"USB_CC1","role":""},{"pin":"2","net":"GND","role":""}],"sources":[{"label":"Primary source","url":"https://www.yageogroup.com/component-documentation/download/specsheet/RC0603FR-075K1L","context":"Exact manufacturer specsheet; dynamically generated2026, access2026-09-06"}]},"R31":{"family":"pulldown","claims":[{"kind":"documented","evidence":"intended","text":"USB_CC2 therefore reads as low whenever nothing is driving it, including before any firmware runs.","basis":"board.json nets, and the default-off requirement in the inhibit review"}],"open":[],"related":["J14"],"assembly":[],"name":"USB_CC2 pull-down","circuit":"usb","here":"Ties USB_CC2 to GND, which is one of the two 5.1 k resistors that tell a USB-C host this board is a device. Its two connections here are USB_CC2 and GND, and it is the part that decides what USB_CC2 reads when nothing on the board is actively driving it.","how":"A logic line that nothing is actively driving does not read as a clean high or low: it floats and picks up noise. A resistor to a rail decides what the line reads when nobody drives it, while staying weak enough for a driver to override.","sheet":5,"bom":17,"nets":[{"pin":"1","net":"USB_CC2","role":""},{"pin":"2","net":"GND","role":""}],"sources":[{"label":"Primary source","url":"https://www.yageogroup.com/component-documentation/download/specsheet/RC0603FR-075K1L","context":"Exact manufacturer specsheet; dynamically generated2026, access2026-09-06"}]},"R32":{"family":"setting","claims":[{"kind":"documented","evidence":"intended","text":"This is a configuration value chosen at design time. Changing it changes the circuit's behaviour and needs the same review the original choice had.","basis":"hardware-current/engineering/design_parts.json"}],"open":[],"related":["U1","U17"],"assembly":[],"name":"Setting resistor on USB_DM_MCU","circuit":"usb","here":"Connected to USB_DM_MCU, where it is a zero-ohm link: a deliberate place to break the data line during bring-up. Its two connections here are USB_DM and USB_DM_MCU, so its value is part of the circuit's configuration rather than something firmware can change.","how":"Many power-management chips are configured by a resistor rather than by software: the chip pushes a known current out of the pin, or compares the pin against an internal reference, and reads the resistor's value as a setting. The number is fixed when the board is built.","sheet":5,"bom":18,"nets":[{"pin":"1","net":"USB_DM","role":""},{"pin":"2","net":"USB_DM_MCU","role":""}],"sources":[{"label":"Primary source","url":"https://www.yageogroup.com/component-documentation/download/specsheet/RC0603JR-070RL","context":"Exact manufacturer specsheet; dynamically generated2026, access2026-09-06"}]},"R33":{"family":"setting","claims":[{"kind":"documented","evidence":"intended","text":"This is a configuration value chosen at design time. Changing it changes the circuit's behaviour and needs the same review the original choice had.","basis":"hardware-current/engineering/design_parts.json"}],"open":[],"related":["U1","U17"],"assembly":[],"name":"Setting resistor on USB_DP_MCU","circuit":"usb","here":"Connected to USB_DP_MCU, where it is a zero-ohm link: a deliberate place to break the data line during bring-up. Its two connections here are USB_DP and USB_DP_MCU, so its value is part of the circuit's configuration rather than something firmware can change.","how":"Many power-management chips are configured by a resistor rather than by software: the chip pushes a known current out of the pin, or compares the pin against an internal reference, and reads the resistor's value as a setting. The number is fixed when the board is built.","sheet":5,"bom":18,"nets":[{"pin":"1","net":"USB_DP","role":""},{"pin":"2","net":"USB_DP_MCU","role":""}],"sources":[{"label":"Primary source","url":"https://www.yageogroup.com/component-documentation/download/specsheet/RC0603JR-070RL","context":"Exact manufacturer specsheet; dynamically generated2026, access2026-09-06"}]},"R34":{"family":"divider","claims":[{"kind":"documented","evidence":"intended","text":"The threshold is set by the ratio of this resistor to R35, so both have to be right. Neither value is adjustable in firmware.","basis":"hardware-current/engineering/design_parts.json"}],"open":[],"related":["R35"],"assembly":[],"name":"Divider leg on USB_SENSE_BASE","circuit":"usb","here":"One half of the divider that sets the base drive for Q30, which senses that a USB host is plugged in. Working with R35, it turns USB_VBUS into a smaller voltage on USB_SENSE_BASE -- this part's own connections here are USB_VBUS and USB_SENSE_BASE. Change either resistor and the threshold moves.","how":"Two resistors in series across a voltage produce a fraction of it at their junction, set by their ratio. A chip that must react to a 24 V rail cannot look at it directly, because its input pins work at a few volts, so the divider scales the rail into range. Changing either resistor moves the threshold.","sheet":5,"bom":5,"nets":[{"pin":"1","net":"USB_VBUS","role":""},{"pin":"2","net":"USB_SENSE_BASE","role":""}],"sources":[{"label":"Primary source","url":"https://www.yageogroup.com/component-documentation/download/specsheet/RC0603FR-07100KL","context":"Exact manufacturer specsheet; dynamically generated2026, access2026-09-06"}]},"R35":{"family":"divider","claims":[{"kind":"documented","evidence":"intended","text":"The threshold is set by the ratio of this resistor to R34, so both have to be right. Neither value is adjustable in firmware.","basis":"hardware-current/engineering/design_parts.json"}],"open":[],"related":["R34"],"assembly":[],"name":"Divider leg on USB_SENSE_BASE","circuit":"usb","here":"One half of the divider that sets the base drive for Q30, which senses that a USB host is plugged in. Working with R34, it turns USB_VBUS into a smaller voltage on USB_SENSE_BASE -- this part's own connections here are USB_SENSE_BASE and GND. Change either resistor and the threshold moves.","how":"Two resistors in series across a voltage produce a fraction of it at their junction, set by their ratio. A chip that must react to a 24 V rail cannot look at it directly, because its input pins work at a few volts, so the divider scales the rail into range. Changing either resistor moves the threshold.","sheet":5,"bom":5,"nets":[{"pin":"1","net":"USB_SENSE_BASE","role":""},{"pin":"2","net":"GND","role":""}],"sources":[{"label":"Primary source","url":"https://www.yageogroup.com/component-documentation/download/specsheet/RC0603FR-07100KL","context":"Exact manufacturer specsheet; dynamically generated2026, access2026-09-06"}]},"R36":{"family":"pullup","claims":[{"kind":"documented","evidence":"intended","text":"USB_PRESENT_N therefore reads as high whenever nothing is driving it, including before any firmware runs.","basis":"board.json nets, and the default-off requirement in the inhibit review"}],"open":[],"related":["Q30","U1","U17"],"assembly":[],"name":"USB_PRESENT_N pull-up","circuit":"usb","here":"Ties USB_PRESENT_N to +3V3, which holds the USB-present signal high, meaning absent, until Q30 pulls it down. Its two connections here are USB_PRESENT_N and +3V3, and it is the part that decides what USB_PRESENT_N reads when nothing on the board is actively driving it.","how":"A logic line that nothing is actively driving does not read as a clean high or low: it floats and picks up noise. A resistor to a rail decides what the line reads when nobody drives it, while staying weak enough for a driver to override.","sheet":5,"bom":2,"nets":[{"pin":"1","net":"USB_PRESENT_N","role":""},{"pin":"2","net":"+3V3","role":""}],"sources":[{"label":"Primary source","url":"https://www.yageogroup.com/component-documentation/download/specsheet/RC0603FR-0710KL","context":"Exact manufacturer specsheet; dynamically generated2026, access2026-09-06"}]},"R37":{"family":"pulldown","claims":[{"kind":"documented","evidence":"intended","text":"USB_DP_PARK therefore reads as low whenever nothing is driving it, including before any firmware runs.","basis":"board.json nets, and the default-off requirement in the inhibit review"}],"open":[],"related":["U17"],"assembly":[],"name":"USB_DP_PARK pull-down","circuit":"usb","here":"Ties USB_DP_PARK to GND, which is the parking resistor the data mux selects while the controller's rail is not qualified. Its two connections here are USB_DP_PARK and GND, and it is the part that decides what USB_DP_PARK reads when nothing on the board is actively driving it.","how":"A logic line that nothing is actively driving does not read as a clean high or low: it floats and picks up noise. A resistor to a rail decides what the line reads when nobody drives it, while staying weak enough for a driver to override.","sheet":5,"bom":30,"nets":[{"pin":"1","net":"USB_DP_PARK","role":""},{"pin":"2","net":"GND","role":""}],"sources":[{"label":"Primary source","url":"https://www.yageogroup.com/component-documentation/download/specsheet/RC0603FR-071KL","context":"Exact primary order-code specification; generated 2026-09-06; 1%, 0.1W at70C, 0603; accessed2026-09-06"}]},"R38":{"family":"pulldown","claims":[{"kind":"documented","evidence":"intended","text":"USB_DM_PARK therefore reads as low whenever nothing is driving it, including before any firmware runs.","basis":"board.json nets, and the default-off requirement in the inhibit review"}],"open":[],"related":["U17"],"assembly":[],"name":"USB_DM_PARK pull-down","circuit":"usb","here":"Ties USB_DM_PARK to GND, which is the parking resistor the data mux selects while the controller's rail is not qualified. Its two connections here are USB_DM_PARK and GND, and it is the part that decides what USB_DM_PARK reads when nothing on the board is actively driving it.","how":"A logic line that nothing is actively driving does not read as a clean high or low: it floats and picks up noise. A resistor to a rail decides what the line reads when nobody drives it, while staying weak enough for a driver to override.","sheet":5,"bom":30,"nets":[{"pin":"1","net":"USB_DM_PARK","role":""},{"pin":"2","net":"GND","role":""}],"sources":[{"label":"Primary source","url":"https://www.yageogroup.com/component-documentation/download/specsheet/RC0603FR-071KL","context":"Exact primary order-code specification; generated 2026-09-06; 1%, 0.1W at70C, 0603; accessed2026-09-06"}]},"R39":{"family":"divider","claims":[{"kind":"documented","evidence":"intended","text":"The threshold is set by the ratio of this resistor to R41, so both have to be right. Neither value is adjustable in firmware.","basis":"hardware-current/engineering/design_parts.json"}],"open":[],"related":["R41"],"assembly":[],"name":"Divider leg on USB_READY_SELECT","circuit":"usb","here":"One half of the divider that sets the signal that tells the USB data mux whether the 3.3 V rail is qualified. Working with R41, it turns READY_3V3 into a smaller voltage on USB_READY_SELECT -- this part's own connections here are USB_READY_SELECT and GND. Change either resistor and the threshold moves.","how":"Two resistors in series across a voltage produce a fraction of it at their junction, set by their ratio. A chip that must react to a 24 V rail cannot look at it directly, because its input pins work at a few volts, so the divider scales the rail into range. Changing either resistor moves the threshold.","sheet":5,"bom":31,"nets":[{"pin":"1","net":"USB_READY_SELECT","role":""},{"pin":"2","net":"GND","role":""}],"sources":[{"label":"Primary source","url":"https://www.yageogroup.com/component-documentation/download/specsheet/RC0603FR-0733KL","context":"Exact primary order-code specification; generated 2026-09-06; 1%, 0.1W at70C, 0603; accessed2026-09-06"}]},"R40":{"family":"pulldown","claims":[{"kind":"documented","evidence":"intended","text":"USB_VBUS therefore reads as low whenever nothing is driving it, including before any firmware runs.","basis":"board.json nets, and the default-off requirement in the inhibit review"}],"open":[],"related":["C30","C31","D30","J14","R34","U17"],"assembly":[],"name":"USB_VBUS pull-down","circuit":"usb","here":"Ties USB_VBUS to GND, which bleeds the small USB island so it cannot hold a stale 'USB is present' state after unplugging. Its two connections here are USB_VBUS and GND, and it is the part that decides what USB_VBUS reads when nothing on the board is actively driving it.","how":"A logic line that nothing is actively driving does not read as a clean high or low: it floats and picks up noise. A resistor to a rail decides what the line reads when nobody drives it, while staying weak enough for a driver to override.","sheet":5,"bom":2,"nets":[{"pin":"1","net":"USB_VBUS","role":""},{"pin":"2","net":"GND","role":""}],"sources":[{"label":"Primary source","url":"https://www.yageogroup.com/component-documentation/download/specsheet/RC0603FR-0710KL","context":"Exact manufacturer specsheet; dynamically generated2026, access2026-09-06"}]},"R41":{"family":"divider","claims":[{"kind":"documented","evidence":"intended","text":"The threshold is set by the ratio of this resistor to R39, so both have to be right. Neither value is adjustable in firmware.","basis":"hardware-current/engineering/design_parts.json"}],"open":[],"related":["R39"],"assembly":[],"name":"Divider leg on USB_READY_SELECT","circuit":"usb","here":"One half of the divider that sets the signal that tells the USB data mux whether the 3.3 V rail is qualified. Working with R39, it turns READY_3V3 into a smaller voltage on USB_READY_SELECT -- this part's own connections here are READY_3V3 and USB_READY_SELECT. Change either resistor and the threshold moves.","how":"Two resistors in series across a voltage produce a fraction of it at their junction, set by their ratio. A chip that must react to a 24 V rail cannot look at it directly, because its input pins work at a few volts, so the divider scales the rail into range. Changing either resistor moves the threshold.","sheet":5,"bom":2,"nets":[{"pin":"1","net":"READY_3V3","role":""},{"pin":"2","net":"USB_READY_SELECT","role":""}],"sources":[{"label":"Primary source","url":"https://www.yageogroup.com/component-documentation/download/specsheet/RC0603FR-0710KL","context":"Exact manufacturer specsheet; dynamically generated2026, access2026-09-06"}]},"R42":{"family":"setting","claims":[{"kind":"documented","evidence":"intended","text":"This is a configuration value chosen at design time. Changing it changes the circuit's behaviour and needs the same review the original choice had.","basis":"hardware-current/engineering/design_parts.json"}],"open":[],"related":["R41","U18","U19"],"assembly":[],"name":"Setting resistor on MCU_EN","circuit":"gating","here":"Connected to MCU_EN, where it isolates the supervisor's open-drain output from the module's reset network and limits the initial discharge current. Its two connections here are READY_3V3 and MCU_EN, so its value is part of the circuit's configuration rather than something firmware can change.","how":"Many power-management chips are configured by a resistor rather than by software: the chip pushes a known current out of the pin, or compares the pin against an internal reference, and reads the resistor's value as a setting. The number is fixed when the board is built.","sheet":3,"bom":30,"nets":[{"pin":"1","net":"READY_3V3","role":""},{"pin":"2","net":"MCU_EN","role":""}],"sources":[{"label":"Primary source","url":"https://www.yageogroup.com/component-documentation/download/specsheet/RC0603FR-071KL","context":"Exact primary order-code specification; generated 2026-09-06; 1%, 0.1W at70C, 0603; accessed2026-09-06"}]},"R101":{"family":"ambient_gate_series","claims":[{"kind":"documented","evidence":"intended","text":"Channel 1: U2 output 0, package pin 6, feeds this resistor.","basis":"engineering-history/firmware_port_map.md"}],"open":[],"related":["Q101","R201","R301","U2"],"assembly":[],"name":"Zone 1 warm gate resistor","circuit":"ambient","group":{"zone":1,"colour":"warm","channel":1},"here":"Sits between PWM_01, the expander node for channel 1, and GATE_01, the gate of Q101. All 21 ambient channels have one, and it is the only thing between the expander pin and the transistor gate.","how":"A MOSFET gate behaves like a small capacitor, so switching it means charging and discharging that capacitance. Without a series resistor the current spike is large and the edge rings. 220 Ohm slows the edge just enough to damp that without making the switch noticeably slower.","sheet":7,"bom":25,"nets":[{"pin":"1","net":"PWM_01","role":""},{"pin":"2","net":"GATE_01","role":""}],"sources":[{"label":"Primary source","url":"https://www.yageogroup.com/component-documentation/download/specsheet/RC0603FR-07220RL","context":"Exact manufacturer specsheet; dynamically generated2026, access2026-09-06"}]},"R102":{"family":"ambient_gate_series","claims":[{"kind":"documented","evidence":"intended","text":"Channel 2: U2 output 1, package pin 7, feeds this resistor.","basis":"engineering-history/firmware_port_map.md"}],"open":[],"related":["Q102","R202","R302","U2"],"assembly":[],"name":"Zone 1 neutral gate resistor","circuit":"ambient","group":{"zone":1,"colour":"neutral","channel":2},"here":"Sits between PWM_02, the expander node for channel 2, and GATE_02, the gate of Q102. All 21 ambient channels have one, and it is the only thing between the expander pin and the transistor gate.","how":"A MOSFET gate behaves like a small capacitor, so switching it means charging and discharging that capacitance. Without a series resistor the current spike is large and the edge rings. 220 Ohm slows the edge just enough to damp that without making the switch noticeably slower.","sheet":7,"bom":25,"nets":[{"pin":"1","net":"PWM_02","role":""},{"pin":"2","net":"GATE_02","role":""}],"sources":[{"label":"Primary source","url":"https://www.yageogroup.com/component-documentation/download/specsheet/RC0603FR-07220RL","context":"Exact manufacturer specsheet; dynamically generated2026, access2026-09-06"}]},"R103":{"family":"ambient_gate_series","claims":[{"kind":"documented","evidence":"intended","text":"Channel 3: U2 output 2, package pin 8, feeds this resistor.","basis":"engineering-history/firmware_port_map.md"}],"open":[],"related":["Q103","R203","R303","U2"],"assembly":[],"name":"Zone 1 cool gate resistor","circuit":"ambient","group":{"zone":1,"colour":"cool","channel":3},"here":"Sits between PWM_03, the expander node for channel 3, and GATE_03, the gate of Q103. All 21 ambient channels have one, and it is the only thing between the expander pin and the transistor gate.","how":"A MOSFET gate behaves like a small capacitor, so switching it means charging and discharging that capacitance. Without a series resistor the current spike is large and the edge rings. 220 Ohm slows the edge just enough to damp that without making the switch noticeably slower.","sheet":7,"bom":25,"nets":[{"pin":"1","net":"PWM_03","role":""},{"pin":"2","net":"GATE_03","role":""}],"sources":[{"label":"Primary source","url":"https://www.yageogroup.com/component-documentation/download/specsheet/RC0603FR-07220RL","context":"Exact manufacturer specsheet; dynamically generated2026, access2026-09-06"}]},"R104":{"family":"ambient_gate_series","claims":[{"kind":"documented","evidence":"intended","text":"Channel 4: U2 output 3, package pin 9, feeds this resistor.","basis":"engineering-history/firmware_port_map.md"}],"open":[],"related":["Q104","R204","R304","U2"],"assembly":[],"name":"Zone 2 warm gate resistor","circuit":"ambient","group":{"zone":2,"colour":"warm","channel":4},"here":"Sits between PWM_04, the expander node for channel 4, and GATE_04, the gate of Q104. All 21 ambient channels have one, and it is the only thing between the expander pin and the transistor gate.","how":"A MOSFET gate behaves like a small capacitor, so switching it means charging and discharging that capacitance. Without a series resistor the current spike is large and the edge rings. 220 Ohm slows the edge just enough to damp that without making the switch noticeably slower.","sheet":8,"bom":25,"nets":[{"pin":"1","net":"PWM_04","role":""},{"pin":"2","net":"GATE_04","role":""}],"sources":[{"label":"Primary source","url":"https://www.yageogroup.com/component-documentation/download/specsheet/RC0603FR-07220RL","context":"Exact manufacturer specsheet; dynamically generated2026, access2026-09-06"}]},"R105":{"family":"ambient_gate_series","claims":[{"kind":"documented","evidence":"intended","text":"Channel 5: U2 output 4, package pin 10, feeds this resistor.","basis":"engineering-history/firmware_port_map.md"}],"open":[],"related":["Q105","R205","R305","U2"],"assembly":[],"name":"Zone 2 neutral gate resistor","circuit":"ambient","group":{"zone":2,"colour":"neutral","channel":5},"here":"Sits between PWM_05, the expander node for channel 5, and GATE_05, the gate of Q105. All 21 ambient channels have one, and it is the only thing between the expander pin and the transistor gate.","how":"A MOSFET gate behaves like a small capacitor, so switching it means charging and discharging that capacitance. Without a series resistor the current spike is large and the edge rings. 220 Ohm slows the edge just enough to damp that without making the switch noticeably slower.","sheet":8,"bom":25,"nets":[{"pin":"1","net":"PWM_05","role":""},{"pin":"2","net":"GATE_05","role":""}],"sources":[{"label":"Primary source","url":"https://www.yageogroup.com/component-documentation/download/specsheet/RC0603FR-07220RL","context":"Exact manufacturer specsheet; dynamically generated2026, access2026-09-06"}]},"R106":{"family":"ambient_gate_series","claims":[{"kind":"documented","evidence":"intended","text":"Channel 6: U2 output 5, package pin 11, feeds this resistor.","basis":"engineering-history/firmware_port_map.md"}],"open":[],"related":["Q106","R206","R306","U2"],"assembly":[],"name":"Zone 2 cool gate resistor","circuit":"ambient","group":{"zone":2,"colour":"cool","channel":6},"here":"Sits between PWM_06, the expander node for channel 6, and GATE_06, the gate of Q106. All 21 ambient channels have one, and it is the only thing between the expander pin and the transistor gate.","how":"A MOSFET gate behaves like a small capacitor, so switching it means charging and discharging that capacitance. Without a series resistor the current spike is large and the edge rings. 220 Ohm slows the edge just enough to damp that without making the switch noticeably slower.","sheet":8,"bom":25,"nets":[{"pin":"1","net":"PWM_06","role":""},{"pin":"2","net":"GATE_06","role":""}],"sources":[{"label":"Primary source","url":"https://www.yageogroup.com/component-documentation/download/specsheet/RC0603FR-07220RL","context":"Exact manufacturer specsheet; dynamically generated2026, access2026-09-06"}]},"R107":{"family":"ambient_gate_series","claims":[{"kind":"documented","evidence":"intended","text":"Channel 7: U2 output 6, package pin 12, feeds this resistor.","basis":"engineering-history/firmware_port_map.md"}],"open":[],"related":["Q107","R207","R307","U2"],"assembly":[],"name":"Zone 3 warm gate resistor","circuit":"ambient","group":{"zone":3,"colour":"warm","channel":7},"here":"Sits between PWM_07, the expander node for channel 7, and GATE_07, the gate of Q107. All 21 ambient channels have one, and it is the only thing between the expander pin and the transistor gate.","how":"A MOSFET gate behaves like a small capacitor, so switching it means charging and discharging that capacitance. Without a series resistor the current spike is large and the edge rings. 220 Ohm slows the edge just enough to damp that without making the switch noticeably slower.","sheet":9,"bom":25,"nets":[{"pin":"1","net":"PWM_07","role":""},{"pin":"2","net":"GATE_07","role":""}],"sources":[{"label":"Primary source","url":"https://www.yageogroup.com/component-documentation/download/specsheet/RC0603FR-07220RL","context":"Exact manufacturer specsheet; dynamically generated2026, access2026-09-06"}]},"R108":{"family":"ambient_gate_series","claims":[{"kind":"documented","evidence":"intended","text":"Channel 8: U2 output 7, package pin 13, feeds this resistor.","basis":"engineering-history/firmware_port_map.md"}],"open":[],"related":["Q108","R208","R308","U2"],"assembly":[],"name":"Zone 3 neutral gate resistor","circuit":"ambient","group":{"zone":3,"colour":"neutral","channel":8},"here":"Sits between PWM_08, the expander node for channel 8, and GATE_08, the gate of Q108. All 21 ambient channels have one, and it is the only thing between the expander pin and the transistor gate.","how":"A MOSFET gate behaves like a small capacitor, so switching it means charging and discharging that capacitance. Without a series resistor the current spike is large and the edge rings. 220 Ohm slows the edge just enough to damp that without making the switch noticeably slower.","sheet":9,"bom":25,"nets":[{"pin":"1","net":"PWM_08","role":""},{"pin":"2","net":"GATE_08","role":""}],"sources":[{"label":"Primary source","url":"https://www.yageogroup.com/component-documentation/download/specsheet/RC0603FR-07220RL","context":"Exact manufacturer specsheet; dynamically generated2026, access2026-09-06"}]},"R109":{"family":"ambient_gate_series","claims":[{"kind":"documented","evidence":"intended","text":"Channel 9: U2 output 8, package pin 15, feeds this resistor.","basis":"engineering-history/firmware_port_map.md"}],"open":[],"related":["Q109","R209","R309","U2"],"assembly":[],"name":"Zone 3 cool gate resistor","circuit":"ambient","group":{"zone":3,"colour":"cool","channel":9},"here":"Sits between PWM_09, the expander node for channel 9, and GATE_09, the gate of Q109. All 21 ambient channels have one, and it is the only thing between the expander pin and the transistor gate.","how":"A MOSFET gate behaves like a small capacitor, so switching it means charging and discharging that capacitance. Without a series resistor the current spike is large and the edge rings. 220 Ohm slows the edge just enough to damp that without making the switch noticeably slower.","sheet":9,"bom":25,"nets":[{"pin":"1","net":"PWM_09","role":""},{"pin":"2","net":"GATE_09","role":""}],"sources":[{"label":"Primary source","url":"https://www.yageogroup.com/component-documentation/download/specsheet/RC0603FR-07220RL","context":"Exact manufacturer specsheet; dynamically generated2026, access2026-09-06"}]},"R110":{"family":"ambient_gate_series","claims":[{"kind":"documented","evidence":"intended","text":"Channel 10: U2 output 9, package pin 16, feeds this resistor.","basis":"engineering-history/firmware_port_map.md"}],"open":[],"related":["Q110","R210","R310","U2"],"assembly":[],"name":"Zone 4 warm gate resistor","circuit":"ambient","group":{"zone":4,"colour":"warm","channel":10},"here":"Sits between PWM_10, the expander node for channel 10, and GATE_10, the gate of Q110. All 21 ambient channels have one, and it is the only thing between the expander pin and the transistor gate.","how":"A MOSFET gate behaves like a small capacitor, so switching it means charging and discharging that capacitance. Without a series resistor the current spike is large and the edge rings. 220 Ohm slows the edge just enough to damp that without making the switch noticeably slower.","sheet":10,"bom":25,"nets":[{"pin":"1","net":"PWM_10","role":""},{"pin":"2","net":"GATE_10","role":""}],"sources":[{"label":"Primary source","url":"https://www.yageogroup.com/component-documentation/download/specsheet/RC0603FR-07220RL","context":"Exact manufacturer specsheet; dynamically generated2026, access2026-09-06"}]},"R111":{"family":"ambient_gate_series","claims":[{"kind":"documented","evidence":"intended","text":"Channel 11: U2 output 10, package pin 17, feeds this resistor.","basis":"engineering-history/firmware_port_map.md"}],"open":[],"related":["Q111","R211","R311","U2"],"assembly":[],"name":"Zone 4 neutral gate resistor","circuit":"ambient","group":{"zone":4,"colour":"neutral","channel":11},"here":"Sits between PWM_11, the expander node for channel 11, and GATE_11, the gate of Q111. All 21 ambient channels have one, and it is the only thing between the expander pin and the transistor gate.","how":"A MOSFET gate behaves like a small capacitor, so switching it means charging and discharging that capacitance. Without a series resistor the current spike is large and the edge rings. 220 Ohm slows the edge just enough to damp that without making the switch noticeably slower.","sheet":10,"bom":25,"nets":[{"pin":"1","net":"PWM_11","role":""},{"pin":"2","net":"GATE_11","role":""}],"sources":[{"label":"Primary source","url":"https://www.yageogroup.com/component-documentation/download/specsheet/RC0603FR-07220RL","context":"Exact manufacturer specsheet; dynamically generated2026, access2026-09-06"}]},"R112":{"family":"ambient_gate_series","claims":[{"kind":"documented","evidence":"intended","text":"Channel 12: U2 output 11, package pin 18, feeds this resistor.","basis":"engineering-history/firmware_port_map.md"}],"open":[],"related":["Q112","R212","R312","U2"],"assembly":[],"name":"Zone 4 cool gate resistor","circuit":"ambient","group":{"zone":4,"colour":"cool","channel":12},"here":"Sits between PWM_12, the expander node for channel 12, and GATE_12, the gate of Q112. All 21 ambient channels have one, and it is the only thing between the expander pin and the transistor gate.","how":"A MOSFET gate behaves like a small capacitor, so switching it means charging and discharging that capacitance. Without a series resistor the current spike is large and the edge rings. 220 Ohm slows the edge just enough to damp that without making the switch noticeably slower.","sheet":10,"bom":25,"nets":[{"pin":"1","net":"PWM_12","role":""},{"pin":"2","net":"GATE_12","role":""}],"sources":[{"label":"Primary source","url":"https://www.yageogroup.com/component-documentation/download/specsheet/RC0603FR-07220RL","context":"Exact manufacturer specsheet; dynamically generated2026, access2026-09-06"}]},"R113":{"family":"ambient_gate_series","claims":[{"kind":"documented","evidence":"intended","text":"Channel 13: U2 output 12, package pin 19, feeds this resistor.","basis":"engineering-history/firmware_port_map.md"}],"open":[],"related":["Q113","R213","R313","U2"],"assembly":[],"name":"Zone 5 warm gate resistor","circuit":"ambient","group":{"zone":5,"colour":"warm","channel":13},"here":"Sits between PWM_13, the expander node for channel 13, and GATE_13, the gate of Q113. All 21 ambient channels have one, and it is the only thing between the expander pin and the transistor gate.","how":"A MOSFET gate behaves like a small capacitor, so switching it means charging and discharging that capacitance. Without a series resistor the current spike is large and the edge rings. 220 Ohm slows the edge just enough to damp that without making the switch noticeably slower.","sheet":11,"bom":25,"nets":[{"pin":"1","net":"PWM_13","role":""},{"pin":"2","net":"GATE_13","role":""}],"sources":[{"label":"Primary source","url":"https://www.yageogroup.com/component-documentation/download/specsheet/RC0603FR-07220RL","context":"Exact manufacturer specsheet; dynamically generated2026, access2026-09-06"}]},"R114":{"family":"ambient_gate_series","claims":[{"kind":"documented","evidence":"intended","text":"Channel 14: U2 output 13, package pin 20, feeds this resistor.","basis":"engineering-history/firmware_port_map.md"}],"open":[],"related":["Q114","R214","R314","U2"],"assembly":[],"name":"Zone 5 neutral gate resistor","circuit":"ambient","group":{"zone":5,"colour":"neutral","channel":14},"here":"Sits between PWM_14, the expander node for channel 14, and GATE_14, the gate of Q114. All 21 ambient channels have one, and it is the only thing between the expander pin and the transistor gate.","how":"A MOSFET gate behaves like a small capacitor, so switching it means charging and discharging that capacitance. Without a series resistor the current spike is large and the edge rings. 220 Ohm slows the edge just enough to damp that without making the switch noticeably slower.","sheet":11,"bom":25,"nets":[{"pin":"1","net":"PWM_14","role":""},{"pin":"2","net":"GATE_14","role":""}],"sources":[{"label":"Primary source","url":"https://www.yageogroup.com/component-documentation/download/specsheet/RC0603FR-07220RL","context":"Exact manufacturer specsheet; dynamically generated2026, access2026-09-06"}]},"R115":{"family":"ambient_gate_series","claims":[{"kind":"documented","evidence":"intended","text":"Channel 15: U2 output 14, package pin 21, feeds this resistor.","basis":"engineering-history/firmware_port_map.md"}],"open":[],"related":["Q115","R215","R315","U2"],"assembly":[],"name":"Zone 5 cool gate resistor","circuit":"ambient","group":{"zone":5,"colour":"cool","channel":15},"here":"Sits between PWM_15, the expander node for channel 15, and GATE_15, the gate of Q115. All 21 ambient channels have one, and it is the only thing between the expander pin and the transistor gate.","how":"A MOSFET gate behaves like a small capacitor, so switching it means charging and discharging that capacitance. Without a series resistor the current spike is large and the edge rings. 220 Ohm slows the edge just enough to damp that without making the switch noticeably slower.","sheet":11,"bom":25,"nets":[{"pin":"1","net":"PWM_15","role":""},{"pin":"2","net":"GATE_15","role":""}],"sources":[{"label":"Primary source","url":"https://www.yageogroup.com/component-documentation/download/specsheet/RC0603FR-07220RL","context":"Exact manufacturer specsheet; dynamically generated2026, access2026-09-06"}]},"R116":{"family":"ambient_gate_series","claims":[{"kind":"documented","evidence":"intended","text":"Channel 16: U3 output 0, package pin 6, feeds this resistor.","basis":"engineering-history/firmware_port_map.md"}],"open":[],"related":["Q116","R216","R316","U3"],"assembly":[],"name":"Zone 6 warm gate resistor","circuit":"ambient","group":{"zone":6,"colour":"warm","channel":16},"here":"Sits between PWM_16, the expander node for channel 16, and GATE_16, the gate of Q116. All 21 ambient channels have one, and it is the only thing between the expander pin and the transistor gate.","how":"A MOSFET gate behaves like a small capacitor, so switching it means charging and discharging that capacitance. Without a series resistor the current spike is large and the edge rings. 220 Ohm slows the edge just enough to damp that without making the switch noticeably slower.","sheet":12,"bom":25,"nets":[{"pin":"1","net":"PWM_16","role":""},{"pin":"2","net":"GATE_16","role":""}],"sources":[{"label":"Primary source","url":"https://www.yageogroup.com/component-documentation/download/specsheet/RC0603FR-07220RL","context":"Exact manufacturer specsheet; dynamically generated2026, access2026-09-06"}]},"R117":{"family":"ambient_gate_series","claims":[{"kind":"documented","evidence":"intended","text":"Channel 17: U3 output 1, package pin 7, feeds this resistor.","basis":"engineering-history/firmware_port_map.md"}],"open":[],"related":["Q117","R217","R317","U3"],"assembly":[],"name":"Zone 6 neutral gate resistor","circuit":"ambient","group":{"zone":6,"colour":"neutral","channel":17},"here":"Sits between PWM_17, the expander node for channel 17, and GATE_17, the gate of Q117. All 21 ambient channels have one, and it is the only thing between the expander pin and the transistor gate.","how":"A MOSFET gate behaves like a small capacitor, so switching it means charging and discharging that capacitance. Without a series resistor the current spike is large and the edge rings. 220 Ohm slows the edge just enough to damp that without making the switch noticeably slower.","sheet":12,"bom":25,"nets":[{"pin":"1","net":"PWM_17","role":""},{"pin":"2","net":"GATE_17","role":""}],"sources":[{"label":"Primary source","url":"https://www.yageogroup.com/component-documentation/download/specsheet/RC0603FR-07220RL","context":"Exact manufacturer specsheet; dynamically generated2026, access2026-09-06"}]},"R118":{"family":"ambient_gate_series","claims":[{"kind":"documented","evidence":"intended","text":"Channel 18: U3 output 13, package pin 20, feeds this resistor.","basis":"engineering-history/firmware_port_map.md"}],"open":[],"related":["Q118","R218","R318","U3"],"assembly":[],"name":"Zone 6 cool gate resistor","circuit":"ambient","group":{"zone":6,"colour":"cool","channel":18},"here":"Sits between PWM_18, the expander node for channel 18, and GATE_18, the gate of Q118. All 21 ambient channels have one, and it is the only thing between the expander pin and the transistor gate.","how":"A MOSFET gate behaves like a small capacitor, so switching it means charging and discharging that capacitance. Without a series resistor the current spike is large and the edge rings. 220 Ohm slows the edge just enough to damp that without making the switch noticeably slower.","sheet":12,"bom":25,"nets":[{"pin":"1","net":"PWM_18","role":""},{"pin":"2","net":"GATE_18","role":""}],"sources":[{"label":"Primary source","url":"https://www.yageogroup.com/component-documentation/download/specsheet/RC0603FR-07220RL","context":"Exact manufacturer specsheet; dynamically generated2026, access2026-09-06"}]},"R119":{"family":"ambient_gate_series","claims":[{"kind":"documented","evidence":"intended","text":"Channel 19: U3 output 3, package pin 9, feeds this resistor.","basis":"engineering-history/firmware_port_map.md"}],"open":[],"related":["Q119","R219","R319","U3"],"assembly":[],"name":"Zone 7 warm gate resistor","circuit":"ambient","group":{"zone":7,"colour":"warm","channel":19},"here":"Sits between PWM_19, the expander node for channel 19, and GATE_19, the gate of Q119. All 21 ambient channels have one, and it is the only thing between the expander pin and the transistor gate.","how":"A MOSFET gate behaves like a small capacitor, so switching it means charging and discharging that capacitance. Without a series resistor the current spike is large and the edge rings. 220 Ohm slows the edge just enough to damp that without making the switch noticeably slower.","sheet":13,"bom":25,"nets":[{"pin":"1","net":"PWM_19","role":""},{"pin":"2","net":"GATE_19","role":""}],"sources":[{"label":"Primary source","url":"https://www.yageogroup.com/component-documentation/download/specsheet/RC0603FR-07220RL","context":"Exact manufacturer specsheet; dynamically generated2026, access2026-09-06"}]},"R120":{"family":"ambient_gate_series","claims":[{"kind":"documented","evidence":"intended","text":"Channel 20: U3 output 12, package pin 19, feeds this resistor.","basis":"engineering-history/firmware_port_map.md"}],"open":[],"related":["Q120","R220","R320","U3"],"assembly":[],"name":"Zone 7 neutral gate resistor","circuit":"ambient","group":{"zone":7,"colour":"neutral","channel":20},"here":"Sits between PWM_20, the expander node for channel 20, and GATE_20, the gate of Q120. All 21 ambient channels have one, and it is the only thing between the expander pin and the transistor gate.","how":"A MOSFET gate behaves like a small capacitor, so switching it means charging and discharging that capacitance. Without a series resistor the current spike is large and the edge rings. 220 Ohm slows the edge just enough to damp that without making the switch noticeably slower.","sheet":13,"bom":25,"nets":[{"pin":"1","net":"PWM_20","role":""},{"pin":"2","net":"GATE_20","role":""}],"sources":[{"label":"Primary source","url":"https://www.yageogroup.com/component-documentation/download/specsheet/RC0603FR-07220RL","context":"Exact manufacturer specsheet; dynamically generated2026, access2026-09-06"}]},"R121":{"family":"ambient_gate_series","claims":[{"kind":"documented","evidence":"intended","text":"Channel 21: U3 output 5, package pin 11, feeds this resistor.","basis":"engineering-history/firmware_port_map.md"}],"open":[],"related":["Q121","R221","R321","U3"],"assembly":[],"name":"Zone 7 cool gate resistor","circuit":"ambient","group":{"zone":7,"colour":"cool","channel":21},"here":"Sits between PWM_21, the expander node for channel 21, and GATE_21, the gate of Q121. All 21 ambient channels have one, and it is the only thing between the expander pin and the transistor gate.","how":"A MOSFET gate behaves like a small capacitor, so switching it means charging and discharging that capacitance. Without a series resistor the current spike is large and the edge rings. 220 Ohm slows the edge just enough to damp that without making the switch noticeably slower.","sheet":13,"bom":25,"nets":[{"pin":"1","net":"PWM_21","role":""},{"pin":"2","net":"GATE_21","role":""}],"sources":[{"label":"Primary source","url":"https://www.yageogroup.com/component-documentation/download/specsheet/RC0603FR-07220RL","context":"Exact manufacturer specsheet; dynamically generated2026, access2026-09-06"}]},"R201":{"family":"ambient_gate_pulldown","claims":[{"kind":"documented","evidence":"intended","text":"Default-off is a design requirement: nothing lights until the firmware asks for it and the physical ARM switch agrees.","basis":"engineering-history/rev_a_inhibit_correction.md"}],"open":[],"related":["Q101","R101","R301"],"assembly":[],"name":"Zone 1 warm gate pull-down","circuit":"ambient","group":{"zone":1,"colour":"warm","channel":1},"here":"Holds GATE_01, the gate of Q101, down to ground whenever nothing else drives it: before the expander is initialised, while the gate-bias supply is switched off, and any time the controller is in reset.","how":"100 kOhm is small enough to drain the gate's stored charge to ground, and large enough that it barely loads the 2.2 kOhm pull-up when the channel is meant to be on. A gate left floating could drift upward and switch its channel on unbidden.","sheet":7,"bom":5,"nets":[{"pin":"1","net":"GATE_01","role":""},{"pin":"2","net":"GND","role":""}],"sources":[{"label":"Primary source","url":"https://www.yageogroup.com/component-documentation/download/specsheet/RC0603FR-07100KL","context":"Exact manufacturer specsheet; dynamically generated2026, access2026-09-06"}]},"R202":{"family":"ambient_gate_pulldown","claims":[{"kind":"documented","evidence":"intended","text":"Default-off is a design requirement: nothing lights until the firmware asks for it and the physical ARM switch agrees.","basis":"engineering-history/rev_a_inhibit_correction.md"}],"open":[],"related":["Q102","R102","R302"],"assembly":[],"name":"Zone 1 neutral gate pull-down","circuit":"ambient","group":{"zone":1,"colour":"neutral","channel":2},"here":"Holds GATE_02, the gate of Q102, down to ground whenever nothing else drives it: before the expander is initialised, while the gate-bias supply is switched off, and any time the controller is in reset.","how":"100 kOhm is small enough to drain the gate's stored charge to ground, and large enough that it barely loads the 2.2 kOhm pull-up when the channel is meant to be on. A gate left floating could drift upward and switch its channel on unbidden.","sheet":7,"bom":5,"nets":[{"pin":"1","net":"GATE_02","role":""},{"pin":"2","net":"GND","role":""}],"sources":[{"label":"Primary source","url":"https://www.yageogroup.com/component-documentation/download/specsheet/RC0603FR-07100KL","context":"Exact manufacturer specsheet; dynamically generated2026, access2026-09-06"}]},"R203":{"family":"ambient_gate_pulldown","claims":[{"kind":"documented","evidence":"intended","text":"Default-off is a design requirement: nothing lights until the firmware asks for it and the physical ARM switch agrees.","basis":"engineering-history/rev_a_inhibit_correction.md"}],"open":[],"related":["Q103","R103","R303"],"assembly":[],"name":"Zone 1 cool gate pull-down","circuit":"ambient","group":{"zone":1,"colour":"cool","channel":3},"here":"Holds GATE_03, the gate of Q103, down to ground whenever nothing else drives it: before the expander is initialised, while the gate-bias supply is switched off, and any time the controller is in reset.","how":"100 kOhm is small enough to drain the gate's stored charge to ground, and large enough that it barely loads the 2.2 kOhm pull-up when the channel is meant to be on. A gate left floating could drift upward and switch its channel on unbidden.","sheet":7,"bom":5,"nets":[{"pin":"1","net":"GATE_03","role":""},{"pin":"2","net":"GND","role":""}],"sources":[{"label":"Primary source","url":"https://www.yageogroup.com/component-documentation/download/specsheet/RC0603FR-07100KL","context":"Exact manufacturer specsheet; dynamically generated2026, access2026-09-06"}]},"R204":{"family":"ambient_gate_pulldown","claims":[{"kind":"documented","evidence":"intended","text":"Default-off is a design requirement: nothing lights until the firmware asks for it and the physical ARM switch agrees.","basis":"engineering-history/rev_a_inhibit_correction.md"}],"open":[],"related":["Q104","R104","R304"],"assembly":[],"name":"Zone 2 warm gate pull-down","circuit":"ambient","group":{"zone":2,"colour":"warm","channel":4},"here":"Holds GATE_04, the gate of Q104, down to ground whenever nothing else drives it: before the expander is initialised, while the gate-bias supply is switched off, and any time the controller is in reset.","how":"100 kOhm is small enough to drain the gate's stored charge to ground, and large enough that it barely loads the 2.2 kOhm pull-up when the channel is meant to be on. A gate left floating could drift upward and switch its channel on unbidden.","sheet":8,"bom":5,"nets":[{"pin":"1","net":"GATE_04","role":""},{"pin":"2","net":"GND","role":""}],"sources":[{"label":"Primary source","url":"https://www.yageogroup.com/component-documentation/download/specsheet/RC0603FR-07100KL","context":"Exact manufacturer specsheet; dynamically generated2026, access2026-09-06"}]},"R205":{"family":"ambient_gate_pulldown","claims":[{"kind":"documented","evidence":"intended","text":"Default-off is a design requirement: nothing lights until the firmware asks for it and the physical ARM switch agrees.","basis":"engineering-history/rev_a_inhibit_correction.md"}],"open":[],"related":["Q105","R105","R305"],"assembly":[],"name":"Zone 2 neutral gate pull-down","circuit":"ambient","group":{"zone":2,"colour":"neutral","channel":5},"here":"Holds GATE_05, the gate of Q105, down to ground whenever nothing else drives it: before the expander is initialised, while the gate-bias supply is switched off, and any time the controller is in reset.","how":"100 kOhm is small enough to drain the gate's stored charge to ground, and large enough that it barely loads the 2.2 kOhm pull-up when the channel is meant to be on. A gate left floating could drift upward and switch its channel on unbidden.","sheet":8,"bom":5,"nets":[{"pin":"1","net":"GATE_05","role":""},{"pin":"2","net":"GND","role":""}],"sources":[{"label":"Primary source","url":"https://www.yageogroup.com/component-documentation/download/specsheet/RC0603FR-07100KL","context":"Exact manufacturer specsheet; dynamically generated2026, access2026-09-06"}]},"R206":{"family":"ambient_gate_pulldown","claims":[{"kind":"documented","evidence":"intended","text":"Default-off is a design requirement: nothing lights until the firmware asks for it and the physical ARM switch agrees.","basis":"engineering-history/rev_a_inhibit_correction.md"}],"open":[],"related":["Q106","R106","R306"],"assembly":[],"name":"Zone 2 cool gate pull-down","circuit":"ambient","group":{"zone":2,"colour":"cool","channel":6},"here":"Holds GATE_06, the gate of Q106, down to ground whenever nothing else drives it: before the expander is initialised, while the gate-bias supply is switched off, and any time the controller is in reset.","how":"100 kOhm is small enough to drain the gate's stored charge to ground, and large enough that it barely loads the 2.2 kOhm pull-up when the channel is meant to be on. A gate left floating could drift upward and switch its channel on unbidden.","sheet":8,"bom":5,"nets":[{"pin":"1","net":"GATE_06","role":""},{"pin":"2","net":"GND","role":""}],"sources":[{"label":"Primary source","url":"https://www.yageogroup.com/component-documentation/download/specsheet/RC0603FR-07100KL","context":"Exact manufacturer specsheet; dynamically generated2026, access2026-09-06"}]},"R207":{"family":"ambient_gate_pulldown","claims":[{"kind":"documented","evidence":"intended","text":"Default-off is a design requirement: nothing lights until the firmware asks for it and the physical ARM switch agrees.","basis":"engineering-history/rev_a_inhibit_correction.md"}],"open":[],"related":["Q107","R107","R307"],"assembly":[],"name":"Zone 3 warm gate pull-down","circuit":"ambient","group":{"zone":3,"colour":"warm","channel":7},"here":"Holds GATE_07, the gate of Q107, down to ground whenever nothing else drives it: before the expander is initialised, while the gate-bias supply is switched off, and any time the controller is in reset.","how":"100 kOhm is small enough to drain the gate's stored charge to ground, and large enough that it barely loads the 2.2 kOhm pull-up when the channel is meant to be on. A gate left floating could drift upward and switch its channel on unbidden.","sheet":9,"bom":5,"nets":[{"pin":"1","net":"GATE_07","role":""},{"pin":"2","net":"GND","role":""}],"sources":[{"label":"Primary source","url":"https://www.yageogroup.com/component-documentation/download/specsheet/RC0603FR-07100KL","context":"Exact manufacturer specsheet; dynamically generated2026, access2026-09-06"}]},"R208":{"family":"ambient_gate_pulldown","claims":[{"kind":"documented","evidence":"intended","text":"Default-off is a design requirement: nothing lights until the firmware asks for it and the physical ARM switch agrees.","basis":"engineering-history/rev_a_inhibit_correction.md"}],"open":[],"related":["Q108","R108","R308"],"assembly":[],"name":"Zone 3 neutral gate pull-down","circuit":"ambient","group":{"zone":3,"colour":"neutral","channel":8},"here":"Holds GATE_08, the gate of Q108, down to ground whenever nothing else drives it: before the expander is initialised, while the gate-bias supply is switched off, and any time the controller is in reset.","how":"100 kOhm is small enough to drain the gate's stored charge to ground, and large enough that it barely loads the 2.2 kOhm pull-up when the channel is meant to be on. A gate left floating could drift upward and switch its channel on unbidden.","sheet":9,"bom":5,"nets":[{"pin":"1","net":"GATE_08","role":""},{"pin":"2","net":"GND","role":""}],"sources":[{"label":"Primary source","url":"https://www.yageogroup.com/component-documentation/download/specsheet/RC0603FR-07100KL","context":"Exact manufacturer specsheet; dynamically generated2026, access2026-09-06"}]},"R209":{"family":"ambient_gate_pulldown","claims":[{"kind":"documented","evidence":"intended","text":"Default-off is a design requirement: nothing lights until the firmware asks for it and the physical ARM switch agrees.","basis":"engineering-history/rev_a_inhibit_correction.md"}],"open":[],"related":["Q109","R109","R309"],"assembly":[],"name":"Zone 3 cool gate pull-down","circuit":"ambient","group":{"zone":3,"colour":"cool","channel":9},"here":"Holds GATE_09, the gate of Q109, down to ground whenever nothing else drives it: before the expander is initialised, while the gate-bias supply is switched off, and any time the controller is in reset.","how":"100 kOhm is small enough to drain the gate's stored charge to ground, and large enough that it barely loads the 2.2 kOhm pull-up when the channel is meant to be on. A gate left floating could drift upward and switch its channel on unbidden.","sheet":9,"bom":5,"nets":[{"pin":"1","net":"GATE_09","role":""},{"pin":"2","net":"GND","role":""}],"sources":[{"label":"Primary source","url":"https://www.yageogroup.com/component-documentation/download/specsheet/RC0603FR-07100KL","context":"Exact manufacturer specsheet; dynamically generated2026, access2026-09-06"}]},"R210":{"family":"ambient_gate_pulldown","claims":[{"kind":"documented","evidence":"intended","text":"Default-off is a design requirement: nothing lights until the firmware asks for it and the physical ARM switch agrees.","basis":"engineering-history/rev_a_inhibit_correction.md"}],"open":[],"related":["Q110","R110","R310"],"assembly":[],"name":"Zone 4 warm gate pull-down","circuit":"ambient","group":{"zone":4,"colour":"warm","channel":10},"here":"Holds GATE_10, the gate of Q110, down to ground whenever nothing else drives it: before the expander is initialised, while the gate-bias supply is switched off, and any time the controller is in reset.","how":"100 kOhm is small enough to drain the gate's stored charge to ground, and large enough that it barely loads the 2.2 kOhm pull-up when the channel is meant to be on. A gate left floating could drift upward and switch its channel on unbidden.","sheet":10,"bom":5,"nets":[{"pin":"1","net":"GATE_10","role":""},{"pin":"2","net":"GND","role":""}],"sources":[{"label":"Primary source","url":"https://www.yageogroup.com/component-documentation/download/specsheet/RC0603FR-07100KL","context":"Exact manufacturer specsheet; dynamically generated2026, access2026-09-06"}]},"R211":{"family":"ambient_gate_pulldown","claims":[{"kind":"documented","evidence":"intended","text":"Default-off is a design requirement: nothing lights until the firmware asks for it and the physical ARM switch agrees.","basis":"engineering-history/rev_a_inhibit_correction.md"}],"open":[],"related":["Q111","R111","R311"],"assembly":[],"name":"Zone 4 neutral gate pull-down","circuit":"ambient","group":{"zone":4,"colour":"neutral","channel":11},"here":"Holds GATE_11, the gate of Q111, down to ground whenever nothing else drives it: before the expander is initialised, while the gate-bias supply is switched off, and any time the controller is in reset.","how":"100 kOhm is small enough to drain the gate's stored charge to ground, and large enough that it barely loads the 2.2 kOhm pull-up when the channel is meant to be on. A gate left floating could drift upward and switch its channel on unbidden.","sheet":10,"bom":5,"nets":[{"pin":"1","net":"GATE_11","role":""},{"pin":"2","net":"GND","role":""}],"sources":[{"label":"Primary source","url":"https://www.yageogroup.com/component-documentation/download/specsheet/RC0603FR-07100KL","context":"Exact manufacturer specsheet; dynamically generated2026, access2026-09-06"}]},"R212":{"family":"ambient_gate_pulldown","claims":[{"kind":"documented","evidence":"intended","text":"Default-off is a design requirement: nothing lights until the firmware asks for it and the physical ARM switch agrees.","basis":"engineering-history/rev_a_inhibit_correction.md"}],"open":[],"related":["Q112","R112","R312"],"assembly":[],"name":"Zone 4 cool gate pull-down","circuit":"ambient","group":{"zone":4,"colour":"cool","channel":12},"here":"Holds GATE_12, the gate of Q112, down to ground whenever nothing else drives it: before the expander is initialised, while the gate-bias supply is switched off, and any time the controller is in reset.","how":"100 kOhm is small enough to drain the gate's stored charge to ground, and large enough that it barely loads the 2.2 kOhm pull-up when the channel is meant to be on. A gate left floating could drift upward and switch its channel on unbidden.","sheet":10,"bom":5,"nets":[{"pin":"1","net":"GATE_12","role":""},{"pin":"2","net":"GND","role":""}],"sources":[{"label":"Primary source","url":"https://www.yageogroup.com/component-documentation/download/specsheet/RC0603FR-07100KL","context":"Exact manufacturer specsheet; dynamically generated2026, access2026-09-06"}]},"R213":{"family":"ambient_gate_pulldown","claims":[{"kind":"documented","evidence":"intended","text":"Default-off is a design requirement: nothing lights until the firmware asks for it and the physical ARM switch agrees.","basis":"engineering-history/rev_a_inhibit_correction.md"}],"open":[],"related":["Q113","R113","R313"],"assembly":[],"name":"Zone 5 warm gate pull-down","circuit":"ambient","group":{"zone":5,"colour":"warm","channel":13},"here":"Holds GATE_13, the gate of Q113, down to ground whenever nothing else drives it: before the expander is initialised, while the gate-bias supply is switched off, and any time the controller is in reset.","how":"100 kOhm is small enough to drain the gate's stored charge to ground, and large enough that it barely loads the 2.2 kOhm pull-up when the channel is meant to be on. A gate left floating could drift upward and switch its channel on unbidden.","sheet":11,"bom":5,"nets":[{"pin":"1","net":"GATE_13","role":""},{"pin":"2","net":"GND","role":""}],"sources":[{"label":"Primary source","url":"https://www.yageogroup.com/component-documentation/download/specsheet/RC0603FR-07100KL","context":"Exact manufacturer specsheet; dynamically generated2026, access2026-09-06"}]},"R214":{"family":"ambient_gate_pulldown","claims":[{"kind":"documented","evidence":"intended","text":"Default-off is a design requirement: nothing lights until the firmware asks for it and the physical ARM switch agrees.","basis":"engineering-history/rev_a_inhibit_correction.md"}],"open":[],"related":["Q114","R114","R314"],"assembly":[],"name":"Zone 5 neutral gate pull-down","circuit":"ambient","group":{"zone":5,"colour":"neutral","channel":14},"here":"Holds GATE_14, the gate of Q114, down to ground whenever nothing else drives it: before the expander is initialised, while the gate-bias supply is switched off, and any time the controller is in reset.","how":"100 kOhm is small enough to drain the gate's stored charge to ground, and large enough that it barely loads the 2.2 kOhm pull-up when the channel is meant to be on. A gate left floating could drift upward and switch its channel on unbidden.","sheet":11,"bom":5,"nets":[{"pin":"1","net":"GATE_14","role":""},{"pin":"2","net":"GND","role":""}],"sources":[{"label":"Primary source","url":"https://www.yageogroup.com/component-documentation/download/specsheet/RC0603FR-07100KL","context":"Exact manufacturer specsheet; dynamically generated2026, access2026-09-06"}]},"R215":{"family":"ambient_gate_pulldown","claims":[{"kind":"documented","evidence":"intended","text":"Default-off is a design requirement: nothing lights until the firmware asks for it and the physical ARM switch agrees.","basis":"engineering-history/rev_a_inhibit_correction.md"}],"open":[],"related":["Q115","R115","R315"],"assembly":[],"name":"Zone 5 cool gate pull-down","circuit":"ambient","group":{"zone":5,"colour":"cool","channel":15},"here":"Holds GATE_15, the gate of Q115, down to ground whenever nothing else drives it: before the expander is initialised, while the gate-bias supply is switched off, and any time the controller is in reset.","how":"100 kOhm is small enough to drain the gate's stored charge to ground, and large enough that it barely loads the 2.2 kOhm pull-up when the channel is meant to be on. A gate left floating could drift upward and switch its channel on unbidden.","sheet":11,"bom":5,"nets":[{"pin":"1","net":"GATE_15","role":""},{"pin":"2","net":"GND","role":""}],"sources":[{"label":"Primary source","url":"https://www.yageogroup.com/component-documentation/download/specsheet/RC0603FR-07100KL","context":"Exact manufacturer specsheet; dynamically generated2026, access2026-09-06"}]},"R216":{"family":"ambient_gate_pulldown","claims":[{"kind":"documented","evidence":"intended","text":"Default-off is a design requirement: nothing lights until the firmware asks for it and the physical ARM switch agrees.","basis":"engineering-history/rev_a_inhibit_correction.md"}],"open":[],"related":["Q116","R116","R316"],"assembly":[],"name":"Zone 6 warm gate pull-down","circuit":"ambient","group":{"zone":6,"colour":"warm","channel":16},"here":"Holds GATE_16, the gate of Q116, down to ground whenever nothing else drives it: before the expander is initialised, while the gate-bias supply is switched off, and any time the controller is in reset.","how":"100 kOhm is small enough to drain the gate's stored charge to ground, and large enough that it barely loads the 2.2 kOhm pull-up when the channel is meant to be on. A gate left floating could drift upward and switch its channel on unbidden.","sheet":12,"bom":5,"nets":[{"pin":"1","net":"GATE_16","role":""},{"pin":"2","net":"GND","role":""}],"sources":[{"label":"Primary source","url":"https://www.yageogroup.com/component-documentation/download/specsheet/RC0603FR-07100KL","context":"Exact manufacturer specsheet; dynamically generated2026, access2026-09-06"}]},"R217":{"family":"ambient_gate_pulldown","claims":[{"kind":"documented","evidence":"intended","text":"Default-off is a design requirement: nothing lights until the firmware asks for it and the physical ARM switch agrees.","basis":"engineering-history/rev_a_inhibit_correction.md"}],"open":[],"related":["Q117","R117","R317"],"assembly":[],"name":"Zone 6 neutral gate pull-down","circuit":"ambient","group":{"zone":6,"colour":"neutral","channel":17},"here":"Holds GATE_17, the gate of Q117, down to ground whenever nothing else drives it: before the expander is initialised, while the gate-bias supply is switched off, and any time the controller is in reset.","how":"100 kOhm is small enough to drain the gate's stored charge to ground, and large enough that it barely loads the 2.2 kOhm pull-up when the channel is meant to be on. A gate left floating could drift upward and switch its channel on unbidden.","sheet":12,"bom":5,"nets":[{"pin":"1","net":"GATE_17","role":""},{"pin":"2","net":"GND","role":""}],"sources":[{"label":"Primary source","url":"https://www.yageogroup.com/component-documentation/download/specsheet/RC0603FR-07100KL","context":"Exact manufacturer specsheet; dynamically generated2026, access2026-09-06"}]},"R218":{"family":"ambient_gate_pulldown","claims":[{"kind":"documented","evidence":"intended","text":"Default-off is a design requirement: nothing lights until the firmware asks for it and the physical ARM switch agrees.","basis":"engineering-history/rev_a_inhibit_correction.md"}],"open":[],"related":["Q118","R118","R318"],"assembly":[],"name":"Zone 6 cool gate pull-down","circuit":"ambient","group":{"zone":6,"colour":"cool","channel":18},"here":"Holds GATE_18, the gate of Q118, down to ground whenever nothing else drives it: before the expander is initialised, while the gate-bias supply is switched off, and any time the controller is in reset.","how":"100 kOhm is small enough to drain the gate's stored charge to ground, and large enough that it barely loads the 2.2 kOhm pull-up when the channel is meant to be on. A gate left floating could drift upward and switch its channel on unbidden.","sheet":12,"bom":5,"nets":[{"pin":"1","net":"GATE_18","role":""},{"pin":"2","net":"GND","role":""}],"sources":[{"label":"Primary source","url":"https://www.yageogroup.com/component-documentation/download/specsheet/RC0603FR-07100KL","context":"Exact manufacturer specsheet; dynamically generated2026, access2026-09-06"}]},"R219":{"family":"ambient_gate_pulldown","claims":[{"kind":"documented","evidence":"intended","text":"Default-off is a design requirement: nothing lights until the firmware asks for it and the physical ARM switch agrees.","basis":"engineering-history/rev_a_inhibit_correction.md"}],"open":[],"related":["Q119","R119","R319"],"assembly":[],"name":"Zone 7 warm gate pull-down","circuit":"ambient","group":{"zone":7,"colour":"warm","channel":19},"here":"Holds GATE_19, the gate of Q119, down to ground whenever nothing else drives it: before the expander is initialised, while the gate-bias supply is switched off, and any time the controller is in reset.","how":"100 kOhm is small enough to drain the gate's stored charge to ground, and large enough that it barely loads the 2.2 kOhm pull-up when the channel is meant to be on. A gate left floating could drift upward and switch its channel on unbidden.","sheet":13,"bom":5,"nets":[{"pin":"1","net":"GATE_19","role":""},{"pin":"2","net":"GND","role":""}],"sources":[{"label":"Primary source","url":"https://www.yageogroup.com/component-documentation/download/specsheet/RC0603FR-07100KL","context":"Exact manufacturer specsheet; dynamically generated2026, access2026-09-06"}]},"R220":{"family":"ambient_gate_pulldown","claims":[{"kind":"documented","evidence":"intended","text":"Default-off is a design requirement: nothing lights until the firmware asks for it and the physical ARM switch agrees.","basis":"engineering-history/rev_a_inhibit_correction.md"}],"open":[],"related":["Q120","R120","R320"],"assembly":[],"name":"Zone 7 neutral gate pull-down","circuit":"ambient","group":{"zone":7,"colour":"neutral","channel":20},"here":"Holds GATE_20, the gate of Q120, down to ground whenever nothing else drives it: before the expander is initialised, while the gate-bias supply is switched off, and any time the controller is in reset.","how":"100 kOhm is small enough to drain the gate's stored charge to ground, and large enough that it barely loads the 2.2 kOhm pull-up when the channel is meant to be on. A gate left floating could drift upward and switch its channel on unbidden.","sheet":13,"bom":5,"nets":[{"pin":"1","net":"GATE_20","role":""},{"pin":"2","net":"GND","role":""}],"sources":[{"label":"Primary source","url":"https://www.yageogroup.com/component-documentation/download/specsheet/RC0603FR-07100KL","context":"Exact manufacturer specsheet; dynamically generated2026, access2026-09-06"}]},"R221":{"family":"ambient_gate_pulldown","claims":[{"kind":"documented","evidence":"intended","text":"Default-off is a design requirement: nothing lights until the firmware asks for it and the physical ARM switch agrees.","basis":"engineering-history/rev_a_inhibit_correction.md"}],"open":[],"related":["Q121","R121","R321"],"assembly":[],"name":"Zone 7 cool gate pull-down","circuit":"ambient","group":{"zone":7,"colour":"cool","channel":21},"here":"Holds GATE_21, the gate of Q121, down to ground whenever nothing else drives it: before the expander is initialised, while the gate-bias supply is switched off, and any time the controller is in reset.","how":"100 kOhm is small enough to drain the gate's stored charge to ground, and large enough that it barely loads the 2.2 kOhm pull-up when the channel is meant to be on. A gate left floating could drift upward and switch its channel on unbidden.","sheet":13,"bom":5,"nets":[{"pin":"1","net":"GATE_21","role":""},{"pin":"2","net":"GND","role":""}],"sources":[{"label":"Primary source","url":"https://www.yageogroup.com/component-documentation/download/specsheet/RC0603FR-07100KL","context":"Exact manufacturer specsheet; dynamically generated2026, access2026-09-06"}]},"R301":{"family":"ambient_gate_pullup","claims":[{"kind":"documented","evidence":"intended","text":"Channel 1 is U2 output 0 on package pin 6.","basis":"engineering-history/firmware_port_map.md"},{"kind":"documented","evidence":"intended","text":"The gate pull-ups are supplied only while LIGHT_ENABLE_SAFE is asserted.","basis":"hardware-current/engineering/design_parts.json (U13 note)"}],"open":[],"related":["Q101","R101","R201","U13","U2"],"assembly":[],"name":"Zone 1 warm gate pull-up","circuit":"ambient","group":{"zone":1,"colour":"warm","channel":1},"here":"Connects the switched gate-bias rail GATE_BIAS to PWM_01, the expander node for channel 1. This resistor is what actually turns the channel on: the expander output is open-drain, so it can only pull the node down, and releasing it lets this pull-up raise the gate.","how":"GATE_BIAS only exists while U13 is switched on by SAFE, so this pull-up is powerless unless the board is armed and the supervisor is satisfied. That is the point: the 21 gates cannot be raised at all while lighting is inhibited, whatever the firmware writes to the expander.","sheet":7,"bom":4,"nets":[{"pin":"1","net":"GATE_BIAS","role":""},{"pin":"2","net":"PWM_01","role":""}],"sources":[{"label":"Primary source","url":"https://www.yageogroup.com/component-documentation/download/specsheet/RC0603FR-072K2L","context":"Exact manufacturer specsheet; dynamically generated2026, access2026-09-06"}]},"R302":{"family":"ambient_gate_pullup","claims":[{"kind":"documented","evidence":"intended","text":"Channel 2 is U2 output 1 on package pin 7.","basis":"engineering-history/firmware_port_map.md"},{"kind":"documented","evidence":"intended","text":"The gate pull-ups are supplied only while LIGHT_ENABLE_SAFE is asserted.","basis":"hardware-current/engineering/design_parts.json (U13 note)"}],"open":[],"related":["Q102","R102","R202","U13","U2"],"assembly":[],"name":"Zone 1 neutral gate pull-up","circuit":"ambient","group":{"zone":1,"colour":"neutral","channel":2},"here":"Connects the switched gate-bias rail GATE_BIAS to PWM_02, the expander node for channel 2. This resistor is what actually turns the channel on: the expander output is open-drain, so it can only pull the node down, and releasing it lets this pull-up raise the gate.","how":"GATE_BIAS only exists while U13 is switched on by SAFE, so this pull-up is powerless unless the board is armed and the supervisor is satisfied. That is the point: the 21 gates cannot be raised at all while lighting is inhibited, whatever the firmware writes to the expander.","sheet":7,"bom":4,"nets":[{"pin":"1","net":"GATE_BIAS","role":""},{"pin":"2","net":"PWM_02","role":""}],"sources":[{"label":"Primary source","url":"https://www.yageogroup.com/component-documentation/download/specsheet/RC0603FR-072K2L","context":"Exact manufacturer specsheet; dynamically generated2026, access2026-09-06"}]},"R303":{"family":"ambient_gate_pullup","claims":[{"kind":"documented","evidence":"intended","text":"Channel 3 is U2 output 2 on package pin 8.","basis":"engineering-history/firmware_port_map.md"},{"kind":"documented","evidence":"intended","text":"The gate pull-ups are supplied only while LIGHT_ENABLE_SAFE is asserted.","basis":"hardware-current/engineering/design_parts.json (U13 note)"}],"open":[],"related":["Q103","R103","R203","U13","U2"],"assembly":[],"name":"Zone 1 cool gate pull-up","circuit":"ambient","group":{"zone":1,"colour":"cool","channel":3},"here":"Connects the switched gate-bias rail GATE_BIAS to PWM_03, the expander node for channel 3. This resistor is what actually turns the channel on: the expander output is open-drain, so it can only pull the node down, and releasing it lets this pull-up raise the gate.","how":"GATE_BIAS only exists while U13 is switched on by SAFE, so this pull-up is powerless unless the board is armed and the supervisor is satisfied. That is the point: the 21 gates cannot be raised at all while lighting is inhibited, whatever the firmware writes to the expander.","sheet":7,"bom":4,"nets":[{"pin":"1","net":"GATE_BIAS","role":""},{"pin":"2","net":"PWM_03","role":""}],"sources":[{"label":"Primary source","url":"https://www.yageogroup.com/component-documentation/download/specsheet/RC0603FR-072K2L","context":"Exact manufacturer specsheet; dynamically generated2026, access2026-09-06"}]},"R304":{"family":"ambient_gate_pullup","claims":[{"kind":"documented","evidence":"intended","text":"Channel 4 is U2 output 3 on package pin 9.","basis":"engineering-history/firmware_port_map.md"},{"kind":"documented","evidence":"intended","text":"The gate pull-ups are supplied only while LIGHT_ENABLE_SAFE is asserted.","basis":"hardware-current/engineering/design_parts.json (U13 note)"}],"open":[],"related":["Q104","R104","R204","U13","U2"],"assembly":[],"name":"Zone 2 warm gate pull-up","circuit":"ambient","group":{"zone":2,"colour":"warm","channel":4},"here":"Connects the switched gate-bias rail GATE_BIAS to PWM_04, the expander node for channel 4. This resistor is what actually turns the channel on: the expander output is open-drain, so it can only pull the node down, and releasing it lets this pull-up raise the gate.","how":"GATE_BIAS only exists while U13 is switched on by SAFE, so this pull-up is powerless unless the board is armed and the supervisor is satisfied. That is the point: the 21 gates cannot be raised at all while lighting is inhibited, whatever the firmware writes to the expander.","sheet":8,"bom":4,"nets":[{"pin":"1","net":"GATE_BIAS","role":""},{"pin":"2","net":"PWM_04","role":""}],"sources":[{"label":"Primary source","url":"https://www.yageogroup.com/component-documentation/download/specsheet/RC0603FR-072K2L","context":"Exact manufacturer specsheet; dynamically generated2026, access2026-09-06"}]},"R305":{"family":"ambient_gate_pullup","claims":[{"kind":"documented","evidence":"intended","text":"Channel 5 is U2 output 4 on package pin 10.","basis":"engineering-history/firmware_port_map.md"},{"kind":"documented","evidence":"intended","text":"The gate pull-ups are supplied only while LIGHT_ENABLE_SAFE is asserted.","basis":"hardware-current/engineering/design_parts.json (U13 note)"}],"open":[],"related":["Q105","R105","R205","U13","U2"],"assembly":[],"name":"Zone 2 neutral gate pull-up","circuit":"ambient","group":{"zone":2,"colour":"neutral","channel":5},"here":"Connects the switched gate-bias rail GATE_BIAS to PWM_05, the expander node for channel 5. This resistor is what actually turns the channel on: the expander output is open-drain, so it can only pull the node down, and releasing it lets this pull-up raise the gate.","how":"GATE_BIAS only exists while U13 is switched on by SAFE, so this pull-up is powerless unless the board is armed and the supervisor is satisfied. That is the point: the 21 gates cannot be raised at all while lighting is inhibited, whatever the firmware writes to the expander.","sheet":8,"bom":4,"nets":[{"pin":"1","net":"GATE_BIAS","role":""},{"pin":"2","net":"PWM_05","role":""}],"sources":[{"label":"Primary source","url":"https://www.yageogroup.com/component-documentation/download/specsheet/RC0603FR-072K2L","context":"Exact manufacturer specsheet; dynamically generated2026, access2026-09-06"}]},"R306":{"family":"ambient_gate_pullup","claims":[{"kind":"documented","evidence":"intended","text":"Channel 6 is U2 output 5 on package pin 11.","basis":"engineering-history/firmware_port_map.md"},{"kind":"documented","evidence":"intended","text":"The gate pull-ups are supplied only while LIGHT_ENABLE_SAFE is asserted.","basis":"hardware-current/engineering/design_parts.json (U13 note)"}],"open":[],"related":["Q106","R106","R206","U13","U2"],"assembly":[],"name":"Zone 2 cool gate pull-up","circuit":"ambient","group":{"zone":2,"colour":"cool","channel":6},"here":"Connects the switched gate-bias rail GATE_BIAS to PWM_06, the expander node for channel 6. This resistor is what actually turns the channel on: the expander output is open-drain, so it can only pull the node down, and releasing it lets this pull-up raise the gate.","how":"GATE_BIAS only exists while U13 is switched on by SAFE, so this pull-up is powerless unless the board is armed and the supervisor is satisfied. That is the point: the 21 gates cannot be raised at all while lighting is inhibited, whatever the firmware writes to the expander.","sheet":8,"bom":4,"nets":[{"pin":"1","net":"GATE_BIAS","role":""},{"pin":"2","net":"PWM_06","role":""}],"sources":[{"label":"Primary source","url":"https://www.yageogroup.com/component-documentation/download/specsheet/RC0603FR-072K2L","context":"Exact manufacturer specsheet; dynamically generated2026, access2026-09-06"}]},"R307":{"family":"ambient_gate_pullup","claims":[{"kind":"documented","evidence":"intended","text":"Channel 7 is U2 output 6 on package pin 12.","basis":"engineering-history/firmware_port_map.md"},{"kind":"documented","evidence":"intended","text":"The gate pull-ups are supplied only while LIGHT_ENABLE_SAFE is asserted.","basis":"hardware-current/engineering/design_parts.json (U13 note)"}],"open":[],"related":["Q107","R107","R207","U13","U2"],"assembly":[],"name":"Zone 3 warm gate pull-up","circuit":"ambient","group":{"zone":3,"colour":"warm","channel":7},"here":"Connects the switched gate-bias rail GATE_BIAS to PWM_07, the expander node for channel 7. This resistor is what actually turns the channel on: the expander output is open-drain, so it can only pull the node down, and releasing it lets this pull-up raise the gate.","how":"GATE_BIAS only exists while U13 is switched on by SAFE, so this pull-up is powerless unless the board is armed and the supervisor is satisfied. That is the point: the 21 gates cannot be raised at all while lighting is inhibited, whatever the firmware writes to the expander.","sheet":9,"bom":4,"nets":[{"pin":"1","net":"GATE_BIAS","role":""},{"pin":"2","net":"PWM_07","role":""}],"sources":[{"label":"Primary source","url":"https://www.yageogroup.com/component-documentation/download/specsheet/RC0603FR-072K2L","context":"Exact manufacturer specsheet; dynamically generated2026, access2026-09-06"}]},"R308":{"family":"ambient_gate_pullup","claims":[{"kind":"documented","evidence":"intended","text":"Channel 8 is U2 output 7 on package pin 13.","basis":"engineering-history/firmware_port_map.md"},{"kind":"documented","evidence":"intended","text":"The gate pull-ups are supplied only while LIGHT_ENABLE_SAFE is asserted.","basis":"hardware-current/engineering/design_parts.json (U13 note)"}],"open":[],"related":["Q108","R108","R208","U13","U2"],"assembly":[],"name":"Zone 3 neutral gate pull-up","circuit":"ambient","group":{"zone":3,"colour":"neutral","channel":8},"here":"Connects the switched gate-bias rail GATE_BIAS to PWM_08, the expander node for channel 8. This resistor is what actually turns the channel on: the expander output is open-drain, so it can only pull the node down, and releasing it lets this pull-up raise the gate.","how":"GATE_BIAS only exists while U13 is switched on by SAFE, so this pull-up is powerless unless the board is armed and the supervisor is satisfied. That is the point: the 21 gates cannot be raised at all while lighting is inhibited, whatever the firmware writes to the expander.","sheet":9,"bom":4,"nets":[{"pin":"1","net":"GATE_BIAS","role":""},{"pin":"2","net":"PWM_08","role":""}],"sources":[{"label":"Primary source","url":"https://www.yageogroup.com/component-documentation/download/specsheet/RC0603FR-072K2L","context":"Exact manufacturer specsheet; dynamically generated2026, access2026-09-06"}]},"R309":{"family":"ambient_gate_pullup","claims":[{"kind":"documented","evidence":"intended","text":"Channel 9 is U2 output 8 on package pin 15.","basis":"engineering-history/firmware_port_map.md"},{"kind":"documented","evidence":"intended","text":"The gate pull-ups are supplied only while LIGHT_ENABLE_SAFE is asserted.","basis":"hardware-current/engineering/design_parts.json (U13 note)"}],"open":[],"related":["Q109","R109","R209","U13","U2"],"assembly":[],"name":"Zone 3 cool gate pull-up","circuit":"ambient","group":{"zone":3,"colour":"cool","channel":9},"here":"Connects the switched gate-bias rail GATE_BIAS to PWM_09, the expander node for channel 9. This resistor is what actually turns the channel on: the expander output is open-drain, so it can only pull the node down, and releasing it lets this pull-up raise the gate.","how":"GATE_BIAS only exists while U13 is switched on by SAFE, so this pull-up is powerless unless the board is armed and the supervisor is satisfied. That is the point: the 21 gates cannot be raised at all while lighting is inhibited, whatever the firmware writes to the expander.","sheet":9,"bom":4,"nets":[{"pin":"1","net":"GATE_BIAS","role":""},{"pin":"2","net":"PWM_09","role":""}],"sources":[{"label":"Primary source","url":"https://www.yageogroup.com/component-documentation/download/specsheet/RC0603FR-072K2L","context":"Exact manufacturer specsheet; dynamically generated2026, access2026-09-06"}]},"R310":{"family":"ambient_gate_pullup","claims":[{"kind":"documented","evidence":"intended","text":"Channel 10 is U2 output 9 on package pin 16.","basis":"engineering-history/firmware_port_map.md"},{"kind":"documented","evidence":"intended","text":"The gate pull-ups are supplied only while LIGHT_ENABLE_SAFE is asserted.","basis":"hardware-current/engineering/design_parts.json (U13 note)"}],"open":[],"related":["Q110","R110","R210","U13","U2"],"assembly":[],"name":"Zone 4 warm gate pull-up","circuit":"ambient","group":{"zone":4,"colour":"warm","channel":10},"here":"Connects the switched gate-bias rail GATE_BIAS to PWM_10, the expander node for channel 10. This resistor is what actually turns the channel on: the expander output is open-drain, so it can only pull the node down, and releasing it lets this pull-up raise the gate.","how":"GATE_BIAS only exists while U13 is switched on by SAFE, so this pull-up is powerless unless the board is armed and the supervisor is satisfied. That is the point: the 21 gates cannot be raised at all while lighting is inhibited, whatever the firmware writes to the expander.","sheet":10,"bom":4,"nets":[{"pin":"1","net":"GATE_BIAS","role":""},{"pin":"2","net":"PWM_10","role":""}],"sources":[{"label":"Primary source","url":"https://www.yageogroup.com/component-documentation/download/specsheet/RC0603FR-072K2L","context":"Exact manufacturer specsheet; dynamically generated2026, access2026-09-06"}]},"R311":{"family":"ambient_gate_pullup","claims":[{"kind":"documented","evidence":"intended","text":"Channel 11 is U2 output 10 on package pin 17.","basis":"engineering-history/firmware_port_map.md"},{"kind":"documented","evidence":"intended","text":"The gate pull-ups are supplied only while LIGHT_ENABLE_SAFE is asserted.","basis":"hardware-current/engineering/design_parts.json (U13 note)"}],"open":[],"related":["Q111","R111","R211","U13","U2"],"assembly":[],"name":"Zone 4 neutral gate pull-up","circuit":"ambient","group":{"zone":4,"colour":"neutral","channel":11},"here":"Connects the switched gate-bias rail GATE_BIAS to PWM_11, the expander node for channel 11. This resistor is what actually turns the channel on: the expander output is open-drain, so it can only pull the node down, and releasing it lets this pull-up raise the gate.","how":"GATE_BIAS only exists while U13 is switched on by SAFE, so this pull-up is powerless unless the board is armed and the supervisor is satisfied. That is the point: the 21 gates cannot be raised at all while lighting is inhibited, whatever the firmware writes to the expander.","sheet":10,"bom":4,"nets":[{"pin":"1","net":"GATE_BIAS","role":""},{"pin":"2","net":"PWM_11","role":""}],"sources":[{"label":"Primary source","url":"https://www.yageogroup.com/component-documentation/download/specsheet/RC0603FR-072K2L","context":"Exact manufacturer specsheet; dynamically generated2026, access2026-09-06"}]},"R312":{"family":"ambient_gate_pullup","claims":[{"kind":"documented","evidence":"intended","text":"Channel 12 is U2 output 11 on package pin 18.","basis":"engineering-history/firmware_port_map.md"},{"kind":"documented","evidence":"intended","text":"The gate pull-ups are supplied only while LIGHT_ENABLE_SAFE is asserted.","basis":"hardware-current/engineering/design_parts.json (U13 note)"}],"open":[],"related":["Q112","R112","R212","U13","U2"],"assembly":[],"name":"Zone 4 cool gate pull-up","circuit":"ambient","group":{"zone":4,"colour":"cool","channel":12},"here":"Connects the switched gate-bias rail GATE_BIAS to PWM_12, the expander node for channel 12. This resistor is what actually turns the channel on: the expander output is open-drain, so it can only pull the node down, and releasing it lets this pull-up raise the gate.","how":"GATE_BIAS only exists while U13 is switched on by SAFE, so this pull-up is powerless unless the board is armed and the supervisor is satisfied. That is the point: the 21 gates cannot be raised at all while lighting is inhibited, whatever the firmware writes to the expander.","sheet":10,"bom":4,"nets":[{"pin":"1","net":"GATE_BIAS","role":""},{"pin":"2","net":"PWM_12","role":""}],"sources":[{"label":"Primary source","url":"https://www.yageogroup.com/component-documentation/download/specsheet/RC0603FR-072K2L","context":"Exact manufacturer specsheet; dynamically generated2026, access2026-09-06"}]},"R313":{"family":"ambient_gate_pullup","claims":[{"kind":"documented","evidence":"intended","text":"Channel 13 is U2 output 12 on package pin 19.","basis":"engineering-history/firmware_port_map.md"},{"kind":"documented","evidence":"intended","text":"The gate pull-ups are supplied only while LIGHT_ENABLE_SAFE is asserted.","basis":"hardware-current/engineering/design_parts.json (U13 note)"}],"open":[],"related":["Q113","R113","R213","U13","U2"],"assembly":[],"name":"Zone 5 warm gate pull-up","circuit":"ambient","group":{"zone":5,"colour":"warm","channel":13},"here":"Connects the switched gate-bias rail GATE_BIAS to PWM_13, the expander node for channel 13. This resistor is what actually turns the channel on: the expander output is open-drain, so it can only pull the node down, and releasing it lets this pull-up raise the gate.","how":"GATE_BIAS only exists while U13 is switched on by SAFE, so this pull-up is powerless unless the board is armed and the supervisor is satisfied. That is the point: the 21 gates cannot be raised at all while lighting is inhibited, whatever the firmware writes to the expander.","sheet":11,"bom":4,"nets":[{"pin":"1","net":"GATE_BIAS","role":""},{"pin":"2","net":"PWM_13","role":""}],"sources":[{"label":"Primary source","url":"https://www.yageogroup.com/component-documentation/download/specsheet/RC0603FR-072K2L","context":"Exact manufacturer specsheet; dynamically generated2026, access2026-09-06"}]},"R314":{"family":"ambient_gate_pullup","claims":[{"kind":"documented","evidence":"intended","text":"Channel 14 is U2 output 13 on package pin 20.","basis":"engineering-history/firmware_port_map.md"},{"kind":"documented","evidence":"intended","text":"The gate pull-ups are supplied only while LIGHT_ENABLE_SAFE is asserted.","basis":"hardware-current/engineering/design_parts.json (U13 note)"}],"open":[],"related":["Q114","R114","R214","U13","U2"],"assembly":[],"name":"Zone 5 neutral gate pull-up","circuit":"ambient","group":{"zone":5,"colour":"neutral","channel":14},"here":"Connects the switched gate-bias rail GATE_BIAS to PWM_14, the expander node for channel 14. This resistor is what actually turns the channel on: the expander output is open-drain, so it can only pull the node down, and releasing it lets this pull-up raise the gate.","how":"GATE_BIAS only exists while U13 is switched on by SAFE, so this pull-up is powerless unless the board is armed and the supervisor is satisfied. That is the point: the 21 gates cannot be raised at all while lighting is inhibited, whatever the firmware writes to the expander.","sheet":11,"bom":4,"nets":[{"pin":"1","net":"GATE_BIAS","role":""},{"pin":"2","net":"PWM_14","role":""}],"sources":[{"label":"Primary source","url":"https://www.yageogroup.com/component-documentation/download/specsheet/RC0603FR-072K2L","context":"Exact manufacturer specsheet; dynamically generated2026, access2026-09-06"}]},"R315":{"family":"ambient_gate_pullup","claims":[{"kind":"documented","evidence":"intended","text":"Channel 15 is U2 output 14 on package pin 21.","basis":"engineering-history/firmware_port_map.md"},{"kind":"documented","evidence":"intended","text":"The gate pull-ups are supplied only while LIGHT_ENABLE_SAFE is asserted.","basis":"hardware-current/engineering/design_parts.json (U13 note)"}],"open":[],"related":["Q115","R115","R215","U13","U2"],"assembly":[],"name":"Zone 5 cool gate pull-up","circuit":"ambient","group":{"zone":5,"colour":"cool","channel":15},"here":"Connects the switched gate-bias rail GATE_BIAS to PWM_15, the expander node for channel 15. This resistor is what actually turns the channel on: the expander output is open-drain, so it can only pull the node down, and releasing it lets this pull-up raise the gate.","how":"GATE_BIAS only exists while U13 is switched on by SAFE, so this pull-up is powerless unless the board is armed and the supervisor is satisfied. That is the point: the 21 gates cannot be raised at all while lighting is inhibited, whatever the firmware writes to the expander.","sheet":11,"bom":4,"nets":[{"pin":"1","net":"GATE_BIAS","role":""},{"pin":"2","net":"PWM_15","role":""}],"sources":[{"label":"Primary source","url":"https://www.yageogroup.com/component-documentation/download/specsheet/RC0603FR-072K2L","context":"Exact manufacturer specsheet; dynamically generated2026, access2026-09-06"}]},"R316":{"family":"ambient_gate_pullup","claims":[{"kind":"documented","evidence":"intended","text":"Channel 16 is U3 output 0 on package pin 6.","basis":"engineering-history/firmware_port_map.md"},{"kind":"documented","evidence":"intended","text":"The gate pull-ups are supplied only while LIGHT_ENABLE_SAFE is asserted.","basis":"hardware-current/engineering/design_parts.json (U13 note)"}],"open":[],"related":["Q116","R116","R216","U13","U3"],"assembly":[],"name":"Zone 6 warm gate pull-up","circuit":"ambient","group":{"zone":6,"colour":"warm","channel":16},"here":"Connects the switched gate-bias rail GATE_BIAS to PWM_16, the expander node for channel 16. This resistor is what actually turns the channel on: the expander output is open-drain, so it can only pull the node down, and releasing it lets this pull-up raise the gate.","how":"GATE_BIAS only exists while U13 is switched on by SAFE, so this pull-up is powerless unless the board is armed and the supervisor is satisfied. That is the point: the 21 gates cannot be raised at all while lighting is inhibited, whatever the firmware writes to the expander.","sheet":12,"bom":4,"nets":[{"pin":"1","net":"GATE_BIAS","role":""},{"pin":"2","net":"PWM_16","role":""}],"sources":[{"label":"Primary source","url":"https://www.yageogroup.com/component-documentation/download/specsheet/RC0603FR-072K2L","context":"Exact manufacturer specsheet; dynamically generated2026, access2026-09-06"}]},"R317":{"family":"ambient_gate_pullup","claims":[{"kind":"documented","evidence":"intended","text":"Channel 17 is U3 output 1 on package pin 7.","basis":"engineering-history/firmware_port_map.md"},{"kind":"documented","evidence":"intended","text":"The gate pull-ups are supplied only while LIGHT_ENABLE_SAFE is asserted.","basis":"hardware-current/engineering/design_parts.json (U13 note)"}],"open":[],"related":["Q117","R117","R217","U13","U3"],"assembly":[],"name":"Zone 6 neutral gate pull-up","circuit":"ambient","group":{"zone":6,"colour":"neutral","channel":17},"here":"Connects the switched gate-bias rail GATE_BIAS to PWM_17, the expander node for channel 17. This resistor is what actually turns the channel on: the expander output is open-drain, so it can only pull the node down, and releasing it lets this pull-up raise the gate.","how":"GATE_BIAS only exists while U13 is switched on by SAFE, so this pull-up is powerless unless the board is armed and the supervisor is satisfied. That is the point: the 21 gates cannot be raised at all while lighting is inhibited, whatever the firmware writes to the expander.","sheet":12,"bom":4,"nets":[{"pin":"1","net":"GATE_BIAS","role":""},{"pin":"2","net":"PWM_17","role":""}],"sources":[{"label":"Primary source","url":"https://www.yageogroup.com/component-documentation/download/specsheet/RC0603FR-072K2L","context":"Exact manufacturer specsheet; dynamically generated2026, access2026-09-06"}]},"R318":{"family":"ambient_gate_pullup","claims":[{"kind":"documented","evidence":"intended","text":"Channel 18 is U3 output 13 on package pin 20.","basis":"engineering-history/firmware_port_map.md"},{"kind":"documented","evidence":"intended","text":"The gate pull-ups are supplied only while LIGHT_ENABLE_SAFE is asserted.","basis":"hardware-current/engineering/design_parts.json (U13 note)"}],"open":[],"related":["Q118","R118","R218","U13","U3"],"assembly":[],"name":"Zone 6 cool gate pull-up","circuit":"ambient","group":{"zone":6,"colour":"cool","channel":18},"here":"Connects the switched gate-bias rail GATE_BIAS to PWM_18, the expander node for channel 18. This resistor is what actually turns the channel on: the expander output is open-drain, so it can only pull the node down, and releasing it lets this pull-up raise the gate.","how":"GATE_BIAS only exists while U13 is switched on by SAFE, so this pull-up is powerless unless the board is armed and the supervisor is satisfied. That is the point: the 21 gates cannot be raised at all while lighting is inhibited, whatever the firmware writes to the expander.","sheet":12,"bom":4,"nets":[{"pin":"1","net":"GATE_BIAS","role":""},{"pin":"2","net":"PWM_18","role":""}],"sources":[{"label":"Primary source","url":"https://www.yageogroup.com/component-documentation/download/specsheet/RC0603FR-072K2L","context":"Exact manufacturer specsheet; dynamically generated2026, access2026-09-06"}]},"R319":{"family":"ambient_gate_pullup","claims":[{"kind":"documented","evidence":"intended","text":"Channel 19 is U3 output 3 on package pin 9.","basis":"engineering-history/firmware_port_map.md"},{"kind":"documented","evidence":"intended","text":"The gate pull-ups are supplied only while LIGHT_ENABLE_SAFE is asserted.","basis":"hardware-current/engineering/design_parts.json (U13 note)"}],"open":[],"related":["Q119","R119","R219","U13","U3"],"assembly":[],"name":"Zone 7 warm gate pull-up","circuit":"ambient","group":{"zone":7,"colour":"warm","channel":19},"here":"Connects the switched gate-bias rail GATE_BIAS to PWM_19, the expander node for channel 19. This resistor is what actually turns the channel on: the expander output is open-drain, so it can only pull the node down, and releasing it lets this pull-up raise the gate.","how":"GATE_BIAS only exists while U13 is switched on by SAFE, so this pull-up is powerless unless the board is armed and the supervisor is satisfied. That is the point: the 21 gates cannot be raised at all while lighting is inhibited, whatever the firmware writes to the expander.","sheet":13,"bom":4,"nets":[{"pin":"1","net":"GATE_BIAS","role":""},{"pin":"2","net":"PWM_19","role":""}],"sources":[{"label":"Primary source","url":"https://www.yageogroup.com/component-documentation/download/specsheet/RC0603FR-072K2L","context":"Exact manufacturer specsheet; dynamically generated2026, access2026-09-06"}]},"R320":{"family":"ambient_gate_pullup","claims":[{"kind":"documented","evidence":"intended","text":"Channel 20 is U3 output 12 on package pin 19.","basis":"engineering-history/firmware_port_map.md"},{"kind":"documented","evidence":"intended","text":"The gate pull-ups are supplied only while LIGHT_ENABLE_SAFE is asserted.","basis":"hardware-current/engineering/design_parts.json (U13 note)"}],"open":[],"related":["Q120","R120","R220","U13","U3"],"assembly":[],"name":"Zone 7 neutral gate pull-up","circuit":"ambient","group":{"zone":7,"colour":"neutral","channel":20},"here":"Connects the switched gate-bias rail GATE_BIAS to PWM_20, the expander node for channel 20. This resistor is what actually turns the channel on: the expander output is open-drain, so it can only pull the node down, and releasing it lets this pull-up raise the gate.","how":"GATE_BIAS only exists while U13 is switched on by SAFE, so this pull-up is powerless unless the board is armed and the supervisor is satisfied. That is the point: the 21 gates cannot be raised at all while lighting is inhibited, whatever the firmware writes to the expander.","sheet":13,"bom":4,"nets":[{"pin":"1","net":"GATE_BIAS","role":""},{"pin":"2","net":"PWM_20","role":""}],"sources":[{"label":"Primary source","url":"https://www.yageogroup.com/component-documentation/download/specsheet/RC0603FR-072K2L","context":"Exact manufacturer specsheet; dynamically generated2026, access2026-09-06"}]},"R321":{"family":"ambient_gate_pullup","claims":[{"kind":"documented","evidence":"intended","text":"Channel 21 is U3 output 5 on package pin 11.","basis":"engineering-history/firmware_port_map.md"},{"kind":"documented","evidence":"intended","text":"The gate pull-ups are supplied only while LIGHT_ENABLE_SAFE is asserted.","basis":"hardware-current/engineering/design_parts.json (U13 note)"}],"open":[],"related":["Q121","R121","R221","U13","U3"],"assembly":[],"name":"Zone 7 cool gate pull-up","circuit":"ambient","group":{"zone":7,"colour":"cool","channel":21},"here":"Connects the switched gate-bias rail GATE_BIAS to PWM_21, the expander node for channel 21. This resistor is what actually turns the channel on: the expander output is open-drain, so it can only pull the node down, and releasing it lets this pull-up raise the gate.","how":"GATE_BIAS only exists while U13 is switched on by SAFE, so this pull-up is powerless unless the board is armed and the supervisor is satisfied. That is the point: the 21 gates cannot be raised at all while lighting is inhibited, whatever the firmware writes to the expander.","sheet":13,"bom":4,"nets":[{"pin":"1","net":"GATE_BIAS","role":""},{"pin":"2","net":"PWM_21","role":""}],"sources":[{"label":"Primary source","url":"https://www.yageogroup.com/component-documentation/download/specsheet/RC0603FR-072K2L","context":"Exact manufacturer specsheet; dynamically generated2026, access2026-09-06"}]},"R500":{"family":"setting","claims":[{"kind":"documented","evidence":"intended","text":"This is a configuration value chosen at design time. Changing it changes the circuit's behaviour and needs the same review the original choice had.","basis":"hardware-current/engineering/design_parts.json"}],"open":[],"related":["U12"],"assembly":[],"name":"Setting resistor on EFUSE_ILIM","circuit":"input","here":"Connected to EFUSE_ILIM, where it sets the main eFuse's current limit; 4.02 kOhm gives roughly 4.14-4.86 A once resistor tolerance is included. Its two connections here are EFUSE_ILIM and GND, so its value is part of the circuit's configuration rather than something firmware can change.","how":"Many power-management chips are configured by a resistor rather than by software: the chip pushes a known current out of the pin, or compares the pin against an internal reference, and reads the resistor's value as a setting. The number is fixed when the board is built.","sheet":15,"bom":43,"nets":[{"pin":"1","net":"EFUSE_ILIM","role":""},{"pin":"2","net":"GND","role":""}],"sources":[{"label":"Primary source","url":"https://www.yageogroup.com/component-documentation/download/specsheet/RC0603FR-0710KL","context":"RC0603 family reference; exact value/code reviewed separately; exact manufacturer sheet not retrieved"}]},"R501":{"family":"divider","claims":[{"kind":"documented","evidence":"intended","text":"The threshold is set by the ratio of this resistor to R502, so both have to be right. Neither value is adjustable in firmware.","basis":"hardware-current/engineering/design_parts.json"}],"open":[],"related":["R502"],"assembly":[],"name":"Divider leg on EFUSE_UVLO","circuit":"input","here":"One half of the divider that sets the eFuse's undervoltage lockout, so it refuses to turn on until the input is high enough. Working with R502, it turns VIN24_FUSED into a smaller voltage on EFUSE_UVLO -- this part's own connections here are VIN24_FUSED and EFUSE_UVLO. Change either resistor and the threshold moves.","how":"Two resistors in series across a voltage produce a fraction of it at their junction, set by their ratio. A chip that must react to a 24 V rail cannot look at it directly, because its input pins work at a few volts, so the divider scales the rail into range. Changing either resistor moves the threshold.","sheet":15,"bom":44,"nets":[{"pin":"1","net":"VIN24_FUSED","role":""},{"pin":"2","net":"EFUSE_UVLO","role":""}],"sources":[{"label":"Primary source","url":"https://www.yageogroup.com/component-documentation/download/specsheet/RC0603FR-07140KL","context":"Exact manufacturer specsheet; dynamically generated2026, access2026-09-06"}]},"R502":{"family":"divider","claims":[{"kind":"documented","evidence":"intended","text":"The threshold is set by the ratio of this resistor to R501, so both have to be right. Neither value is adjustable in firmware.","basis":"hardware-current/engineering/design_parts.json"}],"open":[],"related":["R501"],"assembly":[],"name":"Divider leg on EFUSE_UVLO","circuit":"input","here":"One half of the divider that sets the eFuse's undervoltage lockout, so it refuses to turn on until the input is high enough. Working with R501, it turns VIN24_FUSED into a smaller voltage on EFUSE_UVLO -- this part's own connections here are EFUSE_UVLO and GND. Change either resistor and the threshold moves.","how":"Two resistors in series across a voltage produce a fraction of it at their junction, set by their ratio. A chip that must react to a 24 V rail cannot look at it directly, because its input pins work at a few volts, so the divider scales the rail into range. Changing either resistor moves the threshold.","sheet":15,"bom":2,"nets":[{"pin":"1","net":"EFUSE_UVLO","role":""},{"pin":"2","net":"GND","role":""}],"sources":[{"label":"Primary source","url":"https://www.yageogroup.com/component-documentation/download/specsheet/RC0603FR-0710KL","context":"Exact manufacturer specsheet; dynamically generated2026, access2026-09-06"}]},"R503":{"family":"divider","claims":[{"kind":"documented","evidence":"intended","text":"The threshold is set by the ratio of this resistor to R504, so both have to be right. Neither value is adjustable in firmware.","basis":"hardware-current/engineering/design_parts.json"}],"open":[],"related":["R504"],"assembly":[],"name":"Divider leg on EFUSE_OVP","circuit":"input","here":"One half of the divider that sets the eFuse's overvoltage cutoff, set near 26.4 V. Working with R504, it turns VIN24_FUSED into a smaller voltage on EFUSE_OVP -- this part's own connections here are VIN24_FUSED and EFUSE_OVP. Change either resistor and the threshold moves.","how":"Two resistors in series across a voltage produce a fraction of it at their junction, set by their ratio. A chip that must react to a 24 V rail cannot look at it directly, because its input pins work at a few volts, so the divider scales the rail into range. Changing either resistor moves the threshold.","sheet":15,"bom":45,"nets":[{"pin":"1","net":"VIN24_FUSED","role":""},{"pin":"2","net":"EFUSE_OVP","role":""}],"sources":[{"label":"Primary source","url":"https://www.yageogroup.com/component-documentation/download/specsheet/RC0603FR-0710KL","context":"RC0603 family reference; exact value/code reviewed separately; exact manufacturer sheet not retrieved"}]},"R504":{"family":"divider","claims":[{"kind":"documented","evidence":"intended","text":"The threshold is set by the ratio of this resistor to R503, so both have to be right. Neither value is adjustable in firmware.","basis":"hardware-current/engineering/design_parts.json"}],"open":[],"related":["R503"],"assembly":[],"name":"Divider leg on EFUSE_OVP","circuit":"input","here":"One half of the divider that sets the eFuse's overvoltage cutoff, set near 26.4 V. Working with R503, it turns VIN24_FUSED into a smaller voltage on EFUSE_OVP -- this part's own connections here are EFUSE_OVP and GND. Change either resistor and the threshold moves.","how":"Two resistors in series across a voltage produce a fraction of it at their junction, set by their ratio. A chip that must react to a 24 V rail cannot look at it directly, because its input pins work at a few volts, so the divider scales the rail into range. Changing either resistor moves the threshold.","sheet":15,"bom":2,"nets":[{"pin":"1","net":"EFUSE_OVP","role":""},{"pin":"2","net":"GND","role":""}],"sources":[{"label":"Primary source","url":"https://www.yageogroup.com/component-documentation/download/specsheet/RC0603FR-0710KL","context":"Exact manufacturer specsheet; dynamically generated2026, access2026-09-06"}]},"R505":{"family":"divider","claims":[{"kind":"documented","evidence":"intended","text":"The threshold is set by the ratio of this resistor to R506, so both have to be right. Neither value is adjustable in firmware.","basis":"hardware-current/engineering/design_parts.json"}],"open":[],"related":["R506"],"assembly":[],"name":"Divider leg on EFUSE_PGTH","circuit":"input","here":"One half of the divider that sets the level at which the eFuse calls the bus good, nominally 21.0 V rising. Working with R506, it turns V24_BUS into a smaller voltage on EFUSE_PGTH -- this part's own connections here are V24_BUS and EFUSE_PGTH. Change either resistor and the threshold moves.","how":"Two resistors in series across a voltage produce a fraction of it at their junction, set by their ratio. A chip that must react to a 24 V rail cannot look at it directly, because its input pins work at a few volts, so the divider scales the rail into range. Changing either resistor moves the threshold.","sheet":15,"bom":46,"nets":[{"pin":"1","net":"V24_BUS","role":""},{"pin":"2","net":"EFUSE_PGTH","role":""}],"sources":[{"label":"Primary source","url":"https://www.yageogroup.com/component-documentation/download/specsheet/RC0603FR-0710KL","context":"RC0603 family reference; exact value/code reviewed separately; exact manufacturer sheet not retrieved"}]},"R506":{"family":"divider","claims":[{"kind":"documented","evidence":"intended","text":"The threshold is set by the ratio of this resistor to R505, so both have to be right. Neither value is adjustable in firmware.","basis":"hardware-current/engineering/design_parts.json"}],"open":[],"related":["R505"],"assembly":[],"name":"Divider leg on EFUSE_PGTH","circuit":"input","here":"One half of the divider that sets the level at which the eFuse calls the bus good, nominally 21.0 V rising. Working with R505, it turns V24_BUS into a smaller voltage on EFUSE_PGTH -- this part's own connections here are EFUSE_PGTH and GND. Change either resistor and the threshold moves.","how":"Two resistors in series across a voltage produce a fraction of it at their junction, set by their ratio. A chip that must react to a 24 V rail cannot look at it directly, because its input pins work at a few volts, so the divider scales the rail into range. Changing either resistor moves the threshold.","sheet":15,"bom":2,"nets":[{"pin":"1","net":"EFUSE_PGTH","role":""},{"pin":"2","net":"GND","role":""}],"sources":[{"label":"Primary source","url":"https://www.yageogroup.com/component-documentation/download/specsheet/RC0603FR-0710KL","context":"Exact manufacturer specsheet; dynamically generated2026, access2026-09-06"}]},"R507":{"family":"pulldown","claims":[{"kind":"documented","evidence":"intended","text":"EFUSE_IMON therefore reads as low whenever nothing is driving it, including before any firmware runs.","basis":"board.json nets, and the default-off requirement in the inhibit review"}],"open":[],"related":["U12"],"assembly":[],"name":"EFUSE_IMON pull-down","circuit":"input","here":"Ties EFUSE_IMON to GND, which turns the eFuse's current-monitor output into a voltage. Its two connections here are EFUSE_IMON and GND, and it is the part that decides what EFUSE_IMON reads when nothing on the board is actively driving it.","how":"A logic line that nothing is actively driving does not read as a clean high or low: it floats and picks up noise. A resistor to a rail decides what the line reads when nobody drives it, while staying weak enough for a driver to override.","sheet":15,"bom":2,"nets":[{"pin":"1","net":"EFUSE_IMON","role":""},{"pin":"2","net":"GND","role":""}],"sources":[{"label":"Primary source","url":"https://www.yageogroup.com/component-documentation/download/specsheet/RC0603FR-0710KL","context":"Exact manufacturer specsheet; dynamically generated2026, access2026-09-06"}]},"R508":{"family":"pullup","claims":[{"kind":"documented","evidence":"intended","text":"EFUSE_FLT_N therefore reads as high whenever nothing is driving it, including before any firmware runs.","basis":"board.json nets, and the default-off requirement in the inhibit review"}],"open":[],"related":["U12"],"assembly":[],"name":"EFUSE_FLT_N pull-up","circuit":"input","here":"Ties EFUSE_FLT_N to +3V3, which lets the eFuse's fault output read high when there is no fault, since it can only pull down. Its two connections here are +3V3 and EFUSE_FLT_N, and it is the part that decides what EFUSE_FLT_N reads when nothing on the board is actively driving it.","how":"A logic line that nothing is actively driving does not read as a clean high or low: it floats and picks up noise. A resistor to a rail decides what the line reads when nobody drives it, while staying weak enough for a driver to override.","sheet":15,"bom":2,"nets":[{"pin":"1","net":"+3V3","role":""},{"pin":"2","net":"EFUSE_FLT_N","role":""}],"sources":[{"label":"Primary source","url":"https://www.yageogroup.com/component-documentation/download/specsheet/RC0603FR-0710KL","context":"Exact manufacturer specsheet; dynamically generated2026, access2026-09-06"}]},"R509":{"family":"pullup","claims":[{"kind":"documented","evidence":"intended","text":"EFUSE_PGOOD therefore reads as high whenever nothing is driving it, including before any firmware runs.","basis":"board.json nets, and the default-off requirement in the inhibit review"}],"open":[],"related":["U12"],"assembly":[],"name":"EFUSE_PGOOD pull-up","circuit":"input","here":"Ties EFUSE_PGOOD to +3V3, which lets the eFuse's power-good output read high, since it can only pull down. Its two connections here are +3V3 and EFUSE_PGOOD, and it is the part that decides what EFUSE_PGOOD reads when nothing on the board is actively driving it.","how":"A logic line that nothing is actively driving does not read as a clean high or low: it floats and picks up noise. A resistor to a rail decides what the line reads when nobody drives it, while staying weak enough for a driver to override.","sheet":15,"bom":2,"nets":[{"pin":"1","net":"+3V3","role":""},{"pin":"2","net":"EFUSE_PGOOD","role":""}],"sources":[{"label":"Primary source","url":"https://www.yageogroup.com/component-documentation/download/specsheet/RC0603FR-0710KL","context":"Exact manufacturer specsheet; dynamically generated2026, access2026-09-06"}]},"R510":{"family":"divider","claims":[{"kind":"documented","evidence":"intended","text":"The threshold is set by the ratio of this resistor to R511, so both have to be right. Neither value is adjustable in firmware.","basis":"hardware-current/engineering/design_parts.json"}],"open":[],"related":["R511"],"assembly":[],"name":"Divider leg on BUCK5_FB","circuit":"buck5","here":"One half of the divider that sets the feedback divider that sets the 5 V output. Working with R511, it turns +5V into a smaller voltage on BUCK5_FB -- this part's own connections here are +5V and BUCK5_FB. Change either resistor and the threshold moves.","how":"Two resistors in series across a voltage produce a fraction of it at their junction, set by their ratio. A chip that must react to a 24 V rail cannot look at it directly, because its input pins work at a few volts, so the divider scales the rail into range. Changing either resistor moves the threshold.","sheet":16,"bom":5,"nets":[{"pin":"1","net":"+5V","role":""},{"pin":"2","net":"BUCK5_FB","role":""}],"sources":[{"label":"Primary source","url":"https://www.yageogroup.com/component-documentation/download/specsheet/RC0603FR-07100KL","context":"Exact manufacturer specsheet; dynamically generated2026, access2026-09-06"}]},"R511":{"family":"divider","claims":[{"kind":"documented","evidence":"intended","text":"The threshold is set by the ratio of this resistor to R510, so both have to be right. Neither value is adjustable in firmware.","basis":"hardware-current/engineering/design_parts.json"}],"open":[],"related":["R510"],"assembly":[],"name":"Divider leg on BUCK5_FB","circuit":"buck5","here":"One half of the divider that sets the feedback divider that sets the 5 V output. Working with R510, it turns +5V into a smaller voltage on BUCK5_FB -- this part's own connections here are BUCK5_FB and GND. Change either resistor and the threshold moves.","how":"Two resistors in series across a voltage produce a fraction of it at their junction, set by their ratio. A chip that must react to a 24 V rail cannot look at it directly, because its input pins work at a few volts, so the divider scales the rail into range. Changing either resistor moves the threshold.","sheet":16,"bom":53,"nets":[{"pin":"1","net":"BUCK5_FB","role":""},{"pin":"2","net":"GND","role":""}],"sources":[{"label":"Primary source","url":"https://www.yageogroup.com/component-documentation/download/specsheet/RC0603FR-0724K9L","context":"Exact manufacturer specsheet; dynamically generated2026, access2026-09-06"}]},"R512":{"family":"pullup","claims":[{"kind":"documented","evidence":"intended","text":"BUCK5_PGOOD therefore reads as high whenever nothing is driving it, including before any firmware runs.","basis":"board.json nets, and the default-off requirement in the inhibit review"}],"open":[],"related":["U10"],"assembly":[],"name":"BUCK5_PGOOD pull-up","circuit":"buck5","here":"Ties BUCK5_PGOOD to +3V3, which lets the 5 V converter's power-good output read high, since it can only pull down. Its two connections here are +3V3 and BUCK5_PGOOD, and it is the part that decides what BUCK5_PGOOD reads when nothing on the board is actively driving it.","how":"A logic line that nothing is actively driving does not read as a clean high or low: it floats and picks up noise. A resistor to a rail decides what the line reads when nobody drives it, while staying weak enough for a driver to override.","sheet":16,"bom":2,"nets":[{"pin":"1","net":"+3V3","role":""},{"pin":"2","net":"BUCK5_PGOOD","role":""}],"sources":[{"label":"Primary source","url":"https://www.yageogroup.com/component-documentation/download/specsheet/RC0603FR-0710KL","context":"Exact manufacturer specsheet; dynamically generated2026, access2026-09-06"}]},"R513":{"family":"pullup","claims":[{"kind":"documented","evidence":"intended","text":"BUCK3_PGOOD therefore reads as high whenever nothing is driving it, including before any firmware runs.","basis":"board.json nets, and the default-off requirement in the inhibit review"}],"open":[],"related":["U11"],"assembly":[],"name":"BUCK3_PGOOD pull-up","circuit":"buck3","here":"Ties BUCK3_PGOOD to +3V3, which lets the 3.3 V converter's power-good output read high, since it can only pull down. Its two connections here are +3V3 and BUCK3_PGOOD, and it is the part that decides what BUCK3_PGOOD reads when nothing on the board is actively driving it.","how":"A logic line that nothing is actively driving does not read as a clean high or low: it floats and picks up noise. A resistor to a rail decides what the line reads when nobody drives it, while staying weak enough for a driver to override.","sheet":16,"bom":2,"nets":[{"pin":"1","net":"+3V3","role":""},{"pin":"2","net":"BUCK3_PGOOD","role":""}],"sources":[{"label":"Primary source","url":"https://www.yageogroup.com/component-documentation/download/specsheet/RC0603FR-0710KL","context":"Exact manufacturer specsheet; dynamically generated2026, access2026-09-06"}]},"R514":{"family":"pulldown","claims":[{"kind":"documented","evidence":"intended","text":"LIGHT_ENABLE_SAFE therefore reads as low whenever nothing is driving it, including before any firmware runs.","basis":"board.json nets, and the default-off requirement in the inhibit review"}],"open":[],"related":["TP7","U5","U6","U13","U14","U19"],"assembly":[],"name":"LIGHT_ENABLE_SAFE pull-down","circuit":"gating","here":"Ties LIGHT_ENABLE_SAFE to GND, which holds SAFE low, so lighting stays inhibited whenever nothing is actively driving it. Its two connections here are LIGHT_ENABLE_SAFE and GND, and it is the part that decides what LIGHT_ENABLE_SAFE reads when nothing on the board is actively driving it.","how":"A logic line that nothing is actively driving does not read as a clean high or low: it floats and picks up noise. A resistor to a rail decides what the line reads when nobody drives it, while staying weak enough for a driver to override.","sheet":16,"bom":57,"nets":[{"pin":"1","net":"LIGHT_ENABLE_SAFE","role":""},{"pin":"2","net":"GND","role":""}],"sources":[{"label":"Primary source","url":"https://yageogroup.com/component-documentation/download/specsheet/RC0603FR-074K7L","context":"Exact primary order-code specification verified by parent reviewer; generated 2026-09-05; 4.7k 1%, 0.1W at70C, 0603, +/-100ppm/C; accessed2026-09-06"}]},"R515":{"family":"setting","claims":[{"kind":"documented","evidence":"intended","text":"This is a configuration value chosen at design time. Changing it changes the circuit's behaviour and needs the same review the original choice had.","basis":"hardware-current/engineering/design_parts.json"}],"open":[],"related":["C516","R516","R518","R519","U14"],"assembly":[],"name":"Setting resistor on SPOT_EFUSE_ILIM","circuit":"spot_supply","here":"Connected to SPOT_EFUSE_ILIM, where it sets the spotlight eFuse's current limit; 24.3 kOhm gives about 0.494 A nominal. Its two connections here are SPOT_EFUSE_ILIM and SPOT_RTN, so its value is part of the circuit's configuration rather than something firmware can change.","how":"Many power-management chips are configured by a resistor rather than by software: the chip pushes a known current out of the pin, or compares the pin against an internal reference, and reads the resistor's value as a setting. The number is fixed when the board is built.","sheet":17,"bom":59,"nets":[{"pin":"1","net":"SPOT_EFUSE_ILIM","role":""},{"pin":"2","net":"SPOT_RTN","role":""}],"sources":[{"label":"Primary source","url":"https://www.yageogroup.com/component-documentation/download/specsheet/RC0603FR-0710KL","context":"RC0603 family reference; exact value/code reviewed separately; exact manufacturer sheet not retrieved"}]},"R516":{"family":"setting","claims":[{"kind":"documented","evidence":"intended","text":"This is a configuration value chosen at design time. Changing it changes the circuit's behaviour and needs the same review the original choice had.","basis":"hardware-current/engineering/design_parts.json"}],"open":[],"related":["C516","R515","R518","R519","U14"],"assembly":[],"name":"Setting resistor on SPOT_EFUSE_MODE","circuit":"spot_supply","here":"Connected to SPOT_EFUSE_MODE, where it selects how the spotlight eFuse behaves after a fault: latch off rather than retry. Its two connections here are SPOT_EFUSE_MODE and SPOT_RTN, so its value is part of the circuit's configuration rather than something firmware can change.","how":"Many power-management chips are configured by a resistor rather than by software: the chip pushes a known current out of the pin, or compares the pin against an internal reference, and reads the resistor's value as a setting. The number is fixed when the board is built.","sheet":17,"bom":60,"nets":[{"pin":"1","net":"SPOT_EFUSE_MODE","role":""},{"pin":"2","net":"SPOT_RTN","role":""}],"sources":[{"label":"Primary source","url":"https://www.yageogroup.com/component-documentation/download/specsheet/RC0603FR-0710KL","context":"RC0603 family reference; exact value/code reviewed separately; exact manufacturer sheet not retrieved"}]},"R517":{"family":"divider","claims":[{"kind":"documented","evidence":"intended","text":"The threshold is set by the ratio of this resistor to R518, so both have to be right. Neither value is adjustable in firmware.","basis":"hardware-current/engineering/design_parts.json"}],"open":[],"related":["R518"],"assembly":[],"name":"Divider leg on SPOT_EFUSE_OVP","circuit":"spot_supply","here":"One half of the divider that sets the spotlight eFuse's overvoltage cutoff, near 26.2 V. Working with R518, it turns V24_BUS into a smaller voltage on SPOT_EFUSE_OVP -- this part's own connections here are V24_BUS and SPOT_EFUSE_OVP. Change either resistor and the threshold moves.","how":"Two resistors in series across a voltage produce a fraction of it at their junction, set by their ratio. A chip that must react to a 24 V rail cannot look at it directly, because its input pins work at a few volts, so the divider scales the rail into range. Changing either resistor moves the threshold.","sheet":17,"bom":45,"nets":[{"pin":"1","net":"V24_BUS","role":""},{"pin":"2","net":"SPOT_EFUSE_OVP","role":""}],"sources":[{"label":"Primary source","url":"https://www.yageogroup.com/component-documentation/download/specsheet/RC0603FR-0710KL","context":"RC0603 family reference; exact value/code reviewed separately; exact manufacturer sheet not retrieved"}]},"R518":{"family":"divider","claims":[{"kind":"documented","evidence":"intended","text":"The threshold is set by the ratio of this resistor to R517, so both have to be right. Neither value is adjustable in firmware.","basis":"hardware-current/engineering/design_parts.json"}],"open":[],"related":["R517"],"assembly":[],"name":"Divider leg on SPOT_EFUSE_OVP","circuit":"spot_supply","here":"One half of the divider that sets the spotlight eFuse's overvoltage cutoff, near 26.2 V. Working with R517, it turns V24_BUS into a smaller voltage on SPOT_EFUSE_OVP -- this part's own connections here are SPOT_EFUSE_OVP and SPOT_RTN. Change either resistor and the threshold moves.","how":"Two resistors in series across a voltage produce a fraction of it at their junction, set by their ratio. A chip that must react to a 24 V rail cannot look at it directly, because its input pins work at a few volts, so the divider scales the rail into range. Changing either resistor moves the threshold.","sheet":17,"bom":2,"nets":[{"pin":"1","net":"SPOT_EFUSE_OVP","role":""},{"pin":"2","net":"SPOT_RTN","role":""}],"sources":[{"label":"Primary source","url":"https://www.yageogroup.com/component-documentation/download/specsheet/RC0603FR-0710KL","context":"Exact manufacturer specsheet; dynamically generated2026, access2026-09-06"}]},"R519":{"family":"pulldown","claims":[{"kind":"documented","evidence":"intended","text":"SPOT_EFUSE_IMON therefore reads as low whenever nothing is driving it, including before any firmware runs.","basis":"board.json nets, and the default-off requirement in the inhibit review"}],"open":[],"related":["C516","R515","R516","R518","U14"],"assembly":[],"name":"SPOT_EFUSE_IMON pull-down","circuit":"spot_supply","here":"Ties SPOT_EFUSE_IMON to SPOT_RTN, which turns the spotlight eFuse's current-monitor output into a voltage. Its two connections here are SPOT_EFUSE_IMON and SPOT_RTN, and it is the part that decides what SPOT_EFUSE_IMON reads when nothing on the board is actively driving it.","how":"A logic line that nothing is actively driving does not read as a clean high or low: it floats and picks up noise. A resistor to a rail decides what the line reads when nobody drives it, while staying weak enough for a driver to override.","sheet":17,"bom":2,"nets":[{"pin":"1","net":"SPOT_EFUSE_IMON","role":""},{"pin":"2","net":"SPOT_RTN","role":""}],"sources":[{"label":"Primary source","url":"https://www.yageogroup.com/component-documentation/download/specsheet/RC0603FR-0710KL","context":"Exact manufacturer specsheet; dynamically generated2026, access2026-09-06"}]},"R520":{"family":"pullup","claims":[{"kind":"documented","evidence":"intended","text":"SPOT_EFUSE_FLT_N therefore reads as high whenever nothing is driving it, including before any firmware runs.","basis":"board.json nets, and the default-off requirement in the inhibit review"}],"open":[],"related":["U14"],"assembly":[],"name":"SPOT_EFUSE_FLT_N pull-up","circuit":"spot_supply","here":"Ties SPOT_EFUSE_FLT_N to +3V3, which lets the spotlight eFuse's fault output read high, since it can only pull down. Its two connections here are +3V3 and SPOT_EFUSE_FLT_N, and it is the part that decides what SPOT_EFUSE_FLT_N reads when nothing on the board is actively driving it.","how":"A logic line that nothing is actively driving does not read as a clean high or low: it floats and picks up noise. A resistor to a rail decides what the line reads when nobody drives it, while staying weak enough for a driver to override.","sheet":17,"bom":2,"nets":[{"pin":"1","net":"+3V3","role":""},{"pin":"2","net":"SPOT_EFUSE_FLT_N","role":""}],"sources":[{"label":"Primary source","url":"https://www.yageogroup.com/component-documentation/download/specsheet/RC0603FR-0710KL","context":"Exact manufacturer specsheet; dynamically generated2026, access2026-09-06"}]},"R521":{"family":"pulldown","claims":[{"kind":"documented","evidence":"intended","text":"V24_SPOT therefore reads as low whenever nothing is driving it, including before any firmware runs.","basis":"board.json nets, and the default-off requirement in the inhibit review"}],"open":[],"related":["U1"],"assembly":[],"name":"V24_SPOT pull-down","circuit":"spot_supply","here":"Ties V24_SPOT to GND, which bleeds the spotlight rail down after shutdown instead of leaving it at some leakage voltage. Its two connections here are V24_SPOT and GND, and it is the part that decides what V24_SPOT reads when nothing on the board is actively driving it.","how":"A logic line that nothing is actively driving does not read as a clean high or low: it floats and picks up noise. A resistor to a rail decides what the line reads when nobody drives it, while staying weak enough for a driver to override.","sheet":17,"bom":61,"nets":[{"pin":"1","net":"V24_SPOT","role":""},{"pin":"2","net":"GND","role":""}],"sources":[{"label":"Primary source","url":"https://www.yageogroup.com/component-documentation/download/specsheet/RC0603FR-0747KL","context":"Exact manufacturer specsheet; dynamically generated2026, access2026-09-06"}]},"R523":{"family":"spot_sense","claims":[{"kind":"documented","evidence":"modelled-current","text":"0.300 Ohm with the driver's 96-104 mV window gives roughly 0.317-0.350 A, and the part dissipates about 0.038 W of its 0.125 W rating.","basis":"engineering-history/power_review.md"}],"open":[],"related":["U7","L502","D502","R526","J9","C519","C520"],"assembly":[],"name":"Spotlight 1 current sense","circuit":"spot","here":"The 0.300 Ohm resistor driver U7 watches to regulate spotlight 1. It sits between the gated rail V24_SPOT and SPOT1_LED_PLUS, so the whole LED current flows through it.","how":"Current through a resistor produces a proportional voltage across it. The driver cannot measure current directly, so it measures this voltage and switches to keep it inside a fixed window. Change this resistor and you change the LED current.","sheet":17,"bom":65,"nets":[{"pin":"1","net":"V24_SPOT","role":""},{"pin":"2","net":"SPOT1_LED_PLUS","role":""}],"sources":[{"label":"Primary source","url":"https://industrial.panasonic.com/ww/products/pt/current-sensing-chip-resistors/models/ERJ6RQFR30V","context":"undated product page"}]},"R524":{"family":"spot_sense","claims":[{"kind":"documented","evidence":"modelled-current","text":"0.300 Ohm with the driver's 96-104 mV window gives roughly 0.317-0.350 A, and the part dissipates about 0.038 W of its 0.125 W rating.","basis":"engineering-history/power_review.md"}],"open":[],"related":["U8","L503","D503","R527","J10","C521","C522"],"assembly":[],"name":"Spotlight 2 current sense","circuit":"spot","here":"The 0.300 Ohm resistor driver U8 watches to regulate spotlight 2. It sits between the gated rail V24_SPOT and SPOT2_LED_PLUS, so the whole LED current flows through it.","how":"Current through a resistor produces a proportional voltage across it. The driver cannot measure current directly, so it measures this voltage and switches to keep it inside a fixed window. Change this resistor and you change the LED current.","sheet":17,"bom":65,"nets":[{"pin":"1","net":"V24_SPOT","role":""},{"pin":"2","net":"SPOT2_LED_PLUS","role":""}],"sources":[{"label":"Primary source","url":"https://industrial.panasonic.com/ww/products/pt/current-sensing-chip-resistors/models/ERJ6RQFR30V","context":"undated product page"}]},"R525":{"family":"spot_sense","claims":[{"kind":"documented","evidence":"modelled-current","text":"0.300 Ohm with the driver's 96-104 mV window gives roughly 0.317-0.350 A, and the part dissipates about 0.038 W of its 0.125 W rating.","basis":"engineering-history/power_review.md"}],"open":[],"related":["U9","L504","D504","R528","J11","C523","C524"],"assembly":[],"name":"Spotlight 3 current sense","circuit":"spot","here":"The 0.300 Ohm resistor driver U9 watches to regulate spotlight 3. It sits between the gated rail V24_SPOT and SPOT3_LED_PLUS, so the whole LED current flows through it.","how":"Current through a resistor produces a proportional voltage across it. The driver cannot measure current directly, so it measures this voltage and switches to keep it inside a fixed window. Change this resistor and you change the LED current.","sheet":17,"bom":65,"nets":[{"pin":"1","net":"V24_SPOT","role":""},{"pin":"2","net":"SPOT3_LED_PLUS","role":""}],"sources":[{"label":"Primary source","url":"https://industrial.panasonic.com/ww/products/pt/current-sensing-chip-resistors/models/ERJ6RQFR30V","context":"undated product page"}]},"R526":{"family":"spot_ctrl_pulldown","claims":[{"kind":"documented","evidence":"intended","text":"Spotlight 1 is off by default: this resistor and the AND gate ahead of it both have to be overcome before the driver is enabled.","basis":"engineering-history/rev_a_inhibit_correction.md"}],"open":[],"related":["U7","R523","L502","D502","J9","C519","C520","U5"],"assembly":[],"name":"Spotlight 1 CTRL pull-down","circuit":"spot","here":"Holds SPOT1_CTRL, driver 1's enable input, at ground whenever the AND gate ahead of it is not actively driving -- for instance while the 3.3 V rail is still coming up.","how":"A logic input left floating can read either state. Tying it to ground through a resistor makes off the default, while still letting the driving gate pull it high easily.","sheet":17,"bom":2,"nets":[{"pin":"1","net":"SPOT1_CTRL","role":""},{"pin":"2","net":"GND","role":""}],"sources":[{"label":"Primary source","url":"https://www.yageogroup.com/component-documentation/download/specsheet/RC0603FR-0710KL","context":"Exact manufacturer specsheet; dynamically generated2026, access2026-09-06"}]},"R527":{"family":"spot_ctrl_pulldown","claims":[{"kind":"documented","evidence":"intended","text":"Spotlight 2 is off by default: this resistor and the AND gate ahead of it both have to be overcome before the driver is enabled.","basis":"engineering-history/rev_a_inhibit_correction.md"}],"open":[],"related":["U8","R524","L503","D503","J10","C521","C522","U5"],"assembly":[],"name":"Spotlight 2 CTRL pull-down","circuit":"spot","here":"Holds SPOT2_CTRL, driver 2's enable input, at ground whenever the AND gate ahead of it is not actively driving -- for instance while the 3.3 V rail is still coming up.","how":"A logic input left floating can read either state. Tying it to ground through a resistor makes off the default, while still letting the driving gate pull it high easily.","sheet":17,"bom":2,"nets":[{"pin":"1","net":"SPOT2_CTRL","role":""},{"pin":"2","net":"GND","role":""}],"sources":[{"label":"Primary source","url":"https://www.yageogroup.com/component-documentation/download/specsheet/RC0603FR-0710KL","context":"Exact manufacturer specsheet; dynamically generated2026, access2026-09-06"}]},"R528":{"family":"spot_ctrl_pulldown","claims":[{"kind":"documented","evidence":"intended","text":"Spotlight 3 is off by default: this resistor and the AND gate ahead of it both have to be overcome before the driver is enabled.","basis":"engineering-history/rev_a_inhibit_correction.md"}],"open":[],"related":["U9","R525","L504","D504","J11","C523","C524","U5"],"assembly":[],"name":"Spotlight 3 CTRL pull-down","circuit":"spot","here":"Holds SPOT3_CTRL, driver 3's enable input, at ground whenever the AND gate ahead of it is not actively driving -- for instance while the 3.3 V rail is still coming up.","how":"A logic input left floating can read either state. Tying it to ground through a resistor makes off the default, while still letting the driving gate pull it high easily.","sheet":17,"bom":2,"nets":[{"pin":"1","net":"SPOT3_CTRL","role":""},{"pin":"2","net":"GND","role":""}],"sources":[{"label":"Primary source","url":"https://www.yageogroup.com/component-documentation/download/specsheet/RC0603FR-0710KL","context":"Exact manufacturer specsheet; dynamically generated2026, access2026-09-06"}]},"S1":{"family":"unique","claims":[{"kind":"documented","evidence":"intended","text":"This button acts on the supervisor's output side through R42. It cannot override an asserted supervisor, and releasing it does not restart the supervisor's own delay timer.","basis":"engineering-history/rev_a_inhibit_correction.md"},{"kind":"documented","evidence":"intended","text":"Firmware must reinitialise and require a fresh arming after every reset; no lighting command may be automatically re-enabled.","basis":"engineering-history/rev_a_inhibit_correction.md"}],"open":[],"related":["U1","R1","C1","R42","U18","S2"],"assembly":[],"name":"RESET button","circuit":"mcu","here":"Pulls MCU_EN to ground, restarting the controller. R1 and C1 hold that node high in normal operation, and the supervisor can pull it down through R42, so this button is one of three things that can put the module into reset.","how":"The module restarts when its enable pin is pulled low and released. The capacitor on that node also gives a power-on delay, so the module comes out of reset after its supply has settled rather than during the rise.","sheet":2,"bom":8,"nets":[{"pin":"1","net":"MCU_EN","role":""},{"pin":"2","net":"GND","role":""}],"sources":[{"label":"Primary source","url":"https://www.e-switch.com/wp-content/uploads/2023/01/TL3305.pdf","context":"2022-09-28 family catalog; exact OPN distributor listing"}]},"S2":{"family":"unique","claims":[{"kind":"documented","evidence":"intended","text":"The strap is sampled only as the module leaves reset, so this button matters during a reset and at no other time. R2 holds the line high the rest of the time.","basis":"hardware-current/engineering/enclosure_addendum.md"}],"open":[],"related":["U1","R2","R3","S1","J14"],"assembly":[],"name":"BOOT button","circuit":"mcu","here":"Pulls BOOT_GPIO9 to ground. Held down while the board is reset, it makes the module start in its built-in download mode instead of running the firmware in flash.","how":"Boot straps are sampled once, as the module leaves reset. Holding this one low at that moment selects the bootloader, which is how a blank or broken board is recovered over USB.","sheet":2,"bom":8,"nets":[{"pin":"1","net":"BOOT_GPIO9","role":""},{"pin":"2","net":"GND","role":""}],"sources":[{"label":"Primary source","url":"https://www.e-switch.com/wp-content/uploads/2023/01/TL3305.pdf","context":"2022-09-28 family catalog; exact OPN distributor listing"}]},"TP1":{"family":"test_point","claims":[{"kind":"documented","evidence":"intended","text":"The expectation above comes from the project's first-hardware checklist, which is a plan. Nothing on it has been carried out.","basis":"engineering-history/first_hardware_checklist.md"}],"open":[],"related":["U1"],"assembly":[],"name":"Test point on GND","circuit":"test","here":"A bare 1 mm pad connected to GND, put there so that net can be probed during bring-up without touching a component lead or bridging two of them. It is on the back face.","how":"A test point is copper the PCB makes for you: no part is fitted, nothing is purchased, and it does not appear in the parts list. It exists so bring-up has somewhere safe to put a probe.","inspect":"The measurement return for everything else. Check harness return continuity while the board is unpowered.","sheet":14,"bom":null,"nets":[{"pin":"1","net":"GND","role":""}],"sources":[]},"TP2":{"family":"test_point","claims":[{"kind":"documented","evidence":"intended","text":"The expectation above comes from the project's first-hardware checklist, which is a plan. Nothing on it has been carried out.","basis":"engineering-history/first_hardware_checklist.md"}],"open":[],"related":["F1","J1"],"assembly":[],"name":"Test point on VIN24_RAW","circuit":"test","here":"A bare 1 mm pad connected to VIN24_RAW, put there so that net can be probed during bring-up without touching a component lead or bridging two of them. It is on the front face.","how":"A test point is copper the PCB makes for you: no part is fitted, nothing is purchased, and it does not appear in the parts list. It exists so bring-up has somewhere safe to put a probe.","inspect":"The applied supply voltage, upstream of all protection.","sheet":14,"bom":null,"nets":[{"pin":"1","net":"VIN24_RAW","role":""}],"sources":[]},"TP3":{"family":"test_point","claims":[{"kind":"documented","evidence":"intended","text":"The expectation above comes from the project's first-hardware checklist, which is a plan. Nothing on it has been carried out.","basis":"engineering-history/first_hardware_checklist.md"}],"open":[],"related":["U1"],"assembly":[],"name":"Test point on V24_BUS","circuit":"test","here":"A bare 1 mm pad connected to V24_BUS, put there so that net can be probed during bring-up without touching a component lead or bridging two of them. It is on the back face.","how":"A test point is copper the PCB makes for you: no part is fitted, nothing is purchased, and it does not appear in the parts list. It exists so bring-up has somewhere safe to put a probe.","inspect":"The protected bus after startup. Compare its drop against TP2 at the measured current.","sheet":14,"bom":null,"nets":[{"pin":"1","net":"V24_BUS","role":""}],"sources":[]},"TP4":{"family":"test_point","claims":[{"kind":"documented","evidence":"intended","text":"The expectation above comes from the project's first-hardware checklist, which is a plan. Nothing on it has been carried out.","basis":"engineering-history/first_hardware_checklist.md"}],"open":[],"related":["C20","C22","C510","C511","C512","L500"],"assembly":[],"name":"Test point on +5V","circuit":"test","here":"A bare 1 mm pad connected to +5V, put there so that net can be probed during bring-up without touching a component lead or bridging two of them. It is on the back face.","how":"A test point is copper the PCB makes for you: no part is fitted, nothing is purchased, and it does not appear in the parts list. It exists so bring-up has somewhere safe to put a probe.","inspect":"Nominal 5 V; the project's initial static screening window is 4.75-5.25 V.","sheet":14,"bom":null,"nets":[{"pin":"1","net":"+5V","role":""}],"sources":[]},"TP5":{"family":"test_point","claims":[{"kind":"documented","evidence":"intended","text":"The expectation above comes from the project's first-hardware checklist, which is a plan. Nothing on it has been carried out.","basis":"engineering-history/first_hardware_checklist.md"}],"open":[],"related":["U1"],"assembly":[],"name":"Test point on +3V3","circuit":"test","here":"A bare 1 mm pad connected to +3V3, put there so that net can be probed during bring-up without touching a component lead or bridging two of them. It is on the back face.","how":"A test point is copper the PCB makes for you: no part is fitted, nothing is purchased, and it does not appear in the parts list. It exists so bring-up has somewhere safe to put a probe.","inspect":"Nominal 3.3 V; the project's initial static screening window is 3.135-3.465 V.","sheet":14,"bom":null,"nets":[{"pin":"1","net":"+3V3","role":""}],"sources":[]},"TP6":{"family":"test_point","claims":[{"kind":"documented","evidence":"intended","text":"The expectation above comes from the project's first-hardware checklist, which is a plan. Nothing on it has been carried out.","basis":"engineering-history/first_hardware_checklist.md"}],"open":[],"related":["U1"],"assembly":[],"name":"Test point on GATE_BIAS","circuit":"test","here":"A bare 1 mm pad connected to GATE_BIAS, put there so that net can be probed during bring-up without touching a component lead or bridging two of them. It is on the front face.","how":"A test point is copper the PCB makes for you: no part is fitted, nothing is purchased, and it does not appear in the parts list. It exists so bring-up has somewhere safe to put a probe.","inspect":"With ARM open this should be disabled, approaching ground once stored charge has drained.","sheet":14,"bom":null,"nets":[{"pin":"1","net":"GATE_BIAS","role":""}],"sources":[]},"TP7":{"family":"test_point","claims":[{"kind":"documented","evidence":"intended","text":"The expectation above comes from the project's first-hardware checklist, which is a plan. Nothing on it has been carried out.","basis":"engineering-history/first_hardware_checklist.md"}],"open":[],"related":["R514","U5","U6","U13","U14","U19"],"assembly":[],"name":"Test point on LIGHT_ENABLE_SAFE","circuit":"test","here":"A bare 1 mm pad connected to LIGHT_ENABLE_SAFE, put there so that net can be probed during bring-up without touching a component lead or bridging two of them. It is on the front face.","how":"A test point is copper the PCB makes for you: no part is fitted, nothing is purchased, and it does not appear in the parts list. It exists so bring-up has somewhere safe to put a probe.","inspect":"Low with the physical ARM switch open: at most 0.35 V, with 0.30 V as the measurement target.","sheet":14,"bom":null,"nets":[{"pin":"1","net":"LIGHT_ENABLE_SAFE","role":""}],"sources":[]},"TP8":{"family":"test_point","claims":[{"kind":"documented","evidence":"intended","text":"The expectation above comes from the project's first-hardware checklist, which is a plan. Nothing on it has been carried out.","basis":"engineering-history/first_hardware_checklist.md"}],"open":[],"related":["U12"],"assembly":[],"name":"Test point on EFUSE_RESET_N","circuit":"test","here":"A bare 1 mm pad connected to EFUSE_RESET_N, put there so that net can be probed during bring-up without touching a component lead or bridging two of them. It is on the back face.","how":"A test point is copper the PCB makes for you: no part is fitted, nothing is purchased, and it does not appear in the parts list. It exists so bring-up has somewhere safe to put a probe.","inspect":"The main eFuse's enable and reset node. Observe only at first; do not inject a voltage here.","sheet":14,"bom":null,"nets":[{"pin":"1","net":"EFUSE_RESET_N","role":""}],"sources":[]},"TP9":{"family":"test_point","claims":[{"kind":"documented","evidence":"intended","text":"The expectation above comes from the project's first-hardware checklist, which is a plan. Nothing on it has been carried out.","basis":"engineering-history/first_hardware_checklist.md"}],"open":[],"related":["U1"],"assembly":[],"name":"Test point on V24_SPOT","circuit":"test","here":"A bare 1 mm pad connected to V24_SPOT, put there so that net can be probed during bring-up without touching a component lead or bridging two of them. It is on the back face.","how":"A test point is copper the PCB makes for you: no part is fitted, nothing is purchased, and it does not appear in the parts list. It exists so bring-up has somewhere safe to put a probe.","inspect":"The spotlight supply, disabled. Record how it decays rather than assuming it is instantly zero.","sheet":14,"bom":null,"nets":[{"pin":"1","net":"V24_SPOT","role":""}],"sources":[]},"TP10":{"family":"test_point","claims":[{"kind":"documented","evidence":"intended","text":"The expectation above comes from the project's first-hardware checklist, which is a plan. Nothing on it has been carried out.","basis":"engineering-history/first_hardware_checklist.md"}],"open":[],"related":["R7","U1","U2","U3","U20"],"assembly":[],"name":"Test point on I2C_SDA","circuit":"test","here":"A bare 1 mm pad connected to I2C_SDA, put there so that net can be probed during bring-up without touching a component lead or bridging two of them. It is on the front face.","how":"A test point is copper the PCB makes for you: no part is fitted, nothing is purchased, and it does not appear in the parts list. It exists so bring-up has somewhere safe to put a probe.","inspect":"Idle high once logic is powered; later check the bus addresses and the waveform.","sheet":14,"bom":null,"nets":[{"pin":"1","net":"I2C_SDA","role":""}],"sources":[]},"TP11":{"family":"test_point","claims":[{"kind":"documented","evidence":"intended","text":"The expectation above comes from the project's first-hardware checklist, which is a plan. Nothing on it has been carried out.","basis":"engineering-history/first_hardware_checklist.md"}],"open":[],"related":["R8","U1","U2","U3","U20"],"assembly":[],"name":"Test point on I2C_SCL","circuit":"test","here":"A bare 1 mm pad connected to I2C_SCL, put there so that net can be probed during bring-up without touching a component lead or bridging two of them. It is on the front face.","how":"A test point is copper the PCB makes for you: no part is fitted, nothing is purchased, and it does not appear in the parts list. It exists so bring-up has somewhere safe to put a probe.","inspect":"Idle high once logic is powered; later measure the 30-70 % rise time.","sheet":14,"bom":null,"nets":[{"pin":"1","net":"I2C_SCL","role":""}],"sources":[]},"TP12":{"family":"test_point","claims":[{"kind":"documented","evidence":"intended","text":"The expectation above comes from the project's first-hardware checklist, which is a plan. Nothing on it has been carried out.","basis":"engineering-history/first_hardware_checklist.md"}],"open":[],"related":["R6","U2","U3","U6"],"assembly":[],"name":"Test point on PCA_OE","circuit":"test","here":"A bare 1 mm pad connected to PCA_OE, put there so that net can be probed during bring-up without touching a component lead or bridging two of them. It is on the front face.","how":"A test point is copper the PCB makes for you: no part is fitted, nothing is purchased, and it does not appear in the parts list. It exists so bring-up has somewhere safe to put a probe.","inspect":"High while lighting is inhibited, with logic powered.","sheet":14,"bom":null,"nets":[{"pin":"1","net":"PCA_OE","role":""}],"sources":[]},"TP13":{"family":"boot_strap_probe","claims":[{"kind":"documented","evidence":"intended","text":"Boot straps are not unrestricted expansion GPIOs: externally imposed levels during reset can change how the module boots.","basis":"hardware-current/engineering/enclosure_addendum.md"}],"open":[],"related":["U1","J18"],"assembly":[],"name":"Boot-strap probe pad (GPIO4_STRAP)","circuit":"expansion","here":"A bare pad on GPIO4_STRAP, one of the controller module's boot-strap pins. It is here so the strap can be observed during bring-up, not so an accessory can be wired to it.","how":"Boot straps are pins the module samples once, as it leaves reset, to decide how to start. A voltage imposed here during reset changes that decision, which is why these are probe points and not general-purpose expansion pins.","sheet":19,"bom":null,"nets":[{"pin":"1","net":"GPIO4_STRAP","role":""}],"sources":[]},"TP14":{"family":"boot_strap_probe","claims":[{"kind":"documented","evidence":"intended","text":"Boot straps are not unrestricted expansion GPIOs: externally imposed levels during reset can change how the module boots.","basis":"hardware-current/engineering/enclosure_addendum.md"}],"open":[],"related":["U1","J18"],"assembly":[],"name":"Boot-strap probe pad (GPIO5_STRAP)","circuit":"expansion","here":"A bare pad on GPIO5_STRAP, one of the controller module's boot-strap pins. It is here so the strap can be observed during bring-up, not so an accessory can be wired to it.","how":"Boot straps are pins the module samples once, as it leaves reset, to decide how to start. A voltage imposed here during reset changes that decision, which is why these are probe points and not general-purpose expansion pins.","sheet":19,"bom":null,"nets":[{"pin":"1","net":"GPIO5_STRAP","role":""}],"sources":[]},"TP15":{"family":"boot_strap_probe","claims":[{"kind":"documented","evidence":"intended","text":"Boot straps are not unrestricted expansion GPIOs: externally imposed levels during reset can change how the module boots.","basis":"hardware-current/engineering/enclosure_addendum.md"}],"open":[],"related":["U1","J18"],"assembly":[],"name":"Boot-strap probe pad (GPIO15_STRAP)","circuit":"expansion","here":"A bare pad on GPIO15_STRAP, one of the controller module's boot-strap pins. It is here so the strap can be observed during bring-up, not so an accessory can be wired to it.","how":"Boot straps are pins the module samples once, as it leaves reset, to decide how to start. A voltage imposed here during reset changes that decision, which is why these are probe points and not general-purpose expansion pins.","sheet":19,"bom":null,"nets":[{"pin":"1","net":"GPIO15_STRAP","role":""}],"sources":[]},"U1":{"family":"unique","claims":[{"kind":"documented","evidence":"intended","text":"Fixed assignments: GPIO2 and GPIO3 are the I2C pair; GPIO6 and GPIO7 are CAN transmit and receive; GPIO10, GPIO11 and GPIO18 are the three spotlight PWM outputs; GPIO0 carries the lighting-enable request and GPIO1 reads whether USB is present.","basis":"engineering-history/firmware_port_map.md"},{"kind":"documented","evidence":"intended","text":"Module pad numbers are not GPIO numbers. Pad 25 is U0TXD (GPIO16) on net UART_TX and pad 24 is U0RXD (GPIO17) on net UART_RX.","basis":"hardware-current/hardware/rev-a/EL.kicad_sym symbol pin names"},{"kind":"documented","evidence":"cad-checked","text":"The module's antenna area is kept clear of copper on all eight layers, and its body overhangs the board edge above the flat -- that overhang is deliberate, not a drawing error.","basis":"hardware-current/reports/mechanical-final-audit.json (rf_copper_keepout)"},{"kind":"documented","evidence":"intended","text":"Pad 22 is deliberately left unconnected, and pad 29 is the ground pad, which appears as nine separate shapes in the footprint.","basis":"board.json pins and pads for U1"}],"open":["No firmware has been built or flashed for this board. The channel map is an integration contract, not shipped code.","Radio behaviour with a real enclosure, cables and metal fasteners nearby is unmeasured."],"related":["R1","C1","C2","C3","S1","S2","R2","R3","J15","U2","U3","U4","U17","J18"],"assembly":["37 physical pad shapes for 29 logical pins; nine of them are the single ground pad."],"name":"ESP32-C6 radio module (the controller)","circuit":"mcu","here":"The brain and the radio. It runs the fixture's firmware, talks to both PWM expanders and the temperature sensor over I2C_SDA and I2C_SCL, drives the three spotlight requests SPOT1_PWM, SPOT2_PWM and SPOT3_PWM, speaks CAN to the motors through CAN_TX and CAN_RX, and raises LIGHT_ENABLE when it wants light. Its reset pin MCU_EN is held by R1 and C1 and can be pulled down by S1 or by the supervisor through R42.","how":"A pre-certified radio module: a chip, a crystal, flash memory, matching components and a printed antenna on a small board, tested as a unit so the fixture does not have to solve radio layout. It solders down by castellated edge pads plus a large ground pad underneath. The module's pad numbers are not GPIO numbers -- pad 25 is the serial transmit line, which the chip calls GPIO16 -- so always read the map rather than counting pins.","inspect":"Check pin 1 orientation and that the antenna end is the one overhanging the flat edge.","sheet":2,"bom":1,"nets":[{"pin":"1","net":"GND","role":""},{"pin":"2","net":"+3V3","role":""},{"pin":"3","net":"MCU_EN","role":""},{"pin":"4","net":"GPIO4_STRAP","role":""},{"pin":"5","net":"GPIO5_STRAP","role":""},{"pin":"6","net":"CAN_TX","role":""},{"pin":"7","net":"CAN_RX","role":""},{"pin":"8","net":"LIGHT_ENABLE","role":""},{"pin":"9","net":"USB_PRESENT_N","role":""},{"pin":"10","net":"BOOT_GPIO8","role":""},{"pin":"11","net":"SPOT1_PWM","role":""},{"pin":"12","net":"SPOT2_PWM","role":""},{"pin":"13","net":"USB_DM_MCU","role":""},{"pin":"14","net":"USB_DP_MCU","role":""},{"pin":"15","net":"BOOT_GPIO9","role":""},{"pin":"16","net":"SPOT3_PWM","role":""},{"pin":"17","net":"GPIO19","role":""},{"pin":"18","net":"GPIO20","role":""},{"pin":"19","net":"GPIO21","role":""},{"pin":"20","net":"GPIO22","role":""},{"pin":"21","net":"GPIO23","role":""},{"pin":"22","net":null,"role":"no connect (intentional)"},{"pin":"23","net":"GPIO15_STRAP","role":""},{"pin":"24","net":"UART_RX","role":""},{"pin":"25","net":"UART_TX","role":""},{"pin":"26","net":"I2C_SCL","role":""},{"pin":"27","net":"I2C_SDA","role":""},{"pin":"28","net":"GND","role":""},{"pin":"29","net":"GND","role":""}],"sources":[{"label":"Primary source","url":"https://documentation.espressif.com/esp32-c6-wroom-1_wroom-1u_datasheet_en.pdf","context":"v1.4; module pad29 and land pattern independently inspected"}]},"U2":{"family":"unique","claims":[{"kind":"documented","evidence":"intended","text":"Firmware must set MODE2 to 0x00 (OUTDRV=0, INVRT=0, OUTNE=00) and read it back. Because the outputs are open-drain, physical light duty is the complement of the sink-active duty written to the chip.","basis":"hardware-current/engineering/design_parts.json (U2 note) and firmware_port_map.md"},{"kind":"documented","evidence":"intended","text":"Outputs 0 to 14 are logical channels 1 to 15; output 15 is unused and must stay in the reviewed disabled state.","basis":"engineering-history/firmware_port_map.md"},{"kind":"documented","evidence":"intended","text":"Pin 22 is deliberately unconnected.","basis":"board.json pins for U2"}],"open":["The I2C bus should start at 100 kHz; 400 kHz needs a fresh rise-time measurement on hardware."],"related":["U1","U3","C40","C42","R7","R8","U6","U13"],"assembly":["TSSOP-28 on 0.65 mm pitch."],"name":"PWM expander at address 0x40","circuit":"pwm","here":"Generates the dimming waveforms for ambient channels 1 to 15 -- zones 1 to 5, warm, neutral and cool each. The controller talks to it over I2C_SDA and I2C_SCL at address 0x40, its outputs run to PWM_01 through PWM_15, and PCA_OE can disable every output at once.","how":"One 16-channel PWM generator saves the controller from timing 21 dimming signals itself: the firmware writes a duty value per channel over two wires, and the chip produces the waveform continuously. Its outputs here are configured open-drain, meaning each output can only pull its pin down to ground or let go, never drive it high -- so an external pull-up decides the high level.","sheet":6,"bom":22,"nets":[{"pin":"1","net":"GND","role":""},{"pin":"2","net":"GND","role":""},{"pin":"3","net":"GND","role":""},{"pin":"4","net":"GND","role":""},{"pin":"5","net":"GND","role":""},{"pin":"6","net":"PWM_01","role":""},{"pin":"7","net":"PWM_02","role":""},{"pin":"8","net":"PWM_03","role":""},{"pin":"9","net":"PWM_04","role":""},{"pin":"10","net":"PWM_05","role":""},{"pin":"11","net":"PWM_06","role":""},{"pin":"12","net":"PWM_07","role":""},{"pin":"13","net":"PWM_08","role":""},{"pin":"14","net":"GND","role":""},{"pin":"15","net":"PWM_09","role":""},{"pin":"16","net":"PWM_10","role":""},{"pin":"17","net":"PWM_11","role":""},{"pin":"18","net":"PWM_12","role":""},{"pin":"19","net":"PWM_13","role":""},{"pin":"20","net":"PWM_14","role":""},{"pin":"21","net":"PWM_15","role":""},{"pin":"22","net":null,"role":"no connect (intentional)"},{"pin":"23","net":"PCA_OE","role":""},{"pin":"24","net":"GND","role":""},{"pin":"25","net":"GND","role":""},{"pin":"26","net":"I2C_SCL","role":""},{"pin":"27","net":"I2C_SDA","role":""},{"pin":"28","net":"+3V3","role":""}],"sources":[{"label":"Primary source","url":"https://www.nxp.com/docs/en/data-sheet/PCA9685.pdf","context":"Rev4 2015-04-16; pin map and Tables7/12 reviewed"}]},"U3":{"family":"unique","claims":[{"kind":"documented","evidence":"intended","text":"Two channels are routing-driven remaps: logical PWM 18 is output 13 on package pin 20, and logical PWM 20 is output 12 on package pin 19. Never derive this chip's output index by subtracting 16 from the logical channel number.","basis":"engineering-history/firmware_port_map.md, confirmed against board.json pin nets"},{"kind":"documented","evidence":"intended","text":"Ten pins are deliberately unconnected: 8, 10, 12, 13, 15, 16, 17, 18, 21 and 22.","basis":"board.json pins for U3"}],"open":["The I2C bus should start at 100 kHz; 400 kHz needs a fresh rise-time measurement on hardware."],"related":["U1","U2","C41","C43","R7","R8","U6","U13"],"assembly":["TSSOP-28 on 0.65 mm pitch."],"name":"PWM expander at address 0x41","circuit":"pwm","here":"Generates the dimming waveforms for ambient channels 16 to 21 -- zone 6 and zone 7. It shares I2C_SDA and I2C_SCL with the first expander but answers at 0x41, and shares PCA_OE so both chips are inhibited together. Only six of its sixteen outputs are used; the rest are explicitly unconnected.","how":"Identical to the first expander, with its address strap tied differently so two chips can share one two-wire bus. Every I2C device on a bus needs its own address, which is why the second one answers at 0x41.","sheet":6,"bom":22,"nets":[{"pin":"1","net":"+3V3","role":""},{"pin":"2","net":"GND","role":""},{"pin":"3","net":"GND","role":""},{"pin":"4","net":"GND","role":""},{"pin":"5","net":"GND","role":""},{"pin":"6","net":"PWM_16","role":""},{"pin":"7","net":"PWM_17","role":""},{"pin":"8","net":null,"role":"no connect (intentional)"},{"pin":"9","net":"PWM_19","role":""},{"pin":"10","net":null,"role":"no connect (intentional)"},{"pin":"11","net":"PWM_21","role":""},{"pin":"12","net":null,"role":"no connect (intentional)"},{"pin":"13","net":null,"role":"no connect (intentional)"},{"pin":"14","net":"GND","role":""},{"pin":"15","net":null,"role":"no connect (intentional)"},{"pin":"16","net":null,"role":"no connect (intentional)"},{"pin":"17","net":null,"role":"no connect (intentional)"},{"pin":"18","net":null,"role":"no connect (intentional)"},{"pin":"19","net":"PWM_20","role":""},{"pin":"20","net":"PWM_18","role":""},{"pin":"21","net":null,"role":"no connect (intentional)"},{"pin":"22","net":null,"role":"no connect (intentional)"},{"pin":"23","net":"PCA_OE","role":""},{"pin":"24","net":"GND","role":""},{"pin":"25","net":"GND","role":""},{"pin":"26","net":"I2C_SCL","role":""},{"pin":"27","net":"I2C_SDA","role":""},{"pin":"28","net":"+3V3","role":""}],"sources":[{"label":"Primary source","url":"https://www.nxp.com/docs/en/data-sheet/PCA9685.pdf","context":"Rev4 2015-04-16; pin map and Tables7/12 reviewed"}]},"U4":{"family":"unique","claims":[{"kind":"documented","evidence":"intended","text":"This board powers the smart motors and talks to them over CAN. It does not implement the motors' internal drive electronics.","basis":"ENGINEERING-CONTEXT (control paths)"},{"kind":"documented","evidence":"intended","text":"The interface contract gives the motors CAN identifiers 0x141 for pan and 0x142 for tilt, at a nominal 1 Mbit/s.","basis":"engineering-history (interface contract) and ENGINEERING-CONTEXT"}],"open":["Bus signal integrity, cable topology and radio immunity with everything switching are unmeasured."],"related":["U1","U16","R20","R21","R22","JP1","J12","J13","C20","C21","C22"],"assembly":[],"name":"CAN transceiver","circuit":"can","here":"Translates the controller's logic-level CAN_TX and CAN_RX into the differential pair CAN_H and CAN_L that leaves the board on the two motor connectors. It runs from +5V for the bus side and takes +3V3 on its logic-reference pin so it speaks the controller's voltage.","how":"CAN sends each bit as the difference between two wires rather than as a voltage against ground, so interference that hits both wires equally cancels out. That is why it survives motor cabling. The transceiver is the part that drives and reads that differential pair.","sheet":4,"bom":13,"nets":[{"pin":"1","net":"CAN_TX","role":""},{"pin":"2","net":"GND","role":""},{"pin":"3","net":"+5V","role":""},{"pin":"4","net":"CAN_RX","role":""},{"pin":"5","net":"+3V3","role":""},{"pin":"6","net":"CAN_L","role":""},{"pin":"7","net":"CAN_H","role":""},{"pin":"8","net":"CAN_STB","role":""}],"sources":[{"label":"Primary source","url":"https://www.ti.com/lit/ds/symlink/tcan1042h-q1.pdf","context":"Primary device/pin functions reviewed"}]},"U5":{"family":"unique","claims":[{"kind":"documented","evidence":"intended","text":"Only pin 11 changed in the supply-fall correction, from LIGHT_ENABLE_SAFE to LIGHT_REQUEST_ARMED, so the arming decision happens before the supervisor qualifies it.","basis":"engineering-history/rev_a_inhibit_correction.md"},{"kind":"documented","evidence":"intended","text":"Spotlight PWM polarity is positive through these gates and must not inherit the ambient channels' open-drain inversion.","basis":"engineering-history/firmware_port_map.md"}],"open":[],"related":["U19","U18","U6","U13","J17","R5","R4","U7","U8","U9"],"assembly":["TSSOP-14 on 0.65 mm pitch."],"name":"Quad AND gate: ARM and the spotlight PWMs","circuit":"gating","here":"Does two jobs. One gate combines the firmware's LIGHT_ENABLE with the physical ARM switch to produce LIGHT_REQUEST_ARMED. The other three gate each spotlight request against LIGHT_ENABLE_SAFE, so SPOT1_PWM, SPOT2_PWM and SPOT3_PWM only reach the drivers as SPOT1_CTRL, SPOT2_CTRL and SPOT3_CTRL while the board is genuinely safe to light.","how":"An AND gate's output is high only when both its inputs are high. Putting the physical switch and the software request into an AND gate means neither alone can turn the lights on -- the hardware enforces it whatever the firmware does. The spotlight PWM signals keep their normal polarity through these gates; the open-drain inversion applies only to the ambient channels.","sheet":2,"bom":11,"nets":[{"pin":"1","net":"SPOT1_PWM","role":""},{"pin":"2","net":"LIGHT_ENABLE_SAFE","role":""},{"pin":"3","net":"SPOT1_CTRL","role":""},{"pin":"4","net":"SPOT2_PWM","role":""},{"pin":"5","net":"LIGHT_ENABLE_SAFE","role":""},{"pin":"6","net":"SPOT2_CTRL","role":""},{"pin":"7","net":"GND","role":""},{"pin":"8","net":"SPOT3_CTRL","role":""},{"pin":"9","net":"SPOT3_PWM","role":""},{"pin":"10","net":"LIGHT_ENABLE_SAFE","role":""},{"pin":"11","net":"LIGHT_REQUEST_ARMED","role":""},{"pin":"12","net":"LIGHT_ENABLE","role":""},{"pin":"13","net":"ARM","role":""},{"pin":"14","net":"+3V3","role":""}],"sources":[{"label":"Primary source","url":"https://www.ti.com/lit/ds/symlink/sn74lvc08a.pdf","context":"Primary pin functions and operating limits reviewed"}]},"U6":{"family":"unique","claims":[{"kind":"documented","evidence":"intended","text":"Pin 1 is deliberately unconnected.","basis":"board.json pins for U6"}],"open":[],"related":["U2","U3","R6","U19","C5"],"assembly":[],"name":"Inverter for the expanders' output-enable","circuit":"gating","here":"Turns LIGHT_ENABLE_SAFE into PCA_OE. The expanders' output-enable is active-low, so this inverter makes 'safe to light' mean 'outputs enabled' and, more importantly, makes the loss of SAFE disable every ambient output at once.","how":"An inverter outputs the opposite of its input. It is needed because the enable signal is asserted high while the expanders' control pin is asserted low. Pairing it with R6, which holds PCA_OE high by default, means the ambient outputs are disabled unless something actively enables them.","sheet":2,"bom":12,"nets":[{"pin":"1","net":null,"role":"no connect (intentional)"},{"pin":"2","net":"LIGHT_ENABLE_SAFE","role":""},{"pin":"3","net":"GND","role":""},{"pin":"4","net":"PCA_OE","role":""},{"pin":"5","net":"+3V3","role":""}],"sources":[{"label":"Primary source","url":"https://www.ti.com/lit/ds/symlink/sn74lvc1g04.pdf","context":"Primary pin functions and operating limits reviewed"}]},"U7":{"family":"spot_driver","claims":[{"kind":"documented","evidence":"intended","text":"A 0.300 Ohm sense resistor sets a nominal 333 mA per channel.","basis":"engineering-history/power_review.md"},{"kind":"documented","evidence":"modelled-current","text":"With the datasheet's 96-104 mV sense window and a 1 % resistor, the room-temperature average lands in a 0.317-0.350 A band. That is arithmetic from the datasheet, not a measurement.","basis":"engineering-history/power_review.md"},{"kind":"documented","evidence":"intended","text":"Each channel's LED-minus returns only to its own inductor. It is not system ground and must never be joined to another channel's return.","basis":"hardware-current/engineering/design_parts.json"}],"open":["Actual LED current, ripple, startup overshoot and inductor temperature are unmeasured."],"related":["R523","L502","D502","R526","J9","C519","C520"],"assembly":[],"name":"Spotlight 1 driver","circuit":"spot","here":"The constant-current driver for spotlight LED pair 1. Pin 5 takes the gated 24 V rail (V24_SPOT), pin 4 senses the current through R523, pin 1 is the switching node SPOT1_SW, and pin 3 is the enable input SPOT1_CTRL, which only goes high when the firmware asks and SAFE agrees.","how":"An LED's brightness follows its current, not its voltage, and a small voltage change makes a large current change, so LEDs are driven with a controlled current. This part is a hysteretic buck: it switches its internal transistor on until the voltage across the sense resistor reaches an upper threshold, then off until it falls to a lower one. The inductor carries the current smoothly through both phases and the catch diode gives it a path while the switch is off.","sheet":17,"bom":64,"nets":[{"pin":"1","net":"SPOT1_SW","role":""},{"pin":"2","net":"GND","role":""},{"pin":"3","net":"SPOT1_CTRL","role":""},{"pin":"4","net":"SPOT1_LED_PLUS","role":""},{"pin":"5","net":"V24_SPOT","role":""}],"sources":[{"label":"Primary source","url":"https://www.diodes.com/datasheet/download/AL8860.pdf","context":"DS39014 Rev.8-2, April 2026"}]},"U8":{"family":"spot_driver","claims":[{"kind":"documented","evidence":"intended","text":"A 0.300 Ohm sense resistor sets a nominal 333 mA per channel.","basis":"engineering-history/power_review.md"},{"kind":"documented","evidence":"modelled-current","text":"With the datasheet's 96-104 mV sense window and a 1 % resistor, the room-temperature average lands in a 0.317-0.350 A band. That is arithmetic from the datasheet, not a measurement.","basis":"engineering-history/power_review.md"},{"kind":"documented","evidence":"intended","text":"Each channel's LED-minus returns only to its own inductor. It is not system ground and must never be joined to another channel's return.","basis":"hardware-current/engineering/design_parts.json"}],"open":["Actual LED current, ripple, startup overshoot and inductor temperature are unmeasured."],"related":["R524","L503","D503","R527","J10","C521","C522"],"assembly":[],"name":"Spotlight 2 driver","circuit":"spot","here":"The constant-current driver for spotlight LED pair 2. Pin 5 takes the gated 24 V rail (V24_SPOT), pin 4 senses the current through R524, pin 1 is the switching node SPOT2_SW, and pin 3 is the enable input SPOT2_CTRL, which only goes high when the firmware asks and SAFE agrees.","how":"An LED's brightness follows its current, not its voltage, and a small voltage change makes a large current change, so LEDs are driven with a controlled current. This part is a hysteretic buck: it switches its internal transistor on until the voltage across the sense resistor reaches an upper threshold, then off until it falls to a lower one. The inductor carries the current smoothly through both phases and the catch diode gives it a path while the switch is off.","sheet":17,"bom":64,"nets":[{"pin":"1","net":"SPOT2_SW","role":""},{"pin":"2","net":"GND","role":""},{"pin":"3","net":"SPOT2_CTRL","role":""},{"pin":"4","net":"SPOT2_LED_PLUS","role":""},{"pin":"5","net":"V24_SPOT","role":""}],"sources":[{"label":"Primary source","url":"https://www.diodes.com/datasheet/download/AL8860.pdf","context":"DS39014 Rev.8-2, April 2026"}]},"U9":{"family":"spot_driver","claims":[{"kind":"documented","evidence":"intended","text":"A 0.300 Ohm sense resistor sets a nominal 333 mA per channel.","basis":"engineering-history/power_review.md"},{"kind":"documented","evidence":"modelled-current","text":"With the datasheet's 96-104 mV sense window and a 1 % resistor, the room-temperature average lands in a 0.317-0.350 A band. That is arithmetic from the datasheet, not a measurement.","basis":"engineering-history/power_review.md"},{"kind":"documented","evidence":"intended","text":"Each channel's LED-minus returns only to its own inductor. It is not system ground and must never be joined to another channel's return.","basis":"hardware-current/engineering/design_parts.json"}],"open":["Actual LED current, ripple, startup overshoot and inductor temperature are unmeasured."],"related":["R525","L504","D504","R528","J11","C523","C524"],"assembly":[],"name":"Spotlight 3 driver","circuit":"spot","here":"The constant-current driver for spotlight LED pair 3. Pin 5 takes the gated 24 V rail (V24_SPOT), pin 4 senses the current through R525, pin 1 is the switching node SPOT3_SW, and pin 3 is the enable input SPOT3_CTRL, which only goes high when the firmware asks and SAFE agrees.","how":"An LED's brightness follows its current, not its voltage, and a small voltage change makes a large current change, so LEDs are driven with a controlled current. This part is a hysteretic buck: it switches its internal transistor on until the voltage across the sense resistor reaches an upper threshold, then off until it falls to a lower one. The inductor carries the current smoothly through both phases and the catch diode gives it a path while the switch is off.","sheet":17,"bom":64,"nets":[{"pin":"1","net":"SPOT3_SW","role":""},{"pin":"2","net":"GND","role":""},{"pin":"3","net":"SPOT3_CTRL","role":""},{"pin":"4","net":"SPOT3_LED_PLUS","role":""},{"pin":"5","net":"V24_SPOT","role":""}],"sources":[{"label":"Primary source","url":"https://www.diodes.com/datasheet/download/AL8860.pdf","context":"DS39014 Rev.8-2, April 2026"}]},"U10":{"family":"unique","claims":[{"kind":"documented","evidence":"intended","text":"The 5 V budget is about 0.8 A in total, counting the 3.3 V converter's input draw and the CAN transceiver. That is not 0.8 A of spare accessory power.","basis":"hardware-current/engineering (power review)"},{"kind":"documented","evidence":"intended","text":"The 400 kHz adjustable variant, with its enable tied to the input as the datasheet prescribes. No USB supply is connected to this rail.","basis":"hardware-current/engineering/design_parts.json (U10 note)"}],"open":["The coupled startup of this converter and the 3.3 V converter was never qualified: the exact vendor model would not run in the available simulator.","A high-capacitance startup sensitivity requests a 1.526 A source peak in the isolated model. That does not predict this converter tripping; the real coupled behaviour is a bench question."],"related":["L500","C506","C507","C508","C509","C510","C511","R510","R511","R512","U11","F11"],"assembly":["SO PowerPAD-8 with a thermal pad and eight 0.2 mm vias, four of them beneath the paste. The factory's via treatment for that pad is a declared hold point -- ordinary mask tenting is not evidence of a sealed, solderable surface."],"name":"24 V to 5 V converter","circuit":"buck5","here":"Makes the +5V rail from V24_LOGIC, the fused logic branch. It switches through BUCK5_SW into L500, senses its output through the R510/R511 divider on BUCK5_FB, and reports readiness on BUCK5_PGOOD.","how":"A buck converter chops its input on and off rapidly and lets an inductor and capacitor average the result into a lower, steady voltage. Because it switches rather than burning off the difference as heat, it wastes far less energy than a linear regulator -- which matters when stepping 24 V down.","sheet":16,"bom":49,"nets":[{"pin":"1","net":"GND","role":""},{"pin":"2","net":"V24_LOGIC","role":""},{"pin":"3","net":"V24_LOGIC","role":""},{"pin":"4","net":"BUCK5_PGOOD","role":""},{"pin":"5","net":"BUCK5_FB","role":""},{"pin":"6","net":"BUCK5_VCC","role":""},{"pin":"7","net":"BUCK5_BOOT","role":""},{"pin":"8","net":"BUCK5_SW","role":""},{"pin":"9","net":"GND","role":""}],"sources":[{"label":"Primary source","url":"https://www.ti.com/lit/ds/symlink/lmr36510.pdf","context":"LMR36510 Rev B; DDA0008B drawing 4214849/B, September 2025, PDF pp.37-39 visually inspected"}]},"U11":{"family":"unique","claims":[{"kind":"documented","evidence":"intended","text":"The fixed 3.3 V variant: its feedback pin is grounded and the output-sense pin sits on the regulated rail. There is no feedback divider.","basis":"hardware-current/engineering/design_parts.json (U11 note)"},{"kind":"documented","evidence":"intended","text":"The design reserves 0.6 A on the 3.3 V rail, within a 1 A ceiling for the part.","basis":"hardware-current/engineering/design_parts.json"}],"open":["Five corrected isolated cases passed the declared rail screen in simulation, but the coupled startup with the 5 V converter was not qualified."],"related":["L501","C512","C513","R513","U10","U18"],"assembly":["WSON-8, 2 x 2 mm, with a thermal pad."],"name":"5 V to 3.3 V converter","circuit":"buck3","here":"Makes +3V3 -- the rail the controller, both expanders, all the logic and the temperature sensor run from -- out of +5V. It switches through BUCK3_SW into L501 and senses its own output directly, reporting readiness on BUCK3_PGOOD.","how":"Another buck converter, but a fixed-output version: instead of an external feedback divider it senses the rail directly through its output-sense pin, so there is no divider to get wrong.","sheet":16,"bom":54,"nets":[{"pin":"1","net":"GND","role":""},{"pin":"2","net":"+5V","role":""},{"pin":"3","net":"+5V","role":""},{"pin":"4","net":"GND","role":""},{"pin":"5","net":"GND","role":""},{"pin":"6","net":"+3V3","role":""},{"pin":"7","net":"BUCK3_SW","role":""},{"pin":"8","net":"BUCK3_PGOOD","role":""},{"pin":"9","net":"GND","role":""}],"sources":[{"label":"Primary source","url":"https://www.ti.com/lit/ds/symlink/tps62160.pdf","context":"SLVSAM2E, May 2017"}]},"U12":{"family":"unique","claims":[{"kind":"documented","evidence":"modelled-current","text":"R500 at 4.02 kOhm sets a functional threshold of roughly 4.14-4.86 A once tolerance is included. That is a calculation from the datasheet, and it is not a guaranteed instantaneous maximum or a statement about the board's ampacity.","basis":"engineering-history/power_review.md"},{"kind":"documented","evidence":"intended","text":"Its mode pin is left open, which selects current-limit-then-latch-off. After a latched fault the part is reset only by grounding the reset test point; never power its shutdown pin from the downstream 3.3 V rail.","basis":"hardware-current/engineering/design_parts.json (U12 notes)"},{"kind":"documented","evidence":"intended","text":"The power-good output goes only to its pull-up R509. It does not reach the controller and does not gate anything downstream.","basis":"board.json nets for EFUSE_PGOOD"},{"kind":"documented","evidence":"modelled-current","text":"C503 gives a typical 49.9 ms output ramp, which charges the nominal 1000 uF bulk capacitor at roughly 0.48 A. A very low supply current limit can therefore prevent normal startup, and that is not evidence of a board fault.","basis":"engineering-history/first_hardware_checklist.md"}],"open":["Pins 11 and 19 to 24 are deliberately unconnected.","No powered test of the protection behaviour has been performed."],"related":["Q500","Q501","R500","R501","R502","R503","R504","R505","R506","R507","R508","R509","C503","C504","TP8"],"assembly":["VQFN-24 on 0.5 mm pitch with a thermal pad; the pad is defined by eleven physical shapes, nine of which are thermal vias."],"name":"24 V eFuse (the main protection chip)","circuit":"input","here":"The board's real protection. It takes VIN24_RPP, controls the reverse-blocking transistor through EFUSE_BGATE and EFUSE_DRV, and produces the protected bus V24_BUS on pins 17 and 18. Its behaviour is programmed by the resistors around it: R500 sets the current limit, R501/R502 the undervoltage lockout, R503/R504 the overvoltage cutoff, R505/R506 the power-good threshold, and C503 the output ramp rate.","how":"An eFuse is an electronic circuit breaker. Unlike a wire fuse it limits current actively, ramps its output up gently so a large capacitance does not draw a huge inrush, watches for over- and undervoltage, and reports what it sees. Where a fuse is a one-shot weak link, this is a switch with opinions -- and here it is the part that decides what the board may draw.","sheet":15,"bom":35,"nets":[{"pin":"1","net":"VIN24_RPP","role":""},{"pin":"2","net":"VIN24_RPP","role":""},{"pin":"3","net":"EFUSE_BGATE","role":""},{"pin":"4","net":"EFUSE_DRV","role":""},{"pin":"5","net":"VIN24_FUSED","role":""},{"pin":"6","net":"EFUSE_UVLO","role":""},{"pin":"7","net":"EFUSE_OVP","role":""},{"pin":"8","net":"GND","role":""},{"pin":"9","net":"EFUSE_DVDT","role":""},{"pin":"10","net":"EFUSE_ILIM","role":""},{"pin":"11","net":null,"role":"no connect (intentional)"},{"pin":"12","net":"EFUSE_RESET_N","role":""},{"pin":"13","net":"EFUSE_IMON","role":""},{"pin":"14","net":"EFUSE_FLT_N","role":""},{"pin":"15","net":"EFUSE_PGTH","role":""},{"pin":"16","net":"EFUSE_PGOOD","role":""},{"pin":"17","net":"V24_BUS","role":""},{"pin":"18","net":"V24_BUS","role":""},{"pin":"19","net":null,"role":"no connect (intentional)"},{"pin":"20","net":null,"role":"no connect (intentional)"},{"pin":"21","net":null,"role":"no connect (intentional)"},{"pin":"22","net":null,"role":"no connect (intentional)"},{"pin":"23","net":null,"role":"no connect (intentional)"},{"pin":"24","net":null,"role":"no connect (intentional)"},{"pin":"25","net":"GND","role":""}],"sources":[{"label":"Primary source","url":"https://www.ti.com/lit/ds/symlink/tps2663.pdf","context":"SLVSE94G, June 2024"}]},"U13":{"family":"unique","claims":[{"kind":"documented","evidence":"intended","text":"This part guarantees ON-low behaviour only at 0.35 V or below, which is why the project's inhibit criterion is at most 0.35 V on TP7 with 0.30 V as the measurement target -- not the 0.5 V an earlier checklist used.","basis":"engineering-history/partial_power_review.md and rev_a_inhibit_correction.md"},{"kind":"documented","evidence":"intended","text":"The quick-discharge resistance is a typical value, not guaranteed across a loss of supply.","basis":"hardware-current/engineering/design_parts.json (U13 note)"}],"open":["Pin 4 is deliberately unconnected.","Gate decay time without the quick-discharge path is a calculation, not an observation."],"related":["U19","U5","C514","C515","R514","U2","U3"],"assembly":[],"name":"Gate-bias load switch","circuit":"gating","here":"Supplies GATE_BIAS, the rail that feeds all 21 ambient gate pull-ups, from +3V3. Its enable pin is LIGHT_ENABLE_SAFE, so when the board is not safe to light the gate pull-ups have no supply at all and no ambient channel can be switched on, whatever the expanders do.","how":"A load switch is a transistor with control circuitry that connects or disconnects a rail on command. This one also has a quick-output-discharge path that actively drains the rail when it switches off, so the gates do not float down slowly through leakage.","sheet":16,"bom":56,"nets":[{"pin":"1","net":"+3V3","role":""},{"pin":"2","net":"GND","role":""},{"pin":"3","net":"LIGHT_ENABLE_SAFE","role":""},{"pin":"4","net":null,"role":"no connect (intentional)"},{"pin":"5","net":"GATE_BIAS","role":""},{"pin":"6","net":"GATE_BIAS","role":""}],"sources":[{"label":"Primary source","url":"https://www.ti.com/lit/ds/symlink/tps22919.pdf","context":"SLVSEN5B, May 2019"}]},"U14":{"family":"unique","claims":[{"kind":"documented","evidence":"modelled-current","text":"R515 at 24.3 kOhm sets a current limit of about 0.494 A nominal.","basis":"engineering-history/power_review.md"},{"kind":"documented","evidence":"intended","text":"Its return, SPOT_RTN, is a separate island and is never tied directly to ground. The exposed pad under this part is on that return, not on ground -- an important difference when inspecting or reworking it.","basis":"hardware-current/engineering/design_parts.json (U14 notes)"},{"kind":"documented","evidence":"intended","text":"Its shutdown pin shares the 4.7 kOhm pull-down R514 with the gate-bias switch, so both halves of the lighting inhibit fail to the same safe state.","basis":"engineering-history/rev_a_inhibit_correction.md"}],"open":["Pins 4 and 13 are deliberately unconnected.","The inhibit thresholds are datasheet limits and calculations; none has been observed."],"related":["U19","R514","R515","R516","R517","R518","R519","R520","R521","C516","C517","C518","D501","U500","U7","U8","U9","TP9"],"assembly":["HTSSOP-16 with a 3.3 x 3.3 mm thermal pad and six 0.2 mm vias beneath the paste. The factory's via treatment and mask registration at the pad's chamfers are declared hold points."],"name":"Spotlight supply eFuse","circuit":"spot_supply","here":"Gates the spotlight rail. It takes V24_BUS and produces V24_SPOT for the three drivers, but only while LIGHT_ENABLE_SAFE is asserted on its shutdown pin -- so the spotlights lose their supply entirely, not just their control signal, when the board is not safe to light.","how":"The same kind of electronic breaker as the main eFuse, with its own current limit set by R515 and its own overvoltage cutoff from R517/R518. Cutting the supply as well as the signal means a software fault or a stuck driver cannot light the spotlights while the board is disarmed.","sheet":17,"bom":58,"nets":[{"pin":"1","net":"V24_BUS","role":""},{"pin":"2","net":"V24_BUS","role":""},{"pin":"3","net":"SPOT_RTN","role":""},{"pin":"4","net":null,"role":"no connect (intentional)"},{"pin":"5","net":"SPOT_EFUSE_OVP","role":""},{"pin":"6","net":"SPOT_EFUSE_MODE","role":""},{"pin":"7","net":"LIGHT_ENABLE_SAFE","role":""},{"pin":"8","net":"SPOT_RTN","role":""},{"pin":"9","net":"GND","role":""},{"pin":"10","net":"SPOT_EFUSE_IMON","role":""},{"pin":"11","net":"SPOT_EFUSE_ILIM","role":""},{"pin":"12","net":"SPOT_EFUSE_DVDT","role":""},{"pin":"13","net":null,"role":"no connect (intentional)"},{"pin":"14","net":"SPOT_EFUSE_FLT_N","role":""},{"pin":"15","net":"V24_SPOT","role":""},{"pin":"16","net":"V24_SPOT","role":""},{"pin":"17","net":"SPOT_RTN","role":""}],"sources":[{"label":"Primary source","url":"https://www.ti.com/lit/ds/symlink/tps2660.pdf","context":"SLVSDG2G, December 2019"}]},"U15":{"family":"unique","claims":[{"kind":"documented","evidence":"simulated-historical","text":"This replaced a part whose internal steering diodes tied to a local 5 V rail. In that arrangement a host driving the data lines could push current into an absent local supply; a simulation of the old circuit put roughly 2.5 V on a rail that should have been dead. The replacement references ground only, so that path does not exist.","basis":"engineering-history/rev_a_usb_correction.md","bound_to":"8959b828","source_file":"engineering-history/partial_power_review.md"}],"open":["Pins 1 and 3 are deliberately unconnected.","Electrostatic-discharge immunity has not been tested."],"related":["J14","U17","D30"],"assembly":[],"name":"USB data-line protection","circuit":"usb","here":"Clamps transients on the host-side data pair USB_DM_HOST and USB_DP_HOST to ground, right where the cable arrives. It sits on the connector side of the data mux, so it protects the port whether or not the controller's own data lines are currently connected.","how":"A pair of low-capacitance suppression diodes referenced to ground only. Low capacitance matters: anything hung on a high-speed data line slows its edges. This part has no supply pin, and that is the point -- see the claim below.","sheet":5,"bom":19,"nets":[{"pin":"1","net":null,"role":"no connect (intentional)"},{"pin":"2","net":"GND","role":""},{"pin":"3","net":null,"role":"no connect (intentional)"},{"pin":"4","net":"USB_DM_HOST","role":""},{"pin":"5","net":"USB_DP_HOST","role":""}],"sources":[{"label":"Primary source","url":"https://www.ti.com/lit/ds/symlink/esds302.pdf","context":"Primary exact IO and NC package map; USB correction review; accessed2026-09-06"}]},"U16":{"family":"unique","claims":[],"open":["Electrostatic-discharge immunity has not been tested."],"related":["U4","J12","J13"],"assembly":[],"name":"CAN bus transient clamp","circuit":"can","here":"A protection array across CAN_H and CAN_L to ground, guarding the transceiver's bus pins where the harness leaves the board through the two motor connectors. Bus wiring runs outside the enclosure alongside motor power, so it is the most exposed pair on the board.","how":"Two suppression diodes referenced to ground. In normal operation they are invisible to the bus; during a transient they conduct and hold the bus pins inside the transceiver's limits. They reference ground only -- no rail feeds them.","sheet":4,"bom":14,"nets":[{"pin":"1","net":"CAN_H","role":""},{"pin":"2","net":"CAN_L","role":""},{"pin":"3","net":"GND","role":""}],"sources":[{"label":"Primary source","url":"https://www.onsemi.com/download/data-sheet/pdf/nup2105l-d.pdf","context":"NUP2105L/D Rev12 June2026"}]},"U17":{"family":"unique","claims":[{"kind":"documented","evidence":"intended","text":"Select low chooses the grounded parking pair; select high chooses the host pair; the output-enable pin high isolates both. It is powered from the host's bus voltage, not from local rails.","basis":"hardware-current/engineering/design_parts.json (U17 note)"},{"kind":"documented","evidence":"modelled-current","text":"The select divider's calculated corners are at most 0.347 V for a definite low and at least 1.719 V for a definite high, against the part's 0.39 V and 0.77 V limits.","basis":"engineering-history/rev_a_usb_correction.md"}],"open":["The part's behaviour while its supply is between 0 and 1.62 V is not specified, so the partial-power region is reasoned about rather than guaranteed.","Switch-overlap behaviour during selection was a sensitivity case in the model, not a vendor guarantee."],"related":["J14","U15","U18","R37","R38","R39","R41","C31","R32","R33","Q30"],"assembly":["UQFN-10, 1.4 x 1.8 mm on 0.4 mm pitch: the finest-pitch part on the board. Its local mask webs and stencil registration are a declared review item, and its lands must not be silently modified."],"name":"USB data multiplexer","circuit":"usb","here":"Decides what the controller's USB data lines are connected to. While READY_3V3 is low -- meaning the 3.3 V rail is not qualified -- it parks USB_DP and USB_DM on the grounded resistors R37 and R38. Once the rail is qualified, the divider R41/R39 raises USB_READY_SELECT and it connects the host pair instead. It is powered from USB_VBUS, not from a board rail.","how":"An analogue switch: it physically connects one of two pairs of pins to a common pair, like a railway point. Parking the controller's data lines on grounded resistors until its supply is healthy stops a plugged-in host from feeding current into a board that is not powered.","sheet":5,"bom":29,"nets":[{"pin":"1","net":"USB_DP","role":""},{"pin":"2","net":"USB_DM","role":""},{"pin":"3","net":"GND","role":""},{"pin":"4","net":"USB_DM_PARK","role":""},{"pin":"5","net":"USB_DP_PARK","role":""},{"pin":"6","net":"USB_DM_HOST","role":""},{"pin":"7","net":"USB_DP_HOST","role":""},{"pin":"8","net":"USB_PRESENT_N","role":""},{"pin":"9","net":"USB_VBUS","role":""},{"pin":"10","net":"USB_READY_SELECT","role":""}],"sources":[{"label":"Primary source","url":"https://www.ti.com/lit/ds/symlink/tmuxhs221f.pdf","context":"Primary RSW0010A drawing and USB correction review; accessed2026-09-06"}]},"U18":{"family":"unique","claims":[{"kind":"documented","evidence":"intended","text":"Its delay pin is left open, which selects the datasheet's 12-28 ms delay.","basis":"board.json pins for U18 and the part's datasheet"},{"kind":"documented","evidence":"modelled-current","text":"The trip point is nominally 3.07 V, and a conservative maximum rising threshold of 3.193951 V leaves only about 24 mV above the radio module's 3.0 V minimum. That is arithmetic on datasheet limits, not a measurement.","basis":"engineering-history/rev_a_inhibit_correction.md"}],"open":["Real falling-edge timing and reset recovery are hardware observations that have not been made.","No finite detector can guarantee a response before 3.0 V for an arbitrarily fast collapse."],"related":["U19","R42","U1","C44","U17","R41","R39"],"assembly":[],"name":"3.3 V supply supervisor","circuit":"gating","here":"Watches +3V3 and releases READY_3V3 only when the rail is genuinely up. That signal qualifies the lighting request at U19, tells the USB data mux it may connect the host through the R41/R39 divider, and reaches the controller's reset node through R42.","how":"A supervisor is a small comparator with a reference and a delay: it holds its output low while the rail is below its threshold and for a set time after it rises, then lets go. Ordinary logic gates behave unpredictably while their own supply is collapsing, which is exactly when a lighting circuit must stay off, so the decision is given to a part designed for it.","sheet":3,"bom":32,"nets":[{"pin":"1","net":"READY_3V3","role":""},{"pin":"2","net":"GND","role":""},{"pin":"3","net":"+3V3","role":""},{"pin":"4","net":null,"role":"no connect (intentional)"},{"pin":"5","net":"+3V3","role":""},{"pin":"6","net":"+3V3","role":""}],"sources":[{"label":"Primary source","url":"https://www.ti.com/lit/ds/symlink/tps3808.pdf","context":"SBVS050N August2026; section6 and DBV pinmap; accessed2026-09-06"}]},"U19":{"family":"unique","claims":[{"kind":"documented","evidence":"intended","text":"This configurable gate is wired as an AND: pin 1 is IN1 tied to ground and pin 3 is IN0. An earlier note that swapped those two pins is superseded.","basis":"engineering-history/rev_a_inhibit_correction.md"},{"kind":"documented","evidence":"intended","text":"SAFE gates lighting only. It does not remove motor power, and it is not an independent watchdog on the controller. Firmware must reinitialise and be armed again after a supply fault; no lighting command may be silently restored.","basis":"hardware-current/engineering (inhibit correction) and ENGINEERING-CONTEXT"}],"open":["The gate's behaviour is not guaranteed by its datasheet while the 3.3 V rail is between 0 and 1.65 V, so the collapse region is reasoned about rather than specified."],"related":["U18","U5","U13","U14","U6","R514","C45"],"assembly":[],"name":"Schmitt AND gate: the SAFE decision","circuit":"gating","here":"Produces LIGHT_ENABLE_SAFE from LIGHT_REQUEST_ARMED and READY_3V3. This is the single node the whole lighting side hangs on: it enables the gate-bias switch, releases the spotlight supply through U14's shutdown pin, and, inverted by U6, enables the expanders' outputs.","how":"A Schmitt-trigger input has different thresholds for rising and falling edges, so a slow or noisy input still produces one clean transition instead of chattering. That matters here because the reset network feeding this gate rises slowly. A plain AND gate was rejected for exactly this reason: its input-transition-rate limit is violated by that slow edge.","sheet":3,"bom":33,"nets":[{"pin":"1","net":"GND","role":""},{"pin":"2","net":"GND","role":""},{"pin":"3","net":"LIGHT_REQUEST_ARMED","role":""},{"pin":"4","net":"LIGHT_ENABLE_SAFE","role":""},{"pin":"5","net":"+3V3","role":""},{"pin":"6","net":"READY_3V3","role":""}],"sources":[{"label":"Primary source","url":"https://www.ti.com/lit/ds/symlink/sn74lvc1g97.pdf","context":"SCES416N January2017; Schmitt AND configuration; DBV pinmap; accessed2026-09-06"}]},"U20":{"family":"unique","claims":[{"kind":"documented","evidence":"intended","text":"The implemented part is a digital I2C sensor, not a thermistor. Read register pointer 0 and interpret the signed top 12 bits at 0.0625 C per count in normal mode.","basis":"hardware-current/engineering/enclosure_addendum.md"},{"kind":"documented","evidence":"intended","text":"Leaving the alert output floating is a documented deviation: the manufacturer's preference for an unused alert is to ground it. The deviation is recorded rather than the hardware changed.","basis":"hardware-current/engineering/enclosure_addendum.md and ENGINEERING-CONTEXT"},{"kind":"documented","evidence":"intended","text":"It is not an independent overtemperature cutoff. Nothing switches off because of it; firmware decides what to do with the reading.","basis":"ENGINEERING-CONTEXT"}],"open":["Compare it against a thermocouple during enclosure testing. Its relationship to the actual hot spots is unknown until then."],"related":["U1","C46","U2","U3"],"assembly":["SOT-563, 1.6 x 1.2 mm."],"name":"Board temperature sensor","circuit":"sensor","here":"A digital temperature sensor on the existing I2C bus at address 0x48, sharing I2C_SDA and I2C_SCL with the two PWM expanders. Its address pin is tied to ground to select that address, and its alert output is deliberately left unconnected.","how":"It measures its own package temperature and reports a number over the bus, so no analogue input is needed. That means it reads the temperature of the PCB near where it sits -- not the air in the room, and not the temperature of the hottest part.","sheet":19,"bom":34,"nets":[{"pin":"1","net":"I2C_SCL","role":""},{"pin":"2","net":"GND","role":""},{"pin":"3","net":null,"role":"no connect (intentional)"},{"pin":"4","net":"GND","role":""},{"pin":"5","net":"+3V3","role":""},{"pin":"6","net":"I2C_SDA","role":""}],"sources":[{"label":"Primary source","url":"https://www.ti.com/lit/ds/symlink/tmp112.pdf","context":"Public manufacturer data reviewed 2026-09-06; exact stock/quotation unconfirmed"}]},"U500":{"family":"unique","claims":[{"kind":"documented","evidence":"intended","text":"27 V standoff, 35 V maximum clamp at 35 A for an 8/20 us pulse, and a 12 mA DC breakdown limit that excludes continuous braking.","basis":"engineering-history/power_review.md"}],"open":[],"related":["U14","D501","U7","U8","U9","U501"],"assembly":["WSON-6 with a thermal pad."],"name":"Flat clamp on the spotlight rail","circuit":"spot_supply","here":"A 27 V transient protector across V24_SPOT and ground, beside the spotlight drivers' decoupling. The drivers have a 40 V-class input limit, so a 53 V clamp at the board input is not enough on its own.","how":"Same flat-clamp behaviour as the one on the bus: it holds a much tighter voltage across its current range than an ordinary suppressor, keeping transients inside the drivers' rating.","sheet":18,"bom":68,"nets":[{"pin":"1","net":"GND","role":""},{"pin":"2","net":"GND","role":""},{"pin":"3","net":"GND","role":""},{"pin":"4","net":"V24_SPOT","role":""},{"pin":"5","net":"V24_SPOT","role":""},{"pin":"6","net":"V24_SPOT","role":""},{"pin":"7","net":"GND","role":""}],"sources":[{"label":"Primary source","url":"https://www.ti.com/lit/ds/symlink/tvs2700.pdf","context":"SLVSED6A March2018; package addendum10-Nov-2025; tape data30-Apr-2026"},{"label":"Sourcing evidence","url":"https://www.ti.com/product/TVS2700/part-details/TVS2700DRVR","context":""}]},"U501":{"family":"unique","claims":[{"kind":"documented","evidence":"intended","text":"Rated 27 V standoff with a 35 V maximum clamp at 35 A for an 8/20 us pulse. Its DC breakdown current limit is 12 mA, which explicitly excludes continuous braking.","basis":"engineering-history/power_review.md and bom_audit.md"}],"open":["Motor regeneration remains a separate qualification. This part is a pulse device."],"related":["C504","D505","U500","D500"],"assembly":["WSON-6 with a thermal pad; the pad and all ground pins need short, wide connections and dense stitching."],"name":"Flat clamp on the protected bus","circuit":"bus","here":"A 27 V transient protector across V24_BUS and ground, placed beside the bulk capacitor and the motor branch entry -- the point where a motor transient would arrive.","how":"An ordinary suppressor's clamping voltage rises steeply with current; a flat-clamp device holds a much tighter voltage across its whole current range. That matters here because the parts downstream have a 40 V-class limit and the input suppressor alone clamps at 53 V.","sheet":16,"bom":68,"nets":[{"pin":"1","net":"GND","role":""},{"pin":"2","net":"GND","role":""},{"pin":"3","net":"GND","role":""},{"pin":"4","net":"V24_BUS","role":""},{"pin":"5","net":"V24_BUS","role":""},{"pin":"6","net":"V24_BUS","role":""},{"pin":"7","net":"GND","role":""}],"sources":[{"label":"Primary source","url":"https://www.ti.com/lit/ds/symlink/tvs2700.pdf","context":"SLVSED6A March2018; package addendum10-Nov-2025; tape data30-Apr-2026"},{"label":"Sourcing evidence","url":"https://www.ti.com/product/TVS2700/part-details/TVS2700DRVR","context":""}]}},"sheets":{"1":{"plain":"The hierarchy map. It has no components of its own -- each box is one of the other 18 sheets, labelled with its file name.","start_with":["Start here to see how the design is divided"]},"2":{"plain":"The controller: the radio module, its reset and boot circuitry, the UART service port and the ARM input.","start_with":["U1","S1","S2","J17"]},"3":{"plain":"The power sequence: the supervisor and the gate that decides when lighting is allowed.","start_with":["U18","U19"]},"4":{"plain":"CAN: the transceiver, its protection, the termination option and both motor connectors.","start_with":["U4","R22","J12","J13"]},"5":{"plain":"The USB-C island: connector, protection, presence sensing and the data multiplexer.","start_with":["J14","U17","U15","Q30"]},"6":{"plain":"The two PWM expanders and the I2C bus that reaches them.","start_with":["U2","U3","R7","R8"]},"7":{"plain":"Ambient zone 1: three channels, each a gate network and a low-side switch.","start_with":["Q101","R101","J2"]},"8":{"plain":"Ambient zone 2, identical in shape to zone 1.","start_with":["Q104","J3"]},"9":{"plain":"Ambient zone 3, identical in shape to zone 1.","start_with":["Q107","J4"]},"10":{"plain":"Ambient zone 4, identical in shape to zone 1.","start_with":["Q110","J5"]},"11":{"plain":"Ambient zone 5, identical in shape to zone 1.","start_with":["Q113","J6"]},"12":{"plain":"Ambient zone 6, identical in shape to zone 1.","start_with":["Q116","J7"]},"13":{"plain":"Ambient zone 7 -- the bottom ring. Its connector mates downward from the back face.","start_with":["Q119","J8"]},"14":{"plain":"The test points: every pad bring-up expects to probe.","start_with":["TP1","TP7"]},"15":{"plain":"Power, part 1: the input protection chain and the branch fuses.","start_with":["U12","Q500","F1","C504"]},"16":{"plain":"Power, part 2: the 24 V input terminal and the two switching converters.","start_with":["J1","U10","U11"]},"17":{"plain":"Spotlight, part 1: the gated supply and the three constant-current driver cells.","start_with":["U14","U7","U8","U9"]},"18":{"plain":"Spotlight, part 2: the driver outputs and their connectors.","start_with":["J9","J10","J11"]},"19":{"plain":"Monitoring and expansion: the temperature sensor, the expansion pads, the boot-strap probes and the mounting holes.","start_with":["U20","J18","H1"]}}}