Repository navigation
Conversation
The registry's light sensor is `bh1750_lux`, which names a footprint KiCad does not ship and declares no symbol at all, so no board can export with it. The Class-A irrigation controller needs an ambient light reading, so it needs a part that resolves. Broadcom APDS-9301, I2C, six pads. `Sensor_Optical:APDS-9301` and `OptoDevice:Broadcom_APDS-9301`, both stock in KiCad 10.0.6 and both checked before this file was written. Pin numbers, names and electrical types are the symbol's rather than transcribed by hand, and the footprint is the one that symbol names in its own `Footprint` property. `adr_sel` is `required`: the address is 0x29, 0x39 or 0x49 depending on how it is strapped, and a floating one has no defined address at all. `int` is not required — the device works polled. `registry qualify` reports only `E-SYNTH-QUAL-008`, no provenance, which every shipped part reports. Carved out of the five-board bundle in absmach#196, where a registry addition did not belong.
6a5d23b to
c20f606
Compare
`courtyard_rect` matched `(fp_rect` and `(fp_line` blocks on `F.CrtYd` and nothing else, and all three of KiCad's mechanical footprints draw their courtyard as a single `fp_circle`: MountingHole:MountingHole_2.5mm fp_circle r 2.75 -> 5.5 mm across TestPoint:TestPoint_Pad_D1.5mm fp_circle r 1.25 -> 2.5 mm across Fiducial:Fiducial_1mm_Mask2mm fp_circle r 1.25 -> 2.5 mm across So the lookup returned `None` for each of them and `pcb_courtyard_geometry_for_part` fell through to the declared `footprint_dimensions` -- which for a mounting hole is the 2.5 mm *hole*, not the 5.5 mm footprint. The placer then packed neighbours 1.5 mm a side too close and `kicad-cli pcb drc` reported `courtyards_overlap`, which it was right to do: the first routed run of the standalone `protected_power_entry` had four of them, every one a mounting hole on top of another part, with H1 alone colliding with three. A circle on `F.CrtYd` now contributes the bbox of `center` +/- `r`, where the radius is the distance from `(center ...)` to the `(end ...)` point on the circumference. Strictly additive: a footprint that already draws a rectangle or a line loop is unaffected, and the only parts in the registry that reach the new branch are those three. The parsing is split out as `courtyard_rect_from_text` so it can be tested over a footprint's text rather than an installed library, which is what the four new tests do -- including that the 5.0 mm silkscreen circle in the same footprint does not widen the answer, and that a footprint with no courtyard still returns `None`. Not fixed here, and left on absmach#273: the fallback drops `courtyard_margin_mm` altogether, so any footprint with an `fp_poly` courtyard still reserves its body rather than its courtyard. Proven by raising this part's declared margin from 0.25 mm to 1.5 mm and getting a byte-identical placement. That branch moves many more parts than these three and wants its own measurement. One test moves with it. `a_net_less_board_feature_takes_the_border_and_not_the _middle` allowed a feature 6 mm from the circuit envelope, and that constant silently encoded a 2.5 mm hole: `place_board_features` searches a band of `max(w, h) + gap` and packs against courtyards the placer inflates by its extra margin, while the test measures the raw courtyard, so the furthest a correctly-bordered feature can legally sit grows with the part -- about 5.25 mm at 2.5 mm, about 8.25 mm at 5.5 mm. The tolerance is now the feature's own extent plus 3 mm, which still catches what the test is for: placed with the circuit rather than against it, these landed at the quadrant centres, 17 mm in.
…ootprint `mounting_hole_m2_5`, `testpoint_pad_1_5` and `fiducial_1mm` each declared a 0.25 mm courtyard margin, which is not what their footprints draw: mounting_hole_m2_5 2.5 mm hole, 5.5 mm courtyard -> 1.5 mm a side testpoint_pad_1_5 1.5 mm pad, 2.5 mm courtyard -> 0.5 mm a side fiducial_1mm 1.0 mm mark, 2.5 mm courtyard -> 0.75 mm a side Measured from the installed footprints: the `F.CrtYd` circles are radius 2.75 mm, 1.25 mm and 1.25 mm. This is documentation rather than behaviour. The geometry now comes from the footprint itself, so nothing reads these numbers for these three parts -- which is exactly why they were able to drift this far. They are corrected so that the declared figure agrees with the drawn one, and so the fallback does something sensible if a footprint ever goes missing.
c20f606 to
421b176
Compare
It was a correct protection chain that nobody could bring up, integrate or
switch. 23 components to 42, and every addition answers something a reviewer
would have asked.
The one real electrical defect first. U1's COMP and SS pins were unconnected.
Both are declared `passive` so nothing complained, but COMP is the MP2307's
error-amplifier output: with no compensation network the loop has no dominant
pole, so the converter rings or refuses to regulate. R6 6.2k and C8 2.2nF to
ground, which is the datasheet's typical network for a 5 V output -- stated in
the source as typical rather than measured, because it is. C9 100nF on SS sets
the start ramp so the buck does not current-limit into its own output
capacitance.
Then the things that make it a module rather than a schematic:
- Four rails declared with `power`, so the regulator-range and load-budget
rules have something to check and the schematic names V12_PROT, V5, V5_SW
and V3V3 instead of numbering them.
- J2 is a 1x4 header, not a 1x3: switched 5 V, GND, enable, GND. A
downstream system can now shed the load the TPS22918 exists to switch, and
the enable sits between two grounds so a short to either neighbour turns
the output off rather than on.
- R7 on QOD discharges the output when the switch opens. Without it a
capacitive load holds the rail up after shutdown and the next soft-start
begins from an unknown voltage.
- D4 and R8 12k indicate the protected rail, behind the FET and the fuse, so
the indicator is dark on reverse polarity and dark on a tripped fuse --
the two faults a person needs to see. D3 on 3V3 stays.
- U3 is an LP5907, not an AMS1117. The housekeeping rail drives an indicator
and whatever logic a carrier adds, so it wants tens of milliamps, not 800,
and an AMS1117 declared at its full rating puts its own junction near
107 C through 60 C/W. W-SYNTH-THERMAL-001 is gone with it.
- C10 and C11 bypass the switch input and the output at the connector, which
is where a downstream load sees the impedance. Both E-SYNTH-POWER-004
findings cleared.
- Five test points, one per rail plus a ground reference, and four M2.5
mounting holes hinted to the corners with two fiducials.
- J1 on the left edge and J2 on the right: power in one side and out the
other, which is how a module gets wired into a system and what keeps both
connectors clear of the corner holes.
`synth validate` reports zero errors. E-SYNTH-POWER-001 twice,
E-SYNTH-POWER-006 and W-SYNTH-THERMAL-001 were all present before and are all
gone -- not suppressed, answered.
Measured on this tree:
18 of 18 nets closed, none open
582.3 mm over 179 segments and 32 vias
kicad-cli pcb drc: 0 errors, 0 unconnected, 0 warnings
routing verdict: validation_failed, not fabrication-ready
Not fabrication-ready, and for one reason: a single stitching via lands inside
U2.2, the load switch's ground pad, and this board declares the standard tier
which does not fill vias. Same net, so it shorts nothing -- it is the ground
pour reaching the bottom layer -- but an unfilled via in a pad wicks solder,
so refusing it is right. `requires via_in_pad` is deliberately not declared:
asking a two-layer power front end to be built on a filled-via process for one
ground via is a real cost for no electrical gain. The README says what a
reviewer's two options are.
The four `courtyards_overlap` errors this board reported before are gone with
the courtyard fix in absmach#266: the mechanical parts were reserving their feature
size instead of their courtyard.
What else is left is in the README's Limitations, and the one worth reading is
absmach#275: four of this board's parts declare a 5 V 100 mA envelope on a 12 V
1.5 A rail, which is placeholder registry data rather than a datasheet figure.
Until that is corrected the board's current capability cannot be checked by
anything but a reader.
Changes requested — APDS-9301 registry entry needs correctionCI is green, and the focused circular-courtyard tests pass. However, the new APDS-9301 part is not yet modeled accurately enough to merge. Blocking
Follow-up quality issues
The circular-courtyard implementation itself looks reasonable; these changes are needed to make the new part electrically correct and qualification-ready. |
Found while correcting the Class-A boards against review. Each is a statement in the registry that a datasheet contradicts, and each was hiding a real finding. `tps22918_loadswitch` declared 3.5-15 V and 800 mA. TI's SLVSD76C gives 1 V to 5.5 V and 2 A continuous; the figures that stood were a linear regulator's. It stayed invisible until a board declared its rails with `power`, at which point a 3.3 V rail into the switch became an E-SYNTH-POWER-009 error that was the registry's fault, not the board's. `rp2350` carried a comment saying its numbers "match the referenced MCU_RaspberryPi:RP2040 symbol" and that "the symbol+footprint are RP2040". Neither was true of the map. Compared pad for pad against the installed RP2350A symbol, hidden stacked supply pins included, all 61 agree: IOVDD on 1, 11, 20, 30, 38 and 45, DVDD on 6, 23 and 39, the exposed pad on 61. An RP2040 is a 56-pin QFN with DVDD on 23 and 50. absmach#152 was filed from the sentence rather than from the pads, and a board README then repeated it as "laid out to the wrong device". The comment is replaced with what was checked. `smaj15a_tvs` is the 12 V transient clamp the Class-C board already carries, needed here so the irrigation controller stops clamping a 12 V rail with a 5 V array. Its comment called the MP2307's input rating 28 V; Rev 1.9 gives 26 V absolute and 23 V operating. 24.4 V still clears 26 V, with less margin than the file claimed, and the comment now says so.
A review found the 3V3 rail would have been 4.0 V, the reverse-polarity FET conducting on a reversed supply, a 5 V clamp across a 12 V rail, and every declared netclass assigned to nothing. All of that was right, and the datasheet turned up more. The buck. R2/R9 were 10k over 3k01. The MP2307's output is 0.925 x (R1 + R2) / R2, so that is 0.925 x (1 + 10/3.01) = 4.0 V, above the STM32G030's 3.6 V maximum, on a rail feeding the MCU and three sensors. Rev 1.9's own Table 1 gives 26.1k over 10k for 3.3 V: 3.34 V, and 3.25 to 3.43 V across the feedback tolerance. C4 sat between FB and COMP, which is not compensation; the pin description calls for a series RC to GND. R17 = 2k32 and C4 = 15nF come from the datasheet's procedure (22 uF output, 20 kHz crossover, GEA 820 uA/V, GCS 5.2 A/V), calculated and not measured. EN went straight to the 12 V rail; the datasheet's absolute maximum for every pin but IN, SW and BS is 6 V and its pin description says to pull EN up to IN through 100k, so R18 does. C22 on SS adds the soft start. The reverse-polarity FET had its source on the input. A P-FET's body diode runs drain to source, so that pointed it from the load back to the input and a reversed supply forward-biased it through the load: the part meant to block reverse polarity conducted it. Drain is now on the input, source on the protected rail. D1 was gate to ground, which does nothing for Vgs, and the Si2301's limit is +/-8 V; it is now a 5V1 zener from source to gate. D2 was the 5 V `tvs_array_5v` on a 12 V rail. It is an SMAJ15A, 15 V standoff, 24.4 V clamp, which is under the MP2307's 26 V absolute maximum. Rails are declared with `power`, which is what made the registry's TPS22918 envelope (an LDO's 3.5-15 V) show up as an error, fixed in absmach#266. Netclasses are assigned: V12 and both valve returns route at 0.6 mm, measured per net. The I2C class asks for 0.15 mm and the router draws 0.2 mm; the exported project states 0.15, so the router is what does not honour it. Schematic. Twelve decoupling capacitors sat 47-330 mm from their ICs and the region boxes overlapped, because a pinned layout strung passives in rows far from the parts they serve. Capacitors now live in the group of the IC they decouple, each group is its own band, and the capacitors sit beside their ICs. E-SYNTH-SCHEM-003 went 12 to 0 and -013 11 to 0. The junction warning (-005) is still reported once. Measured, three consecutive runs with fabrication output: 37 of 37 nets, 0 open, 0 DRC errors or warnings, no via in a pad, fabrication-ready. The schematic, BOM, symbol library, position file and project are byte-identical; the copper and all 67 placements are identical; the routed board and the two copper Gerbers are not (absmach#277, and KiCad's embedded timestamps). Not fixed, and said so in the README: W-SYNTH-DRC-016 still reports 106 layer changes with no ground-return via. A 4-layer stackup with ground on every layer only takes it to 81. Filed as absmach#280. The BOM still has 19 components without a distributor identity; part numbers were not invented. No independent PCB review has happened.
Twelve parts carried no distributor identity, so a BOM built from them could not be ordered and W-SYNTH-SUPPLY-002 fired on every board that used them. Each now names a manufacturer part number and, where one exists, the LCSC number that JLCPCB also uses. Chosen to match the footprint the part already names, not the other way round. jst_ph_4pin S4B-PH-K-S(LF)(SN) C157926 jst_ph_3pin S3B-PH-K-S(LF)(SN) C157929 jst_xh_2pin S2B-XH-A-1(LF)(SN) C163035 the -A-1 its footprint names mp2307_buck MP2307DN-LF-Z C18921 tps22918_loadswitch TPS22918DBVR C131941 n_mosfet_irlml6244 IRLML6244TRPBF C143946 p_mosfet_si2301 SI2301CDS-T1-GE3 C10487 d_zener_5v1 BZT52C5V1-TP C78728 spst_tactile PTS645SM43SMTR92 LFS C221880 xtal_8mhz X32258MOB4SI C2682775 8 MHz, 12 pF load header_1x4 PZ254V-11-04P C492403 apds9301_lux APDS-9301-020 (none) The APDS-9301 has a manufacturer number and no LCSC number: LCSC lists the APDS-9300-020 (C691994), which is a different device, and no listing for the 9301 turned up. A wrong number is worse than a missing one. Two generic parts could not take a single product. `polyfuse` is used at 500 mA, 1.1 A and 1.5 A on different boards, and `l_generic_1210` at 6.8 uH and 10 uH, so one part number would put the wrong product on some BOMs. They stay as they are for anything still using them, and five per-value parts are added: polyfuse_500ma MF-NSMF050-2 C75464 1206, 13.2 V polyfuse_1r1a MF-MSMF110/16-2 C210834 1812, 16 V polyfuse_1r5a 1812L150/16DR C207070 1812, 16 V l_1210_10uh CBC3225T100MR C90315 1210, 900 mA rated l_1210_6r8uh CBC3225T6R8MR C223222 1210, 940 mA rated The 1.5 A fuse is Littelfuse and not Bourns: Bourns' MF-MSMF150-2 is rated only 6 V, which a 12 V rail would exceed. The existing `polyfuse` also has a footprint, Fuse_Bourns_MF-RG300, that is a radial 3 A-hold device, which no board using it asks for. All seventeen pass `synth registry qualify` apart from provenance (absmach#51). The numbers come from LCSC and JLCPCB listings and datasheet-style summaries, not from a purchase: confirm stock and the exact suffix before ordering.
The BOM had nineteen components, of fourteen distinct parts, with no manufacturer or distributor identity, and the review asked for it to be orderable. The registry now names a product on each (absmach#266). Two needed more than a number: the generic polyfuse and the generic 1210 inductor are used at different values on different boards, so one product could not be right for all of them. This board now uses per-value parts: F1 polyfuse_1r1a MF-MSMF110/16-2 1.1 A hold, 16 V, 1812 C210834 L1 l_1210_10uh CBC3225T100MR 10 uH, 900 mA rated C90315 The fuse is no longer the radial 3 A-hold footprint the generic carried, which none of the board's values asked for. That moved F1, and with it a failure that nothing but Synth's own validator reported: the router ended the input net's track at (11.8, 51.0), 0.04 mm outside the rounded corner of J1's pad 1. kicad-cli accepts it, because the 0.2 mm track's width overlaps the copper; the independent validator wants the end point on the pad and refused the package. F1's pinned y is now the row of J1's pad 1, so the track runs straight. W-SYNTH-SUPPLY-002 no longer fires on this board at all. Measured, three consecutive runs with fabrication output: 37 of 37 nets, 0 open, 0 DRC errors or warnings, no via in a pad, fabrication-ready; 574 segments and 105 vias. Schematic, sub-sheets, BOM, position file and project are byte-identical, the copper and all 67 placements are identical, and the routed board and the two copper Gerbers are not (absmach#277, and KiCad's embedded timestamps). Eighteen of twenty Gerber layers and both drill files are identical once the timestamps are removed. Two things the new part numbers made visible, written into the README. The IRLML6244 is a 20 V part and the SMAJ15A clamps this rail at 24.4 V, so a surge the clamp passes is across an off valve FET at more than its rating; that is not changed here. And the inductor's 900 mA is a rated current, not a saturation current. Still not fixed: W-SYNTH-DRC-016 (absmach#280) and an independent PCB review.
A review found the 3V3 rail would have been 4.0 V, the reverse-polarity FET conducting on a reversed supply, a 5 V clamp across a 12 V rail, and every declared netclass assigned to nothing. All of that was right, and the datasheet turned up more. The buck. R2/R9 were 10k over 3k01. The MP2307's output is 0.925 x (R1 + R2) / R2, so that is 0.925 x (1 + 10/3.01) = 4.0 V, above the STM32G030's 3.6 V maximum, on a rail feeding the MCU and three sensors. Rev 1.9's own Table 1 gives 26.1k over 10k for 3.3 V: 3.34 V, and 3.25 to 3.43 V across the feedback tolerance. C4 sat between FB and COMP, which is not compensation; the pin description calls for a series RC to GND. R17 = 2k32 and C4 = 15nF come from the datasheet's procedure (22 uF output, 20 kHz crossover, GEA 820 uA/V, GCS 5.2 A/V), calculated and not measured. EN went straight to the 12 V rail; the datasheet's absolute maximum for every pin but IN, SW and BS is 6 V and its pin description says to pull EN up to IN through 100k, so R18 does. C22 on SS adds the soft start. The reverse-polarity FET had its source on the input. A P-FET's body diode runs drain to source, so that pointed it from the load back to the input and a reversed supply forward-biased it through the load: the part meant to block reverse polarity conducted it. Drain is now on the input, source on the protected rail. D1 was gate to ground, which does nothing for Vgs, and the Si2301's limit is +/-8 V; it is now a 5V1 zener from source to gate. D2 was the 5 V `tvs_array_5v` on a 12 V rail. It is an SMAJ15A, 15 V standoff, 24.4 V clamp, which is under the MP2307's 26 V absolute maximum. Rails are declared with `power`, which is what made the registry's TPS22918 envelope (an LDO's 3.5-15 V) show up as an error, fixed in absmach#266. Netclasses are assigned: V12 and both valve returns route at 0.6 mm, measured per net. The I2C class asks for 0.15 mm and the router draws 0.2 mm; the exported project states 0.15, so the router is what does not honour it. Schematic. Twelve decoupling capacitors sat 47-330 mm from their ICs and the region boxes overlapped, because a pinned layout strung passives in rows far from the parts they serve. Capacitors now live in the group of the IC they decouple, each group is its own band, and the capacitors sit beside their ICs. E-SYNTH-SCHEM-003 went 12 to 0 and -013 11 to 0. The junction warning (-005) is still reported once. Measured, three consecutive runs with fabrication output: 37 of 37 nets, 0 open, 0 DRC errors or warnings, no via in a pad, fabrication-ready. The schematic, BOM, symbol library, position file and project are byte-identical; the copper and all 67 placements are identical; the routed board and the two copper Gerbers are not (absmach#277, and KiCad's embedded timestamps). Not fixed, and said so in the README: W-SYNTH-DRC-016 still reports 106 layer changes with no ground-return via. A 4-layer stackup with ground on every layer only takes it to 81. Filed as absmach#280. The BOM still has 19 components without a distributor identity; part numbers were not invented. No independent PCB review has happened.
The BOM had nineteen components, of fourteen distinct parts, with no manufacturer or distributor identity, and the review asked for it to be orderable. The registry now names a product on each (absmach#266). Two needed more than a number: the generic polyfuse and the generic 1210 inductor are used at different values on different boards, so one product could not be right for all of them. This board now uses per-value parts: F1 polyfuse_1r1a MF-MSMF110/16-2 1.1 A hold, 16 V, 1812 C210834 L1 l_1210_10uh CBC3225T100MR 10 uH, 900 mA rated C90315 The fuse is no longer the radial 3 A-hold footprint the generic carried, which none of the board's values asked for. That moved F1, and with it a failure that nothing but Synth's own validator reported: the router ended the input net's track at (11.8, 51.0), 0.04 mm outside the rounded corner of J1's pad 1. kicad-cli accepts it, because the 0.2 mm track's width overlaps the copper; the independent validator wants the end point on the pad and refused the package. F1's pinned y is now the row of J1's pad 1, so the track runs straight. W-SYNTH-SUPPLY-002 no longer fires on this board at all. Measured, three consecutive runs with fabrication output: 37 of 37 nets, 0 open, 0 DRC errors or warnings, no via in a pad, fabrication-ready; 574 segments and 105 vias. Schematic, sub-sheets, BOM, position file and project are byte-identical, the copper and all 67 placements are identical, and the routed board and the two copper Gerbers are not (absmach#277, and KiCad's embedded timestamps). Eighteen of twenty Gerber layers and both drill files are identical once the timestamps are removed. Two things the new part numbers made visible, written into the README. The IRLML6244 is a 20 V part and the SMAJ15A clamps this rail at 24.4 V, so a surge the clamp passes is across an off valve FET at more than its rating; that is not changed here. And the inductor's 900 mA is a rated current, not a saturation current. Still not fixed: W-SYNTH-DRC-016 (absmach#280) and an independent PCB review.
It was a correct protection chain that nobody could bring up, integrate or
switch. 23 components to 42, and every addition answers something a reviewer
would have asked.
The one real electrical defect first. U1's COMP and SS pins were unconnected.
Both are declared `passive` so nothing complained, but COMP is the MP2307's
error-amplifier output: with no compensation network the loop has no dominant
pole, so the converter rings or refuses to regulate. R6 6.2k and C8 2.2nF to
ground, which is the datasheet's typical network for a 5 V output -- stated in
the source as typical rather than measured, because it is. C9 100nF on SS sets
the start ramp so the buck does not current-limit into its own output
capacitance.
Then the things that make it a module rather than a schematic:
- Four rails declared with `power`, so the regulator-range and load-budget
rules have something to check and the schematic names V12_PROT, V5, V5_SW
and V3V3 instead of numbering them.
- J2 is a 1x4 header, not a 1x3: switched 5 V, GND, enable, GND. A
downstream system can now shed the load the TPS22918 exists to switch, and
the enable sits between two grounds so a short to either neighbour turns
the output off rather than on.
- R7 on QOD discharges the output when the switch opens. Without it a
capacitive load holds the rail up after shutdown and the next soft-start
begins from an unknown voltage.
- D4 and R8 12k indicate the protected rail, behind the FET and the fuse, so
the indicator is dark on reverse polarity and dark on a tripped fuse --
the two faults a person needs to see. D3 on 3V3 stays.
- U3 is an LP5907, not an AMS1117. The housekeeping rail drives an indicator
and whatever logic a carrier adds, so it wants tens of milliamps, not 800,
and an AMS1117 declared at its full rating puts its own junction near
107 C through 60 C/W. W-SYNTH-THERMAL-001 is gone with it.
- C10 and C11 bypass the switch input and the output at the connector, which
is where a downstream load sees the impedance. Both E-SYNTH-POWER-004
findings cleared.
- Five test points, one per rail plus a ground reference, and four M2.5
mounting holes hinted to the corners with two fiducials.
- J1 on the left edge and J2 on the right: power in one side and out the
other, which is how a module gets wired into a system and what keeps both
connectors clear of the corner holes.
`synth validate` reports zero errors. E-SYNTH-POWER-001 twice,
E-SYNTH-POWER-006 and W-SYNTH-THERMAL-001 were all present before and are all
gone -- not suppressed, answered.
Measured on this tree:
18 of 18 nets closed, none open
582.3 mm over 179 segments and 32 vias
kicad-cli pcb drc: 0 errors, 0 unconnected, 0 warnings
routing verdict: validation_failed, not fabrication-ready
Not fabrication-ready, and for one reason: a single stitching via lands inside
U2.2, the load switch's ground pad, and this board declares the standard tier
which does not fill vias. Same net, so it shorts nothing -- it is the ground
pour reaching the bottom layer -- but an unfilled via in a pad wicks solder,
so refusing it is right. `requires via_in_pad` is deliberately not declared:
asking a two-layer power front end to be built on a filled-via process for one
ground via is a real cost for no electrical gain. The README says what a
reviewer's two options are.
The four `courtyards_overlap` errors this board reported before are gone with
the courtyard fix in absmach#266: the mechanical parts were reserving their feature
size instead of their courtyard.
What else is left is in the README's Limitations, and the one worth reading is
absmach#275: four of this board's parts declare a 5 V 100 mA envelope on a 12 V
1.5 A rail, which is placeholder registry data rather than a datasheet figure.
Until that is corrected the board's current capability cannot be checked by
anything but a reader.
What type of PR is this?
This is a feature and a bug fix.
What does this do?
Names a product on 17 parts, adds five per-value parts,
smaj15a_tvsandapds9301_lux, and reads circular courtyards.Which issue(s) does this PR fix/relate to?
Resolves #265. Related Issue #39, #152, #273, #275.
Have you included tests for your changes?
Yes. Four over a footprint's text: a circle's bbox, a rectangle unchanged, silkscreen ignored, none found.
Did you document any new/modified features?
No. Parts, a loader fix and corrected figures;
registry/README.mdalready lists the directories.Notes
Also corrects TPS22918's envelope (TI: 1–5.5 V) and a false RP2350 note; its map matches KiCad on all 61 pads.