Skip to content

Add the eight registry parts the Class A irrigation controller needs - #326

Open
JeffMboya wants to merge 5 commits into
absmach:mainfrom
JeffMboya:SYN-325-irrigation-parts
Open

JeffMboya wants to merge 5 commits into
absmach:mainfrom
JeffMboya:SYN-325-irrigation-parts

Conversation

@JeffMboya

@JeffMboya JeffMboya commented Oct 26, 2026 •

Copy link
Copy Markdown
Contributor

What type of PR is this?

This is a feature.

What does this do?

Adds stm32g030k8_lqfp32, mp2307dn_buck_ep, sht30_dis, apds9301_real, eeprom_24lc256_sn, xtal_8mhz_3225_4p, ao3400a_nmos, header_1x5.

Which issue(s) does this PR fix/relate to?

Resolves #325. Related Issue #39, #263.

Have you included tests for your changes?

Yes. class_a_irrigation_parts.rs covers seven parts and the MP2307 limits; registry_integrity checks duplicate MPNs.

Did you document any new/modified feature?

No. Each part's TOML describes its pins and footprint.

Notes

reviewed_by JeffMboya, 28 Oct; #51 covers shipped parts. mp2307_buck: 4.75 to 23 V, 3 A. #270 stacks on this.

@JeffMboya
JeffMboya force-pushed the SYN-325-irrigation-parts branch from 77c8652 to f1f8431 Compare October 27, 2026 06:05
@JeffMboya JeffMboya changed the title Add the nine registry parts the Class A irrigation controller needs Add the eight registry parts the Class A irrigation controller needs Oct 27, 2026

@SammyOina SammyOina left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Changes requested — the eight Tier-1 parts are still unreviewed

All added entries have an empty provenance.reviewed_by: stm32g030k8_lqfp32, mp2307dn_buck_ep, sht30_dis, apds9301_real, eeprom_24lc256_sn, xtal_8mhz_3225_4p, ao3400a_nmos, and header_1x5.

python3 scripts/check_registry_reviews.py origin/main HEAD reports all eight as failures, and synth registry doctor reports W-SYNTH-PART-UNVERIFIED. Manufacturing export rejects boards using these parts unless the unverified override is explicitly supplied.

Please verify each symbol pinout, footprint/pad mapping, and datasheet metadata, then set a real [provenance].reviewed_by value (and reviewed_at where supported). If these parts are intentionally not reviewed yet, move them to the Tier-2/user registry instead of shipping them under registry/parts. The registry integrity tests pass, but they do not replace this review gate.

@JeffMboya

Copy link
Copy Markdown
Contributor Author

@SammyOina reviewed_by needs a human attestation (#51); I won't self-attest. Say if you want these moved to Tier-2 until then.

@JeffMboya
JeffMboya force-pushed the SYN-325-irrigation-parts branch from f1f8431 to 6b71931 Compare October 27, 2026 15:51

@SammyOina SammyOina left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Changes requested

Jeff’s review of these parts is accepted as the reviewer record. The following technical issues still need correction before approval.

[P1] Add datasheet provenance for all eight parts

None of the new entries includes [provenance].datasheet_url:

  • stm32g030k8_lqfp32
  • mp2307dn_buck_ep
  • sht30_dis
  • apds9301_real
  • eeprom_24lc256_sn
  • xtal_8mhz_3225_4p
  • ao3400a_nmos
  • header_1x5

This violates the shipped-part contract in #51 and leaves qualification with a datasheet provenance gap. Add a source URL for each part under [provenance]; the embedded KiCad symbol datasheet property does not replace registry provenance.

[P1] Complete the MP2307 electrical metadata

mp2307dn_buck_ep has no structured operating conditions, required decoupling, or functional capabilities. Add at least:

  • the 4.75–23 V input range;
  • the 3 A current rating;
  • switch_node on SW;
  • feedback on FB;
  • the required input capacitors;
  • an exposed-pad/GND requirement, since the exposed pad is the regulator’s thermal/electrical GND connection.

The existing mp2307_buck_ep entry in #324 contains substantially more complete metadata; this entry should meet the same standard.

[P1] Do not ship CAD-only qualification data for the Class-A board

The STM32, EEPROM, SHT30, and APDS entries contain symbols and footprints but no operating limits, supply requirements, or decoupling requirements. Add the datasheet-backed electrical metadata Synth needs to produce and check a valid board; importing a KiCad symbol alone does not qualify these parts for the Class-A integration case.

[P2] Preserve the APDS-9301 interrupt electrical type

The KiCad APDS-9301 symbol defines INT as open-collector, but apds9301_real.synth.toml records it as unclassified. Record the correct electrical type so ERC and pull-up requirements are not lost.

[P2] Replace the unverified crystal assumption

xtal_8mhz_3225_4p says its 12 pF load capacitance is only an assumption and asks the user to confirm it against an unspecified part. Select an exact crystal with an MPN and datasheet URL, or keep this generic entry out of the qualification/shipped registry until its load and electrical parameters are verified.

Please add qualification coverage for these requirements rather than relying only on the registry integrity check.

@JeffMboya

Copy link
Copy Markdown
Contributor Author

@SammyOina Fixed in e098052: datasheets, ratings, decoupling, MP2307 roles, APDS open-drain INT, exact 8 pF crystal; tests added.

@SammyOina SammyOina left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Changes requested — registry identities and Class-A electrical metadata are incomplete

The current head has green CI, but GitHub reports the branch as conflicting and the registry data is not ready for the Class-A irrigation controller.

  1. Resolve the merge conflict first. Rebase onto current main, resolve the conflicting registry files, and rerun the complete registry/test suite from the resolved head.

  2. Keep one canonical active identity per physical part. This PR introduces active duplicates of parts already being added elsewhere:

    • mp2307dn_buck_ep duplicates #324's active mp2307_buck_ep with the same MPN, LCSC number, and footprint.
    • eeprom_24lc256_sn duplicates #322's active 24lc256_soic8.
    • header_1x5 overlaps the same part added by #322.

    Keep one canonical active ID for each physical part, mark any compatibility alias obsolete with a substitute, and add a regression test preventing duplicate active MPNs.

  3. Add the missing interface capabilities. sht30_dis, apds9301_real, and eeprom_24lc256_sn define SDA/SCL pins without i2c_sda/i2c_scl capabilities. The STM32 entry also lacks GPIO, I2C, UART, and SPI capabilities. Without these, Synth cannot reliably recognize the buses or prevent invalid assignments. Add the datasheet-backed capabilities and test them.

  4. Complete the MP2307 power-network metadata. mp2307dn_buck_ep marks bs optional and requires only input capacitors. It does not encode the output capacitor or BS–SW bootstrap network required by the converter. Use the complete MP2307 metadata from #324 as the baseline, including exposed-pad semantics and all required decoupling/power-network constraints.

  5. Add structured AO3400A electrical ratings. The MOSFET currently has only a pin map and footprint. Add datasheet-backed operating limits such as VDS, current, and relevant gate-drive/RDS(on) constraints so Synth can reason about its use in the Class-A design.

  6. Model SHT30 ALERT correctly. The interrupt is an open-drain output and requires a pull-up. Record the correct electrical type and add the corresponding validation so ERC does not treat it as an ordinary push-pull output.

The current tests verify loading and a few voltage/decoupling fields, but do not catch duplicate active identities, missing bus capabilities, incomplete MP2307 power requirements, missing MOSFET ratings, or interrupt semantics. These issues must be resolved before this registry contribution is complete.

@JeffMboya
JeffMboya force-pushed the SYN-325-irrigation-parts branch from e098052 to c80065d Compare October 29, 2026 09:52
@JeffMboya

Copy link
Copy Markdown
Contributor Author

@SammyOina c80065d: duplicates removed, bus capabilities from the datasheets, AO3400A ratings, SHT30 ALERT open-drain, duplicate-MPN test added; rebased, CI green.

@JeffMboya
JeffMboya force-pushed the SYN-325-irrigation-parts branch from c80065d to 41a05db Compare October 29, 2026 11:52
@JeffMboya

JeffMboya commented Oct 29, 2026 •

Copy link
Copy Markdown
Contributor Author

@SammyOina correction: my earlier "CI green" was the old head. Rebased as 41a05db; CI is green on it.

@SammyOina SammyOina left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Changes requested

[P1] Resolve the merge conflict before approval. GitHub currently reports this PR as CONFLICTING/DIRTY with main. Please rebase or merge the current main, resolve the conflicts, and rerun the full check suite from the resulting head.

[P2] Cover all eight qualification parts in the dedicated test. class_a_irrigation_parts.rs claims to validate the irrigation controller set, but its IDS list contains only six entries and omits mp2307_buck and 24lc256_soic8. Add both parts to the provenance/qualification assertions, or explicitly link the authoritative tests that cover them, so a future regression cannot leave two requested parts unchecked.

[P2] Remove the silently skipped MCU assertion. The MCU capability test includes PB10 in its expected mapping but converts that case to None, so the expectation is never evaluated. Either assert the actual pins exposed by this package or remove PB10 from the expected table; the test should not contain an expectation that can never fail.

[P2] Reconcile the MP2307 current metadata. The canonical mp2307_buck description says the device is a 3 A regulator, while operating_conditions.max_current_ma is 800.0. Please reconcile these values against the datasheet and document whether 800 mA is an intentional derated operating limit; otherwise the registry presents contradictory qualification data.

[P3] Update the PR description. It says there are no tests, but this PR adds registry tests. Please update the testing section to describe the actual coverage.

After the conflict is resolved and all eight parts are covered by the qualification checks, this should be ready for another review if CI remains green.

…hored

The final run of the Class A irrigation controller imported four parts from
KiCad's symbols and authored four. Each carries the footprint_dimensions the
registry requires, taken from its footprint's courtyard in the installed KiCad
library: the importer and synth_author_part write none for four of them.
header_1x5 is byte for byte the part the I2C sensor node's PR adds.
reviewed_by and reviewed_at are set on each part's provenance, from the review done on 2026-10-28, so a design built from them no longer raises W-SYNTH-PART-UNVERIFIED. The shipped seed parts are not covered; that stays with absmach#51.
… parts

datasheet_url under [provenance] for all eight, supply ranges and
decoupling for the MCU, EEPROM, SHT30 and APDS-9301, MP2307DN current
rating, switch node, feedback and exposed pad, APDS INT as open drain,
and the crystal is now the NDK NX3225GD-8MHZ-STD-CRA-3 (8 pF), with tests.
…pabilities are checked

Drops the duplicate MP2307DN and 24LC256 entries for the canonical mp2307_buck_ep
and 24lc256_soic8, gives the MCU, SHT30 and APDS-9301 their bus capabilities
from the datasheets' tables, the AO3400A its VDS, ID, power and gate limits, and
SHT30 ALERT its open-drain-low type. A test refuses two active parts with one
manufacturer part number.
@JeffMboya
JeffMboya force-pushed the SYN-325-irrigation-parts branch from 41a05db to 0cc210b Compare October 29, 2026 23:52
@JeffMboya

Copy link
Copy Markdown
Contributor Author

@SammyOina 0cc210b: rebased, all eight parts tested, PB10 assertion gone, MP2307 limits match datasheet; main CI red #391.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Add the eight registry parts the Class A irrigation controller needs

2 participants