Skip to content

Catalog exposed connectors and official references for M5 boards - #346

Merged
lovyan03 merged 10 commits into
m5stack:developfrom
ainyan03:exposed_connector_catalog
Oct 12, 2026
Merged

lovyan03 merged 10 commits into
m5stack:developfrom
ainyan03:exposed_connector_catalog

Conversation

@ainyan03

Copy link
Copy Markdown
Contributor

Summary

Adds the user-exposed connectors (headers, sockets, HAT buses, Grove ports, Proto pads, expansion FPC/BTB connectors) and links to the official product pages and schematics to the board specification catalog.

The main purpose is to make the existing validation rule complete: a pin that users can reach through a connector must not be used as an invariant detection class (E_DETECT_CLASS_CONNECTOR). Until now only Port A, M-Bus and a few other ports were described, so most exposed pins were not protected by that rule.

  • One commit per family: StopWatch, Atom, Stick, Stamp, Core, Paper, and the remaining boards, plus commits for product names and connector groups.
  • Every terminal-to-GPIO mapping was taken from the official pin tables, PinMap images or schematics. Values that could not be confirmed were left out rather than guessed. Where official sources disagree, the catalog note states which source was followed.
  • The schema now allows one connector position to reach several GPIOs (e.g. StickC Plus HAT pin 4 = GPIO36/GPIO25), and connector types whose physical pitch is not documented (pitch_mm: null, logical numbering only).
  • Port names port_a..port_e keep their meaning as the M5Unified pin-table contract. Physical ports without a pin-table entry use separate names (e.g. StamPLC grove_c, Station grove_a2), and ports that belong to a base or sub-board stay in the accessory definitions.
  • Product names (official_name) were checked against the official product page titles; matching names are marked official_name_verified, and differing spellings were corrected. Entries that describe several products (Basic/Gray/Fire, Station Bat/485) or a module sold inside a set (Atom PSRAM) are left unverified.
  • Optional connector.group marks separate sockets that form one physical set (Atom bottom headers, StopWatch rear sockets, Stamp pin rows) so tools can show them together. Each socket keeps its own terminal numbering and first pin.
  • Generated C++ (src/board_detect/m5/generated/) is unchanged.

Not covered

  • USB connectors, battery connectors, antennas, internal test pads, and terminals that are not directly connected to a GPIO (isolated inputs, relay contacts, CAN/RS485 terminal blocks).
  • Boards whose official documentation is not yet available are unchanged.

Testing

  • extras/board_spec: npm test (216 tests, also with M5Unified absent) and npm run check at every commit.
  • Each family was cross-checked against the official sources independently of the edit.

Accept resolved endpoints with multiple GPIOs on one terminal. Allow terminal catalogs to declare that physical pitch and layout are unverified.
Describe documented Grove, rear sockets and Proto terminals. Keep library port contracts and record conflicts between official pin maps and schematics. Use logical ordering where physical geometry is unverified.
Describe the exposed HAT sockets and documented power directions. Record shared or unused GPIO terminal restrictions and differences between specifications and printed labels.
Describe documented pads, expansion buses and LCD footprints using logical terminal order where physical geometry is unverified. Preserve library port contracts and register StamPLC PORT.C as a physical connector. Leave products without published documentation unchanged and record official-source discrepancies.
Describe CoreInk sockets and Tab5 side and STAMP expansion terminals. Keep accessory connectors on their accessories and preserve library port aliases. Document power-rail connections and base conditions. Leave products without published documentation unchanged.
Represent PaperS3 with its actual HC1.25 connector and 3.3V supply while preserving logical port numbering. Record published references and power-control conditions. Leave undocumented products unchanged.
Describe documented headers, sockets, Chain ports and PoE-P4 expansion FPCs. Preserve library contracts while distinguishing physical sockets and accessory connectors. Record translated voltage levels, unpopulated clock routing and conflicts in official tables. Use logical ordering for unverified geometry and leave unpublished products unchanged.
@lovyan03
lovyan03 merged commit 11871fe into m5stack:develop Oct 12, 2026
26 checks passed
@ainyan03
ainyan03 deleted the exposed_connector_catalog branch October 12, 2026 08:49
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.

2 participants