From 5c75d13425840109c996efc1e3074d6172544b00 Mon Sep 17 00:00:00 2001
From: ainyan03 <205502311+ainyan03@users.noreply.github.com>
Date: Sat, 17 Oct 2026 09:59:35 +0000
Subject: [PATCH] board_spec: stop tracking resolved combinations; print them
on demand
generated/resolved/ held every revision/runtime combination of every board,
fully expanded (87 files, about 34,600 lines). No generator, the firmware or
the editor reads these files: the wiring, spec, pin table and docs generators
and the editor expand the catalog in memory. For most boards the snapshot was
close to a copy of the source JSON, so each catalog edit appeared twice and
had to be regenerated before check would pass.
- check still expands and validates every combination in memory, but no
longer compares against checked-in snapshots. chip and storage, which no
generator reads, are asserted directly for representative boards.
- resolve prints all combinations of a board as one JSON array of
{ combination, board } on stdout. --out
writes the previous per-
combination files for local inspection; no tool reads that export.
- Revision and composition docs, previously written as a side effect of
resolve, are generated by the new emit-docs command (all boards when no file
is given). The other generated outputs are unchanged.
---
extras/board_spec/.gitignore | 1 +
extras/board_spec/README.md | 21 +-
extras/board_spec/cli/spec.js | 75 +-
.../generated/resolved/arduino_nesso_n1.json | 382 ----------
.../resolved/m5airq+epd=gdew0154d67.json | 259 -------
.../resolved/m5airq+epd=gdew0154m09.json | 259 -------
.../generated/resolved/m5atom_psram.json | 263 -------
.../generated/resolved/m5atomlite.json | 194 -----
.../generated/resolved/m5atommatrix.json | 194 -----
.../resolved/m5atoms3+lcd=gc9107.json | 290 --------
.../resolved/m5atoms3+lcd=st7735s.json | 291 --------
.../generated/resolved/m5atoms3lite.json | 218 ------
.../resolved/m5atoms3r+lcd=gc9107.json | 368 ----------
.../resolved/m5atoms3r+lcd=st7735s.json | 369 ----------
.../generated/resolved/m5atoms3rcam.json | 197 -----
.../generated/resolved/m5atoms3rext.json | 353 ---------
.../generated/resolved/m5atoms3u.json | 201 -----
.../generated/resolved/m5atomu.json | 167 -----
.../generated/resolved/m5atomvoice.json | 187 -----
.../generated/resolved/m5atomvoices3r.json | 184 -----
.../generated/resolved/m5capsule.json | 311 --------
.../generated/resolved/m5cardputer.json | 299 --------
.../generated/resolved/m5cardputer_adv.json | 394 ----------
.../generated/resolved/m5chaincaptain.json | 381 ----------
.../board_spec/generated/resolved/m5dial.json | 339 ---------
.../generated/resolved/m5dinmeter.json | 316 --------
.../generated/resolved/m5dualkey.json | 147 ----
.../generated/resolved/m5nanoc6.json | 71 --
.../generated/resolved/m5nanoh2.json | 71 --
.../generated/resolved/m5paper.json | 418 -----------
.../generated/resolved/m5papercolor.json | 424 -----------
.../generated/resolved/m5paperdiy.json | 396 ----------
.../generated/resolved/m5papermono.json | 438 -----------
.../generated/resolved/m5papers3.json | 424 -----------
.../generated/resolved/m5powerhub.json | 218 ------
...ack@from_2020_04_to_v2_5_fire+lcd=ips.json | 562 --------------
...tack@from_2020_04_to_v2_5_fire+lcd=tn.json | 562 --------------
.../m5stack@pre_2020_04_fire+lcd=ips.json | 562 --------------
.../m5stack@pre_2020_04_fire+lcd=tn.json | 562 --------------
.../m5stack@pre_v2_6_basic+lcd=ips.json | 551 --------------
.../m5stack@pre_v2_6_basic+lcd=tn.json | 551 --------------
.../m5stack@pre_v2_6_gray+lcd=ips.json | 551 --------------
.../m5stack@pre_v2_6_gray+lcd=tn.json | 551 --------------
.../m5stack@v2_6_plus_basic+lcd=ips.json | 551 --------------
.../m5stack@v2_6_plus_basic+lcd=tn.json | 551 --------------
.../m5stack@v2_6_plus_fire+lcd=ips.json | 562 --------------
.../m5stack@v2_6_plus_fire+lcd=tn.json | 562 --------------
.../m5stack@v2_6_plus_gray+lcd=ips.json | 551 --------------
.../m5stack@v2_6_plus_gray+lcd=tn.json | 551 --------------
.../resolved/m5stack_core2@v1_0.json | 689 ------------------
.../resolved/m5stack_core2@v1_1.json | 674 -----------------
.../resolved/m5stack_core2@v1_2.json | 689 ------------------
.../resolved/m5stack_core2@v1_3.json | 689 ------------------
.../m5stack_coreink+epd=gdew0154d67.json | 425 -----------
.../m5stack_coreink+epd=gdew0154m09.json | 425 -----------
.../resolved/m5stack_corematrix.json | 410 -----------
.../generated/resolved/m5stack_corep4x.json | 414 -----------
.../generated/resolved/m5stack_cores3.json | 580 ---------------
.../generated/resolved/m5stack_cores3se.json | 510 -------------
.../generated/resolved/m5stack_stackchan.json | 528 --------------
.../resolved/m5stack_tab5+lcd=ili9881c.json | 661 -----------------
.../resolved/m5stack_tab5+lcd=st7121.json | 661 -----------------
.../resolved/m5stack_tab5+lcd=st7123.json | 661 -----------------
.../resolved/m5stack_tab5x+lcd=ili9881c.json | 551 --------------
.../resolved/m5stack_tab5x+lcd=st7121.json | 551 --------------
.../resolved/m5stack_tab5x+lcd=st7123.json | 551 --------------
.../generated/resolved/m5stampc3.json | 187 -----
.../generated/resolved/m5stampc3u.json | 179 -----
.../generated/resolved/m5stampc5.json | 242 ------
.../generated/resolved/m5stampc6.json | 11 -
.../generated/resolved/m5stamplc.json | 426 -----------
.../generated/resolved/m5stampp4.json | 590 ---------------
.../generated/resolved/m5stampp4x.json | 11 -
.../generated/resolved/m5stamppico.json | 201 -----
.../generated/resolved/m5stamps3.json | 400 ----------
.../generated/resolved/m5stamps3bat.json | 369 ----------
.../generated/resolved/m5stamps3mini.json | 85 ---
.../generated/resolved/m5station.json | 399 ----------
.../generated/resolved/m5stickc.json | 337 ---------
.../generated/resolved/m5stickcplus.json | 352 ---------
.../generated/resolved/m5stickcplus2.json | 419 -----------
.../generated/resolved/m5sticks3.json | 527 --------------
.../generated/resolved/m5stopwatch.json | 505 -------------
.../generated/resolved/m5timercam.json | 184 -----
.../resolved/m5tough+lcd=ili9342c.json | 669 -----------------
.../resolved/m5tough+lcd=ili9342e.json | 669 -----------------
.../generated/resolved/m5toughc5.json | 328 ---------
.../generated/resolved/m5unit_c6l.json | 240 ------
.../generated/resolved/m5unitpoep4.json | 458 ------------
.../generated/resolved/m5vameter.json | 315 --------
extras/board_spec/test/board_spec.test.js | 77 +-
91 files changed, 129 insertions(+), 34620 deletions(-)
create mode 100644 extras/board_spec/.gitignore
delete mode 100644 extras/board_spec/generated/resolved/arduino_nesso_n1.json
delete mode 100644 extras/board_spec/generated/resolved/m5airq+epd=gdew0154d67.json
delete mode 100644 extras/board_spec/generated/resolved/m5airq+epd=gdew0154m09.json
delete mode 100644 extras/board_spec/generated/resolved/m5atom_psram.json
delete mode 100644 extras/board_spec/generated/resolved/m5atomlite.json
delete mode 100644 extras/board_spec/generated/resolved/m5atommatrix.json
delete mode 100644 extras/board_spec/generated/resolved/m5atoms3+lcd=gc9107.json
delete mode 100644 extras/board_spec/generated/resolved/m5atoms3+lcd=st7735s.json
delete mode 100644 extras/board_spec/generated/resolved/m5atoms3lite.json
delete mode 100644 extras/board_spec/generated/resolved/m5atoms3r+lcd=gc9107.json
delete mode 100644 extras/board_spec/generated/resolved/m5atoms3r+lcd=st7735s.json
delete mode 100644 extras/board_spec/generated/resolved/m5atoms3rcam.json
delete mode 100644 extras/board_spec/generated/resolved/m5atoms3rext.json
delete mode 100644 extras/board_spec/generated/resolved/m5atoms3u.json
delete mode 100644 extras/board_spec/generated/resolved/m5atomu.json
delete mode 100644 extras/board_spec/generated/resolved/m5atomvoice.json
delete mode 100644 extras/board_spec/generated/resolved/m5atomvoices3r.json
delete mode 100644 extras/board_spec/generated/resolved/m5capsule.json
delete mode 100644 extras/board_spec/generated/resolved/m5cardputer.json
delete mode 100644 extras/board_spec/generated/resolved/m5cardputer_adv.json
delete mode 100644 extras/board_spec/generated/resolved/m5chaincaptain.json
delete mode 100644 extras/board_spec/generated/resolved/m5dial.json
delete mode 100644 extras/board_spec/generated/resolved/m5dinmeter.json
delete mode 100644 extras/board_spec/generated/resolved/m5dualkey.json
delete mode 100644 extras/board_spec/generated/resolved/m5nanoc6.json
delete mode 100644 extras/board_spec/generated/resolved/m5nanoh2.json
delete mode 100644 extras/board_spec/generated/resolved/m5paper.json
delete mode 100644 extras/board_spec/generated/resolved/m5papercolor.json
delete mode 100644 extras/board_spec/generated/resolved/m5paperdiy.json
delete mode 100644 extras/board_spec/generated/resolved/m5papermono.json
delete mode 100644 extras/board_spec/generated/resolved/m5papers3.json
delete mode 100644 extras/board_spec/generated/resolved/m5powerhub.json
delete mode 100644 extras/board_spec/generated/resolved/m5stack@from_2020_04_to_v2_5_fire+lcd=ips.json
delete mode 100644 extras/board_spec/generated/resolved/m5stack@from_2020_04_to_v2_5_fire+lcd=tn.json
delete mode 100644 extras/board_spec/generated/resolved/m5stack@pre_2020_04_fire+lcd=ips.json
delete mode 100644 extras/board_spec/generated/resolved/m5stack@pre_2020_04_fire+lcd=tn.json
delete mode 100644 extras/board_spec/generated/resolved/m5stack@pre_v2_6_basic+lcd=ips.json
delete mode 100644 extras/board_spec/generated/resolved/m5stack@pre_v2_6_basic+lcd=tn.json
delete mode 100644 extras/board_spec/generated/resolved/m5stack@pre_v2_6_gray+lcd=ips.json
delete mode 100644 extras/board_spec/generated/resolved/m5stack@pre_v2_6_gray+lcd=tn.json
delete mode 100644 extras/board_spec/generated/resolved/m5stack@v2_6_plus_basic+lcd=ips.json
delete mode 100644 extras/board_spec/generated/resolved/m5stack@v2_6_plus_basic+lcd=tn.json
delete mode 100644 extras/board_spec/generated/resolved/m5stack@v2_6_plus_fire+lcd=ips.json
delete mode 100644 extras/board_spec/generated/resolved/m5stack@v2_6_plus_fire+lcd=tn.json
delete mode 100644 extras/board_spec/generated/resolved/m5stack@v2_6_plus_gray+lcd=ips.json
delete mode 100644 extras/board_spec/generated/resolved/m5stack@v2_6_plus_gray+lcd=tn.json
delete mode 100644 extras/board_spec/generated/resolved/m5stack_core2@v1_0.json
delete mode 100644 extras/board_spec/generated/resolved/m5stack_core2@v1_1.json
delete mode 100644 extras/board_spec/generated/resolved/m5stack_core2@v1_2.json
delete mode 100644 extras/board_spec/generated/resolved/m5stack_core2@v1_3.json
delete mode 100644 extras/board_spec/generated/resolved/m5stack_coreink+epd=gdew0154d67.json
delete mode 100644 extras/board_spec/generated/resolved/m5stack_coreink+epd=gdew0154m09.json
delete mode 100644 extras/board_spec/generated/resolved/m5stack_corematrix.json
delete mode 100644 extras/board_spec/generated/resolved/m5stack_corep4x.json
delete mode 100644 extras/board_spec/generated/resolved/m5stack_cores3.json
delete mode 100644 extras/board_spec/generated/resolved/m5stack_cores3se.json
delete mode 100644 extras/board_spec/generated/resolved/m5stack_stackchan.json
delete mode 100644 extras/board_spec/generated/resolved/m5stack_tab5+lcd=ili9881c.json
delete mode 100644 extras/board_spec/generated/resolved/m5stack_tab5+lcd=st7121.json
delete mode 100644 extras/board_spec/generated/resolved/m5stack_tab5+lcd=st7123.json
delete mode 100644 extras/board_spec/generated/resolved/m5stack_tab5x+lcd=ili9881c.json
delete mode 100644 extras/board_spec/generated/resolved/m5stack_tab5x+lcd=st7121.json
delete mode 100644 extras/board_spec/generated/resolved/m5stack_tab5x+lcd=st7123.json
delete mode 100644 extras/board_spec/generated/resolved/m5stampc3.json
delete mode 100644 extras/board_spec/generated/resolved/m5stampc3u.json
delete mode 100644 extras/board_spec/generated/resolved/m5stampc5.json
delete mode 100644 extras/board_spec/generated/resolved/m5stampc6.json
delete mode 100644 extras/board_spec/generated/resolved/m5stamplc.json
delete mode 100644 extras/board_spec/generated/resolved/m5stampp4.json
delete mode 100644 extras/board_spec/generated/resolved/m5stampp4x.json
delete mode 100644 extras/board_spec/generated/resolved/m5stamppico.json
delete mode 100644 extras/board_spec/generated/resolved/m5stamps3.json
delete mode 100644 extras/board_spec/generated/resolved/m5stamps3bat.json
delete mode 100644 extras/board_spec/generated/resolved/m5stamps3mini.json
delete mode 100644 extras/board_spec/generated/resolved/m5station.json
delete mode 100644 extras/board_spec/generated/resolved/m5stickc.json
delete mode 100644 extras/board_spec/generated/resolved/m5stickcplus.json
delete mode 100644 extras/board_spec/generated/resolved/m5stickcplus2.json
delete mode 100644 extras/board_spec/generated/resolved/m5sticks3.json
delete mode 100644 extras/board_spec/generated/resolved/m5stopwatch.json
delete mode 100644 extras/board_spec/generated/resolved/m5timercam.json
delete mode 100644 extras/board_spec/generated/resolved/m5tough+lcd=ili9342c.json
delete mode 100644 extras/board_spec/generated/resolved/m5tough+lcd=ili9342e.json
delete mode 100644 extras/board_spec/generated/resolved/m5toughc5.json
delete mode 100644 extras/board_spec/generated/resolved/m5unit_c6l.json
delete mode 100644 extras/board_spec/generated/resolved/m5unitpoep4.json
delete mode 100644 extras/board_spec/generated/resolved/m5vameter.json
diff --git a/extras/board_spec/.gitignore b/extras/board_spec/.gitignore
new file mode 100644
index 00000000..f8487c8b
--- /dev/null
+++ b/extras/board_spec/.gitignore
@@ -0,0 +1 @@
+/generated/resolved/
diff --git a/extras/board_spec/README.md b/extras/board_spec/README.md
index 987ab815..91358962 100644
--- a/extras/board_spec/README.md
+++ b/extras/board_spec/README.md
@@ -10,7 +10,6 @@ facts in reviewable JSON. It is intentionally outside M5GFX's build inputs.
- `targets.json`: generator-specific option-bit to board-choice mappings
- `detector_order.json`: which catalog boards each package's detector families cover
- `lib/`, `cli/`: browser-safe model logic and the Node command wrapper
-- `generated/resolved/`: fully resolved revision/runtime combinations
- `generated/docs/`: revision and composition tables rendered from the catalog
- `generated/m5unified_pin_table/`: the M5Unified external pin tables, per SoC
- `editor/`, `build/`: editor sources and the dependency-free bundler
@@ -20,7 +19,9 @@ facts in reviewable JSON. It is intentionally outside M5GFX's build inputs.
```sh
node cli/spec.js validate boards/m5stack_core2.json # schema and catalog rules (all boards when no file is given)
node cli/spec.js format boards/m5stack_core2.json --write # canonical formatting (without --write: report only)
-node cli/spec.js resolve boards/m5stack_core2.json # generated/resolved/ and generated/docs/ for one board
+node cli/spec.js resolve boards/m5stack_core2.json # inspect all revision/runtime combinations as JSON on stdout
+node cli/spec.js resolve boards/m5stack_core2.json --out /tmp/resolved # optional local JSON files
+node cli/spec.js emit-docs # generated/docs/ (all boards, or pass board files)
node cli/spec.js emit-wiring # src/board_detect/m5/generated/ (detection wiring, specs, detector order)
node cli/spec.js emit-pintable # generated/m5unified_pin_table/.{json,inl}
node cli/spec.js compare-pintable --m5unified # compile the generated tables against M5Unified's src/M5Unified.inl
@@ -31,10 +32,16 @@ npm test # test/*.test.js (the C
`check` validates the connector types, parts, accessories and every board, requires
every board file to be in canonical format, and fails when any generated output
-(resolved snapshots, docs, pin tables, detection wiring, the editor bundle) is
-missing, stale or unexpected. So after editing a board: `resolve` it, run
-`emit-wiring`, `emit-pintable` and `build/bundle.js`, then `check` and `npm test`,
-and commit the generated files together with the source.
+(docs, pin tables, detection wiring, the editor bundle) is missing, stale or
+unexpected. Every revision/runtime combination is expanded and validated in
+memory; resolved exports are not build inputs or freshness-check fixtures.
+After editing a board, run `emit-docs`, `emit-wiring`, `emit-pintable` and
+`build/bundle.js`, then `check` and `npm test`, and commit those generated files
+with the source. Do not commit resolved exports.
+
+Inspect resolved boards with `resolve` (one JSON array of `{combination, board}`
+entries on stdout), or select a revision in the editor's read-only view.
+The `--out` directory is arbitrary; its exports are not read by any tool.
Boards use `devices..choices` for replaceable parts and `revisions[]` for
known product revisions. Runtime-selected slots are expanded as additional
@@ -242,7 +249,7 @@ Measure each of these states on real hardware before writing a value.
1. Set `pins..detect_class` in the board JSON. Validation (`node cli/spec.js
validate`, also shown in the editor) rejects it on pins without internal pulls.
-2. Regenerate from `extras/board_spec`: `node cli/spec.js resolve boards/.json`,
+2. Regenerate from `extras/board_spec`: `node cli/spec.js emit-docs boards/.json`,
`node cli/spec.js emit-wiring`, and `node build/bundle.js`; then run
`node cli/spec.js check` and `npm test`. Commit the generated files; do not edit them
by hand.
diff --git a/extras/board_spec/cli/spec.js b/extras/board_spec/cli/spec.js
index 3c9a29ab..8b2b2e19 100644
--- a/extras/board_spec/cli/spec.js
+++ b/extras/board_spec/cli/spec.js
@@ -300,7 +300,7 @@ async function formatFiles(files, write) {
}
}
-async function resolveFile(filename) {
+async function loadValidatedBoard(filename) {
const schema = await loadSchema();
const connectorTypes = await loadConnectorTypes();
const parts = await loadParts();
@@ -313,25 +313,43 @@ async function resolveFile(filename) {
printErrors(filename, errors);
throw new Error(`${failureCount(errors)} validation error(s)`);
}
- const outputDir = path.join(root, "generated/resolved");
+ return { board, ctx };
+}
+
+async function resolveFile(filename, outputDir) {
+ const { board, ctx } = await loadValidatedBoard(filename);
+ const outputs = resolveAll(board, ctx.connectorTypes, resolveCatalogs(ctx));
+ // Resolved boards are inspection views, not build inputs. Only --out writes
+ // local exports; stdout preserves combination names for programmatic users.
+ if (!outputDir) {
+ const views = outputs.map((output) => ({
+ combination: output.filename.slice(0, -".json".length),
+ board: JSON.parse(formatBoard(output.board)),
+ }));
+ process.stdout.write(`${JSON.stringify(views, null, 2)}\n`);
+ return;
+ }
await fs.mkdir(outputDir, { recursive: true });
- const outputs = resolveAll(board, connectorTypes, resolveCatalogs(ctx));
for (const output of outputs) await fs.writeFile(safeOutputPath(outputDir, output.filename), formatBoard(output.board));
- const revisionDoc = renderRevisionDoc(board, ctx.target);
- if (revisionDoc) {
- const docsDir = path.join(root, "generated/docs");
- await fs.mkdir(docsDir, { recursive: true });
- await fs.writeFile(safeOutputPath(docsDir, `${board.id}_revisions.md`), revisionDoc);
- }
- const compositionDoc = renderCompositionDoc(board, ctx.composition, accessories);
- if (compositionDoc) {
- const docsDir = path.join(root, "generated/docs");
- await fs.mkdir(docsDir, { recursive: true });
- await fs.writeFile(safeOutputPath(docsDir, `${board.id}_composition.md`), compositionDoc);
- }
console.log(`resolved ${outputs.length} combination(s)`);
}
+async function writeDocs(files) {
+ for (const filename of files) {
+ const { board, ctx } = await loadValidatedBoard(filename);
+ const docs = [
+ [`${board.id}_revisions.md`, renderRevisionDoc(board, ctx.target)],
+ [`${board.id}_composition.md`, renderCompositionDoc(board, ctx.composition, ctx.accessories)],
+ ];
+ for (const [name, text] of docs) if (text) {
+ const directory = path.join(root, "generated/docs");
+ await fs.mkdir(directory, { recursive: true });
+ await fs.writeFile(safeOutputPath(directory, name), text);
+ }
+ }
+ console.log(`generated docs for ${files.length} board(s)`);
+}
+
async function check() {
const schema = await loadSchema();
const connectorTypes = await loadConnectorTypes();
@@ -356,17 +374,14 @@ async function check() {
throw new Error(`${failureCount(errors)} validation error(s)`);
}
+ // validateResolvedVariants above checks every expansion in memory; there is
+ // no resolved-file cache to maintain or compare with the source catalog.
+ let combinations = 0;
for (let index = 0; index < boards.length; index += 1) {
const source = await fs.readFile(files[index], "utf8");
if (source !== formatBoard(boards[index])) throw new Error(`${path.relative(root, files[index])} is not formatted`);
const ctx = contexts.get(boards[index].id);
- for (const output of resolveAll(boards[index], connectorTypes, resolveCatalogs(ctx))) {
- const filename = path.join(root, "generated/resolved", output.filename);
- let actual;
- try { actual = await fs.readFile(filename, "utf8"); }
- catch { throw new Error(`missing resolved snapshot: ${path.relative(root, filename)}`); }
- if (actual !== formatBoard(output.board)) throw new Error(`stale resolved snapshot: ${path.relative(root, filename)}`);
- }
+ combinations += resolveAll(boards[index], connectorTypes, resolveCatalogs(ctx)).length;
const revisionDoc = renderRevisionDoc(boards[index], ctx.target);
if (revisionDoc) {
const filename = path.join(root, "generated/docs", `${boards[index].id}_revisions.md`);
@@ -384,10 +399,6 @@ async function check() {
if (actual !== compositionDoc) throw new Error(`stale composition doc: ${path.relative(root, filename)}`);
}
}
- const expectedSnapshots = new Set(boards.flatMap((board) => resolveAll(board, connectorTypes, resolveCatalogs(contexts.get(board.id))).map((output) => output.filename)));
- const actualSnapshots = (await fs.readdir(path.join(root, "generated/resolved"))).filter((name) => name.endsWith(".json"));
- const unexpected = actualSnapshots.filter((name) => !expectedSnapshots.has(name));
- if (unexpected.length) throw new Error(`unexpected resolved snapshot(s): ${unexpected.join(", ")}`);
const expectedDocs = new Set([
...boards.filter((board) => board.revisions?.length).map((board) => `${board.id}_revisions.md`),
...boards.filter((board) => contexts.get(board.id).composition).map((board) => `${board.id}_composition.md`),
@@ -421,7 +432,7 @@ async function check() {
try { dist = await fs.readFile(distFilename, "utf8"); }
catch { throw new Error(`missing editor bundle: ${path.relative(root, distFilename)}`); }
if (dist !== await renderBundle()) throw new Error(`stale editor bundle: ${path.relative(root, distFilename)}`);
- console.log(`check passed: ${boards.length} board(s), ${boards.reduce((sum, board) => sum + resolveAll(board, connectorTypes, resolveCatalogs(contexts.get(board.id))).length, 0)} resolved snapshot(s)`);
+ console.log(`check passed: ${boards.length} board(s), ${combinations} resolved combination(s)`);
}
const PIN_TABLE_START = "static constexpr const uint8_t _pin_table_i2c_ex_in[][5] = {";
@@ -553,9 +564,13 @@ async function main() {
return formatFiles(files, write);
}
if (command === "resolve") {
- if (args.length !== 1) throw new Error("resolve requires exactly one board file");
- return resolveFile(path.resolve(args[0]));
+ if ((args.length !== 1 && args.length !== 3) || args[0]?.startsWith("--")
+ || (args.length === 3 && (args[1] !== "--out" || args[2].startsWith("--")))) {
+ throw new Error("resolve requires one board file and optional --out ");
+ }
+ return resolveFile(path.resolve(args[0]), args.length === 3 ? path.resolve(args[2]) : undefined);
}
+ if (command === "emit-docs") return writeDocs(args.length ? args.map((file) => path.resolve(file)) : await boardFiles());
if (command === "emit-pintable") return writePinTableOutputs();
if (command === "emit-wiring") return writeWiringOutput();
if (command === "compare-pintable") {
@@ -563,7 +578,7 @@ async function main() {
return comparePinTable(path.resolve(args[1]));
}
if (command === "check") return check();
- throw new Error("usage: spec.js validate | format [--write] | resolve | emit-pintable | emit-wiring | compare-pintable --m5unified | check");
+ throw new Error("usage: spec.js validate | format [--write] | resolve [--out ] | emit-docs [file...] | emit-pintable | emit-wiring | compare-pintable --m5unified | check");
}
main().catch((failure) => {
diff --git a/extras/board_spec/generated/resolved/arduino_nesso_n1.json b/extras/board_spec/generated/resolved/arduino_nesso_n1.json
deleted file mode 100644
index 64680bae..00000000
--- a/extras/board_spec/generated/resolved/arduino_nesso_n1.json
+++ /dev/null
@@ -1,382 +0,0 @@
-{
- "schema_version": 1,
- "id": "arduino_nesso_n1",
- "name": "ArduinoNessoN1",
- "official_name": "Arduino Nesso N1",
- "official_name_verified": true,
- "aliases": [
- "nesso",
- "nesso n1",
- "n1",
- "arduinonesson1"
- ],
- "legacy_board_id": 23,
- "chip": "esp32c6",
- "spec": {
- "display": {
- "resolution": [
- 135,
- 240
- ],
- "touch": true
- },
- "links": {
- "product": "https://docs.arduino.cc/hardware/nesso-n1/",
- "verified": {
- "product": "datasheet"
- }
- }
- },
- "pins": {
- "2": {
- "roles": [
- "conn:expansion.4"
- ],
- "verified": {
- "roles": "datasheet"
- }
- },
- "3": {
- "roles": [
- "dev:touch.int"
- ]
- },
- "4": {
- "roles": [
- "conn:port_b.1",
- "conn:port_c.1"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "5": {
- "roles": [
- "conn:port_b.2",
- "conn:port_c.2"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "6": {
- "roles": [
- "conn:expansion.5"
- ],
- "verified": {
- "roles": "datasheet"
- }
- },
- "7": {
- "roles": [
- "conn:expansion.3"
- ],
- "verified": {
- "roles": "datasheet"
- }
- },
- "8": {
- "roles": [
- "bus:internal_i2c.scl",
- "bus:touch_i2c.scl",
- "bus:port_a_i2c.scl",
- "conn:port_a.1"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "10": {
- "roles": [
- "bus:internal_i2c.sda",
- "bus:touch_i2c.sda",
- "bus:port_a_i2c.sda",
- "conn:port_a.2"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "16": {
- "roles": [
- "dev:lcd.dc"
- ]
- },
- "17": {
- "roles": [
- "dev:lcd.cs"
- ]
- },
- "18": {
- "roles": [],
- "note": "Board-family signature pin tied low"
- },
- "20": {
- "roles": [
- "bus:main_spi.sclk"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "21": {
- "roles": [
- "bus:main_spi.mosi"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "22": {
- "roles": [
- "bus:main_spi.miso"
- ],
- "verified": {
- "roles": "generated"
- }
- }
- },
- "buses": {
- "main_spi": {
- "kind": "spi",
- "signals": [
- "sclk",
- "mosi",
- "miso"
- ],
- "preferred_host": "SPI2_HOST",
- "fixed": false,
- "freq": 40000000,
- "freq_read": 16000000,
- "verified": {
- "signals": "generated",
- "preferred_host": "generated",
- "freq": "generated",
- "freq_read": "generated"
- }
- },
- "internal_i2c": {
- "kind": "i2c",
- "signals": [
- "sda",
- "scl"
- ],
- "preferred_host": 0,
- "fixed": false,
- "freq": 100000,
- "verified": {
- "signals": "generated",
- "preferred_host": "generated",
- "freq": "generated"
- }
- },
- "touch_i2c": {
- "kind": "i2c",
- "signals": [
- "sda",
- "scl"
- ],
- "preferred_host": 0,
- "fixed": false,
- "freq": 400000,
- "verified": {
- "signals": "generated",
- "preferred_host": "generated",
- "freq": "generated"
- }
- },
- "port_a_i2c": {
- "kind": "i2c",
- "signals": [
- "sda",
- "scl"
- ],
- "preferred_host": 0,
- "fixed": false,
- "verified": {
- "signals": "generated",
- "preferred_host": "generated"
- }
- }
- },
- "devices": {
- "lcd": {
- "kind": "display",
- "part": "st7789v2",
- "bus": "main_spi",
- "spec": {
- "width": 135,
- "height": 240,
- "offset_x": 52,
- "offset_y": 40,
- "rotation_offset": 0,
- "invert": true,
- "readable": true,
- "three_wire": true
- },
- "signals": {
- "dc": "gpio:16",
- "cs": "gpio:17",
- "rst": "pin:pi4io2.p1"
- },
- "verified": {
- "signals": "generated"
- }
- },
- "touch": {
- "kind": "touch",
- "part": "ft5x06",
- "bus": "touch_i2c",
- "i2c_addr": "0x38",
- "spec": {
- "x_min": 0,
- "x_max": 134,
- "y_min": 0,
- "y_max": 239,
- "rotation_offset": 0
- },
- "signals": {
- "int": "gpio:3"
- },
- "verified": {
- "signals": "generated"
- }
- },
- "pi4io2": {
- "kind": "io_expander",
- "part": "pi4io",
- "bus": "internal_i2c",
- "i2c_addr": "0x44",
- "pins": {
- "p1": {
- "roles": [
- "dev:lcd.rst"
- ]
- },
- "p6": {
- "roles": [
- "dev:backlight.pwm"
- ]
- }
- },
- "note": "P1 LCD reset; P6 LCD backlight"
- },
- "pi4io1": {
- "kind": "io_expander",
- "part": "pi4io",
- "bus": "internal_i2c",
- "i2c_addr": "0x43",
- "note": "P0 BTN1; P1 BTN2",
- "pins": {
- "p0": {
- "roles": [
- "dev:btn_a.in"
- ]
- },
- "p1": {
- "roles": [
- "dev:btn_b.in"
- ]
- }
- }
- },
- "backlight": {
- "kind": "backlight",
- "bus": "internal_i2c",
- "i2c_addr": "0x44",
- "spec": {
- "i2c_freq": 400000
- },
- "verified": {
- "spec": "generated",
- "signals": "generated"
- },
- "signals": {
- "pwm": "pin:pi4io2.p6"
- }
- },
- "btn_a": {
- "kind": "button",
- "part": "button",
- "spec": {
- "active_low": true,
- "pull": "internal_up"
- },
- "signals": {
- "in": "pin:pi4io1.p0"
- },
- "verified": {
- "signals": "generated"
- }
- },
- "btn_b": {
- "kind": "button",
- "part": "button",
- "spec": {
- "active_low": true,
- "pull": "internal_up"
- },
- "signals": {
- "in": "pin:pi4io1.p1"
- },
- "verified": {
- "signals": "generated"
- }
- }
- },
- "connectors": {
- "port_a": {
- "type": "qwiic_4p",
- "standard": "port_i2c",
- "positions": {
- "1": "gpio:8",
- "2": "gpio:10",
- "3": "pwr:3v3",
- "4": "pwr:gnd"
- },
- "note": "Qwiic physical pins in Arduino full pinout page 3: 1=GND, 2=3V3 output, 3=SDA GPIO10, 4=SCL GPIO8. port_a retains the library logical terminal order 1=SCL GPIO8, 2=SDA GPIO10, 3=3V3, 4=GND. Shared with internal I2C.",
- "verified": {
- "positions": "datasheet"
- }
- },
- "port_b": {
- "type": "hy2_4p",
- "standard": "port_io",
- "note": "Both library contracts refer to the same physical Grove socket: manufacturer pins 1=GND, 2=5V, 3=GPIO5, 4=GPIO4. Logical terminal 1=GPIO4/2=GPIO5.",
- "positions": {
- "1": "gpio:4",
- "2": "gpio:5",
- "3": "pwr:5v",
- "4": "pwr:gnd"
- }
- },
- "port_c": {
- "type": "hy2_4p",
- "standard": "port_uart",
- "note": "Both library contracts refer to the same physical Grove socket: manufacturer pins 1=GND, 2=5V, 3=GPIO5, 4=GPIO4. Logical terminal 1=GPIO4/2=GPIO5.",
- "positions": {
- "1": "gpio:4",
- "2": "gpio:5",
- "3": "pwr:5v",
- "4": "pwr:gnd"
- }
- },
- "expansion": {
- "type": "logical_terminals_8",
- "positions": {
- "1": "pwr:gnd",
- "2": "pwr:5v",
- "3": "gpio:7",
- "4": "gpio:2",
- "5": "gpio:6",
- "6": "pwr:bat",
- "7": "pwr:3v3",
- "8": "pwr:5v"
- },
- "note": "8-pin expansion port numbered as Arduino official full pinout page 6. BATTERY is an unregulated approximately 3–4.2V output rail; do not back-feed. Logical terminal order; physical geometry is unverified.",
- "verified": {
- "positions": "datasheet"
- }
- }
- }
-}
diff --git a/extras/board_spec/generated/resolved/m5airq+epd=gdew0154d67.json b/extras/board_spec/generated/resolved/m5airq+epd=gdew0154d67.json
deleted file mode 100644
index d920f687..00000000
--- a/extras/board_spec/generated/resolved/m5airq+epd=gdew0154d67.json
+++ /dev/null
@@ -1,259 +0,0 @@
-{
- "schema_version": 1,
- "id": "m5airq",
- "name": "M5AirQ",
- "official_name": "M5Stack Air Quality",
- "official_name_verified": true,
- "aliases": [
- "airq",
- "air quality",
- "air quality kit"
- ],
- "legacy_board_id": 15,
- "chip": "esp32s3",
- "spec": {
- "display": {
- "resolution": [
- 200,
- 200
- ],
- "touch": false
- },
- "storage": {
- "psram_mb": 0,
- "flash_mb": 8
- },
- "links": {
- "product": "https://docs.m5stack.com/en/core/Air_Quality",
- "verified": {
- "product": "datasheet",
- "schematic": "datasheet"
- },
- "schematic": "https://m5stack-doc.oss-cn-shenzhen.aliyuncs.com/467/Sch_AirQ_v1.0.pdf"
- }
- },
- "pins": {
- "0": {
- "roles": [
- "dev:btn_a.in"
- ]
- },
- "1": {
- "roles": [
- "dev:epd.busy"
- ]
- },
- "2": {
- "roles": [
- "dev:epd.rst"
- ],
- "detect_class": "floating"
- },
- "3": {
- "roles": [
- "dev:epd.dc"
- ]
- },
- "4": {
- "roles": [
- "dev:epd.cs"
- ]
- },
- "5": {
- "roles": [
- "bus:main_spi.sclk"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "6": {
- "roles": [
- "bus:main_spi.mosi"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "8": {
- "roles": [
- "dev:btn_b.in"
- ]
- },
- "11": {
- "roles": [
- "bus:internal_i2c.sda"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "12": {
- "roles": [
- "bus:internal_i2c.scl"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "13": {
- "roles": [
- "bus:port_a_i2c.sda",
- "conn:port_a.2"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "15": {
- "roles": [
- "bus:port_a_i2c.scl",
- "conn:port_a.1"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "21": {
- "roles": [
- "dev:led.data"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "46": {
- "roles": [
- "dev:power_hold.enable"
- ],
- "verified": {
- "roles": "generated"
- }
- }
- },
- "buses": {
- "main_spi": {
- "kind": "spi",
- "signals": [
- "sclk",
- "mosi"
- ],
- "preferred_host": "SPI2_HOST",
- "fixed": false,
- "freq": 40000000,
- "freq_read": 16000000,
- "verified": {
- "signals": "generated",
- "preferred_host": "generated",
- "freq": "generated",
- "freq_read": "generated"
- }
- },
- "internal_i2c": {
- "kind": "i2c",
- "signals": [
- "sda",
- "scl"
- ],
- "preferred_host": 1,
- "fixed": false,
- "verified": {
- "signals": "generated",
- "preferred_host": "generated"
- }
- },
- "port_a_i2c": {
- "kind": "i2c",
- "signals": [
- "sda",
- "scl"
- ],
- "preferred_host": 0,
- "fixed": false,
- "verified": {
- "signals": "generated",
- "preferred_host": "generated"
- }
- }
- },
- "devices": {
- "epd": {
- "kind": "display",
- "bus": "main_spi",
- "part": "gdew0154d67",
- "spec": {
- "width": 200,
- "height": 200
- },
- "signals": {
- "busy": "gpio:1",
- "rst": "gpio:2",
- "dc": "gpio:3",
- "cs": "gpio:4"
- },
- "verified": {
- "signals": "generated"
- }
- },
- "power_hold": {
- "kind": "power_hold",
- "signals": {
- "enable": "gpio:46"
- },
- "verified": {
- "signals": "generated"
- }
- },
- "led": {
- "kind": "led_strip",
- "part": "sk6812",
- "verified": {
- "part": "datasheet",
- "signals": "generated"
- },
- "signals": {
- "data": "gpio:21"
- }
- },
- "btn_a": {
- "kind": "button",
- "part": "button",
- "spec": {
- "active_low": true,
- "pull": "external_up"
- },
- "signals": {
- "in": "gpio:0"
- },
- "verified": {
- "signals": "generated"
- }
- },
- "btn_b": {
- "kind": "button",
- "part": "button",
- "spec": {
- "active_low": true,
- "pull": "external_up"
- },
- "signals": {
- "in": "gpio:8"
- },
- "verified": {
- "signals": "generated"
- }
- }
- },
- "connectors": {
- "port_a": {
- "type": "hy2_4p",
- "standard": "port_i2c",
- "positions": {
- "1": "gpio:15",
- "2": "gpio:13",
- "3": "pwr:5v",
- "4": "pwr:gnd"
- }
- }
- }
-}
diff --git a/extras/board_spec/generated/resolved/m5airq+epd=gdew0154m09.json b/extras/board_spec/generated/resolved/m5airq+epd=gdew0154m09.json
deleted file mode 100644
index a26f5610..00000000
--- a/extras/board_spec/generated/resolved/m5airq+epd=gdew0154m09.json
+++ /dev/null
@@ -1,259 +0,0 @@
-{
- "schema_version": 1,
- "id": "m5airq",
- "name": "M5AirQ",
- "official_name": "M5Stack Air Quality",
- "official_name_verified": true,
- "aliases": [
- "airq",
- "air quality",
- "air quality kit"
- ],
- "legacy_board_id": 15,
- "chip": "esp32s3",
- "spec": {
- "display": {
- "resolution": [
- 200,
- 200
- ],
- "touch": false
- },
- "storage": {
- "psram_mb": 0,
- "flash_mb": 8
- },
- "links": {
- "product": "https://docs.m5stack.com/en/core/Air_Quality",
- "verified": {
- "product": "datasheet",
- "schematic": "datasheet"
- },
- "schematic": "https://m5stack-doc.oss-cn-shenzhen.aliyuncs.com/467/Sch_AirQ_v1.0.pdf"
- }
- },
- "pins": {
- "0": {
- "roles": [
- "dev:btn_a.in"
- ]
- },
- "1": {
- "roles": [
- "dev:epd.busy"
- ]
- },
- "2": {
- "roles": [
- "dev:epd.rst"
- ],
- "detect_class": "floating"
- },
- "3": {
- "roles": [
- "dev:epd.dc"
- ]
- },
- "4": {
- "roles": [
- "dev:epd.cs"
- ]
- },
- "5": {
- "roles": [
- "bus:main_spi.sclk"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "6": {
- "roles": [
- "bus:main_spi.mosi"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "8": {
- "roles": [
- "dev:btn_b.in"
- ]
- },
- "11": {
- "roles": [
- "bus:internal_i2c.sda"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "12": {
- "roles": [
- "bus:internal_i2c.scl"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "13": {
- "roles": [
- "bus:port_a_i2c.sda",
- "conn:port_a.2"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "15": {
- "roles": [
- "bus:port_a_i2c.scl",
- "conn:port_a.1"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "21": {
- "roles": [
- "dev:led.data"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "46": {
- "roles": [
- "dev:power_hold.enable"
- ],
- "verified": {
- "roles": "generated"
- }
- }
- },
- "buses": {
- "main_spi": {
- "kind": "spi",
- "signals": [
- "sclk",
- "mosi"
- ],
- "preferred_host": "SPI2_HOST",
- "fixed": false,
- "freq": 40000000,
- "freq_read": 16000000,
- "verified": {
- "signals": "generated",
- "preferred_host": "generated",
- "freq": "generated",
- "freq_read": "generated"
- }
- },
- "internal_i2c": {
- "kind": "i2c",
- "signals": [
- "sda",
- "scl"
- ],
- "preferred_host": 1,
- "fixed": false,
- "verified": {
- "signals": "generated",
- "preferred_host": "generated"
- }
- },
- "port_a_i2c": {
- "kind": "i2c",
- "signals": [
- "sda",
- "scl"
- ],
- "preferred_host": 0,
- "fixed": false,
- "verified": {
- "signals": "generated",
- "preferred_host": "generated"
- }
- }
- },
- "devices": {
- "epd": {
- "kind": "display",
- "bus": "main_spi",
- "part": "gdew0154m09",
- "spec": {
- "width": 200,
- "height": 200
- },
- "signals": {
- "busy": "gpio:1",
- "rst": "gpio:2",
- "dc": "gpio:3",
- "cs": "gpio:4"
- },
- "verified": {
- "signals": "generated"
- }
- },
- "power_hold": {
- "kind": "power_hold",
- "signals": {
- "enable": "gpio:46"
- },
- "verified": {
- "signals": "generated"
- }
- },
- "led": {
- "kind": "led_strip",
- "part": "sk6812",
- "verified": {
- "part": "datasheet",
- "signals": "generated"
- },
- "signals": {
- "data": "gpio:21"
- }
- },
- "btn_a": {
- "kind": "button",
- "part": "button",
- "spec": {
- "active_low": true,
- "pull": "external_up"
- },
- "signals": {
- "in": "gpio:0"
- },
- "verified": {
- "signals": "generated"
- }
- },
- "btn_b": {
- "kind": "button",
- "part": "button",
- "spec": {
- "active_low": true,
- "pull": "external_up"
- },
- "signals": {
- "in": "gpio:8"
- },
- "verified": {
- "signals": "generated"
- }
- }
- },
- "connectors": {
- "port_a": {
- "type": "hy2_4p",
- "standard": "port_i2c",
- "positions": {
- "1": "gpio:15",
- "2": "gpio:13",
- "3": "pwr:5v",
- "4": "pwr:gnd"
- }
- }
- }
-}
diff --git a/extras/board_spec/generated/resolved/m5atom_psram.json b/extras/board_spec/generated/resolved/m5atom_psram.json
deleted file mode 100644
index 2819382b..00000000
--- a/extras/board_spec/generated/resolved/m5atom_psram.json
+++ /dev/null
@@ -1,263 +0,0 @@
-{
- "schema_version": 1,
- "id": "m5atom_psram",
- "name": "M5AtomPsram",
- "official_name": "M5Stack Atom PSRAM",
- "aliases": [
- "atom psram",
- "atompsram",
- "atom display"
- ],
- "legacy_board_id": 129,
- "chip": "esp32_d0wdq6",
- "spec": {
- "storage": {
- "psram_mb": 2,
- "psram_mode": "quad"
- },
- "links": {
- "product": "https://docs.m5stack.com/en/atom/Atom_Display",
- "schematic": "https://static-cdn.m5stack.com/resource/docs/products/atom/atom_display/atom_display_sch_01.webp",
- "verified": {
- "product": "datasheet",
- "schematic": "datasheet"
- }
- }
- },
- "pins": {
- "0": {
- "roles": [
- "dev:usb_serial.boot"
- ]
- },
- "1": {
- "roles": [
- "bus:console_uart.tx"
- ]
- },
- "3": {
- "roles": [
- "bus:console_uart.rx"
- ]
- },
- "5": {
- "roles": [
- "conn:rear_left.4"
- ],
- "verified": {
- "roles": "datasheet"
- }
- },
- "9": {
- "roles": [
- "dev:psram.cs"
- ]
- },
- "10": {
- "roles": [
- "dev:psram.clk"
- ]
- },
- "19": {
- "roles": [
- "conn:rear_left.3"
- ],
- "verified": {
- "roles": "datasheet"
- }
- },
- "21": {
- "roles": [
- "bus:internal_i2c.scl",
- "conn:rear_right.1"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "22": {
- "roles": [
- "conn:rear_left.2"
- ],
- "verified": {
- "roles": "datasheet"
- }
- },
- "25": {
- "roles": [
- "bus:internal_i2c.sda",
- "conn:rear_right.2"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "26": {
- "roles": [
- "bus:port_a_i2c.sda",
- "conn:port_a.2"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "27": {
- "roles": [
- "dev:rgb_led.data"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "32": {
- "roles": [
- "bus:port_a_i2c.scl",
- "conn:port_a.1"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "33": {
- "roles": [
- "conn:rear_left.5"
- ],
- "verified": {
- "roles": "datasheet"
- }
- },
- "39": {
- "roles": [
- "dev:btn_a.in"
- ]
- }
- },
- "buses": {
- "console_uart": {
- "kind": "uart",
- "signals": [
- "tx",
- "rx"
- ],
- "preferred_host": 0,
- "fixed": true
- },
- "internal_i2c": {
- "kind": "i2c",
- "signals": [
- "sda",
- "scl"
- ],
- "preferred_host": 1,
- "fixed": false,
- "verified": {
- "signals": "generated",
- "preferred_host": "generated"
- }
- },
- "port_a_i2c": {
- "kind": "i2c",
- "signals": [
- "sda",
- "scl"
- ],
- "preferred_host": 0,
- "fixed": false,
- "verified": {
- "signals": "generated",
- "preferred_host": "generated"
- }
- }
- },
- "devices": {
- "usb_serial": {
- "kind": "usb_uart",
- "part": "ch9102",
- "bus": "console_uart",
- "spec": {
- "auto_reset": true
- },
- "signals": {
- "boot": "gpio:0"
- }
- },
- "rgb_led": {
- "kind": "led_strip",
- "signals": {
- "data": "gpio:27"
- },
- "verified": {
- "signals": "generated"
- }
- },
- "btn_a": {
- "kind": "button",
- "part": "button",
- "spec": {
- "active_low": true,
- "pull": "external_up"
- },
- "signals": {
- "in": "gpio:39"
- },
- "verified": {
- "signals": "generated"
- }
- },
- "psram": {
- "kind": "psram",
- "part": "psram",
- "signals": {
- "cs": "gpio:9",
- "clk": "gpio:10"
- }
- }
- },
- "connectors": {
- "port_a": {
- "type": "hy2_4p",
- "standard": "port_i2c",
- "positions": {
- "1": "gpio:32",
- "2": "gpio:26",
- "3": "pwr:5v",
- "4": "pwr:gnd"
- },
- "verified": {
- "positions": "datasheet"
- }
- },
- "rear_left": {
- "type": "socket_1x5_254",
- "positions": {
- "1": "pwr:3v3",
- "2": "gpio:22",
- "3": "gpio:19",
- "4": "gpio:5",
- "5": "gpio:33"
- },
- "note": "Rear left socket viewed from the bottom with USB at the bottom; positions numbered top to bottom. Pin 4 is GPIO5; the schematic shows the GPIO23 alternative through unpopulated R6.",
- "verified": {
- "type": "datasheet",
- "positions": "datasheet"
- },
- "group": "bottom"
- },
- "rear_right": {
- "type": "socket_1x4_254",
- "positions": {
- "1": "gpio:21",
- "2": "gpio:25",
- "3": "pwr:5v",
- "4": "pwr:gnd"
- },
- "note": "Rear right socket in the same bottom view; positions numbered top to bottom.",
- "verified": {
- "type": "datasheet",
- "positions": "datasheet"
- },
- "group": "bottom"
- }
- },
- "chip_package": "pico_v3_02"
-}
diff --git a/extras/board_spec/generated/resolved/m5atomlite.json b/extras/board_spec/generated/resolved/m5atomlite.json
deleted file mode 100644
index d69fcbc6..00000000
--- a/extras/board_spec/generated/resolved/m5atomlite.json
+++ /dev/null
@@ -1,194 +0,0 @@
-{
- "schema_version": 1,
- "id": "m5atomlite",
- "name": "M5AtomLite",
- "official_name": "M5Stack Atom-Lite",
- "official_name_verified": true,
- "legacy_board_id": 128,
- "chip": "esp32_d0wdq6",
- "spec": {
- "links": {
- "product": "https://docs.m5stack.com/en/core/Atom-Lite",
- "schematic": "https://static-cdn.m5stack.com/resource/docs/products/core/ATOM%20Lite/img-2e58eac3-d9ef-4be4-b486-d4dd9a8324fa.webp",
- "verified": {
- "product": "datasheet",
- "schematic": "datasheet"
- }
- }
- },
- "pins": {
- "2": {
- "roles": [],
- "note": "Atom family exclusion gate: StampPico holds G2 low."
- },
- "12": {
- "roles": [
- "dev:ir.pwm"
- ],
- "note": "IR transmitter GPIO from the official pin map."
- },
- "13": {
- "roles": [],
- "note": "T4=G13 for Atom touch measurement."
- },
- "18": {
- "roles": [],
- "note": "Unconnected GPIO sampled by the Atom family exclusion gate."
- },
- "19": {
- "roles": [
- "conn:rear_left.3"
- ],
- "verified": {
- "roles": "datasheet"
- }
- },
- "21": {
- "roles": [
- "bus:internal_i2c.scl",
- "conn:rear_right.1"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "22": {
- "roles": [
- "conn:rear_left.2"
- ],
- "verified": {
- "roles": "datasheet"
- }
- },
- "23": {
- "roles": [
- "conn:rear_left.4"
- ],
- "verified": {
- "roles": "datasheet"
- }
- },
- "25": {
- "roles": [
- "bus:internal_i2c.sda",
- "conn:rear_right.2"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "26": {
- "roles": [
- "conn:port_a.2"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "27": {
- "roles": [
- "dev:rgb_led.data"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "32": {
- "roles": [
- "conn:port_a.1"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "33": {
- "roles": [
- "conn:rear_left.5"
- ],
- "verified": {
- "roles": "datasheet"
- }
- },
- "34": {
- "roles": []
- }
- },
- "buses": {
- "internal_i2c": {
- "kind": "i2c",
- "signals": [
- "sda",
- "scl"
- ],
- "preferred_host": 1,
- "fixed": false,
- "verified": {
- "signals": "generated",
- "preferred_host": "generated"
- }
- }
- },
- "devices": {
- "rgb_led": {
- "kind": "led_strip",
- "signals": {
- "data": "gpio:27"
- },
- "verified": {
- "signals": "generated"
- }
- },
- "ir": {
- "kind": "led",
- "signals": {
- "pwm": "gpio:12"
- }
- }
- },
- "connectors": {
- "port_a": {
- "type": "hy2_4p",
- "standard": "port_i2c",
- "positions": {
- "1": "gpio:32",
- "2": "gpio:26",
- "3": "pwr:5v",
- "4": "pwr:gnd"
- },
- "verified": {
- "positions": "datasheet"
- }
- },
- "rear_left": {
- "type": "socket_1x5_254",
- "positions": {
- "1": "pwr:3v3",
- "2": "gpio:22",
- "3": "gpio:19",
- "4": "gpio:23",
- "5": "gpio:33"
- },
- "note": "Rear left socket viewed from the bottom with USB at the bottom; positions numbered top to bottom.",
- "verified": {
- "type": "datasheet",
- "positions": "datasheet"
- },
- "group": "bottom"
- },
- "rear_right": {
- "type": "socket_1x4_254",
- "positions": {
- "1": "gpio:21",
- "2": "gpio:25",
- "3": "pwr:5v",
- "4": "pwr:gnd"
- },
- "note": "Rear right socket in the same bottom view; positions numbered top to bottom.",
- "verified": {
- "type": "datasheet",
- "positions": "datasheet"
- },
- "group": "bottom"
- }
- }
-}
diff --git a/extras/board_spec/generated/resolved/m5atommatrix.json b/extras/board_spec/generated/resolved/m5atommatrix.json
deleted file mode 100644
index 267d5ab7..00000000
--- a/extras/board_spec/generated/resolved/m5atommatrix.json
+++ /dev/null
@@ -1,194 +0,0 @@
-{
- "schema_version": 1,
- "id": "m5atommatrix",
- "name": "M5AtomMatrix",
- "official_name": "M5Stack Atom-Matrix",
- "official_name_verified": true,
- "legacy_board_id": 141,
- "chip": "esp32_d0wdq6",
- "spec": {
- "links": {
- "product": "https://docs.m5stack.com/en/core/Atom-Matrix",
- "schematic": "https://static-cdn.m5stack.com/resource/docs/products/core/ATOM%20Matrix/img-fa9922b3-727d-4598-8d16-84611248a3c6.webp",
- "verified": {
- "product": "datasheet",
- "schematic": "datasheet"
- }
- }
- },
- "pins": {
- "2": {
- "roles": [],
- "note": "Atom family exclusion gate: StampPico holds G2 low."
- },
- "12": {
- "roles": [
- "dev:ir.pwm"
- ],
- "note": "IR transmitter GPIO from the official pin map."
- },
- "13": {
- "roles": [],
- "note": "T4=G13 for Atom touch measurement."
- },
- "18": {
- "roles": [],
- "note": "Unconnected GPIO sampled by the Atom family exclusion gate."
- },
- "19": {
- "roles": [
- "conn:rear_left.3"
- ],
- "verified": {
- "roles": "datasheet"
- }
- },
- "21": {
- "roles": [
- "bus:internal_i2c.scl",
- "conn:rear_right.1"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "22": {
- "roles": [
- "conn:rear_left.2"
- ],
- "verified": {
- "roles": "datasheet"
- }
- },
- "23": {
- "roles": [
- "conn:rear_left.4"
- ],
- "verified": {
- "roles": "datasheet"
- }
- },
- "25": {
- "roles": [
- "bus:internal_i2c.sda",
- "conn:rear_right.2"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "26": {
- "roles": [
- "conn:port_a.2"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "27": {
- "roles": [
- "dev:rgb_led.data"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "32": {
- "roles": [
- "conn:port_a.1"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "33": {
- "roles": [
- "conn:rear_left.5"
- ],
- "verified": {
- "roles": "datasheet"
- }
- },
- "34": {
- "roles": []
- }
- },
- "buses": {
- "internal_i2c": {
- "kind": "i2c",
- "signals": [
- "sda",
- "scl"
- ],
- "preferred_host": 1,
- "fixed": false,
- "verified": {
- "signals": "generated",
- "preferred_host": "generated"
- }
- }
- },
- "devices": {
- "rgb_led": {
- "kind": "led_strip",
- "signals": {
- "data": "gpio:27"
- },
- "verified": {
- "signals": "generated"
- }
- },
- "ir": {
- "kind": "led",
- "signals": {
- "pwm": "gpio:12"
- }
- }
- },
- "connectors": {
- "port_a": {
- "type": "hy2_4p",
- "standard": "port_i2c",
- "positions": {
- "1": "gpio:32",
- "2": "gpio:26",
- "3": "pwr:5v",
- "4": "pwr:gnd"
- },
- "verified": {
- "positions": "datasheet"
- }
- },
- "rear_left": {
- "type": "socket_1x5_254",
- "positions": {
- "1": "pwr:3v3",
- "2": "gpio:22",
- "3": "gpio:19",
- "4": "gpio:23",
- "5": "gpio:33"
- },
- "note": "Rear left socket viewed from the bottom with USB at the bottom; positions numbered top to bottom.",
- "verified": {
- "type": "datasheet",
- "positions": "datasheet"
- },
- "group": "bottom"
- },
- "rear_right": {
- "type": "socket_1x4_254",
- "positions": {
- "1": "gpio:21",
- "2": "gpio:25",
- "3": "pwr:5v",
- "4": "pwr:gnd"
- },
- "note": "Rear right socket in the same bottom view; positions numbered top to bottom. GPIO21/25 share the onboard MPU6886 I2C bus.",
- "verified": {
- "type": "datasheet",
- "positions": "datasheet"
- },
- "group": "bottom"
- }
- }
-}
diff --git a/extras/board_spec/generated/resolved/m5atoms3+lcd=gc9107.json b/extras/board_spec/generated/resolved/m5atoms3+lcd=gc9107.json
deleted file mode 100644
index 8d26d49f..00000000
--- a/extras/board_spec/generated/resolved/m5atoms3+lcd=gc9107.json
+++ /dev/null
@@ -1,290 +0,0 @@
-{
- "schema_version": 1,
- "id": "m5atoms3",
- "name": "M5AtomS3",
- "official_name": "M5Stack AtomS3",
- "official_name_verified": true,
- "aliases": [
- "atoms3",
- "atom s3"
- ],
- "legacy_board_id": 11,
- "chip": "esp32s3",
- "spec": {
- "display": {
- "resolution": [
- 128,
- 128
- ],
- "touch": false
- },
- "storage": {
- "psram_mb": 0
- },
- "links": {
- "product": "https://docs.m5stack.com/en/core/AtomS3",
- "schematic": "https://m5stack-doc.oss-cn-shenzhen.aliyuncs.com/472/Sch_M5_AtomS3_v1.0.pdf",
- "verified": {
- "product": "datasheet",
- "schematic": "datasheet"
- }
- }
- },
- "pins": {
- "1": {
- "roles": [
- "bus:port_a_i2c.scl",
- "conn:port_a.1"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "2": {
- "roles": [
- "bus:port_a_i2c.sda",
- "conn:port_a.2"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "5": {
- "roles": [
- "conn:rear_left.2"
- ],
- "verified": {
- "roles": "datasheet"
- }
- },
- "6": {
- "roles": [
- "conn:rear_left.3"
- ],
- "verified": {
- "roles": "datasheet"
- }
- },
- "7": {
- "roles": [
- "conn:rear_left.4"
- ],
- "verified": {
- "roles": "datasheet"
- }
- },
- "8": {
- "roles": [
- "conn:rear_left.5"
- ],
- "verified": {
- "roles": "datasheet"
- }
- },
- "15": {
- "roles": [
- "dev:lcd.cs"
- ]
- },
- "16": {
- "roles": [
- "dev:backlight.pwm"
- ]
- },
- "17": {
- "roles": [
- "bus:main_spi.sclk"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "21": {
- "roles": [
- "bus:main_spi.mosi"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "33": {
- "roles": [
- "dev:lcd.dc"
- ]
- },
- "34": {
- "roles": [
- "dev:lcd.rst"
- ]
- },
- "38": {
- "roles": [
- "bus:internal_i2c.sda",
- "conn:rear_right.2"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "39": {
- "roles": [
- "bus:internal_i2c.scl",
- "conn:rear_right.1"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "41": {
- "roles": [
- "dev:btn_a.in"
- ]
- }
- },
- "buses": {
- "main_spi": {
- "kind": "spi",
- "signals": [
- "sclk",
- "mosi"
- ],
- "preferred_host": "SPI3_HOST",
- "fixed": false,
- "freq": 40000000,
- "freq_read": 16000000,
- "verified": {
- "signals": "generated",
- "preferred_host": "generated",
- "freq": "generated",
- "freq_read": "generated"
- }
- },
- "internal_i2c": {
- "kind": "i2c",
- "signals": [
- "sda",
- "scl"
- ],
- "preferred_host": 1,
- "fixed": false,
- "verified": {
- "signals": "generated",
- "preferred_host": "generated"
- }
- },
- "port_a_i2c": {
- "kind": "i2c",
- "signals": [
- "sda",
- "scl"
- ],
- "preferred_host": 0,
- "fixed": false,
- "verified": {
- "signals": "generated",
- "preferred_host": "generated"
- }
- }
- },
- "devices": {
- "lcd": {
- "kind": "display",
- "bus": "main_spi",
- "part": "gc9107",
- "spec": {
- "width": 128,
- "height": 128,
- "offset_x": 0,
- "offset_y": 32,
- "rotation_offset": 0,
- "invert": false,
- "readable": false,
- "panel_type": "gc9107"
- },
- "signals": {
- "cs": "gpio:15",
- "dc": "gpio:33",
- "rst": "gpio:34"
- },
- "verified": {
- "signals": "generated"
- }
- },
- "backlight": {
- "kind": "backlight",
- "spec": {
- "freq": 256,
- "channel": 7,
- "invert": false,
- "offset": 48
- },
- "verified": {
- "spec": "generated",
- "signals": "generated"
- },
- "signals": {
- "pwm": "gpio:16"
- }
- },
- "btn_a": {
- "kind": "button",
- "part": "button",
- "spec": {
- "active_low": true,
- "pull": "external_up"
- },
- "signals": {
- "in": "gpio:41"
- },
- "verified": {
- "signals": "generated"
- }
- }
- },
- "connectors": {
- "port_a": {
- "type": "hy2_4p",
- "standard": "port_i2c",
- "positions": {
- "1": "gpio:1",
- "2": "gpio:2",
- "3": "pwr:5v",
- "4": "pwr:gnd"
- },
- "verified": {
- "positions": "datasheet"
- }
- },
- "rear_left": {
- "type": "socket_1x5_254",
- "positions": {
- "1": "pwr:3v3",
- "2": "gpio:5",
- "3": "gpio:6",
- "4": "gpio:7",
- "5": "gpio:8"
- },
- "note": "Rear left socket viewed from the bottom with USB at the bottom; positions numbered top to bottom.",
- "verified": {
- "type": "datasheet",
- "positions": "datasheet"
- },
- "group": "bottom"
- },
- "rear_right": {
- "type": "socket_1x4_254",
- "positions": {
- "1": "gpio:39",
- "2": "gpio:38",
- "3": "pwr:5v",
- "4": "pwr:gnd"
- },
- "note": "Rear right socket in the same bottom view; positions numbered top to bottom. GPIO39/38 share the onboard MPU6886 I2C bus.",
- "verified": {
- "type": "datasheet",
- "positions": "datasheet"
- },
- "group": "bottom"
- }
- }
-}
diff --git a/extras/board_spec/generated/resolved/m5atoms3+lcd=st7735s.json b/extras/board_spec/generated/resolved/m5atoms3+lcd=st7735s.json
deleted file mode 100644
index df644600..00000000
--- a/extras/board_spec/generated/resolved/m5atoms3+lcd=st7735s.json
+++ /dev/null
@@ -1,291 +0,0 @@
-{
- "schema_version": 1,
- "id": "m5atoms3",
- "name": "M5AtomS3",
- "official_name": "M5Stack AtomS3",
- "official_name_verified": true,
- "aliases": [
- "atoms3",
- "atom s3"
- ],
- "legacy_board_id": 11,
- "chip": "esp32s3",
- "spec": {
- "display": {
- "resolution": [
- 128,
- 128
- ],
- "touch": false
- },
- "storage": {
- "psram_mb": 0
- },
- "links": {
- "product": "https://docs.m5stack.com/en/core/AtomS3",
- "schematic": "https://m5stack-doc.oss-cn-shenzhen.aliyuncs.com/472/Sch_M5_AtomS3_v1.0.pdf",
- "verified": {
- "product": "datasheet",
- "schematic": "datasheet"
- }
- }
- },
- "pins": {
- "1": {
- "roles": [
- "bus:port_a_i2c.scl",
- "conn:port_a.1"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "2": {
- "roles": [
- "bus:port_a_i2c.sda",
- "conn:port_a.2"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "5": {
- "roles": [
- "conn:rear_left.2"
- ],
- "verified": {
- "roles": "datasheet"
- }
- },
- "6": {
- "roles": [
- "conn:rear_left.3"
- ],
- "verified": {
- "roles": "datasheet"
- }
- },
- "7": {
- "roles": [
- "conn:rear_left.4"
- ],
- "verified": {
- "roles": "datasheet"
- }
- },
- "8": {
- "roles": [
- "conn:rear_left.5"
- ],
- "verified": {
- "roles": "datasheet"
- }
- },
- "15": {
- "roles": [
- "dev:lcd.cs"
- ]
- },
- "16": {
- "roles": [
- "dev:backlight.pwm"
- ]
- },
- "17": {
- "roles": [
- "bus:main_spi.sclk"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "21": {
- "roles": [
- "bus:main_spi.mosi"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "33": {
- "roles": [
- "dev:lcd.dc"
- ]
- },
- "34": {
- "roles": [
- "dev:lcd.rst"
- ]
- },
- "38": {
- "roles": [
- "bus:internal_i2c.sda",
- "conn:rear_right.2"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "39": {
- "roles": [
- "bus:internal_i2c.scl",
- "conn:rear_right.1"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "41": {
- "roles": [
- "dev:btn_a.in"
- ]
- }
- },
- "buses": {
- "main_spi": {
- "kind": "spi",
- "signals": [
- "sclk",
- "mosi"
- ],
- "preferred_host": "SPI3_HOST",
- "fixed": false,
- "freq": 40000000,
- "freq_read": 16000000,
- "verified": {
- "signals": "generated",
- "preferred_host": "generated",
- "freq": "generated",
- "freq_read": "generated"
- }
- },
- "internal_i2c": {
- "kind": "i2c",
- "signals": [
- "sda",
- "scl"
- ],
- "preferred_host": 1,
- "fixed": false,
- "verified": {
- "signals": "generated",
- "preferred_host": "generated"
- }
- },
- "port_a_i2c": {
- "kind": "i2c",
- "signals": [
- "sda",
- "scl"
- ],
- "preferred_host": 0,
- "fixed": false,
- "verified": {
- "signals": "generated",
- "preferred_host": "generated"
- }
- }
- },
- "devices": {
- "lcd": {
- "kind": "display",
- "bus": "main_spi",
- "part": "st7735s",
- "spec": {
- "width": 128,
- "height": 128,
- "memory_height": 132,
- "offset_x": 2,
- "offset_y": 1,
- "rotation_offset": 2,
- "invert": true,
- "readable": true,
- "panel_type": "st7735s"
- },
- "signals": {
- "cs": "gpio:15",
- "dc": "gpio:33",
- "rst": "gpio:34"
- },
- "verified": {
- "signals": "generated"
- }
- },
- "backlight": {
- "kind": "backlight",
- "spec": {
- "freq": 256,
- "channel": 7,
- "invert": false,
- "offset": 48
- },
- "verified": {
- "spec": "generated",
- "signals": "generated"
- },
- "signals": {
- "pwm": "gpio:16"
- }
- },
- "btn_a": {
- "kind": "button",
- "part": "button",
- "spec": {
- "active_low": true,
- "pull": "external_up"
- },
- "signals": {
- "in": "gpio:41"
- },
- "verified": {
- "signals": "generated"
- }
- }
- },
- "connectors": {
- "port_a": {
- "type": "hy2_4p",
- "standard": "port_i2c",
- "positions": {
- "1": "gpio:1",
- "2": "gpio:2",
- "3": "pwr:5v",
- "4": "pwr:gnd"
- },
- "verified": {
- "positions": "datasheet"
- }
- },
- "rear_left": {
- "type": "socket_1x5_254",
- "positions": {
- "1": "pwr:3v3",
- "2": "gpio:5",
- "3": "gpio:6",
- "4": "gpio:7",
- "5": "gpio:8"
- },
- "note": "Rear left socket viewed from the bottom with USB at the bottom; positions numbered top to bottom.",
- "verified": {
- "type": "datasheet",
- "positions": "datasheet"
- },
- "group": "bottom"
- },
- "rear_right": {
- "type": "socket_1x4_254",
- "positions": {
- "1": "gpio:39",
- "2": "gpio:38",
- "3": "pwr:5v",
- "4": "pwr:gnd"
- },
- "note": "Rear right socket in the same bottom view; positions numbered top to bottom. GPIO39/38 share the onboard MPU6886 I2C bus.",
- "verified": {
- "type": "datasheet",
- "positions": "datasheet"
- },
- "group": "bottom"
- }
- }
-}
diff --git a/extras/board_spec/generated/resolved/m5atoms3lite.json b/extras/board_spec/generated/resolved/m5atoms3lite.json
deleted file mode 100644
index 2f9249fe..00000000
--- a/extras/board_spec/generated/resolved/m5atoms3lite.json
+++ /dev/null
@@ -1,218 +0,0 @@
-{
- "schema_version": 1,
- "id": "m5atoms3lite",
- "name": "M5AtomS3Lite",
- "official_name": "M5Stack AtomS3-Lite",
- "official_name_verified": true,
- "legacy_board_id": 137,
- "chip": "esp32s3",
- "spec": {
- "links": {
- "product": "https://docs.m5stack.com/en/core/AtomS3-Lite",
- "schematic": "https://m5stack-doc.oss-cn-shenzhen.aliyuncs.com/471/Sch_M5_AtomS3_v1.0.pdf",
- "verified": {
- "product": "datasheet",
- "schematic": "datasheet"
- }
- }
- },
- "pins": {
- "1": {
- "roles": [
- "bus:port_a_i2c.scl",
- "conn:port_a.1"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "2": {
- "roles": [
- "bus:port_a_i2c.sda",
- "conn:port_a.2"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "4": {
- "roles": [
- "dev:ir_led.on"
- ]
- },
- "5": {
- "roles": [
- "conn:rear_left.2"
- ],
- "verified": {
- "roles": "datasheet"
- }
- },
- "6": {
- "roles": [
- "conn:rear_left.3"
- ],
- "verified": {
- "roles": "datasheet"
- }
- },
- "7": {
- "roles": [
- "conn:rear_left.4"
- ],
- "verified": {
- "roles": "datasheet"
- }
- },
- "8": {
- "roles": [
- "conn:rear_left.5"
- ],
- "verified": {
- "roles": "datasheet"
- }
- },
- "12": {
- "roles": []
- },
- "16": {
- "roles": []
- },
- "35": {
- "roles": [
- "dev:rgb_led.data"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "38": {
- "roles": [
- "bus:internal_i2c.sda",
- "conn:rear_right.2"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "39": {
- "roles": [
- "bus:internal_i2c.scl",
- "conn:rear_right.1"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "41": {
- "roles": [
- "dev:btn_a.in"
- ]
- }
- },
- "buses": {
- "internal_i2c": {
- "kind": "i2c",
- "signals": [
- "sda",
- "scl"
- ],
- "preferred_host": 1,
- "fixed": false,
- "verified": {
- "signals": "generated",
- "preferred_host": "generated"
- }
- },
- "port_a_i2c": {
- "kind": "i2c",
- "signals": [
- "sda",
- "scl"
- ],
- "preferred_host": 0,
- "fixed": false,
- "verified": {
- "signals": "generated",
- "preferred_host": "generated"
- }
- }
- },
- "devices": {
- "rgb_led": {
- "kind": "led_strip",
- "signals": {
- "data": "gpio:35"
- },
- "verified": {
- "signals": "generated"
- }
- },
- "btn_a": {
- "kind": "button",
- "part": "button",
- "spec": {
- "active_low": true,
- "pull": "external_up"
- },
- "signals": {
- "in": "gpio:41"
- },
- "verified": {
- "signals": "generated"
- }
- },
- "ir_led": {
- "kind": "led",
- "signals": {
- "on": "gpio:4"
- }
- }
- },
- "connectors": {
- "port_a": {
- "type": "hy2_4p",
- "standard": "port_i2c",
- "positions": {
- "1": "gpio:1",
- "2": "gpio:2",
- "3": "pwr:5v",
- "4": "pwr:gnd"
- },
- "verified": {
- "positions": "datasheet"
- }
- },
- "rear_left": {
- "type": "socket_1x5_254",
- "positions": {
- "1": "pwr:3v3",
- "2": "gpio:5",
- "3": "gpio:6",
- "4": "gpio:7",
- "5": "gpio:8"
- },
- "note": "Rear left socket viewed from the bottom with USB at the bottom; positions numbered top to bottom.",
- "verified": {
- "type": "datasheet",
- "positions": "datasheet"
- },
- "group": "bottom"
- },
- "rear_right": {
- "type": "socket_1x4_254",
- "positions": {
- "1": "gpio:39",
- "2": "gpio:38",
- "3": "pwr:5v",
- "4": "pwr:gnd"
- },
- "note": "Rear right socket in the same bottom view; positions numbered top to bottom.",
- "verified": {
- "type": "datasheet",
- "positions": "datasheet"
- },
- "group": "bottom"
- }
- }
-}
diff --git a/extras/board_spec/generated/resolved/m5atoms3r+lcd=gc9107.json b/extras/board_spec/generated/resolved/m5atoms3r+lcd=gc9107.json
deleted file mode 100644
index 5b3562c4..00000000
--- a/extras/board_spec/generated/resolved/m5atoms3r+lcd=gc9107.json
+++ /dev/null
@@ -1,368 +0,0 @@
-{
- "schema_version": 1,
- "id": "m5atoms3r",
- "name": "M5AtomS3R",
- "official_name": "M5Stack AtomS3R",
- "official_name_verified": true,
- "aliases": [
- "atoms3r",
- "atom s3r",
- "atoms3r-cam",
- "atoms3r-m12"
- ],
- "legacy_board_id": 18,
- "chip": "esp32s3",
- "spec": {
- "display": {
- "resolution": [
- 128,
- 128
- ],
- "touch": false
- },
- "storage": {
- "psram_mb": 8,
- "psram_mode": "opi"
- },
- "links": {
- "product": "https://docs.m5stack.com/en/core/AtomS3R",
- "schematic": "https://m5stack-doc.oss-cn-shenzhen.aliyuncs.com/680/Sch_M5_AtomS3R_v0.4.1.pdf",
- "verified": {
- "product": "datasheet",
- "schematic": "datasheet"
- }
- }
- },
- "pins": {
- "0": {
- "roles": [
- "bus:internal_i2c.scl"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "1": {
- "roles": [
- "bus:port_a_i2c.scl",
- "conn:port_a.1"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "2": {
- "roles": [
- "bus:port_a_i2c.sda",
- "conn:port_a.2"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "5": {
- "roles": [
- "conn:rear_left.2"
- ],
- "verified": {
- "roles": "datasheet"
- }
- },
- "6": {
- "roles": [
- "conn:rear_left.3"
- ],
- "verified": {
- "roles": "datasheet"
- }
- },
- "7": {
- "roles": [
- "conn:rear_left.4"
- ],
- "verified": {
- "roles": "datasheet"
- }
- },
- "8": {
- "roles": [
- "conn:rear_left.5"
- ],
- "verified": {
- "roles": "datasheet"
- }
- },
- "14": {
- "roles": [
- "dev:lcd.cs"
- ]
- },
- "15": {
- "roles": [
- "bus:main_spi.sclk"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "21": {
- "roles": [
- "bus:main_spi.mosi"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "26": {
- "roles": [
- "dev:psram.cs"
- ]
- },
- "27": {
- "roles": [
- "dev:psram.d3"
- ]
- },
- "28": {
- "roles": [
- "dev:psram.d2"
- ]
- },
- "30": {
- "roles": [
- "dev:psram.clk"
- ]
- },
- "31": {
- "roles": [
- "dev:psram.d1"
- ]
- },
- "32": {
- "roles": [
- "dev:psram.d0"
- ]
- },
- "33": {
- "roles": [
- "dev:psram.d4"
- ]
- },
- "34": {
- "roles": [
- "dev:psram.d5"
- ]
- },
- "35": {
- "roles": [
- "dev:psram.d6"
- ]
- },
- "36": {
- "roles": [
- "dev:psram.d7"
- ]
- },
- "37": {
- "roles": [
- "dev:psram.dqs"
- ]
- },
- "38": {
- "roles": [
- "conn:rear_right.2"
- ],
- "verified": {
- "roles": "datasheet"
- }
- },
- "39": {
- "roles": [
- "conn:rear_right.1"
- ],
- "verified": {
- "roles": "datasheet"
- }
- },
- "41": {
- "roles": [
- "dev:btn_a.in"
- ]
- },
- "42": {
- "roles": [
- "dev:lcd.dc"
- ]
- },
- "45": {
- "roles": [
- "bus:internal_i2c.sda"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "48": {
- "roles": [
- "dev:lcd.rst"
- ]
- }
- },
- "buses": {
- "main_spi": {
- "kind": "spi",
- "signals": [
- "sclk",
- "mosi"
- ],
- "preferred_host": "SPI3_HOST",
- "fixed": false,
- "freq": 40000000,
- "freq_read": 16000000,
- "verified": {
- "signals": "generated",
- "preferred_host": "generated",
- "freq": "generated",
- "freq_read": "generated"
- }
- },
- "internal_i2c": {
- "kind": "i2c",
- "signals": [
- "sda",
- "scl"
- ],
- "preferred_host": 1,
- "freq": 400000,
- "fixed": false,
- "verified": {
- "signals": "generated",
- "preferred_host": "generated",
- "freq": "generated"
- }
- },
- "port_a_i2c": {
- "kind": "i2c",
- "signals": [
- "sda",
- "scl"
- ],
- "preferred_host": 0,
- "fixed": false,
- "verified": {
- "signals": "generated",
- "preferred_host": "generated"
- }
- }
- },
- "devices": {
- "lcd": {
- "kind": "display",
- "bus": "main_spi",
- "part": "gc9107",
- "spec": {
- "width": 128,
- "height": 128,
- "offset_x": 0,
- "offset_y": 32,
- "rotation_offset": 0,
- "invert": false,
- "readable": false,
- "panel_type": "gc9107"
- },
- "signals": {
- "cs": "gpio:14",
- "dc": "gpio:42",
- "rst": "gpio:48"
- },
- "verified": {
- "signals": "generated"
- }
- },
- "backlight": {
- "kind": "backlight",
- "bus": "internal_i2c",
- "i2c_addr": "0x30",
- "verified": {
- "i2c_addr": "datasheet"
- }
- },
- "btn_a": {
- "kind": "button",
- "part": "button",
- "spec": {
- "active_low": true,
- "pull": "external_up"
- },
- "signals": {
- "in": "gpio:41"
- },
- "verified": {
- "signals": "generated"
- }
- },
- "psram": {
- "kind": "psram",
- "part": "psram",
- "signals": {
- "cs": "gpio:26",
- "d3": "gpio:27",
- "d2": "gpio:28",
- "clk": "gpio:30",
- "d1": "gpio:31",
- "d0": "gpio:32",
- "d4": "gpio:33",
- "d5": "gpio:34",
- "d6": "gpio:35",
- "d7": "gpio:36",
- "dqs": "gpio:37"
- }
- }
- },
- "connectors": {
- "port_a": {
- "type": "hy2_4p",
- "standard": "port_i2c",
- "positions": {
- "1": "gpio:1",
- "2": "gpio:2",
- "3": "pwr:5v",
- "4": "pwr:gnd"
- },
- "verified": {
- "positions": "datasheet"
- }
- },
- "rear_left": {
- "type": "socket_1x5_254",
- "positions": {
- "1": "pwr:3v3",
- "2": "gpio:5",
- "3": "gpio:6",
- "4": "gpio:7",
- "5": "gpio:8"
- },
- "note": "Rear left socket viewed from the bottom with USB at the bottom; positions numbered top to bottom.",
- "verified": {
- "type": "datasheet",
- "positions": "datasheet"
- },
- "group": "bottom"
- },
- "rear_right": {
- "type": "socket_1x4_254",
- "positions": {
- "1": "gpio:39",
- "2": "gpio:38",
- "3": "pwr:5v",
- "4": "pwr:gnd"
- },
- "note": "Rear right socket in the same bottom view; positions numbered top to bottom.",
- "verified": {
- "type": "datasheet",
- "positions": "datasheet"
- },
- "group": "bottom"
- }
- }
-}
diff --git a/extras/board_spec/generated/resolved/m5atoms3r+lcd=st7735s.json b/extras/board_spec/generated/resolved/m5atoms3r+lcd=st7735s.json
deleted file mode 100644
index e3c6504f..00000000
--- a/extras/board_spec/generated/resolved/m5atoms3r+lcd=st7735s.json
+++ /dev/null
@@ -1,369 +0,0 @@
-{
- "schema_version": 1,
- "id": "m5atoms3r",
- "name": "M5AtomS3R",
- "official_name": "M5Stack AtomS3R",
- "official_name_verified": true,
- "aliases": [
- "atoms3r",
- "atom s3r",
- "atoms3r-cam",
- "atoms3r-m12"
- ],
- "legacy_board_id": 18,
- "chip": "esp32s3",
- "spec": {
- "display": {
- "resolution": [
- 128,
- 128
- ],
- "touch": false
- },
- "storage": {
- "psram_mb": 8,
- "psram_mode": "opi"
- },
- "links": {
- "product": "https://docs.m5stack.com/en/core/AtomS3R",
- "schematic": "https://m5stack-doc.oss-cn-shenzhen.aliyuncs.com/680/Sch_M5_AtomS3R_v0.4.1.pdf",
- "verified": {
- "product": "datasheet",
- "schematic": "datasheet"
- }
- }
- },
- "pins": {
- "0": {
- "roles": [
- "bus:internal_i2c.scl"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "1": {
- "roles": [
- "bus:port_a_i2c.scl",
- "conn:port_a.1"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "2": {
- "roles": [
- "bus:port_a_i2c.sda",
- "conn:port_a.2"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "5": {
- "roles": [
- "conn:rear_left.2"
- ],
- "verified": {
- "roles": "datasheet"
- }
- },
- "6": {
- "roles": [
- "conn:rear_left.3"
- ],
- "verified": {
- "roles": "datasheet"
- }
- },
- "7": {
- "roles": [
- "conn:rear_left.4"
- ],
- "verified": {
- "roles": "datasheet"
- }
- },
- "8": {
- "roles": [
- "conn:rear_left.5"
- ],
- "verified": {
- "roles": "datasheet"
- }
- },
- "14": {
- "roles": [
- "dev:lcd.cs"
- ]
- },
- "15": {
- "roles": [
- "bus:main_spi.sclk"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "21": {
- "roles": [
- "bus:main_spi.mosi"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "26": {
- "roles": [
- "dev:psram.cs"
- ]
- },
- "27": {
- "roles": [
- "dev:psram.d3"
- ]
- },
- "28": {
- "roles": [
- "dev:psram.d2"
- ]
- },
- "30": {
- "roles": [
- "dev:psram.clk"
- ]
- },
- "31": {
- "roles": [
- "dev:psram.d1"
- ]
- },
- "32": {
- "roles": [
- "dev:psram.d0"
- ]
- },
- "33": {
- "roles": [
- "dev:psram.d4"
- ]
- },
- "34": {
- "roles": [
- "dev:psram.d5"
- ]
- },
- "35": {
- "roles": [
- "dev:psram.d6"
- ]
- },
- "36": {
- "roles": [
- "dev:psram.d7"
- ]
- },
- "37": {
- "roles": [
- "dev:psram.dqs"
- ]
- },
- "38": {
- "roles": [
- "conn:rear_right.2"
- ],
- "verified": {
- "roles": "datasheet"
- }
- },
- "39": {
- "roles": [
- "conn:rear_right.1"
- ],
- "verified": {
- "roles": "datasheet"
- }
- },
- "41": {
- "roles": [
- "dev:btn_a.in"
- ]
- },
- "42": {
- "roles": [
- "dev:lcd.dc"
- ]
- },
- "45": {
- "roles": [
- "bus:internal_i2c.sda"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "48": {
- "roles": [
- "dev:lcd.rst"
- ]
- }
- },
- "buses": {
- "main_spi": {
- "kind": "spi",
- "signals": [
- "sclk",
- "mosi"
- ],
- "preferred_host": "SPI3_HOST",
- "fixed": false,
- "freq": 40000000,
- "freq_read": 16000000,
- "verified": {
- "signals": "generated",
- "preferred_host": "generated",
- "freq": "generated",
- "freq_read": "generated"
- }
- },
- "internal_i2c": {
- "kind": "i2c",
- "signals": [
- "sda",
- "scl"
- ],
- "preferred_host": 1,
- "freq": 400000,
- "fixed": false,
- "verified": {
- "signals": "generated",
- "preferred_host": "generated",
- "freq": "generated"
- }
- },
- "port_a_i2c": {
- "kind": "i2c",
- "signals": [
- "sda",
- "scl"
- ],
- "preferred_host": 0,
- "fixed": false,
- "verified": {
- "signals": "generated",
- "preferred_host": "generated"
- }
- }
- },
- "devices": {
- "lcd": {
- "kind": "display",
- "bus": "main_spi",
- "part": "st7735s",
- "spec": {
- "width": 128,
- "height": 128,
- "memory_height": 132,
- "offset_x": 2,
- "offset_y": 1,
- "rotation_offset": 2,
- "invert": true,
- "readable": true,
- "panel_type": "st7735s"
- },
- "signals": {
- "cs": "gpio:14",
- "dc": "gpio:42",
- "rst": "gpio:48"
- },
- "verified": {
- "signals": "generated"
- }
- },
- "backlight": {
- "kind": "backlight",
- "bus": "internal_i2c",
- "i2c_addr": "0x30",
- "verified": {
- "i2c_addr": "datasheet"
- }
- },
- "btn_a": {
- "kind": "button",
- "part": "button",
- "spec": {
- "active_low": true,
- "pull": "external_up"
- },
- "signals": {
- "in": "gpio:41"
- },
- "verified": {
- "signals": "generated"
- }
- },
- "psram": {
- "kind": "psram",
- "part": "psram",
- "signals": {
- "cs": "gpio:26",
- "d3": "gpio:27",
- "d2": "gpio:28",
- "clk": "gpio:30",
- "d1": "gpio:31",
- "d0": "gpio:32",
- "d4": "gpio:33",
- "d5": "gpio:34",
- "d6": "gpio:35",
- "d7": "gpio:36",
- "dqs": "gpio:37"
- }
- }
- },
- "connectors": {
- "port_a": {
- "type": "hy2_4p",
- "standard": "port_i2c",
- "positions": {
- "1": "gpio:1",
- "2": "gpio:2",
- "3": "pwr:5v",
- "4": "pwr:gnd"
- },
- "verified": {
- "positions": "datasheet"
- }
- },
- "rear_left": {
- "type": "socket_1x5_254",
- "positions": {
- "1": "pwr:3v3",
- "2": "gpio:5",
- "3": "gpio:6",
- "4": "gpio:7",
- "5": "gpio:8"
- },
- "note": "Rear left socket viewed from the bottom with USB at the bottom; positions numbered top to bottom.",
- "verified": {
- "type": "datasheet",
- "positions": "datasheet"
- },
- "group": "bottom"
- },
- "rear_right": {
- "type": "socket_1x4_254",
- "positions": {
- "1": "gpio:39",
- "2": "gpio:38",
- "3": "pwr:5v",
- "4": "pwr:gnd"
- },
- "note": "Rear right socket in the same bottom view; positions numbered top to bottom.",
- "verified": {
- "type": "datasheet",
- "positions": "datasheet"
- },
- "group": "bottom"
- }
- }
-}
diff --git a/extras/board_spec/generated/resolved/m5atoms3rcam.json b/extras/board_spec/generated/resolved/m5atoms3rcam.json
deleted file mode 100644
index 4daa907d..00000000
--- a/extras/board_spec/generated/resolved/m5atoms3rcam.json
+++ /dev/null
@@ -1,197 +0,0 @@
-{
- "schema_version": 1,
- "id": "m5atoms3rcam",
- "name": "M5AtomS3RCam",
- "official_name": "M5Stack AtomS3R-CAM",
- "official_name_verified": true,
- "legacy_board_id": 144,
- "chip": "esp32s3",
- "spec": {
- "links": {
- "product": "https://docs.m5stack.com/en/core/AtomS3R%20Cam",
- "schematic": "https://m5stack-doc.oss-cn-shenzhen.aliyuncs.com/681/main_board_schematic.pdf",
- "verified": {
- "product": "datasheet",
- "schematic": "datasheet"
- }
- }
- },
- "pins": {
- "0": {
- "roles": [
- "bus:internal_i2c.scl"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "1": {
- "roles": [
- "bus:port_a_i2c.scl",
- "conn:port_a.1"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "2": {
- "roles": [
- "bus:port_a_i2c.sda",
- "conn:port_a.2"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "5": {
- "roles": [
- "conn:rear_left.2"
- ],
- "verified": {
- "roles": "datasheet"
- }
- },
- "6": {
- "roles": [
- "conn:rear_left.3"
- ],
- "verified": {
- "roles": "datasheet"
- }
- },
- "7": {
- "roles": [
- "conn:rear_left.4"
- ],
- "verified": {
- "roles": "datasheet"
- }
- },
- "8": {
- "roles": [
- "conn:rear_left.5"
- ],
- "verified": {
- "roles": "datasheet"
- }
- },
- "9": {
- "roles": []
- },
- "12": {
- "roles": []
- },
- "18": {
- "roles": []
- },
- "21": {
- "roles": []
- },
- "38": {
- "roles": [
- "conn:rear_right.2"
- ],
- "verified": {
- "roles": "datasheet"
- }
- },
- "39": {
- "roles": [
- "conn:rear_right.1"
- ],
- "verified": {
- "roles": "datasheet"
- }
- },
- "45": {
- "roles": [
- "bus:internal_i2c.sda"
- ],
- "verified": {
- "roles": "generated"
- }
- }
- },
- "buses": {
- "internal_i2c": {
- "kind": "i2c",
- "signals": [
- "sda",
- "scl"
- ],
- "preferred_host": 1,
- "fixed": false,
- "verified": {
- "signals": "generated",
- "preferred_host": "generated"
- }
- },
- "port_a_i2c": {
- "kind": "i2c",
- "signals": [
- "sda",
- "scl"
- ],
- "preferred_host": 0,
- "fixed": false,
- "verified": {
- "signals": "generated",
- "preferred_host": "generated"
- }
- }
- },
- "devices": {
- "imu": {
- "kind": "imu",
- "part": "bmi270",
- "bus": "internal_i2c",
- "i2c_addr": "0x68"
- }
- },
- "connectors": {
- "port_a": {
- "type": "hy2_4p",
- "standard": "port_i2c",
- "positions": {
- "1": "gpio:1",
- "2": "gpio:2",
- "3": "pwr:5v",
- "4": "pwr:gnd"
- },
- "verified": {
- "positions": "datasheet"
- }
- },
- "rear_left": {
- "type": "socket_1x5_254",
- "positions": {
- "1": "pwr:3v3",
- "2": "gpio:5",
- "3": "gpio:6",
- "4": "gpio:7",
- "5": "gpio:8"
- },
- "note": "Rear left socket viewed from the bottom with USB at the bottom; positions numbered top to bottom.",
- "verified": {
- "type": "datasheet",
- "positions": "datasheet"
- },
- "group": "bottom"
- },
- "rear_right": {
- "type": "socket_1x4_254",
- "positions": {
- "1": "gpio:39",
- "2": "gpio:38",
- "3": "pwr:5v",
- "4": "pwr:gnd"
- },
- "note": "Rear right socket in the same bottom view; positions numbered top to bottom.",
- "verified": {
- "type": "datasheet",
- "positions": "datasheet"
- },
- "group": "bottom"
- }
- }
-}
diff --git a/extras/board_spec/generated/resolved/m5atoms3rext.json b/extras/board_spec/generated/resolved/m5atoms3rext.json
deleted file mode 100644
index 72104a75..00000000
--- a/extras/board_spec/generated/resolved/m5atoms3rext.json
+++ /dev/null
@@ -1,353 +0,0 @@
-{
- "schema_version": 1,
- "id": "m5atoms3rext",
- "name": "M5AtomS3RExt",
- "official_name": "M5Stack AtomS3R-Ext",
- "official_name_verified": true,
- "legacy_board_id": 143,
- "chip": "esp32s3",
- "spec": {
- "links": {
- "product": "https://docs.m5stack.com/en/core/AtomS3R-Ext",
- "schematic": "https://m5stack-doc.oss-cn-shenzhen.aliyuncs.com/681/main_board_schematic.pdf",
- "verified": {
- "product": "datasheet",
- "schematic": "datasheet"
- }
- }
- },
- "pins": {
- "0": {
- "roles": [
- "bus:internal_i2c.scl"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "1": {
- "roles": [
- "bus:port_a_i2c.scl",
- "conn:port_a.1"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "2": {
- "roles": [
- "bus:port_a_i2c.sda",
- "conn:port_a.2"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "3": {
- "roles": [
- "conn:proto.5"
- ],
- "note": "Exposed on Proto board terminal 5 in the official Proto Pin table.",
- "verified": {
- "note": "datasheet",
- "roles": "datasheet"
- }
- },
- "4": {
- "roles": [
- "conn:proto.6"
- ],
- "note": "Exposed on Proto board terminal 6 in the official Proto Pin table.",
- "verified": {
- "note": "datasheet",
- "roles": "datasheet"
- }
- },
- "5": {
- "roles": [
- "conn:rear_left.2"
- ],
- "verified": {
- "roles": "datasheet"
- }
- },
- "6": {
- "roles": [
- "conn:rear_left.3"
- ],
- "verified": {
- "roles": "datasheet"
- }
- },
- "7": {
- "roles": [
- "conn:rear_left.4"
- ],
- "verified": {
- "roles": "datasheet"
- }
- },
- "8": {
- "roles": [
- "conn:rear_left.5"
- ],
- "verified": {
- "roles": "datasheet"
- }
- },
- "9": {
- "roles": [
- "conn:proto.7"
- ],
- "note": "Exposed on Proto board terminal 7 in the official Proto Pin table.",
- "verified": {
- "note": "datasheet",
- "roles": "datasheet"
- }
- },
- "10": {
- "roles": [
- "conn:proto.8"
- ],
- "note": "Exposed on Proto board terminal 8 in the official Proto Pin table.",
- "verified": {
- "note": "datasheet",
- "roles": "datasheet"
- }
- },
- "11": {
- "roles": [
- "conn:proto.9"
- ],
- "note": "Exposed on Proto board terminal 9 in the official Proto Pin table.",
- "verified": {
- "note": "datasheet",
- "roles": "datasheet"
- }
- },
- "12": {
- "roles": [
- "conn:proto.10"
- ],
- "note": "Exposed on Proto board terminal 10 in the official Proto Pin table.",
- "verified": {
- "note": "datasheet",
- "roles": "datasheet"
- }
- },
- "13": {
- "roles": [
- "conn:proto.11"
- ],
- "note": "Exposed on Proto board terminal 11 in the official Proto Pin table.",
- "verified": {
- "note": "datasheet",
- "roles": "datasheet"
- }
- },
- "14": {
- "roles": [],
- "note": "The official Specifications list GPIO14 among Proto Board Reserved GPIOs, but the Proto Pin table and PinMap assign no exposed Proto terminal to it. Terminal assignments follow the numbered Proto Pin table; no connector role is assigned to GPIO14.",
- "verified": {
- "note": "datasheet"
- }
- },
- "17": {
- "roles": [
- "conn:proto.12"
- ],
- "note": "Exposed on Proto board terminal 12 in the official Proto Pin table.",
- "verified": {
- "note": "datasheet",
- "roles": "datasheet"
- }
- },
- "18": {
- "roles": []
- },
- "21": {
- "roles": [
- "conn:proto.13"
- ],
- "note": "Exposed on Proto board terminal 13 in the official Proto Pin table.",
- "verified": {
- "note": "datasheet",
- "roles": "datasheet"
- }
- },
- "38": {
- "roles": [
- "conn:rear_right.2"
- ],
- "verified": {
- "roles": "datasheet"
- }
- },
- "39": {
- "roles": [
- "conn:rear_right.1"
- ],
- "verified": {
- "roles": "datasheet"
- }
- },
- "40": {
- "roles": [
- "conn:proto.14"
- ],
- "note": "Exposed on Proto board terminal 14 in the official Proto Pin table.",
- "verified": {
- "note": "datasheet",
- "roles": "datasheet"
- }
- },
- "42": {
- "roles": [
- "conn:proto.15"
- ],
- "note": "Exposed on Proto board terminal 15 in the official Proto Pin table.",
- "verified": {
- "note": "datasheet",
- "roles": "datasheet"
- }
- },
- "45": {
- "roles": [
- "bus:internal_i2c.sda"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "46": {
- "roles": [
- "conn:proto.16"
- ],
- "note": "Exposed on Proto board terminal 16 in the official Proto Pin table.",
- "verified": {
- "note": "datasheet",
- "roles": "datasheet"
- }
- },
- "48": {
- "roles": [
- "conn:proto.17"
- ],
- "note": "Exposed on Proto board terminal 17 in the official Proto Pin table.",
- "verified": {
- "note": "datasheet",
- "roles": "datasheet"
- }
- }
- },
- "buses": {
- "internal_i2c": {
- "kind": "i2c",
- "signals": [
- "sda",
- "scl"
- ],
- "preferred_host": 1,
- "fixed": false,
- "verified": {
- "signals": "generated",
- "preferred_host": "generated"
- }
- },
- "port_a_i2c": {
- "kind": "i2c",
- "signals": [
- "sda",
- "scl"
- ],
- "preferred_host": 0,
- "fixed": false,
- "verified": {
- "signals": "generated",
- "preferred_host": "generated"
- }
- }
- },
- "devices": {
- "imu": {
- "kind": "imu",
- "part": "bmi270",
- "bus": "internal_i2c",
- "i2c_addr": "0x68"
- }
- },
- "connectors": {
- "port_a": {
- "type": "hy2_4p",
- "standard": "port_i2c",
- "positions": {
- "1": "gpio:1",
- "2": "gpio:2",
- "3": "pwr:5v",
- "4": "pwr:gnd"
- },
- "verified": {
- "positions": "datasheet"
- }
- },
- "rear_left": {
- "type": "socket_1x5_254",
- "positions": {
- "1": "pwr:3v3",
- "2": "gpio:5",
- "3": "gpio:6",
- "4": "gpio:7",
- "5": "gpio:8"
- },
- "note": "Rear left socket viewed from the bottom with USB at the bottom; positions numbered top to bottom.",
- "verified": {
- "type": "datasheet",
- "positions": "datasheet"
- },
- "group": "bottom"
- },
- "rear_right": {
- "type": "socket_1x4_254",
- "positions": {
- "1": "gpio:39",
- "2": "gpio:38",
- "3": "pwr:5v",
- "4": "pwr:gnd"
- },
- "note": "Rear right socket in the same bottom view; positions numbered top to bottom.",
- "verified": {
- "type": "datasheet",
- "positions": "datasheet"
- },
- "group": "bottom"
- },
- "proto": {
- "type": "atoms3r_ext_proto",
- "positions": {
- "1": "pwr:3v3",
- "2": "pwr:1v2",
- "3": "pwr:2v8",
- "4": "chip:en",
- "5": "gpio:3",
- "6": "gpio:4",
- "7": "gpio:9",
- "8": "gpio:10",
- "9": "gpio:11",
- "10": "gpio:12",
- "11": "gpio:13",
- "12": "gpio:17",
- "13": "gpio:21",
- "14": "gpio:40",
- "15": "gpio:42",
- "16": "gpio:46",
- "17": "gpio:48",
- "18": "pwr:gnd",
- "19": "pwr:gnd"
- },
- "note": "Terminal numbers and wiring follow the official Proto Pin table and PinMap, not a verified physical layout. RST is the ESP32-S3 enable/reset input. The Specifications include GPIO14 among reserved Proto GPIOs, but the numbered table and PinMap give GPIO14 no terminal; it is not assigned here.",
- "verified": {
- "positions": "datasheet"
- }
- }
- }
-}
diff --git a/extras/board_spec/generated/resolved/m5atoms3u.json b/extras/board_spec/generated/resolved/m5atoms3u.json
deleted file mode 100644
index 81a7aacf..00000000
--- a/extras/board_spec/generated/resolved/m5atoms3u.json
+++ /dev/null
@@ -1,201 +0,0 @@
-{
- "schema_version": 1,
- "id": "m5atoms3u",
- "name": "M5AtomS3U",
- "official_name": "M5Stack AtomS3U",
- "official_name_verified": true,
- "legacy_board_id": 138,
- "chip": "esp32s3",
- "spec": {
- "links": {
- "product": "https://docs.m5stack.com/en/core/AtomS3U",
- "schematic": "https://m5stack-doc.oss-cn-shenzhen.aliyuncs.com/477/Sch_AtomS3U_v1.0.pdf",
- "verified": {
- "product": "datasheet",
- "schematic": "datasheet"
- }
- }
- },
- "pins": {
- "1": {
- "roles": [
- "bus:port_a_i2c.scl",
- "conn:port_a.1"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "2": {
- "roles": [
- "bus:port_a_i2c.sda",
- "conn:port_a.2"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "4": {
- "roles": []
- },
- "12": {
- "roles": [
- "dev:ir_led.on"
- ]
- },
- "14": {
- "roles": [
- "conn:rear_gpio.3"
- ],
- "verified": {
- "roles": "datasheet"
- }
- },
- "16": {
- "roles": []
- },
- "17": {
- "roles": [
- "conn:rear_gpio.4"
- ],
- "verified": {
- "roles": "datasheet"
- }
- },
- "35": {
- "roles": [
- "dev:rgb_led.data"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "38": {
- "roles": [
- "bus:internal_i2c.sda"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "39": {
- "roles": [
- "bus:internal_i2c.scl"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "40": {
- "roles": [
- "conn:rear_gpio.6"
- ],
- "verified": {
- "roles": "datasheet"
- }
- },
- "41": {
- "roles": [
- "dev:btn_a.in"
- ]
- },
- "42": {
- "roles": [
- "conn:rear_gpio.5"
- ],
- "verified": {
- "roles": "datasheet"
- }
- }
- },
- "buses": {
- "internal_i2c": {
- "kind": "i2c",
- "signals": [
- "sda",
- "scl"
- ],
- "preferred_host": 1,
- "fixed": false,
- "verified": {
- "signals": "generated",
- "preferred_host": "generated"
- }
- },
- "port_a_i2c": {
- "kind": "i2c",
- "signals": [
- "sda",
- "scl"
- ],
- "preferred_host": 0,
- "fixed": false,
- "verified": {
- "signals": "generated",
- "preferred_host": "generated"
- }
- }
- },
- "devices": {
- "rgb_led": {
- "kind": "led_strip",
- "signals": {
- "data": "gpio:35"
- },
- "verified": {
- "signals": "generated"
- }
- },
- "btn_a": {
- "kind": "button",
- "part": "button",
- "spec": {
- "active_low": true,
- "pull": "external_up"
- },
- "signals": {
- "in": "gpio:41"
- },
- "verified": {
- "signals": "generated"
- }
- },
- "ir_led": {
- "kind": "led",
- "signals": {
- "on": "gpio:12"
- }
- }
- },
- "connectors": {
- "port_a": {
- "type": "hy2_4p",
- "standard": "port_i2c",
- "positions": {
- "1": "gpio:1",
- "2": "gpio:2",
- "3": "pwr:5v",
- "4": "pwr:gnd"
- },
- "verified": {
- "positions": "datasheet"
- }
- },
- "rear_gpio": {
- "type": "socket_1x6_254",
- "positions": {
- "1": "pwr:gnd",
- "2": "pwr:5v",
- "3": "gpio:14",
- "4": "gpio:17",
- "5": "gpio:42",
- "6": "gpio:40"
- },
- "note": "Rear expansion socket; positions numbered from GND toward the last GPIO in the official pin map.",
- "verified": {
- "type": "datasheet",
- "positions": "datasheet"
- }
- }
- }
-}
diff --git a/extras/board_spec/generated/resolved/m5atomu.json b/extras/board_spec/generated/resolved/m5atomu.json
deleted file mode 100644
index afcd009c..00000000
--- a/extras/board_spec/generated/resolved/m5atomu.json
+++ /dev/null
@@ -1,167 +0,0 @@
-{
- "schema_version": 1,
- "id": "m5atomu",
- "name": "M5AtomU",
- "official_name": "M5Stack AtomU",
- "official_name_verified": true,
- "legacy_board_id": 130,
- "chip": "esp32_d0wdq6",
- "spec": {
- "links": {
- "product": "https://docs.m5stack.com/en/core/AtomU",
- "schematic": "https://m5stack-doc.oss-cn-shenzhen.aliyuncs.com/675/Sch_AtomU_01.jpg",
- "verified": {
- "product": "datasheet",
- "schematic": "datasheet"
- }
- }
- },
- "pins": {
- "2": {
- "roles": [],
- "note": "Atom family exclusion gate: StampPico holds G2 low."
- },
- "12": {
- "roles": [
- "dev:ir.pwm"
- ],
- "note": "IR transmitter GPIO from the official pin map."
- },
- "13": {
- "roles": [],
- "note": "T4=G13 for Atom touch measurement."
- },
- "18": {
- "roles": [],
- "note": "Unconnected GPIO sampled by the Atom family exclusion gate."
- },
- "21": {
- "roles": [
- "bus:internal_i2c.scl",
- "conn:rear_gpio.6"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "22": {
- "roles": [
- "conn:rear_gpio.5"
- ],
- "verified": {
- "roles": "datasheet"
- }
- },
- "23": {
- "roles": [],
- "note": "Atom family G34 gate: internal pull only, never drive it."
- },
- "25": {
- "roles": [
- "bus:internal_i2c.sda",
- "conn:rear_gpio.3"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "26": {
- "roles": [
- "conn:port_a.2"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "27": {
- "roles": [
- "dev:rgb_led.data"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "32": {
- "roles": [
- "conn:port_a.1"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "33": {
- "roles": [
- "conn:rear_gpio.4"
- ],
- "verified": {
- "roles": "datasheet"
- }
- },
- "34": {
- "roles": []
- }
- },
- "buses": {
- "internal_i2c": {
- "kind": "i2c",
- "signals": [
- "sda",
- "scl"
- ],
- "preferred_host": 1,
- "fixed": false,
- "verified": {
- "signals": "generated",
- "preferred_host": "generated"
- }
- }
- },
- "devices": {
- "rgb_led": {
- "kind": "led_strip",
- "signals": {
- "data": "gpio:27"
- },
- "verified": {
- "signals": "generated"
- }
- },
- "ir": {
- "kind": "led",
- "signals": {
- "pwm": "gpio:12"
- }
- }
- },
- "connectors": {
- "port_a": {
- "type": "hy2_4p",
- "standard": "port_i2c",
- "positions": {
- "1": "gpio:32",
- "2": "gpio:26",
- "3": "pwr:5v",
- "4": "pwr:gnd"
- },
- "verified": {
- "positions": "datasheet"
- }
- },
- "rear_gpio": {
- "type": "socket_1x6_254",
- "positions": {
- "1": "pwr:gnd",
- "2": "pwr:5v",
- "3": "gpio:25",
- "4": "gpio:33",
- "5": "gpio:22",
- "6": "gpio:21"
- },
- "note": "Rear expansion socket; positions numbered from GND toward the last GPIO in the official pin map.",
- "verified": {
- "type": "datasheet",
- "positions": "datasheet"
- }
- }
- }
-}
diff --git a/extras/board_spec/generated/resolved/m5atomvoice.json b/extras/board_spec/generated/resolved/m5atomvoice.json
deleted file mode 100644
index b577e92c..00000000
--- a/extras/board_spec/generated/resolved/m5atomvoice.json
+++ /dev/null
@@ -1,187 +0,0 @@
-{
- "schema_version": 1,
- "id": "m5atomvoice",
- "name": "M5AtomVoice",
- "official_name": "M5Stack Atom Voice",
- "official_name_verified": true,
- "legacy_board_id": 142,
- "chip": "esp32_d0wdq6",
- "spec": {
- "links": {
- "product": "https://docs.m5stack.com/en/atom/atomecho",
- "schematic": "https://static-cdn.m5stack.com/resource/docs/products/atom/atomecho/atomecho_sch_01.webp",
- "verified": {
- "product": "datasheet",
- "schematic": "datasheet"
- }
- }
- },
- "pins": {
- "2": {
- "roles": [],
- "note": "Atom family exclusion gate: StampPico holds G2 low."
- },
- "18": {
- "roles": [],
- "note": "Unconnected GPIO sampled by the Atom family exclusion gate."
- },
- "19": {
- "roles": [
- "conn:rear_left.3"
- ],
- "verified": {
- "roles": "datasheet",
- "note": "datasheet"
- },
- "note": "GPIO19/22/23/33 are reserved for the internal audio interface. The official documentation prohibits external reuse, expansion modules, or additional wiring on these pins."
- },
- "21": {
- "roles": [
- "bus:internal_i2c.scl",
- "conn:rear_right.1"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "22": {
- "roles": [
- "conn:rear_left.2"
- ],
- "verified": {
- "roles": "datasheet",
- "note": "datasheet"
- },
- "note": "GPIO19/22/23/33 are reserved for the internal audio interface. The official documentation prohibits external reuse, expansion modules, or additional wiring on these pins."
- },
- "23": {
- "roles": [
- "conn:rear_left.4"
- ],
- "verified": {
- "roles": "datasheet",
- "note": "datasheet"
- },
- "note": "GPIO19/22/23/33 are reserved for the internal audio interface. The official documentation prohibits external reuse, expansion modules, or additional wiring on these pins."
- },
- "25": {
- "roles": [
- "bus:internal_i2c.sda",
- "conn:rear_right.2"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "26": {
- "roles": [
- "conn:port_a.2"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "27": {
- "roles": [
- "dev:rgb_led.data"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "32": {
- "roles": [
- "conn:port_a.1"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "33": {
- "roles": [
- "conn:rear_left.5"
- ],
- "verified": {
- "roles": "datasheet",
- "note": "datasheet"
- },
- "note": "GPIO19/22/23/33 are reserved for the internal audio interface. The official documentation prohibits external reuse, expansion modules, or additional wiring on these pins."
- },
- "34": {
- "roles": [],
- "note": "Microphone DATA remains high with G23 pulled down."
- }
- },
- "buses": {
- "internal_i2c": {
- "kind": "i2c",
- "signals": [
- "sda",
- "scl"
- ],
- "preferred_host": 1,
- "fixed": false,
- "verified": {
- "signals": "generated",
- "preferred_host": "generated"
- }
- }
- },
- "devices": {
- "rgb_led": {
- "kind": "led_strip",
- "signals": {
- "data": "gpio:27"
- },
- "verified": {
- "signals": "generated"
- }
- }
- },
- "connectors": {
- "port_a": {
- "type": "hy2_4p",
- "standard": "port_i2c",
- "positions": {
- "1": "gpio:32",
- "2": "gpio:26",
- "3": "pwr:5v",
- "4": "pwr:gnd"
- },
- "verified": {
- "positions": "datasheet"
- }
- },
- "rear_left": {
- "type": "socket_1x5_254",
- "positions": {
- "1": "pwr:3v3",
- "2": "gpio:22",
- "3": "gpio:19",
- "4": "gpio:23",
- "5": "gpio:33"
- },
- "note": "Rear left socket viewed from the bottom with USB at the bottom; positions numbered top to bottom. GPIO19/22/23/33 are reserved for the internal audio interface. The official documentation prohibits external reuse, expansion modules, or additional wiring on these pins.",
- "verified": {
- "type": "datasheet",
- "positions": "datasheet"
- },
- "group": "bottom"
- },
- "rear_right": {
- "type": "socket_1x4_254",
- "positions": {
- "1": "gpio:21",
- "2": "gpio:25",
- "3": "pwr:5v",
- "4": "pwr:gnd"
- },
- "note": "Rear right socket in the same bottom view; positions numbered top to bottom.",
- "verified": {
- "type": "datasheet",
- "positions": "datasheet"
- },
- "group": "bottom"
- }
- }
-}
diff --git a/extras/board_spec/generated/resolved/m5atomvoices3r.json b/extras/board_spec/generated/resolved/m5atomvoices3r.json
deleted file mode 100644
index 40ec1813..00000000
--- a/extras/board_spec/generated/resolved/m5atomvoices3r.json
+++ /dev/null
@@ -1,184 +0,0 @@
-{
- "schema_version": 1,
- "id": "m5atomvoices3r",
- "name": "M5AtomVoiceS3R",
- "official_name": "M5Stack Atom VoiceS3R",
- "official_name_verified": true,
- "legacy_board_id": 145,
- "chip": "esp32s3",
- "spec": {
- "links": {
- "product": "https://docs.m5stack.com/en/core/Atom_VoiceS3R",
- "schematic": "https://m5stack-doc.oss-cn-shenzhen.aliyuncs.com/1182/Sch_M5_AtomS3R_v0.4.1.pdf",
- "verified": {
- "product": "datasheet",
- "schematic": "datasheet"
- }
- }
- },
- "pins": {
- "0": {
- "roles": [
- "bus:internal_i2c.scl"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "1": {
- "roles": [
- "bus:port_a_i2c.scl",
- "conn:port_a.1"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "2": {
- "roles": [
- "bus:port_a_i2c.sda",
- "conn:port_a.2"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "5": {
- "roles": [
- "conn:rear_left.2"
- ],
- "verified": {
- "roles": "datasheet"
- }
- },
- "6": {
- "roles": [
- "conn:rear_left.3"
- ],
- "verified": {
- "roles": "datasheet"
- }
- },
- "7": {
- "roles": [
- "conn:rear_left.4"
- ],
- "verified": {
- "roles": "datasheet"
- }
- },
- "8": {
- "roles": [
- "conn:rear_left.5"
- ],
- "verified": {
- "roles": "datasheet"
- }
- },
- "38": {
- "roles": [
- "conn:rear_right.2"
- ],
- "verified": {
- "roles": "datasheet"
- }
- },
- "39": {
- "roles": [
- "conn:rear_right.1"
- ],
- "verified": {
- "roles": "datasheet"
- }
- },
- "45": {
- "roles": [
- "bus:internal_i2c.sda"
- ],
- "verified": {
- "roles": "generated"
- }
- }
- },
- "buses": {
- "internal_i2c": {
- "kind": "i2c",
- "signals": [
- "sda",
- "scl"
- ],
- "preferred_host": 1,
- "fixed": false,
- "verified": {
- "signals": "generated",
- "preferred_host": "generated"
- }
- },
- "port_a_i2c": {
- "kind": "i2c",
- "signals": [
- "sda",
- "scl"
- ],
- "preferred_host": 0,
- "fixed": false,
- "verified": {
- "signals": "generated",
- "preferred_host": "generated"
- }
- }
- },
- "devices": {
- "codec": {
- "kind": "speaker",
- "bus": "internal_i2c",
- "i2c_addr": "0x18"
- }
- },
- "connectors": {
- "port_a": {
- "type": "hy2_4p",
- "standard": "port_i2c",
- "positions": {
- "1": "gpio:1",
- "2": "gpio:2",
- "3": "pwr:5v",
- "4": "pwr:gnd"
- },
- "verified": {
- "positions": "datasheet"
- }
- },
- "rear_left": {
- "type": "socket_1x5_254",
- "positions": {
- "1": "pwr:3v3",
- "2": "gpio:5",
- "3": "gpio:6",
- "4": "gpio:7",
- "5": "gpio:8"
- },
- "note": "Rear left socket viewed from the bottom with USB at the bottom; positions numbered top to bottom.",
- "verified": {
- "type": "datasheet",
- "positions": "datasheet"
- },
- "group": "bottom"
- },
- "rear_right": {
- "type": "socket_1x4_254",
- "positions": {
- "1": "gpio:39",
- "2": "gpio:38",
- "3": "pwr:5v",
- "4": "pwr:gnd"
- },
- "note": "Rear right socket in the same bottom view; positions numbered top to bottom.",
- "verified": {
- "type": "datasheet",
- "positions": "datasheet"
- },
- "group": "bottom"
- }
- }
-}
diff --git a/extras/board_spec/generated/resolved/m5capsule.json b/extras/board_spec/generated/resolved/m5capsule.json
deleted file mode 100644
index bcc48d45..00000000
--- a/extras/board_spec/generated/resolved/m5capsule.json
+++ /dev/null
@@ -1,311 +0,0 @@
-{
- "schema_version": 1,
- "id": "m5capsule",
- "name": "M5Capsule",
- "official_name": "M5Stack Capsule",
- "official_name_verified": true,
- "legacy_board_id": 139,
- "chip": "esp32s3",
- "spec": {
- "links": {
- "product": "https://docs.m5stack.com/en/core/Capsule",
- "verified": {
- "product": "datasheet",
- "schematic": "datasheet"
- },
- "schematic": "https://m5stack-doc.oss-cn-shenzhen.aliyuncs.com/496/Sch_M5Capsule.pdf"
- }
- },
- "pins": {
- "0": {
- "roles": [
- "conn:capsule_bus.16"
- ],
- "verified": {
- "roles": "datasheet"
- }
- },
- "1": {
- "roles": [
- "conn:capsule_bus.1"
- ],
- "verified": {
- "roles": "datasheet"
- }
- },
- "3": {
- "roles": [
- "conn:capsule_bus.3"
- ],
- "verified": {
- "roles": "datasheet"
- }
- },
- "5": {
- "roles": [
- "conn:capsule_bus.5"
- ],
- "verified": {
- "roles": "datasheet"
- }
- },
- "7": {
- "roles": [
- "conn:capsule_bus.7"
- ],
- "verified": {
- "roles": "datasheet"
- }
- },
- "8": {
- "roles": [
- "bus:internal_i2c.sda"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "9": {
- "roles": [
- "conn:capsule_bus.9"
- ],
- "verified": {
- "roles": "datasheet"
- }
- },
- "10": {
- "roles": [
- "bus:internal_i2c.scl"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "11": {
- "roles": [
- "bus:sd_bus.d3",
- "dev:sd.d3"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "12": {
- "roles": [
- "bus:sd_bus.cmd",
- "dev:sd.cmd"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "13": {
- "roles": [
- "bus:port_a_i2c.sda",
- "conn:port_a.2",
- "conn:capsule_bus.15"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "14": {
- "roles": [
- "bus:sd_bus.clk",
- "dev:sd.clk"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "15": {
- "roles": [
- "bus:port_a_i2c.scl",
- "conn:port_a.1",
- "conn:capsule_bus.17"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "21": {
- "roles": [
- "dev:rgb_led.data"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "39": {
- "roles": [
- "bus:sd_bus.d0",
- "dev:sd.d0"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "42": {
- "roles": [
- "conn:capsule_bus.6"
- ],
- "verified": {
- "roles": "datasheet"
- }
- },
- "43": {
- "roles": [
- "conn:capsule_bus.10"
- ],
- "verified": {
- "roles": "datasheet"
- }
- },
- "44": {
- "roles": [
- "conn:capsule_bus.12"
- ],
- "verified": {
- "roles": "datasheet"
- }
- },
- "46": {
- "roles": [
- "dev:power_hold.enable"
- ],
- "verified": {
- "roles": "generated"
- }
- }
- },
- "buses": {
- "internal_i2c": {
- "kind": "i2c",
- "signals": [
- "sda",
- "scl"
- ],
- "preferred_host": 1,
- "fixed": false,
- "verified": {
- "signals": "generated",
- "preferred_host": "generated"
- }
- },
- "port_a_i2c": {
- "kind": "i2c",
- "signals": [
- "sda",
- "scl"
- ],
- "preferred_host": 0,
- "fixed": false,
- "verified": {
- "signals": "generated",
- "preferred_host": "generated"
- }
- },
- "sd_bus": {
- "kind": "sdmmc",
- "signals": [
- "clk",
- "cmd",
- "d0",
- "d3"
- ],
- "fixed": false
- }
- },
- "devices": {
- "rtc": {
- "kind": "rtc",
- "part": "bm8563",
- "bus": "internal_i2c",
- "i2c_addr": "0x51"
- },
- "imu": {
- "kind": "imu",
- "part": "bmi270",
- "bus": "internal_i2c",
- "i2c_addr": "0x69"
- },
- "power_hold": {
- "kind": "power_hold",
- "signals": {
- "enable": "gpio:46"
- },
- "verified": {
- "signals": "generated"
- }
- },
- "rgb_led": {
- "kind": "led_strip",
- "signals": {
- "data": "gpio:21"
- },
- "verified": {
- "signals": "generated"
- }
- },
- "sd": {
- "kind": "sd",
- "part": "sd_slot",
- "bus": "sd_bus",
- "verified": {
- "bus": "generated",
- "signals": "generated",
- "derived": "generated"
- },
- "signals": {
- "d3": "gpio:11",
- "cmd": "gpio:12",
- "clk": "gpio:14",
- "d0": "gpio:39"
- },
- "derived": {
- "modes": [
- "sdio1"
- ]
- }
- }
- },
- "connectors": {
- "port_a": {
- "type": "hy2_4p",
- "standard": "port_i2c",
- "positions": {
- "1": "gpio:15",
- "2": "gpio:13",
- "3": "pwr:5v",
- "4": "pwr:gnd"
- }
- },
- "capsule_bus": {
- "type": "logical_terminals_18",
- "positions": {
- "1": "gpio:1",
- "2": "pwr:5vout",
- "3": "gpio:3",
- "4": "pwr:bat",
- "5": "gpio:5",
- "6": "gpio:42",
- "7": "gpio:7",
- "8": "pwr:3v3",
- "9": "gpio:9",
- "10": "gpio:43",
- "11": "pwr:gnd",
- "12": "gpio:44",
- "13": "pwr:5vin",
- "14": "chip:en",
- "15": "gpio:13",
- "16": "gpio:0",
- "17": "gpio:15",
- "18": "pwr:gnd"
- },
- "note": "Capsule Bus numbered as the official table. WAKE=GPIO42 and Boot=GPIO0. GPIO13/15 are shared with Grove; UART is GPIO43/44. Logical terminal order; physical geometry is unverified.",
- "verified": {
- "positions": "datasheet"
- }
- }
- }
-}
diff --git a/extras/board_spec/generated/resolved/m5cardputer.json b/extras/board_spec/generated/resolved/m5cardputer.json
deleted file mode 100644
index 0b426b85..00000000
--- a/extras/board_spec/generated/resolved/m5cardputer.json
+++ /dev/null
@@ -1,299 +0,0 @@
-{
- "schema_version": 1,
- "id": "m5cardputer",
- "name": "M5Cardputer",
- "official_name": "M5Stack Cardputer",
- "official_name_verified": true,
- "aliases": [
- "cardputer",
- "cardputer v1.1"
- ],
- "legacy_board_id": 14,
- "chip": "esp32s3",
- "spec": {
- "display": {
- "resolution": [
- 135,
- 240
- ],
- "touch": false
- },
- "storage": {
- "psram_mb": 0,
- "sd": true
- },
- "links": {
- "product": "https://docs.m5stack.com/en/core/Cardputer",
- "verified": {
- "product": "datasheet",
- "schematic": "datasheet"
- },
- "schematic": "https://m5stack-doc.oss-cn-shenzhen.aliyuncs.com/481/Sch_M5Cardputer.pdf"
- }
- },
- "pins": {
- "0": {
- "roles": [
- "dev:btn_a.in"
- ]
- },
- "1": {
- "roles": [
- "bus:port_a_i2c.scl",
- "conn:port_a.1"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "2": {
- "roles": [
- "bus:port_a_i2c.sda",
- "conn:port_a.2"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "5": {
- "roles": [],
- "note": "Keyboard matrix"
- },
- "6": {
- "roles": [],
- "note": "Keyboard matrix"
- },
- "7": {
- "roles": [],
- "note": "Keyboard matrix"
- },
- "8": {
- "roles": [],
- "note": "74HC138 keyboard row selector"
- },
- "9": {
- "roles": [],
- "note": "74HC138 keyboard row selector"
- },
- "12": {
- "roles": [
- "bus:sd_bus.d3",
- "dev:sd.d3"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "14": {
- "roles": [
- "bus:sd_bus.cmd",
- "dev:sd.cmd"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "21": {
- "roles": [
- "dev:led.data"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "33": {
- "roles": [
- "dev:lcd.rst"
- ]
- },
- "34": {
- "roles": [
- "dev:lcd.dc"
- ]
- },
- "35": {
- "roles": [
- "bus:main_spi.mosi"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "36": {
- "roles": [
- "bus:main_spi.sclk"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "37": {
- "roles": [
- "dev:lcd.cs"
- ]
- },
- "38": {
- "roles": [
- "dev:backlight.pwm"
- ]
- },
- "39": {
- "roles": [
- "bus:sd_bus.d0",
- "dev:sd.d0"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "40": {
- "roles": [
- "bus:sd_bus.clk",
- "dev:sd.clk"
- ],
- "verified": {
- "roles": "generated"
- }
- }
- },
- "buses": {
- "main_spi": {
- "kind": "spi",
- "signals": [
- "sclk",
- "mosi"
- ],
- "preferred_host": "SPI3_HOST",
- "fixed": false,
- "freq": 40000000,
- "freq_read": 16000000,
- "verified": {
- "signals": "generated",
- "preferred_host": "generated",
- "freq": "generated",
- "freq_read": "generated"
- }
- },
- "sd_bus": {
- "kind": "sdmmc",
- "signals": [
- "clk",
- "cmd",
- "d0",
- "d3"
- ],
- "fixed": false
- },
- "port_a_i2c": {
- "kind": "i2c",
- "signals": [
- "sda",
- "scl"
- ],
- "preferred_host": 0,
- "fixed": false,
- "verified": {
- "signals": "generated",
- "preferred_host": "generated"
- }
- }
- },
- "devices": {
- "lcd": {
- "kind": "display",
- "part": "st7789v2",
- "bus": "main_spi",
- "spec": {
- "width": 135,
- "height": 240,
- "offset_x": 52,
- "offset_y": 40,
- "rotation_offset": 1,
- "invert": true,
- "readable": true
- },
- "signals": {
- "rst": "gpio:33",
- "dc": "gpio:34",
- "cs": "gpio:37"
- },
- "verified": {
- "signals": "generated"
- }
- },
- "backlight": {
- "kind": "backlight",
- "spec": {
- "freq": 256,
- "channel": 7,
- "invert": false,
- "offset": 16
- },
- "verified": {
- "spec": "generated",
- "signals": "generated"
- },
- "signals": {
- "pwm": "gpio:38"
- }
- },
- "sd": {
- "kind": "sd",
- "part": "sd_slot",
- "bus": "sd_bus",
- "verified": {
- "bus": "generated",
- "signals": "generated",
- "derived": "generated"
- },
- "signals": {
- "d3": "gpio:12",
- "cmd": "gpio:14",
- "d0": "gpio:39",
- "clk": "gpio:40"
- },
- "derived": {
- "modes": [
- "sdio1"
- ]
- }
- },
- "led": {
- "kind": "led_strip",
- "part": "sk6812",
- "verified": {
- "part": "datasheet",
- "signals": "generated"
- },
- "signals": {
- "data": "gpio:21"
- }
- },
- "btn_a": {
- "kind": "button",
- "part": "button",
- "spec": {
- "active_low": true,
- "pull": "external_up"
- },
- "signals": {
- "in": "gpio:0"
- },
- "verified": {
- "signals": "generated"
- }
- }
- },
- "connectors": {
- "port_a": {
- "type": "hy2_4p",
- "standard": "port_i2c",
- "positions": {
- "1": "gpio:1",
- "2": "gpio:2",
- "3": "pwr:5v",
- "4": "pwr:gnd"
- }
- }
- }
-}
diff --git a/extras/board_spec/generated/resolved/m5cardputer_adv.json b/extras/board_spec/generated/resolved/m5cardputer_adv.json
deleted file mode 100644
index 03df95c2..00000000
--- a/extras/board_spec/generated/resolved/m5cardputer_adv.json
+++ /dev/null
@@ -1,394 +0,0 @@
-{
- "schema_version": 1,
- "id": "m5cardputer_adv",
- "name": "M5CardputerADV",
- "official_name": "M5Stack Cardputer-Adv",
- "official_name_verified": true,
- "aliases": [
- "cardputer adv",
- "cardputer-adv",
- "cardputeradv",
- "adv"
- ],
- "legacy_board_id": 24,
- "chip": "esp32s3",
- "spec": {
- "display": {
- "resolution": [
- 135,
- 240
- ],
- "touch": false
- },
- "storage": {
- "psram_mb": 0,
- "sd": true
- },
- "links": {
- "product": "https://docs.m5stack.com/en/core/Cardputer-Adv",
- "verified": {
- "product": "datasheet",
- "schematic": "datasheet"
- },
- "schematic": "https://m5stack-doc.oss-cn-shenzhen.aliyuncs.com/1178/Sch_M5CardputerAdv_v1.0_2025_06_20_17_19_58.pdf"
- }
- },
- "pins": {
- "0": {
- "roles": [
- "dev:btn_a.in"
- ]
- },
- "1": {
- "roles": [
- "bus:port_a_i2c.scl",
- "conn:port_a.1"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "2": {
- "roles": [
- "bus:port_a_i2c.sda",
- "conn:port_a.2"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "3": {
- "roles": [
- "conn:ext_header.1"
- ],
- "verified": {
- "roles": "datasheet"
- }
- },
- "4": {
- "roles": [
- "conn:ext_header.3"
- ],
- "verified": {
- "roles": "datasheet"
- }
- },
- "5": {
- "roles": [
- "conn:ext_header.13"
- ],
- "note": "External GPIO",
- "verified": {
- "roles": "datasheet"
- }
- },
- "6": {
- "roles": [
- "conn:ext_header.5"
- ],
- "note": "External GPIO",
- "verified": {
- "roles": "datasheet"
- }
- },
- "7": {
- "roles": [],
- "note": "Internal FPC"
- },
- "8": {
- "roles": [
- "bus:internal_i2c.sda",
- "conn:ext_header.8"
- ],
- "note": "System I2C SDA",
- "verified": {
- "roles": "generated"
- }
- },
- "9": {
- "roles": [
- "bus:internal_i2c.scl",
- "conn:ext_header.10"
- ],
- "note": "System I2C SCL",
- "verified": {
- "roles": "generated"
- }
- },
- "12": {
- "roles": [
- "bus:sd_bus.d3",
- "dev:sd.d3"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "13": {
- "roles": [
- "conn:ext_header.12"
- ],
- "verified": {
- "roles": "datasheet"
- }
- },
- "14": {
- "roles": [
- "bus:sd_bus.cmd",
- "dev:sd.cmd",
- "conn:ext_header.9"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "15": {
- "roles": [
- "conn:ext_header.14"
- ],
- "verified": {
- "roles": "datasheet"
- }
- },
- "21": {
- "roles": [
- "dev:led.data"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "33": {
- "roles": [
- "dev:lcd.rst"
- ]
- },
- "34": {
- "roles": [
- "dev:lcd.dc"
- ]
- },
- "35": {
- "roles": [
- "bus:main_spi.mosi"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "36": {
- "roles": [
- "bus:main_spi.sclk"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "37": {
- "roles": [
- "dev:lcd.cs"
- ]
- },
- "38": {
- "roles": [
- "dev:backlight.pwm"
- ]
- },
- "39": {
- "roles": [
- "bus:sd_bus.d0",
- "dev:sd.d0",
- "conn:ext_header.11"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "40": {
- "roles": [
- "bus:sd_bus.clk",
- "dev:sd.clk",
- "conn:ext_header.7"
- ],
- "verified": {
- "roles": "generated"
- }
- }
- },
- "buses": {
- "main_spi": {
- "kind": "spi",
- "signals": [
- "sclk",
- "mosi"
- ],
- "preferred_host": "SPI3_HOST",
- "fixed": false,
- "freq": 40000000,
- "freq_read": 16000000,
- "verified": {
- "signals": "generated",
- "preferred_host": "generated",
- "freq": "generated",
- "freq_read": "generated"
- }
- },
- "sd_bus": {
- "kind": "sdmmc",
- "signals": [
- "clk",
- "cmd",
- "d0",
- "d3"
- ],
- "fixed": false
- },
- "internal_i2c": {
- "kind": "i2c",
- "signals": [
- "sda",
- "scl"
- ],
- "preferred_host": 1,
- "fixed": false,
- "verified": {
- "signals": "generated",
- "preferred_host": "generated"
- }
- },
- "port_a_i2c": {
- "kind": "i2c",
- "signals": [
- "sda",
- "scl"
- ],
- "preferred_host": 0,
- "fixed": false,
- "verified": {
- "signals": "generated",
- "preferred_host": "generated"
- }
- }
- },
- "devices": {
- "lcd": {
- "kind": "display",
- "part": "st7789v2",
- "bus": "main_spi",
- "spec": {
- "width": 135,
- "height": 240,
- "offset_x": 52,
- "offset_y": 40,
- "rotation_offset": 1,
- "invert": true,
- "readable": true
- },
- "signals": {
- "rst": "gpio:33",
- "dc": "gpio:34",
- "cs": "gpio:37"
- },
- "verified": {
- "signals": "generated"
- }
- },
- "backlight": {
- "kind": "backlight",
- "spec": {
- "freq": 256,
- "channel": 7,
- "invert": false,
- "offset": 16
- },
- "verified": {
- "spec": "generated",
- "signals": "generated"
- },
- "signals": {
- "pwm": "gpio:38"
- }
- },
- "sd": {
- "kind": "sd",
- "part": "sd_slot",
- "bus": "sd_bus",
- "verified": {
- "bus": "generated",
- "signals": "generated",
- "derived": "generated"
- },
- "signals": {
- "d3": "gpio:12",
- "cmd": "gpio:14",
- "d0": "gpio:39",
- "clk": "gpio:40"
- },
- "derived": {
- "modes": [
- "sdio1"
- ]
- }
- },
- "led": {
- "kind": "led_strip",
- "part": "sk6812",
- "verified": {
- "part": "datasheet",
- "signals": "generated"
- },
- "signals": {
- "data": "gpio:21"
- }
- },
- "btn_a": {
- "kind": "button",
- "part": "button",
- "spec": {
- "active_low": true,
- "pull": "external_up"
- },
- "signals": {
- "in": "gpio:0"
- },
- "verified": {
- "signals": "generated"
- }
- }
- },
- "connectors": {
- "port_a": {
- "type": "hy2_4p",
- "standard": "port_i2c",
- "positions": {
- "1": "gpio:1",
- "2": "gpio:2",
- "3": "pwr:5v",
- "4": "pwr:gnd"
- }
- },
- "ext_header": {
- "type": "logical_terminals_14",
- "positions": {
- "1": "gpio:3",
- "2": "pwr:5vin",
- "3": "gpio:4",
- "4": "pwr:gnd",
- "5": "gpio:6",
- "6": "pwr:5vout",
- "7": "gpio:40",
- "8": "gpio:8",
- "9": "gpio:14",
- "10": "gpio:9",
- "11": "gpio:39",
- "12": "gpio:13",
- "13": "gpio:5",
- "14": "gpio:15"
- },
- "note": "EXT 2.54-14P numbered as the official table. GPIO8/9 share internal I2C; GPIO14/39/40 share microSD SPI. Official table labels GPIO13 TX and GPIO15 RX; role names here identify terminals only. Logical terminal order; physical geometry is unverified.",
- "verified": {
- "positions": "datasheet"
- }
- }
- }
-}
diff --git a/extras/board_spec/generated/resolved/m5chaincaptain.json b/extras/board_spec/generated/resolved/m5chaincaptain.json
deleted file mode 100644
index 5e010823..00000000
--- a/extras/board_spec/generated/resolved/m5chaincaptain.json
+++ /dev/null
@@ -1,381 +0,0 @@
-{
- "schema_version": 1,
- "id": "m5chaincaptain",
- "name": "M5ChainCaptain",
- "official_name": "M5Stack Chain Captain",
- "official_name_verified": true,
- "aliases": [
- "chaincaptain",
- "chain captain",
- "captain"
- ],
- "legacy_board_id": 32,
- "chip": "esp32s3",
- "spec": {
- "display": {
- "resolution": [
- 240,
- 240
- ],
- "touch": false
- },
- "storage": {
- "psram_mb": 8,
- "psram_mode": "opi"
- }
- },
- "pins": {
- "1": {
- "roles": [
- "dev:btn_a.in"
- ]
- },
- "2": {
- "roles": [
- "bus:internal_i2c.scl"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "3": {
- "roles": [
- "bus:internal_i2c.sda"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "4": {
- "roles": [
- "dev:btn_b.in"
- ]
- },
- "5": {
- "roles": [
- "dev:btn_c.in"
- ]
- },
- "6": {
- "roles": [
- "bus:port_a_i2c.scl",
- "conn:port_a.1"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "7": {
- "roles": [
- "bus:port_a_i2c.sda",
- "conn:port_a.2"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "15": {
- "roles": [
- "bus:main_spi.sclk"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "16": {
- "roles": [
- "bus:main_spi.mosi"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "17": {
- "roles": [
- "conn:port_b.1"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "18": {
- "roles": [
- "conn:port_b.2"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "21": {
- "roles": [],
- "note": "Audio PA control"
- },
- "26": {
- "roles": [
- "dev:psram.cs"
- ]
- },
- "27": {
- "roles": [
- "dev:psram.d3"
- ]
- },
- "28": {
- "roles": [
- "dev:psram.d2"
- ]
- },
- "30": {
- "roles": [
- "dev:psram.clk"
- ]
- },
- "31": {
- "roles": [
- "dev:psram.d1"
- ]
- },
- "32": {
- "roles": [
- "dev:psram.d0"
- ]
- },
- "33": {
- "roles": [
- "dev:psram.d4"
- ]
- },
- "34": {
- "roles": [
- "dev:psram.d5"
- ]
- },
- "35": {
- "roles": [
- "dev:psram.d6"
- ]
- },
- "36": {
- "roles": [
- "dev:psram.d7"
- ]
- },
- "37": {
- "roles": [
- "dev:psram.dqs"
- ]
- },
- "45": {
- "roles": [
- "dev:lcd.cs"
- ]
- },
- "46": {
- "roles": [
- "dev:lcd.dc"
- ]
- }
- },
- "buses": {
- "main_spi": {
- "kind": "spi",
- "signals": [
- "sclk",
- "mosi"
- ],
- "preferred_host": "SPI2_HOST",
- "fixed": false,
- "freq": 40000000,
- "freq_read": 16000000,
- "verified": {
- "signals": "generated",
- "preferred_host": "generated",
- "freq": "generated",
- "freq_read": "generated"
- }
- },
- "internal_i2c": {
- "kind": "i2c",
- "signals": [
- "sda",
- "scl"
- ],
- "preferred_host": 1,
- "freq": 100000,
- "fixed": false,
- "verified": {
- "signals": "generated",
- "preferred_host": "generated",
- "freq": "generated"
- }
- },
- "port_a_i2c": {
- "kind": "i2c",
- "signals": [
- "sda",
- "scl"
- ],
- "preferred_host": 0,
- "fixed": false,
- "verified": {
- "signals": "generated",
- "preferred_host": "generated"
- }
- }
- },
- "devices": {
- "lcd": {
- "kind": "display",
- "part": "jd9853",
- "bus": "main_spi",
- "spec": {
- "width": 240,
- "height": 240,
- "memory_width": 240,
- "memory_height": 320,
- "offset_x": 0,
- "offset_y": 0,
- "rotation_offset": 2,
- "invert": false,
- "readable": false,
- "rgb_order": true,
- "three_wire": true
- },
- "signals": {
- "cs": "gpio:45",
- "dc": "gpio:46"
- },
- "verified": {
- "signals": "generated"
- }
- },
- "backlight": {
- "kind": "backlight",
- "bus": "internal_i2c",
- "i2c_addr": "0x4F"
- },
- "pmic": {
- "kind": "pmic",
- "part": "m5pm1",
- "bus": "internal_i2c",
- "pins": {
- "pwrkey": {
- "roles": [
- "dev:btn_pwr.in"
- ]
- }
- }
- },
- "ioe": {
- "kind": "io_expander",
- "part": "m5ioe1",
- "bus": "internal_i2c"
- },
- "rtc": {
- "kind": "rtc",
- "part": "rx8130",
- "bus": "internal_i2c"
- },
- "imu": {
- "kind": "imu",
- "part": "bmi270",
- "bus": "internal_i2c",
- "i2c_addr": "0x68"
- },
- "btn_a": {
- "kind": "button",
- "part": "button",
- "spec": {
- "active_low": true,
- "pull": "external_up"
- },
- "signals": {
- "in": "gpio:1"
- },
- "verified": {
- "signals": "generated"
- }
- },
- "btn_b": {
- "kind": "button",
- "part": "button",
- "spec": {
- "active_low": true,
- "pull": "external_up"
- },
- "signals": {
- "in": "gpio:4"
- },
- "verified": {
- "signals": "generated"
- }
- },
- "btn_c": {
- "kind": "button",
- "part": "button",
- "spec": {
- "active_low": true,
- "pull": "external_up"
- },
- "signals": {
- "in": "gpio:5"
- },
- "verified": {
- "signals": "generated"
- }
- },
- "btn_pwr": {
- "kind": "button",
- "part": "button",
- "spec": {
- "active_low": true,
- "pull": "pmic"
- },
- "signals": {
- "in": "pin:pmic.pwrkey"
- },
- "verified": {
- "signals": "generated"
- }
- },
- "psram": {
- "kind": "psram",
- "part": "psram",
- "signals": {
- "cs": "gpio:26",
- "d3": "gpio:27",
- "d2": "gpio:28",
- "clk": "gpio:30",
- "d1": "gpio:31",
- "d0": "gpio:32",
- "d4": "gpio:33",
- "d5": "gpio:34",
- "d6": "gpio:35",
- "d7": "gpio:36",
- "dqs": "gpio:37"
- }
- }
- },
- "connectors": {
- "port_a": {
- "type": "hy2_4p",
- "standard": "port_i2c",
- "positions": {
- "1": "gpio:6",
- "2": "gpio:7",
- "3": "pwr:5v",
- "4": "pwr:gnd"
- }
- },
- "port_b": {
- "type": "hy2_4p",
- "standard": "port_io",
- "positions": {
- "1": "gpio:17",
- "2": "gpio:18",
- "3": "pwr:5v",
- "4": "pwr:gnd"
- }
- }
- }
-}
diff --git a/extras/board_spec/generated/resolved/m5dial.json b/extras/board_spec/generated/resolved/m5dial.json
deleted file mode 100644
index 27baf05e..00000000
--- a/extras/board_spec/generated/resolved/m5dial.json
+++ /dev/null
@@ -1,339 +0,0 @@
-{
- "schema_version": 1,
- "id": "m5dial",
- "name": "M5Dial",
- "official_name": "M5Stack Dial",
- "official_name_verified": true,
- "aliases": [
- "dial",
- "m5dial",
- "dial v1.1"
- ],
- "legacy_board_id": 12,
- "chip": "esp32s3",
- "spec": {
- "display": {
- "resolution": [
- 240,
- 240
- ],
- "touch": true
- },
- "storage": {
- "psram_mb": 0,
- "flash_mb": 8
- },
- "links": {
- "product": "https://docs.m5stack.com/en/core/Dial",
- "verified": {
- "product": "datasheet",
- "schematic": "datasheet"
- },
- "schematic": "https://m5stack-doc.oss-cn-shenzhen.aliyuncs.com/499/Sch_M5Dial.pdf"
- }
- },
- "pins": {
- "0": {
- "roles": [
- "dev:btn_b.in"
- ],
- "note": "Encoder push"
- },
- "1": {
- "roles": [
- "conn:port_b.1"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "2": {
- "roles": [
- "conn:port_b.2"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "3": {
- "roles": [
- "dev:buzzer.data_out"
- ]
- },
- "4": {
- "roles": [
- "dev:lcd.dc"
- ]
- },
- "5": {
- "roles": [
- "bus:main_spi.mosi"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "6": {
- "roles": [
- "bus:main_spi.sclk"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "7": {
- "roles": [
- "dev:lcd.cs"
- ]
- },
- "8": {
- "roles": [
- "dev:lcd.rst"
- ]
- },
- "9": {
- "roles": [
- "dev:backlight.pwm"
- ]
- },
- "11": {
- "roles": [
- "bus:internal_i2c.sda"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "12": {
- "roles": [
- "bus:internal_i2c.scl"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "13": {
- "roles": [
- "bus:port_a_i2c.sda",
- "conn:port_a.2"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "14": {
- "roles": [
- "dev:touch.int"
- ]
- },
- "15": {
- "roles": [
- "bus:port_a_i2c.scl",
- "conn:port_a.1"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "21": {
- "roles": [
- "dev:led.data"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "42": {
- "roles": [
- "dev:btn_a.in"
- ]
- },
- "46": {
- "roles": [
- "dev:power_hold.enable"
- ],
- "verified": {
- "roles": "generated"
- }
- }
- },
- "buses": {
- "main_spi": {
- "kind": "spi",
- "signals": [
- "sclk",
- "mosi"
- ],
- "preferred_host": "SPI2_HOST",
- "fixed": false,
- "freq": 80000000,
- "freq_read": 16000000,
- "verified": {
- "signals": "generated",
- "preferred_host": "generated",
- "freq": "generated",
- "freq_read": "generated"
- }
- },
- "internal_i2c": {
- "kind": "i2c",
- "signals": [
- "sda",
- "scl"
- ],
- "preferred_host": 1,
- "fixed": false,
- "freq": 400000,
- "verified": {
- "signals": "generated",
- "preferred_host": "generated",
- "freq": "generated"
- }
- },
- "port_a_i2c": {
- "kind": "i2c",
- "signals": [
- "sda",
- "scl"
- ],
- "preferred_host": 0,
- "fixed": false,
- "verified": {
- "signals": "generated",
- "preferred_host": "generated"
- }
- }
- },
- "devices": {
- "lcd": {
- "kind": "display",
- "part": "gc9a01",
- "bus": "main_spi",
- "spec": {
- "width": 240,
- "height": 240,
- "invert": true,
- "readable": false
- },
- "signals": {
- "dc": "gpio:4",
- "cs": "gpio:7",
- "rst": "gpio:8"
- },
- "verified": {
- "signals": "generated"
- }
- },
- "backlight": {
- "kind": "backlight",
- "spec": {
- "freq": 44100,
- "channel": 7,
- "invert": false,
- "offset": 0
- },
- "verified": {
- "spec": "generated",
- "signals": "generated"
- },
- "signals": {
- "pwm": "gpio:9"
- }
- },
- "touch": {
- "kind": "touch",
- "part": "ft5x06",
- "bus": "internal_i2c",
- "i2c_addr": "0x38",
- "spec": {
- "x_min": 0,
- "x_max": 239,
- "y_min": 0,
- "y_max": 239,
- "rotation_offset": 0
- },
- "signals": {
- "int": "gpio:14"
- },
- "verified": {
- "signals": "generated"
- }
- },
- "led": {
- "kind": "led_strip",
- "part": "sk6812",
- "verified": {
- "part": "datasheet",
- "signals": "generated"
- },
- "signals": {
- "data": "gpio:21"
- }
- },
- "power_hold": {
- "kind": "power_hold",
- "signals": {
- "enable": "gpio:46"
- },
- "verified": {
- "signals": "generated"
- }
- },
- "buzzer": {
- "kind": "speaker",
- "signals": {
- "data_out": "gpio:3"
- }
- },
- "btn_a": {
- "kind": "button",
- "part": "button",
- "spec": {
- "active_low": true,
- "pull": "external_up"
- },
- "signals": {
- "in": "gpio:42"
- },
- "verified": {
- "signals": "generated"
- }
- },
- "btn_b": {
- "kind": "button",
- "part": "button",
- "spec": {
- "active_low": true,
- "pull": "external_up"
- },
- "signals": {
- "in": "gpio:0"
- },
- "verified": {
- "signals": "generated"
- }
- }
- },
- "connectors": {
- "port_a": {
- "type": "hy2_4p",
- "standard": "port_i2c",
- "positions": {
- "1": "gpio:15",
- "2": "gpio:13",
- "3": "pwr:5v",
- "4": "pwr:gnd"
- }
- },
- "port_b": {
- "type": "hy2_4p",
- "standard": "port_io",
- "positions": {
- "1": "gpio:1",
- "2": "gpio:2",
- "3": "pwr:5v",
- "4": "pwr:gnd"
- }
- }
- }
-}
diff --git a/extras/board_spec/generated/resolved/m5dinmeter.json b/extras/board_spec/generated/resolved/m5dinmeter.json
deleted file mode 100644
index d644c7a8..00000000
--- a/extras/board_spec/generated/resolved/m5dinmeter.json
+++ /dev/null
@@ -1,316 +0,0 @@
-{
- "schema_version": 1,
- "id": "m5dinmeter",
- "name": "M5DinMeter",
- "official_name": "M5Stack DinMeter",
- "official_name_verified": true,
- "aliases": [
- "dinmeter",
- "din meter"
- ],
- "legacy_board_id": 13,
- "chip": "esp32s3",
- "spec": {
- "display": {
- "resolution": [
- 135,
- 240
- ],
- "touch": false
- },
- "storage": {
- "psram_mb": 0,
- "flash_mb": 8
- },
- "links": {
- "product": "https://docs.m5stack.com/en/core/DinMeter",
- "verified": {
- "product": "datasheet",
- "schematic": "datasheet"
- },
- "schematic": "https://m5stack-doc.oss-cn-shenzhen.aliyuncs.com/500/DIN_Meter_v1.0.pdf"
- }
- },
- "pins": {
- "0": {
- "roles": [
- "dev:btn_b.in"
- ]
- },
- "1": {
- "roles": [
- "conn:port_b.1"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "2": {
- "roles": [
- "conn:port_b.2"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "3": {
- "roles": [
- "dev:buzzer.data_out"
- ]
- },
- "4": {
- "roles": [
- "dev:lcd.dc"
- ]
- },
- "5": {
- "roles": [
- "bus:main_spi.mosi"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "6": {
- "roles": [
- "bus:main_spi.sclk"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "7": {
- "roles": [
- "dev:lcd.cs"
- ]
- },
- "8": {
- "roles": [
- "dev:lcd.rst"
- ]
- },
- "9": {
- "roles": [
- "dev:backlight.pwm"
- ]
- },
- "11": {
- "roles": [
- "bus:internal_i2c.sda"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "12": {
- "roles": [
- "bus:internal_i2c.scl"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "13": {
- "roles": [
- "bus:port_a_i2c.sda",
- "conn:port_a.2"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "15": {
- "roles": [
- "bus:port_a_i2c.scl",
- "conn:port_a.1"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "21": {
- "roles": [
- "dev:led.data"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "42": {
- "roles": [
- "dev:btn_a.in"
- ]
- },
- "46": {
- "roles": [
- "dev:power_hold.enable"
- ],
- "verified": {
- "roles": "generated"
- }
- }
- },
- "buses": {
- "main_spi": {
- "kind": "spi",
- "signals": [
- "sclk",
- "mosi"
- ],
- "preferred_host": "SPI2_HOST",
- "fixed": false,
- "freq": 40000000,
- "freq_read": 16000000,
- "verified": {
- "signals": "generated",
- "preferred_host": "generated",
- "freq": "generated",
- "freq_read": "generated"
- }
- },
- "internal_i2c": {
- "kind": "i2c",
- "signals": [
- "sda",
- "scl"
- ],
- "preferred_host": 1,
- "fixed": false,
- "freq": 400000,
- "verified": {
- "signals": "generated",
- "preferred_host": "generated",
- "freq": "generated"
- }
- },
- "port_a_i2c": {
- "kind": "i2c",
- "signals": [
- "sda",
- "scl"
- ],
- "preferred_host": 0,
- "fixed": false,
- "verified": {
- "signals": "generated",
- "preferred_host": "generated"
- }
- }
- },
- "devices": {
- "lcd": {
- "kind": "display",
- "part": "st7789v2",
- "bus": "main_spi",
- "spec": {
- "width": 135,
- "height": 240,
- "offset_x": 52,
- "offset_y": 40,
- "rotation_offset": 3,
- "invert": true,
- "readable": true
- },
- "signals": {
- "dc": "gpio:4",
- "cs": "gpio:7",
- "rst": "gpio:8"
- },
- "verified": {
- "signals": "generated"
- }
- },
- "backlight": {
- "kind": "backlight",
- "spec": {
- "freq": 256,
- "channel": 7,
- "invert": false,
- "offset": 16
- },
- "verified": {
- "spec": "generated",
- "signals": "generated"
- },
- "signals": {
- "pwm": "gpio:9"
- }
- },
- "led": {
- "kind": "led_strip",
- "part": "sk6812",
- "verified": {
- "part": "datasheet",
- "signals": "generated"
- },
- "signals": {
- "data": "gpio:21"
- }
- },
- "power_hold": {
- "kind": "power_hold",
- "signals": {
- "enable": "gpio:46"
- },
- "verified": {
- "signals": "generated"
- }
- },
- "buzzer": {
- "kind": "speaker",
- "signals": {
- "data_out": "gpio:3"
- }
- },
- "btn_a": {
- "kind": "button",
- "part": "button",
- "spec": {
- "active_low": true,
- "pull": "external_up"
- },
- "signals": {
- "in": "gpio:42"
- },
- "verified": {
- "signals": "generated"
- }
- },
- "btn_b": {
- "kind": "button",
- "part": "button",
- "spec": {
- "active_low": true,
- "pull": "external_up"
- },
- "signals": {
- "in": "gpio:0"
- },
- "verified": {
- "signals": "generated"
- }
- }
- },
- "connectors": {
- "port_a": {
- "type": "hy2_4p",
- "standard": "port_i2c",
- "positions": {
- "1": "gpio:15",
- "2": "gpio:13",
- "3": "pwr:5v",
- "4": "pwr:gnd"
- }
- },
- "port_b": {
- "type": "hy2_4p",
- "standard": "port_io",
- "positions": {
- "1": "gpio:1",
- "2": "gpio:2",
- "3": "pwr:5v",
- "4": "pwr:gnd"
- }
- }
- }
-}
diff --git a/extras/board_spec/generated/resolved/m5dualkey.json b/extras/board_spec/generated/resolved/m5dualkey.json
deleted file mode 100644
index 56ec9ae4..00000000
--- a/extras/board_spec/generated/resolved/m5dualkey.json
+++ /dev/null
@@ -1,147 +0,0 @@
-{
- "schema_version": 1,
- "id": "m5dualkey",
- "name": "M5DualKey",
- "official_name": "M5Stack Chain DualKey",
- "official_name_verified": true,
- "legacy_board_id": 147,
- "chip": "esp32s3",
- "spec": {
- "links": {
- "product": "https://docs.m5stack.com/en/chain/Chain_DualKey",
- "verified": {
- "product": "datasheet",
- "schematic": "datasheet"
- },
- "schematic": "https://m5stack-doc.oss-cn-shenzhen.aliyuncs.com/1176/Chain_DualKey_SCH_V1.5_20250725_2025_07_25_16_06_51.pdf"
- }
- },
- "pins": {
- "0": {
- "roles": [
- "dev:btn_a.in"
- ]
- },
- "5": {
- "roles": [
- "conn:chain_2.3"
- ],
- "verified": {
- "roles": "datasheet"
- }
- },
- "6": {
- "roles": [
- "conn:chain_2.4"
- ],
- "verified": {
- "roles": "datasheet"
- }
- },
- "17": {
- "roles": [
- "dev:btn_b.in"
- ]
- },
- "21": {
- "roles": [
- "dev:rgb_led.data"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "38": {
- "roles": [],
- "note": "NC; measured floating"
- },
- "39": {
- "roles": [],
- "note": "NC; measured floating"
- },
- "47": {
- "roles": [
- "conn:chain_1.4"
- ],
- "verified": {
- "roles": "datasheet"
- }
- },
- "48": {
- "roles": [
- "conn:chain_1.3"
- ],
- "verified": {
- "roles": "datasheet"
- }
- }
- },
- "buses": {},
- "devices": {
- "btn_a": {
- "kind": "button",
- "part": "button",
- "spec": {
- "active_low": true,
- "pull": "external_up"
- },
- "signals": {
- "in": "gpio:0"
- },
- "verified": {
- "signals": "generated"
- }
- },
- "btn_b": {
- "kind": "button",
- "part": "button",
- "spec": {
- "active_low": true,
- "pull": "external_up"
- },
- "signals": {
- "in": "gpio:17"
- },
- "verified": {
- "signals": "generated"
- }
- },
- "rgb_led": {
- "kind": "led_strip",
- "signals": {
- "data": "gpio:21"
- },
- "verified": {
- "signals": "generated"
- }
- }
- },
- "connectors": {
- "chain_1": {
- "type": "logical_terminals_4",
- "positions": {
- "1": "pwr:gnd",
- "2": "pwr:5v",
- "3": "gpio:48",
- "4": "gpio:47"
- },
- "note": "HY2.0-4P_1 in logical official table order GND/VOUT/UART1_RX/UART1_TX. A physical Chain connector, not a library Port A/B/C contract. Logical terminal order; physical geometry is unverified.",
- "verified": {
- "positions": "datasheet"
- }
- },
- "chain_2": {
- "type": "logical_terminals_4",
- "positions": {
- "1": "pwr:gnd",
- "2": "pwr:5v",
- "3": "gpio:5",
- "4": "gpio:6"
- },
- "note": "HY2.0-4P_2 in logical official table order GND/VOUT/UART2_RX/UART2_TX. A physical Chain connector, not a library Port A/B/C contract. Logical terminal order; physical geometry is unverified.",
- "verified": {
- "positions": "datasheet"
- }
- }
- }
-}
diff --git a/extras/board_spec/generated/resolved/m5nanoc6.json b/extras/board_spec/generated/resolved/m5nanoc6.json
deleted file mode 100644
index cd05998b..00000000
--- a/extras/board_spec/generated/resolved/m5nanoc6.json
+++ /dev/null
@@ -1,71 +0,0 @@
-{
- "schema_version": 1,
- "id": "m5nanoc6",
- "name": "M5NanoC6",
- "official_name": "M5Stack NanoC6",
- "official_name_verified": true,
- "legacy_board_id": 140,
- "chip": "esp32c6",
- "spec": {
- "links": {
- "product": "https://docs.m5stack.com/en/core/NanoC6",
- "verified": {
- "product": "datasheet",
- "schematic": "datasheet"
- },
- "schematic": "https://m5stack-doc.oss-cn-shenzhen.aliyuncs.com/505/Sch_M5NanoC6_v0.0.1.pdf"
- }
- },
- "pins": {
- "1": {
- "roles": [
- "conn:port_a.1"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "2": {
- "roles": [
- "conn:port_a.2"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "3": {
- "roles": [
- "dev:ir_led.on"
- ],
- "note": "IR LED clamps the internal pull-up low",
- "verified": {
- "roles": "measured"
- },
- "measured_by": {
- "roles": "docs/investigations/nano-c6-h2-pins-2026-09-28.md"
- }
- }
- },
- "buses": {},
- "devices": {
- "ir_led": {
- "kind": "led",
- "signals": {
- "on": "gpio:3"
- }
- }
- },
- "connectors": {
- "port_a": {
- "type": "hy2_4p",
- "standard": "port_i2c",
- "note": "Product marking PORT.CUSTOM; registered as port_a because M5Unified external I2C uses GPIO1 (SCL)/GPIO2 (SDA).",
- "positions": {
- "1": "gpio:1",
- "2": "gpio:2",
- "3": "pwr:5v",
- "4": "pwr:gnd"
- }
- }
- }
-}
diff --git a/extras/board_spec/generated/resolved/m5nanoh2.json b/extras/board_spec/generated/resolved/m5nanoh2.json
deleted file mode 100644
index 78ac11e9..00000000
--- a/extras/board_spec/generated/resolved/m5nanoh2.json
+++ /dev/null
@@ -1,71 +0,0 @@
-{
- "schema_version": 1,
- "id": "m5nanoh2",
- "name": "M5NanoH2",
- "official_name": "M5Stack NanoH2",
- "official_name_verified": true,
- "legacy_board_id": 151,
- "chip": "esp32h2",
- "spec": {
- "links": {
- "product": "https://docs.m5stack.com/en/core/NanoH2",
- "verified": {
- "product": "datasheet",
- "schematic": "datasheet"
- },
- "schematic": "https://m5stack-doc.oss-cn-shenzhen.aliyuncs.com/1204/SCH_M5NanoH2_v0.0.3_2025_08_20_17_17_26.pdf"
- }
- },
- "pins": {
- "1": {
- "roles": [
- "conn:port_a.1"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "2": {
- "roles": [
- "conn:port_a.2"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "3": {
- "roles": [
- "dev:ir_led.on"
- ],
- "note": "IR LED clamps the internal pull-up low",
- "verified": {
- "roles": "measured"
- },
- "measured_by": {
- "roles": "docs/investigations/nano-c6-h2-pins-2026-09-28.md"
- }
- }
- },
- "buses": {},
- "devices": {
- "ir_led": {
- "kind": "led",
- "signals": {
- "on": "gpio:3"
- }
- }
- },
- "connectors": {
- "port_a": {
- "type": "hy2_4p",
- "standard": "port_i2c",
- "note": "Product marking PORT.CUSTOM; registered as port_a because M5Unified external I2C uses GPIO1 (SCL)/GPIO2 (SDA).",
- "positions": {
- "1": "gpio:1",
- "2": "gpio:2",
- "3": "pwr:5v",
- "4": "pwr:gnd"
- }
- }
- }
-}
diff --git a/extras/board_spec/generated/resolved/m5paper.json b/extras/board_spec/generated/resolved/m5paper.json
deleted file mode 100644
index 8d8485f7..00000000
--- a/extras/board_spec/generated/resolved/m5paper.json
+++ /dev/null
@@ -1,418 +0,0 @@
-{
- "schema_version": 1,
- "id": "m5paper",
- "name": "M5Paper",
- "official_name": "M5Stack Paper",
- "official_name_verified": true,
- "aliases": [
- "paper",
- "m5paper",
- "paper v1.1",
- "comm edition"
- ],
- "legacy_board_id": 7,
- "chip": "esp32_d0wdq6",
- "spec": {
- "storage": {
- "psram_mb": 8,
- "psram_mode": "quad"
- },
- "links": {
- "product": "https://docs.m5stack.com/en/core/Paper",
- "schematic": "https://m5stack.oss-cn-shenzhen.aliyuncs.com/resource/docs/schematic/Core/m5paper/M5_PAPER_SCH.pdf",
- "verified": {
- "product": "datasheet",
- "schematic": "datasheet"
- }
- }
- },
- "pins": {
- "0": {
- "roles": [
- "dev:usb_serial.boot"
- ]
- },
- "1": {
- "roles": [
- "bus:console_uart.tx"
- ]
- },
- "2": {
- "roles": [
- "dev:power_hold.enable"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "3": {
- "roles": [
- "bus:console_uart.rx"
- ]
- },
- "4": {
- "roles": [
- "dev:sd.d3"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "12": {
- "roles": [
- "bus:main_spi.mosi",
- "dev:sd.cmd"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "13": {
- "roles": [
- "bus:main_spi.miso",
- "dev:sd.d0"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "14": {
- "roles": [
- "bus:main_spi.sclk",
- "dev:sd.clk"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "15": {
- "roles": [
- "dev:lcd.cs"
- ]
- },
- "16": {
- "roles": [
- "dev:psram.cs"
- ]
- },
- "17": {
- "roles": [
- "dev:psram.clk"
- ]
- },
- "18": {
- "roles": [
- "conn:port_c.2"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "19": {
- "roles": [
- "conn:port_c.1"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "21": {
- "roles": [
- "bus:internal_i2c.sda"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "22": {
- "roles": [
- "bus:internal_i2c.scl"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "23": {
- "roles": [
- "dev:lcd.rst"
- ]
- },
- "25": {
- "roles": [
- "bus:port_a_i2c.sda",
- "conn:port_a.2"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "26": {
- "roles": [
- "conn:port_b.2"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "27": {
- "roles": [
- "dev:lcd.busy"
- ]
- },
- "32": {
- "roles": [
- "bus:port_a_i2c.scl",
- "conn:port_a.1"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "33": {
- "roles": [
- "conn:port_b.1"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "36": {
- "roles": [
- "dev:touch.int"
- ]
- },
- "37": {
- "roles": [
- "dev:btn_a.in"
- ]
- },
- "38": {
- "roles": [
- "dev:btn_b.in"
- ]
- },
- "39": {
- "roles": [
- "dev:btn_c.in"
- ]
- }
- },
- "buses": {
- "console_uart": {
- "kind": "uart",
- "signals": [
- "tx",
- "rx"
- ],
- "preferred_host": 0,
- "fixed": true
- },
- "main_spi": {
- "kind": "spi",
- "signals": [
- "sclk",
- "mosi",
- "miso"
- ],
- "preferred_host": "SPI3_HOST",
- "fixed": false,
- "freq": 40000000,
- "freq_read": 20000000,
- "verified": {
- "signals": "generated",
- "preferred_host": "generated",
- "freq": "generated",
- "freq_read": "generated"
- }
- },
- "internal_i2c": {
- "kind": "i2c",
- "signals": [
- "sda",
- "scl"
- ],
- "preferred_host": 1,
- "fixed": false,
- "freq": 400000,
- "verified": {
- "signals": "generated",
- "preferred_host": "generated",
- "freq": "generated"
- }
- },
- "port_a_i2c": {
- "kind": "i2c",
- "signals": [
- "sda",
- "scl"
- ],
- "preferred_host": 0,
- "fixed": false,
- "verified": {
- "signals": "generated",
- "preferred_host": "generated"
- }
- }
- },
- "devices": {
- "usb_serial": {
- "kind": "usb_uart",
- "part": "cp2104",
- "bus": "console_uart",
- "spec": {
- "auto_reset": true
- },
- "signals": {
- "boot": "gpio:0"
- }
- },
- "lcd": {
- "kind": "display",
- "part": "it8951",
- "bus": "main_spi",
- "spec": {
- "width": 960,
- "height": 540,
- "rotation_offset": 3
- },
- "signals": {
- "cs": "gpio:15",
- "rst": "gpio:23",
- "busy": "gpio:27"
- },
- "verified": {
- "signals": "generated"
- }
- },
- "sd": {
- "kind": "sd",
- "part": "sd_slot",
- "bus": "main_spi",
- "verified": {
- "bus": "generated",
- "signals": "generated",
- "derived": "generated"
- },
- "signals": {
- "d3": "gpio:4",
- "cmd": "gpio:12",
- "d0": "gpio:13",
- "clk": "gpio:14"
- },
- "derived": {
- "modes": [
- "spi"
- ],
- "bus": "main_spi",
- "cs": "gpio:4"
- }
- },
- "touch": {
- "kind": "touch",
- "part": "gt911",
- "bus": "internal_i2c",
- "i2c_addr": "0x5D",
- "spec": {
- "x_max": 539,
- "y_max": 959
- },
- "signals": {
- "int": "gpio:36"
- },
- "verified": {
- "signals": "generated"
- }
- },
- "power_hold": {
- "kind": "power_hold",
- "signals": {
- "enable": "gpio:2"
- },
- "verified": {
- "signals": "generated"
- }
- },
- "btn_a": {
- "kind": "button",
- "part": "button",
- "spec": {
- "active_low": true,
- "pull": "external_up"
- },
- "signals": {
- "in": "gpio:37"
- },
- "verified": {
- "signals": "generated"
- }
- },
- "btn_b": {
- "kind": "button",
- "part": "button",
- "spec": {
- "active_low": true,
- "pull": "external_up"
- },
- "signals": {
- "in": "gpio:38"
- },
- "verified": {
- "signals": "generated"
- }
- },
- "btn_c": {
- "kind": "button",
- "part": "button",
- "spec": {
- "active_low": true,
- "pull": "external_up"
- },
- "signals": {
- "in": "gpio:39"
- },
- "verified": {
- "signals": "generated"
- }
- },
- "psram": {
- "kind": "psram",
- "part": "psram",
- "signals": {
- "cs": "gpio:16",
- "clk": "gpio:17"
- }
- }
- },
- "connectors": {
- "port_a": {
- "type": "hy2_4p",
- "standard": "port_i2c",
- "positions": {
- "1": "gpio:32",
- "2": "gpio:25",
- "3": "pwr:5v",
- "4": "pwr:gnd"
- }
- },
- "port_b": {
- "type": "hy2_4p",
- "standard": "port_io",
- "positions": {
- "1": "gpio:33",
- "2": "gpio:26",
- "3": "pwr:5v",
- "4": "pwr:gnd"
- }
- },
- "port_c": {
- "type": "hy2_4p",
- "standard": "port_uart",
- "positions": {
- "1": "gpio:19",
- "2": "gpio:18",
- "3": "pwr:5v",
- "4": "pwr:gnd"
- }
- }
- }
-}
diff --git a/extras/board_spec/generated/resolved/m5papercolor.json b/extras/board_spec/generated/resolved/m5papercolor.json
deleted file mode 100644
index f7de4bc6..00000000
--- a/extras/board_spec/generated/resolved/m5papercolor.json
+++ /dev/null
@@ -1,424 +0,0 @@
-{
- "schema_version": 1,
- "id": "m5papercolor",
- "name": "M5PaperColor",
- "official_name": "M5Stack PaperColor",
- "official_name_verified": true,
- "aliases": [
- "papercolor",
- "paper color",
- "m5paper color"
- ],
- "legacy_board_id": 28,
- "chip": "esp32s3",
- "spec": {
- "display": {
- "resolution": [
- 400,
- 600
- ],
- "touch": false
- },
- "storage": {
- "psram_mb": 8,
- "psram_mode": "opi",
- "sd": true
- },
- "links": {
- "product": "https://docs.m5stack.com/en/core/PaperColor",
- "schematic": "https://m5stack-doc.oss-cn-shenzhen.aliyuncs.com/1239/C151-SCH_PaperColor_V0.5_SCH_PDF_20260424_EN_2026_04_24_11_01_17.pdf",
- "verified": {
- "product": "datasheet",
- "schematic": "datasheet"
- }
- }
- },
- "pins": {
- "1": {
- "roles": [
- "dev:btn_c.in"
- ]
- },
- "2": {
- "roles": [
- "bus:internal_i2c.scl"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "3": {
- "roles": [
- "bus:internal_i2c.sda"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "4": {
- "roles": [
- "bus:port_a_i2c.sda",
- "conn:port_a.2"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "5": {
- "roles": [
- "bus:port_a_i2c.scl",
- "conn:port_a.1"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "9": {
- "roles": [
- "dev:btn_b.in"
- ]
- },
- "10": {
- "roles": [
- "dev:btn_a.in"
- ]
- },
- "11": {
- "roles": [
- "dev:epd.busy"
- ]
- },
- "12": {
- "roles": [
- "dev:epd.rst"
- ]
- },
- "13": {
- "roles": [
- "bus:main_spi.mosi",
- "dev:sd.cmd"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "14": {
- "roles": [
- "bus:main_spi.miso",
- "dev:sd.d0"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "15": {
- "roles": [
- "bus:main_spi.sclk",
- "dev:sd.clk"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "21": {
- "roles": [
- "dev:rgb_led.data"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "26": {
- "roles": [
- "dev:psram.cs"
- ]
- },
- "27": {
- "roles": [
- "dev:psram.d3"
- ]
- },
- "28": {
- "roles": [
- "dev:psram.d2"
- ]
- },
- "30": {
- "roles": [
- "dev:psram.clk"
- ]
- },
- "31": {
- "roles": [
- "dev:psram.d1"
- ]
- },
- "32": {
- "roles": [
- "dev:psram.d0"
- ]
- },
- "33": {
- "roles": [
- "dev:psram.d4"
- ]
- },
- "34": {
- "roles": [
- "dev:psram.d5"
- ]
- },
- "35": {
- "roles": [
- "dev:psram.d6"
- ]
- },
- "36": {
- "roles": [
- "dev:psram.d7"
- ]
- },
- "37": {
- "roles": [
- "dev:psram.dqs"
- ]
- },
- "43": {
- "roles": [
- "dev:epd.dc"
- ]
- },
- "44": {
- "roles": [
- "dev:epd.cs"
- ]
- },
- "47": {
- "roles": [
- "dev:sd.d3"
- ],
- "verified": {
- "roles": "generated"
- }
- }
- },
- "buses": {
- "main_spi": {
- "kind": "spi",
- "signals": [
- "sclk",
- "mosi",
- "miso"
- ],
- "preferred_host": "SPI2_HOST",
- "fixed": false,
- "freq": 4000000,
- "freq_read": 1000000,
- "verified": {
- "signals": "generated",
- "preferred_host": "generated",
- "freq": "generated",
- "freq_read": "generated"
- }
- },
- "internal_i2c": {
- "kind": "i2c",
- "signals": [
- "sda",
- "scl"
- ],
- "preferred_host": 1,
- "freq": 100000,
- "fixed": false,
- "verified": {
- "signals": "generated",
- "preferred_host": "generated",
- "freq": "generated"
- }
- },
- "port_a_i2c": {
- "kind": "i2c",
- "signals": [
- "sda",
- "scl"
- ],
- "preferred_host": 0,
- "fixed": false,
- "verified": {
- "signals": "generated",
- "preferred_host": "generated"
- }
- }
- },
- "devices": {
- "epd": {
- "kind": "display",
- "part": "ed2208",
- "bus": "main_spi",
- "spec": {
- "width": 400,
- "height": 600,
- "offset_x": 0,
- "offset_y": 0,
- "rotation_offset": 0,
- "invert": false,
- "readable": false,
- "three_wire": true
- },
- "signals": {
- "busy": "gpio:11",
- "rst": "gpio:12",
- "dc": "gpio:43",
- "cs": "gpio:44"
- },
- "verified": {
- "signals": "generated"
- }
- },
- "sd": {
- "kind": "sd",
- "part": "sd_slot",
- "bus": "main_spi",
- "verified": {
- "bus": "generated",
- "signals": "generated",
- "derived": "generated"
- },
- "signals": {
- "cmd": "gpio:13",
- "d0": "gpio:14",
- "clk": "gpio:15",
- "d3": "gpio:47"
- },
- "derived": {
- "modes": [
- "spi",
- "sdio1"
- ],
- "bus": "main_spi",
- "cs": "gpio:47"
- }
- },
- "pmic": {
- "kind": "pmic",
- "part": "m5pm1",
- "bus": "internal_i2c",
- "pins": {
- "pwrkey": {
- "roles": [
- "dev:btn_pwr.in"
- ]
- }
- }
- },
- "rtc": {
- "kind": "rtc",
- "part": "rx8130",
- "bus": "internal_i2c"
- },
- "env": {
- "kind": "sensor",
- "part": "sht40",
- "bus": "internal_i2c"
- },
- "rgb_led": {
- "kind": "led_strip",
- "part": "sk6812",
- "spec": {
- "count": 2
- },
- "signals": {
- "data": "gpio:21"
- },
- "verified": {
- "signals": "generated"
- }
- },
- "btn_a": {
- "kind": "button",
- "part": "button",
- "spec": {
- "active_low": true,
- "pull": "external_up"
- },
- "signals": {
- "in": "gpio:10"
- },
- "verified": {
- "signals": "generated"
- }
- },
- "btn_b": {
- "kind": "button",
- "part": "button",
- "spec": {
- "active_low": true,
- "pull": "external_up"
- },
- "signals": {
- "in": "gpio:9"
- },
- "verified": {
- "signals": "generated"
- }
- },
- "btn_c": {
- "kind": "button",
- "part": "button",
- "spec": {
- "active_low": true,
- "pull": "external_up"
- },
- "signals": {
- "in": "gpio:1"
- },
- "verified": {
- "signals": "generated"
- }
- },
- "btn_pwr": {
- "kind": "button",
- "part": "button",
- "spec": {
- "active_low": true,
- "pull": "pmic"
- },
- "signals": {
- "in": "pin:pmic.pwrkey"
- },
- "verified": {
- "signals": "generated"
- }
- },
- "psram": {
- "kind": "psram",
- "part": "psram",
- "signals": {
- "cs": "gpio:26",
- "d3": "gpio:27",
- "d2": "gpio:28",
- "clk": "gpio:30",
- "d1": "gpio:31",
- "d0": "gpio:32",
- "d4": "gpio:33",
- "d5": "gpio:34",
- "d6": "gpio:35",
- "d7": "gpio:36",
- "dqs": "gpio:37"
- }
- }
- },
- "connectors": {
- "port_a": {
- "type": "hy2_4p",
- "standard": "port_i2c",
- "note": "Grove 5V direction is controlled by PY_GROVE_OUT_EN (M5PM1 BOOST5V_EN_PP); the official pin map assigns white GPIO5 and yellow GPIO4.",
- "positions": {
- "1": "gpio:5",
- "2": "gpio:4",
- "3": "pwr:5v",
- "4": "pwr:gnd"
- }
- }
- }
-}
diff --git a/extras/board_spec/generated/resolved/m5paperdiy.json b/extras/board_spec/generated/resolved/m5paperdiy.json
deleted file mode 100644
index 7f9974a1..00000000
--- a/extras/board_spec/generated/resolved/m5paperdiy.json
+++ /dev/null
@@ -1,396 +0,0 @@
-{
- "schema_version": 1,
- "id": "m5paperdiy",
- "name": "M5PaperDIY",
- "official_name": "M5Stack PaperDIY",
- "aliases": [
- "paperdiy",
- "paper diy"
- ],
- "legacy_board_id": 34,
- "chip": "esp32s3",
- "spec": {
- "display": {
- "resolution": [
- 960,
- 540
- ],
- "touch": false
- },
- "storage": {
- "psram_mode": "opi",
- "sd": true,
- "psram_mb": 8
- }
- },
- "pins": {
- "3": {
- "roles": [
- "dev:btn_b.in"
- ]
- },
- "4": {
- "roles": [
- "dev:btn_a.in"
- ]
- },
- "6": {
- "roles": [
- "bus:epd_bus.data0"
- ]
- },
- "7": {
- "roles": [
- "bus:epd_bus.data2"
- ]
- },
- "8": {
- "roles": [
- "bus:epd_bus.data6"
- ]
- },
- "9": {
- "roles": [
- "bus:epd_bus.data4"
- ]
- },
- "10": {
- "roles": [
- "bus:epd_bus.data7"
- ]
- },
- "11": {
- "roles": [
- "bus:epd_bus.data5"
- ]
- },
- "12": {
- "roles": [
- "bus:epd_bus.data3"
- ]
- },
- "13": {
- "roles": [
- "bus:epd_bus.sph"
- ]
- },
- "14": {
- "roles": [
- "bus:epd_bus.data1"
- ]
- },
- "15": {
- "roles": [
- "bus:epd_bus.le"
- ]
- },
- "16": {
- "roles": [
- "bus:epd_bus.cl"
- ]
- },
- "17": {
- "roles": [
- "bus:epd_bus.spv"
- ]
- },
- "18": {
- "roles": [
- "bus:epd_bus.ckv"
- ]
- },
- "26": {
- "roles": [
- "dev:psram.cs"
- ]
- },
- "27": {
- "roles": [
- "dev:psram.d3"
- ]
- },
- "28": {
- "roles": [
- "dev:psram.d2"
- ]
- },
- "30": {
- "roles": [
- "dev:psram.clk"
- ]
- },
- "31": {
- "roles": [
- "dev:psram.d1"
- ]
- },
- "32": {
- "roles": [
- "dev:psram.d0"
- ]
- },
- "33": {
- "roles": [
- "dev:psram.d4"
- ]
- },
- "34": {
- "roles": [
- "dev:psram.d5"
- ]
- },
- "35": {
- "roles": [
- "dev:psram.d6"
- ]
- },
- "36": {
- "roles": [
- "dev:psram.d7"
- ]
- },
- "37": {
- "roles": [
- "dev:psram.dqs"
- ]
- },
- "38": {
- "roles": [
- "bus:sd_spi.mosi",
- "dev:sd.cmd"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "39": {
- "roles": [
- "bus:sd_spi.sclk",
- "dev:sd.clk"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "40": {
- "roles": [
- "bus:sd_spi.miso",
- "dev:sd.d0"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "41": {
- "roles": [
- "bus:internal_i2c.sda",
- "conn:port_a.2"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "42": {
- "roles": [
- "bus:internal_i2c.scl",
- "conn:port_a.1"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "45": {
- "roles": [
- "bus:epd_bus.oe"
- ]
- },
- "46": {
- "roles": [
- "bus:epd_bus.pwr"
- ]
- },
- "47": {
- "roles": [
- "dev:sd.d3"
- ],
- "verified": {
- "roles": "generated"
- }
- }
- },
- "buses": {
- "epd_bus": {
- "kind": "parallel_epd",
- "signals": [
- "data0",
- "data1",
- "data2",
- "data3",
- "data4",
- "data5",
- "data6",
- "data7",
- "pwr",
- "spv",
- "ckv",
- "sph",
- "oe",
- "le",
- "cl"
- ],
- "fixed": false,
- "freq": 16000000
- },
- "sd_spi": {
- "kind": "spi",
- "signals": [
- "sclk",
- "mosi",
- "miso"
- ],
- "fixed": false,
- "verified": {
- "signals": "generated"
- }
- },
- "internal_i2c": {
- "kind": "i2c",
- "signals": [
- "sda",
- "scl"
- ],
- "preferred_host": 1,
- "freq": 100000,
- "fixed": false,
- "verified": {
- "signals": "generated",
- "preferred_host": "generated",
- "freq": "generated"
- }
- }
- },
- "devices": {
- "epd": {
- "kind": "display",
- "part": "ed047tc1",
- "bus": "epd_bus",
- "spec": {
- "width": 960,
- "height": 540,
- "memory_width": 960,
- "memory_height": 540,
- "offset_x": 0,
- "offset_y": 0,
- "rotation_offset": 3,
- "line_padding": 8
- }
- },
- "sd": {
- "kind": "sd",
- "part": "sd_slot",
- "bus": "sd_spi",
- "verified": {
- "bus": "generated",
- "signals": "generated",
- "derived": "generated"
- },
- "signals": {
- "cmd": "gpio:38",
- "clk": "gpio:39",
- "d0": "gpio:40",
- "d3": "gpio:47"
- },
- "derived": {
- "modes": [
- "spi",
- "sdio1"
- ],
- "bus": "sd_spi",
- "cs": "gpio:47"
- }
- },
- "pmic": {
- "kind": "pmic",
- "part": "m5pm1",
- "bus": "internal_i2c",
- "pins": {
- "pwrkey": {
- "roles": [
- "dev:btn_pwr.in"
- ]
- }
- }
- },
- "btn_a": {
- "kind": "button",
- "part": "button",
- "spec": {
- "active_low": true,
- "pull": "external_up"
- },
- "signals": {
- "in": "gpio:4"
- },
- "verified": {
- "signals": "generated"
- }
- },
- "btn_b": {
- "kind": "button",
- "part": "button",
- "spec": {
- "active_low": true,
- "pull": "external_up"
- },
- "signals": {
- "in": "gpio:3"
- },
- "verified": {
- "signals": "generated"
- }
- },
- "btn_pwr": {
- "kind": "button",
- "part": "button",
- "spec": {
- "active_low": true,
- "pull": "pmic"
- },
- "signals": {
- "in": "pin:pmic.pwrkey"
- },
- "verified": {
- "signals": "generated"
- }
- },
- "psram": {
- "kind": "psram",
- "part": "psram",
- "signals": {
- "cs": "gpio:26",
- "d3": "gpio:27",
- "d2": "gpio:28",
- "clk": "gpio:30",
- "d1": "gpio:31",
- "d0": "gpio:32",
- "d4": "gpio:33",
- "d5": "gpio:34",
- "d6": "gpio:35",
- "d7": "gpio:36",
- "dqs": "gpio:37"
- }
- }
- },
- "connectors": {
- "port_a": {
- "type": "hy2_4p",
- "standard": "port_i2c",
- "positions": {
- "1": "gpio:42",
- "2": "gpio:41",
- "3": "pwr:5v",
- "4": "pwr:gnd"
- }
- }
- }
-}
diff --git a/extras/board_spec/generated/resolved/m5papermono.json b/extras/board_spec/generated/resolved/m5papermono.json
deleted file mode 100644
index a6a907e6..00000000
--- a/extras/board_spec/generated/resolved/m5papermono.json
+++ /dev/null
@@ -1,438 +0,0 @@
-{
- "schema_version": 1,
- "id": "m5papermono",
- "name": "M5PaperMono",
- "official_name": "M5Stack PaperMono",
- "official_name_verified": true,
- "aliases": [
- "papermono",
- "paper mono",
- "m5papermono",
- "papermono-lite"
- ],
- "legacy_board_id": 29,
- "chip": "esp32s3",
- "spec": {
- "display": {
- "resolution": [
- 800,
- 480
- ],
- "touch": true
- },
- "storage": {
- "psram_mb": 8,
- "psram_mode": "opi",
- "sd": true
- },
- "links": {
- "product": "https://docs.m5stack.com/en/core/PaperMono",
- "schematic": "https://m5stack-doc.oss-cn-shenzhen.aliyuncs.com/1267/PaperMono_SCH_V0.6.2_20260522.pdf",
- "verified": {
- "product": "datasheet",
- "schematic": "datasheet"
- }
- }
- },
- "pins": {
- "2": {
- "roles": [
- "dev:btn_a.in"
- ]
- },
- "3": {
- "roles": [
- "dev:btn_b.in"
- ]
- },
- "4": {
- "roles": [
- "dev:touch.int"
- ]
- },
- "8": {
- "roles": [
- "bus:sdmmc.d3",
- "dev:sd.d3"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "9": {
- "roles": [
- "bus:sdmmc.d2",
- "dev:sd.d2"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "10": {
- "roles": [
- "bus:sdmmc.d1",
- "dev:sd.d1"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "11": {
- "roles": [
- "bus:sdmmc.d0",
- "dev:sd.d0"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "12": {
- "roles": [
- "bus:sdmmc.cmd",
- "dev:sd.cmd"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "13": {
- "roles": [
- "bus:sdmmc.clk",
- "dev:sd.clk"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "14": {
- "roles": [
- "bus:main_spi.mosi"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "15": {
- "roles": [
- "bus:main_spi.sclk"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "16": {
- "roles": [
- "dev:epd.cs"
- ]
- },
- "17": {
- "roles": [
- "dev:epd.dc"
- ]
- },
- "18": {
- "roles": [
- "dev:epd.busy"
- ]
- },
- "26": {
- "roles": [
- "dev:psram.cs"
- ]
- },
- "27": {
- "roles": [
- "dev:psram.d3"
- ]
- },
- "28": {
- "roles": [
- "dev:psram.d2"
- ]
- },
- "30": {
- "roles": [
- "dev:psram.clk"
- ]
- },
- "31": {
- "roles": [
- "dev:psram.d1"
- ]
- },
- "32": {
- "roles": [
- "dev:psram.d0"
- ]
- },
- "33": {
- "roles": [
- "dev:psram.d4"
- ]
- },
- "34": {
- "roles": [
- "dev:psram.d5"
- ]
- },
- "35": {
- "roles": [
- "dev:psram.d6"
- ]
- },
- "36": {
- "roles": [
- "dev:psram.d7"
- ]
- },
- "37": {
- "roles": [
- "dev:psram.dqs"
- ]
- },
- "47": {
- "roles": [
- "bus:internal_i2c.sda",
- "bus:touch_i2c.sda"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "48": {
- "roles": [
- "bus:internal_i2c.scl",
- "bus:touch_i2c.scl"
- ],
- "verified": {
- "roles": "generated"
- }
- }
- },
- "buses": {
- "main_spi": {
- "kind": "spi",
- "signals": [
- "sclk",
- "mosi"
- ],
- "preferred_host": "SPI2_HOST",
- "fixed": false,
- "freq": 40000000,
- "freq_read": 10000000,
- "verified": {
- "signals": "generated",
- "preferred_host": "generated",
- "freq": "generated",
- "freq_read": "generated"
- }
- },
- "internal_i2c": {
- "kind": "i2c",
- "signals": [
- "sda",
- "scl"
- ],
- "preferred_host": 1,
- "freq": 100000,
- "fixed": false,
- "verified": {
- "signals": "generated",
- "preferred_host": "generated",
- "freq": "generated"
- }
- },
- "touch_i2c": {
- "kind": "i2c",
- "signals": [
- "sda",
- "scl"
- ],
- "preferred_host": 1,
- "freq": 400000,
- "fixed": false,
- "verified": {
- "signals": "generated",
- "preferred_host": "generated",
- "freq": "generated"
- }
- },
- "sdmmc": {
- "kind": "sdmmc",
- "signals": [
- "clk",
- "cmd",
- "d0",
- "d1",
- "d2",
- "d3"
- ],
- "preferred_host": 1,
- "fixed": false
- }
- },
- "devices": {
- "epd": {
- "kind": "display",
- "part": "ssd1677",
- "bus": "main_spi",
- "spec": {
- "width": 800,
- "height": 480,
- "offset_x": 0,
- "offset_y": 0,
- "rotation_offset": 3,
- "invert": false,
- "readable": false,
- "three_wire": true
- },
- "signals": {
- "cs": "gpio:16",
- "dc": "gpio:17",
- "busy": "gpio:18"
- },
- "verified": {
- "signals": "generated"
- }
- },
- "touch": {
- "kind": "touch",
- "part": "ft5x06",
- "bus": "touch_i2c",
- "i2c_addr": "0x38",
- "spec": {
- "x_min": 0,
- "x_max": 479,
- "y_min": 0,
- "y_max": 799,
- "rotation_offset": 0
- },
- "signals": {
- "int": "gpio:4"
- },
- "verified": {
- "signals": "generated"
- }
- },
- "backlight": {
- "kind": "backlight",
- "bus": "internal_i2c",
- "i2c_addr": "0x6E"
- },
- "pmic": {
- "kind": "pmic",
- "part": "m5pm1",
- "bus": "internal_i2c",
- "pins": {
- "pwrkey": {
- "roles": [
- "dev:btn_pwr.in"
- ]
- }
- }
- },
- "ioe": {
- "kind": "io_expander",
- "part": "m5ioe1",
- "bus": "internal_i2c"
- },
- "rtc": {
- "kind": "rtc",
- "bus": "internal_i2c",
- "i2c_addr": "0x32"
- },
- "imu": {
- "kind": "imu",
- "bus": "internal_i2c",
- "i2c_addr": "0x68"
- },
- "nfc": {
- "kind": "sensor",
- "bus": "internal_i2c",
- "i2c_addr": "0x50"
- },
- "sd": {
- "kind": "sd",
- "part": "sd_slot",
- "bus": "sdmmc",
- "verified": {
- "bus": "generated",
- "signals": "generated",
- "derived": "generated"
- },
- "signals": {
- "d3": "gpio:8",
- "d2": "gpio:9",
- "d1": "gpio:10",
- "d0": "gpio:11",
- "cmd": "gpio:12",
- "clk": "gpio:13"
- },
- "derived": {
- "modes": [
- "sdio1",
- "sdio4"
- ]
- }
- },
- "btn_a": {
- "kind": "button",
- "part": "button",
- "spec": {
- "active_low": true,
- "pull": "external_up"
- },
- "signals": {
- "in": "gpio:2"
- },
- "verified": {
- "signals": "generated"
- }
- },
- "btn_b": {
- "kind": "button",
- "part": "button",
- "spec": {
- "active_low": true,
- "pull": "external_up"
- },
- "signals": {
- "in": "gpio:3"
- },
- "verified": {
- "signals": "generated"
- }
- },
- "btn_pwr": {
- "kind": "button",
- "part": "button",
- "spec": {
- "active_low": true,
- "pull": "pmic"
- },
- "signals": {
- "in": "pin:pmic.pwrkey"
- },
- "verified": {
- "signals": "generated"
- }
- },
- "psram": {
- "kind": "psram",
- "part": "psram",
- "signals": {
- "cs": "gpio:26",
- "d3": "gpio:27",
- "d2": "gpio:28",
- "clk": "gpio:30",
- "d1": "gpio:31",
- "d0": "gpio:32",
- "d4": "gpio:33",
- "d5": "gpio:34",
- "d6": "gpio:35",
- "d7": "gpio:36",
- "dqs": "gpio:37"
- }
- }
- }
-}
diff --git a/extras/board_spec/generated/resolved/m5papers3.json b/extras/board_spec/generated/resolved/m5papers3.json
deleted file mode 100644
index adf9c904..00000000
--- a/extras/board_spec/generated/resolved/m5papers3.json
+++ /dev/null
@@ -1,424 +0,0 @@
-{
- "schema_version": 1,
- "id": "m5papers3",
- "name": "M5PaperS3",
- "official_name": "M5Stack PaperS3",
- "official_name_verified": true,
- "aliases": [
- "papers3",
- "m5papers3",
- "paper s3"
- ],
- "legacy_board_id": 19,
- "chip": "esp32s3",
- "spec": {
- "display": {
- "resolution": [
- 960,
- 540
- ],
- "touch": true
- },
- "storage": {
- "psram_mb": 8,
- "psram_mode": "opi",
- "flash_mb": 16,
- "sd": true
- },
- "links": {
- "product": "https://docs.m5stack.com/en/core/PaperS3",
- "schematic": "https://m5stack-doc.oss-cn-shenzhen.aliyuncs.com/517/sch_papers3_V1.0.pdf",
- "verified": {
- "product": "datasheet",
- "schematic": "datasheet"
- }
- }
- },
- "pins": {
- "1": {
- "roles": [
- "bus:port_a_i2c.scl",
- "conn:port_a.1"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "2": {
- "roles": [
- "bus:port_a_i2c.sda",
- "conn:port_a.2"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "6": {
- "roles": [
- "bus:epd_bus.data0"
- ]
- },
- "7": {
- "roles": [
- "bus:epd_bus.data2"
- ]
- },
- "8": {
- "roles": [
- "bus:epd_bus.data6"
- ]
- },
- "9": {
- "roles": [
- "bus:epd_bus.data4"
- ]
- },
- "10": {
- "roles": [
- "bus:epd_bus.data7"
- ]
- },
- "11": {
- "roles": [
- "bus:epd_bus.data5"
- ]
- },
- "12": {
- "roles": [
- "bus:epd_bus.data3"
- ]
- },
- "13": {
- "roles": [
- "bus:epd_bus.sph"
- ]
- },
- "14": {
- "roles": [
- "bus:epd_bus.data1"
- ]
- },
- "15": {
- "roles": [
- "bus:epd_bus.le"
- ]
- },
- "16": {
- "roles": [
- "bus:epd_bus.cl"
- ]
- },
- "17": {
- "roles": [
- "bus:epd_bus.spv"
- ]
- },
- "18": {
- "roles": [
- "bus:epd_bus.ckv"
- ]
- },
- "21": {
- "roles": [],
- "note": "buzzer"
- },
- "26": {
- "roles": [
- "dev:psram.cs"
- ]
- },
- "27": {
- "roles": [
- "dev:psram.d3"
- ]
- },
- "28": {
- "roles": [
- "dev:psram.d2"
- ]
- },
- "30": {
- "roles": [
- "dev:psram.clk"
- ]
- },
- "31": {
- "roles": [
- "dev:psram.d1"
- ]
- },
- "32": {
- "roles": [
- "dev:psram.d0"
- ]
- },
- "33": {
- "roles": [
- "dev:psram.d4"
- ]
- },
- "34": {
- "roles": [
- "dev:psram.d5"
- ]
- },
- "35": {
- "roles": [
- "dev:psram.d6"
- ]
- },
- "36": {
- "roles": [
- "dev:psram.d7"
- ]
- },
- "37": {
- "roles": [
- "dev:psram.dqs"
- ]
- },
- "38": {
- "roles": [
- "bus:sd_spi.mosi",
- "dev:sd.cmd"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "39": {
- "roles": [
- "bus:sd_spi.sclk",
- "dev:sd.clk"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "40": {
- "roles": [
- "bus:sd_spi.miso",
- "dev:sd.d0"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "41": {
- "roles": [
- "bus:internal_i2c.sda"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "42": {
- "roles": [
- "bus:internal_i2c.scl"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "44": {
- "roles": [
- "dev:power_hold.enable"
- ],
- "note": "PWROFF_PULSE (also U0RXD)",
- "verified": {
- "roles": "generated"
- }
- },
- "45": {
- "roles": [
- "bus:epd_bus.oe"
- ]
- },
- "46": {
- "roles": [
- "bus:epd_bus.pwr"
- ]
- },
- "47": {
- "roles": [
- "dev:sd.d3"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "48": {
- "roles": [
- "dev:touch.int"
- ]
- }
- },
- "buses": {
- "epd_bus": {
- "kind": "parallel_epd",
- "signals": [
- "data0",
- "data1",
- "data2",
- "data3",
- "data4",
- "data5",
- "data6",
- "data7",
- "pwr",
- "spv",
- "ckv",
- "sph",
- "oe",
- "le",
- "cl"
- ],
- "fixed": false,
- "freq": 16000000
- },
- "sd_spi": {
- "kind": "spi",
- "signals": [
- "sclk",
- "mosi",
- "miso"
- ],
- "fixed": false,
- "verified": {
- "signals": "generated"
- }
- },
- "internal_i2c": {
- "kind": "i2c",
- "signals": [
- "sda",
- "scl"
- ],
- "preferred_host": 1,
- "freq": 400000,
- "fixed": false,
- "verified": {
- "signals": "generated",
- "preferred_host": "generated",
- "freq": "generated"
- }
- },
- "port_a_i2c": {
- "kind": "i2c",
- "signals": [
- "sda",
- "scl"
- ],
- "preferred_host": 0,
- "fixed": false,
- "verified": {
- "signals": "generated",
- "preferred_host": "generated"
- }
- }
- },
- "devices": {
- "epd": {
- "kind": "display",
- "part": "ed047tc1",
- "bus": "epd_bus",
- "spec": {
- "width": 960,
- "height": 540,
- "memory_width": 960,
- "memory_height": 540,
- "offset_x": 0,
- "offset_y": 0,
- "rotation_offset": 3,
- "line_padding": 8
- }
- },
- "sd": {
- "kind": "sd",
- "part": "sd_slot",
- "bus": "sd_spi",
- "verified": {
- "bus": "generated",
- "signals": "generated",
- "derived": "generated"
- },
- "signals": {
- "cmd": "gpio:38",
- "clk": "gpio:39",
- "d0": "gpio:40",
- "d3": "gpio:47"
- },
- "derived": {
- "modes": [
- "spi",
- "sdio1"
- ],
- "bus": "sd_spi",
- "cs": "gpio:47"
- }
- },
- "touch": {
- "kind": "touch",
- "part": "gt911",
- "bus": "internal_i2c",
- "spec": {
- "x_min": 0,
- "x_max": 539,
- "y_min": 0,
- "y_max": 959,
- "rotation_offset": 1
- },
- "signals": {
- "int": "gpio:48"
- },
- "verified": {
- "signals": "generated"
- }
- },
- "power_hold": {
- "kind": "power_hold",
- "spec": {
- "active_low": true
- },
- "signals": {
- "enable": "gpio:44"
- },
- "verified": {
- "signals": "generated"
- }
- },
- "psram": {
- "kind": "psram",
- "part": "psram",
- "signals": {
- "cs": "gpio:26",
- "d3": "gpio:27",
- "d2": "gpio:28",
- "clk": "gpio:30",
- "d1": "gpio:31",
- "d0": "gpio:32",
- "d4": "gpio:33",
- "d5": "gpio:34",
- "d6": "gpio:35",
- "d7": "gpio:36",
- "dqs": "gpio:37"
- }
- }
- },
- "connectors": {
- "port_a": {
- "type": "hc125_4p",
- "standard": "port_i2c",
- "positions": {
- "1": "gpio:1",
- "2": "gpio:2",
- "3": "pwr:3v3",
- "4": "pwr:gnd"
- },
- "note": "The physical connector is HC1.25-4PLT. Official schematic J5: 1=GND, 2=3V3 (SOC_VDD), 3=GPIO1, 4=GPIO2. The port_a terminal numbers are the pin-table logical order: 1=GPIO1 (library SCL), 2=GPIO2 (library SDA), 3=3V3, 4=GND. The schematic names the external signals EXT_GPIO1/2, not SCL/SDA; the product color table lists yellow=GPIO1 and white=GPIO2.",
- "verified": {
- "positions": "datasheet"
- }
- }
- }
-}
diff --git a/extras/board_spec/generated/resolved/m5powerhub.json b/extras/board_spec/generated/resolved/m5powerhub.json
deleted file mode 100644
index b973cbe2..00000000
--- a/extras/board_spec/generated/resolved/m5powerhub.json
+++ /dev/null
@@ -1,218 +0,0 @@
-{
- "schema_version": 1,
- "id": "m5powerhub",
- "name": "M5PowerHub",
- "official_name": "M5Stack PowerHub",
- "official_name_verified": true,
- "legacy_board_id": 146,
- "chip": "esp32s3",
- "spec": {
- "links": {
- "product": "https://docs.m5stack.com/en/core/PowerHub",
- "verified": {
- "product": "datasheet",
- "schematic": "datasheet"
- },
- "schematic": "https://m5stack-doc.oss-cn-shenzhen.aliyuncs.com/1183/PowerHub_SCH_Main_b0.3_20250704_Docs_2025_09_09_14_01_58.pdf"
- }
- },
- "pins": {
- "1": {
- "roles": [
- "conn:port_c.1"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "2": {
- "roles": [
- "conn:port_c.2"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "4": {
- "roles": [
- "conn:ext_bus.15"
- ],
- "verified": {
- "roles": "datasheet"
- }
- },
- "5": {
- "roles": [
- "conn:ext_bus.16"
- ],
- "verified": {
- "roles": "datasheet"
- }
- },
- "6": {
- "roles": [
- "conn:ext_bus.14"
- ],
- "verified": {
- "roles": "datasheet"
- }
- },
- "7": {
- "roles": [
- "conn:ext_bus.12"
- ],
- "verified": {
- "roles": "datasheet"
- }
- },
- "15": {
- "roles": [
- "bus:port_a_i2c.sda",
- "conn:port_a.2"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "16": {
- "roles": [
- "bus:port_a_i2c.scl",
- "conn:port_a.1"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "41": {
- "roles": [
- "conn:ext_bus.13"
- ],
- "verified": {
- "roles": "datasheet"
- }
- },
- "42": {
- "roles": [
- "conn:ext_bus.11"
- ],
- "verified": {
- "roles": "datasheet"
- }
- },
- "43": {
- "roles": [
- "conn:ext_bus.7"
- ],
- "verified": {
- "roles": "datasheet"
- }
- },
- "44": {
- "roles": [
- "conn:ext_bus.9"
- ],
- "verified": {
- "roles": "datasheet"
- }
- },
- "45": {
- "roles": [
- "bus:internal_i2c.sda"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "48": {
- "roles": [
- "bus:internal_i2c.scl"
- ],
- "verified": {
- "roles": "generated"
- }
- }
- },
- "buses": {
- "internal_i2c": {
- "kind": "i2c",
- "signals": [
- "sda",
- "scl"
- ],
- "preferred_host": 1,
- "fixed": false,
- "verified": {
- "signals": "generated",
- "preferred_host": "generated"
- }
- },
- "port_a_i2c": {
- "kind": "i2c",
- "signals": [
- "sda",
- "scl"
- ],
- "preferred_host": 0,
- "fixed": false,
- "verified": {
- "signals": "generated",
- "preferred_host": "generated"
- }
- }
- },
- "devices": {
- "i2c_device": {
- "kind": "io_expander",
- "bus": "internal_i2c",
- "i2c_addr": "0x50"
- }
- },
- "connectors": {
- "port_a": {
- "type": "hy2_4p",
- "standard": "port_i2c",
- "positions": {
- "1": "gpio:16",
- "2": "gpio:15",
- "3": "pwr:5v",
- "4": "pwr:gnd"
- }
- },
- "port_c": {
- "type": "hy2_4p",
- "standard": "port_uart",
- "note": "The product color table lists white GPIO2/yellow GPIO1. The existing port_c terminal contract remains 1=GPIO1/2=GPIO2 for compatibility with the library pin table; terminal order is logical.",
- "positions": {
- "1": "gpio:1",
- "2": "gpio:2",
- "3": "pwr:5v",
- "4": "pwr:gnd"
- }
- },
- "ext_bus": {
- "type": "logical_terminals_16",
- "positions": {
- "1": "pwr:bat",
- "2": "pwr:bat",
- "3": "pwr:vin",
- "4": "pwr:5vout",
- "5": "pwr:gnd",
- "6": "pwr:gnd",
- "7": "gpio:43",
- "8": "chip:en",
- "9": "gpio:44",
- "10": "fixed:pmu.nwkup",
- "11": "gpio:42",
- "12": "gpio:7",
- "13": "gpio:41",
- "14": "gpio:6",
- "15": "gpio:4",
- "16": "gpio:5"
- },
- "note": "Rear EXT 2.54-16P numbered as the official table. BAT-2S is the two-cell battery rail; nWKUP is the PMU wake signal, not an ESP32 GPIO. 5VOUT is enabled by GPIO14. Logical terminal order; physical geometry is unverified.",
- "verified": {
- "positions": "datasheet"
- }
- }
- }
-}
diff --git a/extras/board_spec/generated/resolved/m5stack@from_2020_04_to_v2_5_fire+lcd=ips.json b/extras/board_spec/generated/resolved/m5stack@from_2020_04_to_v2_5_fire+lcd=ips.json
deleted file mode 100644
index a7bc97b7..00000000
--- a/extras/board_spec/generated/resolved/m5stack@from_2020_04_to_v2_5_fire+lcd=ips.json
+++ /dev/null
@@ -1,562 +0,0 @@
-{
- "schema_version": 1,
- "id": "m5stack",
- "name": "M5Stack",
- "official_name": "M5Stack Core (Basic/Gray/Fire)",
- "aliases": [
- "core",
- "basic",
- "gray",
- "grey",
- "fire",
- "m5go",
- "m5stack basic"
- ],
- "legacy_board_id": 1,
- "chip": "esp32_d0wdq6",
- "spec": {
- "links": {
- "product": "https://docs.m5stack.com/en/core/Basic",
- "schematic": "https://m5stack-doc.oss-cn-shenzhen.aliyuncs.com/480/M5-Core-Schematic_20171206.pdf",
- "verified": {
- "product": "datasheet",
- "schematic": "datasheet"
- }
- },
- "storage": {
- "psram_mb": 8,
- "psram_mode": "quad"
- }
- },
- "pins": {
- "0": {
- "roles": [
- "conn:mbus.24",
- "dev:usb_serial.boot"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "1": {
- "roles": [
- "conn:mbus.14",
- "bus:console_uart.tx"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "2": {
- "roles": [
- "conn:mbus.19"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "3": {
- "roles": [
- "conn:mbus.13",
- "bus:console_uart.rx"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "4": {
- "roles": [
- "dev:sd.d3"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "5": {
- "roles": [
- "conn:mbus.20",
- "m5basic_base_lite/conn:port_e.1"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "12": {
- "roles": [
- "conn:mbus.21"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "13": {
- "roles": [
- "conn:mbus.22",
- "m5basic_base_lite/conn:port_e.2"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "14": {
- "roles": [
- "dev:lcd.cs"
- ]
- },
- "15": {
- "roles": [
- "conn:mbus.23",
- "m5go_bottom/dev:rgb_led.data"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "16": {
- "roles": [
- "conn:mbus.15",
- "dev:psram.cs",
- "m5go_bottom/conn:port_c.1"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "17": {
- "roles": [
- "conn:mbus.16",
- "dev:psram.clk",
- "m5go_bottom/conn:port_c.2"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "18": {
- "roles": [
- "bus:main_spi.sclk",
- "dev:sd.clk",
- "conn:mbus.11"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "19": {
- "roles": [
- "bus:main_spi.miso",
- "dev:sd.d0",
- "conn:mbus.9"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "21": {
- "roles": [
- "bus:internal_i2c.sda",
- "conn:port_a.2",
- "conn:mbus.17"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "22": {
- "roles": [
- "bus:internal_i2c.scl",
- "conn:port_a.1",
- "conn:mbus.18"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "23": {
- "roles": [
- "bus:main_spi.mosi",
- "dev:sd.cmd",
- "conn:mbus.7"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "25": {
- "roles": [
- "dev:speaker.data_out",
- "conn:mbus.8"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "26": {
- "roles": [
- "conn:mbus.10",
- "m5go_bottom/conn:port_b.2"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "27": {
- "roles": [
- "dev:lcd.dc"
- ]
- },
- "32": {
- "roles": [
- "dev:backlight.pwm"
- ]
- },
- "33": {
- "roles": [
- "dev:lcd.rst"
- ]
- },
- "34": {
- "roles": [
- "dev:mic.data_in",
- "conn:mbus.26",
- "m5basic_base_lite/conn:port_d.1"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "35": {
- "roles": [
- "conn:mbus.2",
- "m5basic_base_lite/conn:port_d.2"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "36": {
- "roles": [
- "conn:mbus.4",
- "m5go_bottom/conn:port_b.1"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "37": {
- "roles": [
- "dev:btn_c.in"
- ]
- },
- "38": {
- "roles": [
- "dev:btn_b.in"
- ]
- },
- "39": {
- "roles": [
- "dev:btn_a.in"
- ]
- }
- },
- "buses": {
- "console_uart": {
- "kind": "uart",
- "signals": [
- "tx",
- "rx"
- ],
- "preferred_host": 0,
- "fixed": true
- },
- "main_spi": {
- "kind": "spi",
- "signals": [
- "sclk",
- "mosi",
- "miso"
- ],
- "preferred_host": "SPI3_HOST",
- "fixed": false,
- "freq": 40000000,
- "freq_read": 16000000,
- "verified": {
- "signals": "generated",
- "preferred_host": "generated",
- "freq": "generated",
- "freq_read": "generated"
- }
- },
- "internal_i2c": {
- "kind": "i2c",
- "signals": [
- "sda",
- "scl"
- ],
- "preferred_host": 0,
- "fixed": false,
- "verified": {
- "signals": "generated",
- "preferred_host": "generated"
- }
- }
- },
- "devices": {
- "usb_serial": {
- "kind": "usb_uart",
- "bus": "console_uart",
- "spec": {
- "auto_reset": true
- },
- "part": "cp2104",
- "signals": {
- "boot": "gpio:0"
- }
- },
- "lcd": {
- "kind": "display",
- "bus": "main_spi",
- "part": "ili9342c",
- "spec": {
- "width": 320,
- "height": 240,
- "rotation_offset": 0,
- "panel_type": "ips"
- },
- "signals": {
- "cs": "gpio:14",
- "dc": "gpio:27",
- "rst": "gpio:33"
- },
- "verified": {
- "signals": "generated"
- }
- },
- "sd": {
- "kind": "sd",
- "part": "sd_slot",
- "bus": "main_spi",
- "verified": {
- "bus": "generated",
- "derived": "generated",
- "signals": "generated"
- },
- "derived": {
- "modes": [
- "spi"
- ],
- "bus": "main_spi",
- "cs": "gpio:4"
- },
- "signals": {
- "d3": "gpio:4",
- "clk": "gpio:18",
- "d0": "gpio:19",
- "cmd": "gpio:23"
- }
- },
- "backlight": {
- "kind": "backlight",
- "spec": {
- "freq": 44100,
- "channel": 7
- },
- "verified": {
- "spec": "generated",
- "signals": "generated"
- },
- "signals": {
- "pwm": "gpio:32"
- }
- },
- "speaker": {
- "kind": "speaker",
- "signals": {
- "data_out": "gpio:25"
- }
- },
- "mic": {
- "kind": "mic",
- "signals": {
- "data_in": "gpio:34"
- }
- },
- "btn_a": {
- "kind": "button",
- "part": "button",
- "spec": {
- "active_low": true,
- "pull": "external_up"
- },
- "signals": {
- "in": "gpio:39"
- },
- "verified": {
- "signals": "generated"
- }
- },
- "btn_b": {
- "kind": "button",
- "part": "button",
- "spec": {
- "active_low": true,
- "pull": "external_up"
- },
- "signals": {
- "in": "gpio:38"
- },
- "verified": {
- "signals": "generated"
- }
- },
- "btn_c": {
- "kind": "button",
- "part": "button",
- "spec": {
- "active_low": true,
- "pull": "external_up"
- },
- "signals": {
- "in": "gpio:37"
- },
- "verified": {
- "signals": "generated"
- }
- },
- "psram": {
- "kind": "psram",
- "part": "psram",
- "signals": {
- "cs": "gpio:16",
- "clk": "gpio:17"
- }
- },
- "rgb_led": {
- "kind": "led_strip",
- "part": "sk6812",
- "spec": {
- "count": 10
- },
- "verified": {
- "part": "datasheet",
- "signals": "generated"
- },
- "source": {
- "accessory": "m5go_bottom",
- "origin": "official",
- "bundled": false
- },
- "signals": {
- "data": "gpio:15"
- }
- }
- },
- "connectors": {
- "port_a": {
- "type": "hy2_4p",
- "standard": "port_i2c",
- "positions": {
- "1": "gpio:22",
- "2": "gpio:21",
- "3": "pwr:5v",
- "4": "pwr:gnd"
- }
- },
- "mbus": {
- "type": "mbus",
- "note": "Basic/Gray/Fire/M5GO share this host M-Bus mapping. Port B/C belong to M5GO Bottom accessories. GPIO16/17 are used by PSRAM on Fire; HPWR and battery availability depend on the attached base.",
- "positions": {
- "1": "pwr:gnd",
- "2": "gpio:35",
- "3": "pwr:gnd",
- "4": "gpio:36",
- "5": "pwr:gnd",
- "6": "chip:en",
- "7": "gpio:23",
- "8": "gpio:25",
- "9": "gpio:19",
- "10": "gpio:26",
- "11": "gpio:18",
- "12": "pwr:3v3",
- "13": "gpio:3",
- "14": "gpio:1",
- "15": "gpio:16",
- "16": "gpio:17",
- "17": "gpio:21",
- "18": "gpio:22",
- "19": "gpio:2",
- "20": "gpio:5",
- "21": "gpio:12",
- "22": "gpio:13",
- "23": "gpio:15",
- "24": "gpio:0",
- "25": "nc",
- "26": "gpio:34",
- "27": "nc",
- "28": "pwr:5v",
- "29": "nc",
- "30": "pwr:bat"
- }
- },
- "port_b": {
- "type": "hy2_4p",
- "standard": "port_io",
- "source": {
- "accessory": "m5go_bottom",
- "origin": "official",
- "bundled": false
- },
- "positions": {
- "1": "gpio:36",
- "2": "gpio:26",
- "3": "pwr:5v",
- "4": "pwr:gnd"
- }
- },
- "port_c": {
- "type": "hy2_4p",
- "standard": "port_uart",
- "source": {
- "accessory": "m5go_bottom",
- "origin": "official",
- "bundled": false
- },
- "positions": {
- "1": "gpio:16",
- "2": "gpio:17",
- "3": "pwr:5v",
- "4": "pwr:gnd"
- }
- },
- "port_d": {
- "type": "hy2_4p",
- "standard": "port_io",
- "source": {
- "accessory": "m5basic_base_lite",
- "origin": "third_party",
- "bundled": false
- },
- "positions": {
- "1": "gpio:34",
- "2": "gpio:35",
- "3": "pwr:5v",
- "4": "pwr:gnd"
- }
- },
- "port_e": {
- "type": "hy2_4p",
- "standard": "port_uart",
- "source": {
- "accessory": "m5basic_base_lite",
- "origin": "third_party",
- "bundled": false
- },
- "positions": {
- "1": "gpio:5",
- "2": "gpio:13",
- "3": "pwr:5v",
- "4": "pwr:gnd"
- }
- }
- }
-}
diff --git a/extras/board_spec/generated/resolved/m5stack@from_2020_04_to_v2_5_fire+lcd=tn.json b/extras/board_spec/generated/resolved/m5stack@from_2020_04_to_v2_5_fire+lcd=tn.json
deleted file mode 100644
index 48e39982..00000000
--- a/extras/board_spec/generated/resolved/m5stack@from_2020_04_to_v2_5_fire+lcd=tn.json
+++ /dev/null
@@ -1,562 +0,0 @@
-{
- "schema_version": 1,
- "id": "m5stack",
- "name": "M5Stack",
- "official_name": "M5Stack Core (Basic/Gray/Fire)",
- "aliases": [
- "core",
- "basic",
- "gray",
- "grey",
- "fire",
- "m5go",
- "m5stack basic"
- ],
- "legacy_board_id": 1,
- "chip": "esp32_d0wdq6",
- "spec": {
- "links": {
- "product": "https://docs.m5stack.com/en/core/Basic",
- "schematic": "https://m5stack-doc.oss-cn-shenzhen.aliyuncs.com/480/M5-Core-Schematic_20171206.pdf",
- "verified": {
- "product": "datasheet",
- "schematic": "datasheet"
- }
- },
- "storage": {
- "psram_mb": 8,
- "psram_mode": "quad"
- }
- },
- "pins": {
- "0": {
- "roles": [
- "conn:mbus.24",
- "dev:usb_serial.boot"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "1": {
- "roles": [
- "conn:mbus.14",
- "bus:console_uart.tx"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "2": {
- "roles": [
- "conn:mbus.19"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "3": {
- "roles": [
- "conn:mbus.13",
- "bus:console_uart.rx"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "4": {
- "roles": [
- "dev:sd.d3"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "5": {
- "roles": [
- "conn:mbus.20",
- "m5basic_base_lite/conn:port_e.1"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "12": {
- "roles": [
- "conn:mbus.21"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "13": {
- "roles": [
- "conn:mbus.22",
- "m5basic_base_lite/conn:port_e.2"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "14": {
- "roles": [
- "dev:lcd.cs"
- ]
- },
- "15": {
- "roles": [
- "conn:mbus.23",
- "m5go_bottom/dev:rgb_led.data"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "16": {
- "roles": [
- "conn:mbus.15",
- "dev:psram.cs",
- "m5go_bottom/conn:port_c.1"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "17": {
- "roles": [
- "conn:mbus.16",
- "dev:psram.clk",
- "m5go_bottom/conn:port_c.2"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "18": {
- "roles": [
- "bus:main_spi.sclk",
- "dev:sd.clk",
- "conn:mbus.11"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "19": {
- "roles": [
- "bus:main_spi.miso",
- "dev:sd.d0",
- "conn:mbus.9"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "21": {
- "roles": [
- "bus:internal_i2c.sda",
- "conn:port_a.2",
- "conn:mbus.17"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "22": {
- "roles": [
- "bus:internal_i2c.scl",
- "conn:port_a.1",
- "conn:mbus.18"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "23": {
- "roles": [
- "bus:main_spi.mosi",
- "dev:sd.cmd",
- "conn:mbus.7"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "25": {
- "roles": [
- "dev:speaker.data_out",
- "conn:mbus.8"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "26": {
- "roles": [
- "conn:mbus.10",
- "m5go_bottom/conn:port_b.2"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "27": {
- "roles": [
- "dev:lcd.dc"
- ]
- },
- "32": {
- "roles": [
- "dev:backlight.pwm"
- ]
- },
- "33": {
- "roles": [
- "dev:lcd.rst"
- ]
- },
- "34": {
- "roles": [
- "dev:mic.data_in",
- "conn:mbus.26",
- "m5basic_base_lite/conn:port_d.1"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "35": {
- "roles": [
- "conn:mbus.2",
- "m5basic_base_lite/conn:port_d.2"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "36": {
- "roles": [
- "conn:mbus.4",
- "m5go_bottom/conn:port_b.1"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "37": {
- "roles": [
- "dev:btn_c.in"
- ]
- },
- "38": {
- "roles": [
- "dev:btn_b.in"
- ]
- },
- "39": {
- "roles": [
- "dev:btn_a.in"
- ]
- }
- },
- "buses": {
- "console_uart": {
- "kind": "uart",
- "signals": [
- "tx",
- "rx"
- ],
- "preferred_host": 0,
- "fixed": true
- },
- "main_spi": {
- "kind": "spi",
- "signals": [
- "sclk",
- "mosi",
- "miso"
- ],
- "preferred_host": "SPI3_HOST",
- "fixed": false,
- "freq": 40000000,
- "freq_read": 16000000,
- "verified": {
- "signals": "generated",
- "preferred_host": "generated",
- "freq": "generated",
- "freq_read": "generated"
- }
- },
- "internal_i2c": {
- "kind": "i2c",
- "signals": [
- "sda",
- "scl"
- ],
- "preferred_host": 0,
- "fixed": false,
- "verified": {
- "signals": "generated",
- "preferred_host": "generated"
- }
- }
- },
- "devices": {
- "usb_serial": {
- "kind": "usb_uart",
- "bus": "console_uart",
- "spec": {
- "auto_reset": true
- },
- "part": "cp2104",
- "signals": {
- "boot": "gpio:0"
- }
- },
- "lcd": {
- "kind": "display",
- "bus": "main_spi",
- "part": "ili9342c",
- "spec": {
- "width": 320,
- "height": 240,
- "rotation_offset": 0,
- "panel_type": "tn"
- },
- "signals": {
- "cs": "gpio:14",
- "dc": "gpio:27",
- "rst": "gpio:33"
- },
- "verified": {
- "signals": "generated"
- }
- },
- "sd": {
- "kind": "sd",
- "part": "sd_slot",
- "bus": "main_spi",
- "verified": {
- "bus": "generated",
- "derived": "generated",
- "signals": "generated"
- },
- "derived": {
- "modes": [
- "spi"
- ],
- "bus": "main_spi",
- "cs": "gpio:4"
- },
- "signals": {
- "d3": "gpio:4",
- "clk": "gpio:18",
- "d0": "gpio:19",
- "cmd": "gpio:23"
- }
- },
- "backlight": {
- "kind": "backlight",
- "spec": {
- "freq": 44100,
- "channel": 7
- },
- "verified": {
- "spec": "generated",
- "signals": "generated"
- },
- "signals": {
- "pwm": "gpio:32"
- }
- },
- "speaker": {
- "kind": "speaker",
- "signals": {
- "data_out": "gpio:25"
- }
- },
- "mic": {
- "kind": "mic",
- "signals": {
- "data_in": "gpio:34"
- }
- },
- "btn_a": {
- "kind": "button",
- "part": "button",
- "spec": {
- "active_low": true,
- "pull": "external_up"
- },
- "signals": {
- "in": "gpio:39"
- },
- "verified": {
- "signals": "generated"
- }
- },
- "btn_b": {
- "kind": "button",
- "part": "button",
- "spec": {
- "active_low": true,
- "pull": "external_up"
- },
- "signals": {
- "in": "gpio:38"
- },
- "verified": {
- "signals": "generated"
- }
- },
- "btn_c": {
- "kind": "button",
- "part": "button",
- "spec": {
- "active_low": true,
- "pull": "external_up"
- },
- "signals": {
- "in": "gpio:37"
- },
- "verified": {
- "signals": "generated"
- }
- },
- "psram": {
- "kind": "psram",
- "part": "psram",
- "signals": {
- "cs": "gpio:16",
- "clk": "gpio:17"
- }
- },
- "rgb_led": {
- "kind": "led_strip",
- "part": "sk6812",
- "spec": {
- "count": 10
- },
- "verified": {
- "part": "datasheet",
- "signals": "generated"
- },
- "source": {
- "accessory": "m5go_bottom",
- "origin": "official",
- "bundled": false
- },
- "signals": {
- "data": "gpio:15"
- }
- }
- },
- "connectors": {
- "port_a": {
- "type": "hy2_4p",
- "standard": "port_i2c",
- "positions": {
- "1": "gpio:22",
- "2": "gpio:21",
- "3": "pwr:5v",
- "4": "pwr:gnd"
- }
- },
- "mbus": {
- "type": "mbus",
- "note": "Basic/Gray/Fire/M5GO share this host M-Bus mapping. Port B/C belong to M5GO Bottom accessories. GPIO16/17 are used by PSRAM on Fire; HPWR and battery availability depend on the attached base.",
- "positions": {
- "1": "pwr:gnd",
- "2": "gpio:35",
- "3": "pwr:gnd",
- "4": "gpio:36",
- "5": "pwr:gnd",
- "6": "chip:en",
- "7": "gpio:23",
- "8": "gpio:25",
- "9": "gpio:19",
- "10": "gpio:26",
- "11": "gpio:18",
- "12": "pwr:3v3",
- "13": "gpio:3",
- "14": "gpio:1",
- "15": "gpio:16",
- "16": "gpio:17",
- "17": "gpio:21",
- "18": "gpio:22",
- "19": "gpio:2",
- "20": "gpio:5",
- "21": "gpio:12",
- "22": "gpio:13",
- "23": "gpio:15",
- "24": "gpio:0",
- "25": "nc",
- "26": "gpio:34",
- "27": "nc",
- "28": "pwr:5v",
- "29": "nc",
- "30": "pwr:bat"
- }
- },
- "port_b": {
- "type": "hy2_4p",
- "standard": "port_io",
- "source": {
- "accessory": "m5go_bottom",
- "origin": "official",
- "bundled": false
- },
- "positions": {
- "1": "gpio:36",
- "2": "gpio:26",
- "3": "pwr:5v",
- "4": "pwr:gnd"
- }
- },
- "port_c": {
- "type": "hy2_4p",
- "standard": "port_uart",
- "source": {
- "accessory": "m5go_bottom",
- "origin": "official",
- "bundled": false
- },
- "positions": {
- "1": "gpio:16",
- "2": "gpio:17",
- "3": "pwr:5v",
- "4": "pwr:gnd"
- }
- },
- "port_d": {
- "type": "hy2_4p",
- "standard": "port_io",
- "source": {
- "accessory": "m5basic_base_lite",
- "origin": "third_party",
- "bundled": false
- },
- "positions": {
- "1": "gpio:34",
- "2": "gpio:35",
- "3": "pwr:5v",
- "4": "pwr:gnd"
- }
- },
- "port_e": {
- "type": "hy2_4p",
- "standard": "port_uart",
- "source": {
- "accessory": "m5basic_base_lite",
- "origin": "third_party",
- "bundled": false
- },
- "positions": {
- "1": "gpio:5",
- "2": "gpio:13",
- "3": "pwr:5v",
- "4": "pwr:gnd"
- }
- }
- }
-}
diff --git a/extras/board_spec/generated/resolved/m5stack@pre_2020_04_fire+lcd=ips.json b/extras/board_spec/generated/resolved/m5stack@pre_2020_04_fire+lcd=ips.json
deleted file mode 100644
index b193da8e..00000000
--- a/extras/board_spec/generated/resolved/m5stack@pre_2020_04_fire+lcd=ips.json
+++ /dev/null
@@ -1,562 +0,0 @@
-{
- "schema_version": 1,
- "id": "m5stack",
- "name": "M5Stack",
- "official_name": "M5Stack Core (Basic/Gray/Fire)",
- "aliases": [
- "core",
- "basic",
- "gray",
- "grey",
- "fire",
- "m5go",
- "m5stack basic"
- ],
- "legacy_board_id": 1,
- "chip": "esp32_d0wdq6",
- "spec": {
- "links": {
- "product": "https://docs.m5stack.com/en/core/Basic",
- "schematic": "https://m5stack-doc.oss-cn-shenzhen.aliyuncs.com/480/M5-Core-Schematic_20171206.pdf",
- "verified": {
- "product": "datasheet",
- "schematic": "datasheet"
- }
- },
- "storage": {
- "psram_mb": 4,
- "psram_mode": "quad"
- }
- },
- "pins": {
- "0": {
- "roles": [
- "conn:mbus.24",
- "dev:usb_serial.boot"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "1": {
- "roles": [
- "conn:mbus.14",
- "bus:console_uart.tx"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "2": {
- "roles": [
- "conn:mbus.19"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "3": {
- "roles": [
- "conn:mbus.13",
- "bus:console_uart.rx"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "4": {
- "roles": [
- "dev:sd.d3"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "5": {
- "roles": [
- "conn:mbus.20",
- "m5basic_base_lite/conn:port_e.1"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "12": {
- "roles": [
- "conn:mbus.21"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "13": {
- "roles": [
- "conn:mbus.22",
- "m5basic_base_lite/conn:port_e.2"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "14": {
- "roles": [
- "dev:lcd.cs"
- ]
- },
- "15": {
- "roles": [
- "conn:mbus.23",
- "m5go_bottom/dev:rgb_led.data"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "16": {
- "roles": [
- "conn:mbus.15",
- "dev:psram.cs",
- "m5go_bottom/conn:port_c.1"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "17": {
- "roles": [
- "conn:mbus.16",
- "dev:psram.clk",
- "m5go_bottom/conn:port_c.2"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "18": {
- "roles": [
- "bus:main_spi.sclk",
- "dev:sd.clk",
- "conn:mbus.11"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "19": {
- "roles": [
- "bus:main_spi.miso",
- "dev:sd.d0",
- "conn:mbus.9"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "21": {
- "roles": [
- "bus:internal_i2c.sda",
- "conn:port_a.2",
- "conn:mbus.17"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "22": {
- "roles": [
- "bus:internal_i2c.scl",
- "conn:port_a.1",
- "conn:mbus.18"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "23": {
- "roles": [
- "bus:main_spi.mosi",
- "dev:sd.cmd",
- "conn:mbus.7"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "25": {
- "roles": [
- "dev:speaker.data_out",
- "conn:mbus.8"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "26": {
- "roles": [
- "conn:mbus.10",
- "m5go_bottom/conn:port_b.2"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "27": {
- "roles": [
- "dev:lcd.dc"
- ]
- },
- "32": {
- "roles": [
- "dev:backlight.pwm"
- ]
- },
- "33": {
- "roles": [
- "dev:lcd.rst"
- ]
- },
- "34": {
- "roles": [
- "dev:mic.data_in",
- "conn:mbus.26",
- "m5basic_base_lite/conn:port_d.1"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "35": {
- "roles": [
- "conn:mbus.2",
- "m5basic_base_lite/conn:port_d.2"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "36": {
- "roles": [
- "conn:mbus.4",
- "m5go_bottom/conn:port_b.1"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "37": {
- "roles": [
- "dev:btn_c.in"
- ]
- },
- "38": {
- "roles": [
- "dev:btn_b.in"
- ]
- },
- "39": {
- "roles": [
- "dev:btn_a.in"
- ]
- }
- },
- "buses": {
- "console_uart": {
- "kind": "uart",
- "signals": [
- "tx",
- "rx"
- ],
- "preferred_host": 0,
- "fixed": true
- },
- "main_spi": {
- "kind": "spi",
- "signals": [
- "sclk",
- "mosi",
- "miso"
- ],
- "preferred_host": "SPI3_HOST",
- "fixed": false,
- "freq": 40000000,
- "freq_read": 16000000,
- "verified": {
- "signals": "generated",
- "preferred_host": "generated",
- "freq": "generated",
- "freq_read": "generated"
- }
- },
- "internal_i2c": {
- "kind": "i2c",
- "signals": [
- "sda",
- "scl"
- ],
- "preferred_host": 0,
- "fixed": false,
- "verified": {
- "signals": "generated",
- "preferred_host": "generated"
- }
- }
- },
- "devices": {
- "usb_serial": {
- "kind": "usb_uart",
- "bus": "console_uart",
- "spec": {
- "auto_reset": true
- },
- "part": "cp2104",
- "signals": {
- "boot": "gpio:0"
- }
- },
- "lcd": {
- "kind": "display",
- "bus": "main_spi",
- "part": "ili9342c",
- "spec": {
- "width": 320,
- "height": 240,
- "rotation_offset": 0,
- "panel_type": "ips"
- },
- "signals": {
- "cs": "gpio:14",
- "dc": "gpio:27",
- "rst": "gpio:33"
- },
- "verified": {
- "signals": "generated"
- }
- },
- "sd": {
- "kind": "sd",
- "part": "sd_slot",
- "bus": "main_spi",
- "verified": {
- "bus": "generated",
- "derived": "generated",
- "signals": "generated"
- },
- "derived": {
- "modes": [
- "spi"
- ],
- "bus": "main_spi",
- "cs": "gpio:4"
- },
- "signals": {
- "d3": "gpio:4",
- "clk": "gpio:18",
- "d0": "gpio:19",
- "cmd": "gpio:23"
- }
- },
- "backlight": {
- "kind": "backlight",
- "spec": {
- "freq": 44100,
- "channel": 7
- },
- "verified": {
- "spec": "generated",
- "signals": "generated"
- },
- "signals": {
- "pwm": "gpio:32"
- }
- },
- "speaker": {
- "kind": "speaker",
- "signals": {
- "data_out": "gpio:25"
- }
- },
- "mic": {
- "kind": "mic",
- "signals": {
- "data_in": "gpio:34"
- }
- },
- "btn_a": {
- "kind": "button",
- "part": "button",
- "spec": {
- "active_low": true,
- "pull": "external_up"
- },
- "signals": {
- "in": "gpio:39"
- },
- "verified": {
- "signals": "generated"
- }
- },
- "btn_b": {
- "kind": "button",
- "part": "button",
- "spec": {
- "active_low": true,
- "pull": "external_up"
- },
- "signals": {
- "in": "gpio:38"
- },
- "verified": {
- "signals": "generated"
- }
- },
- "btn_c": {
- "kind": "button",
- "part": "button",
- "spec": {
- "active_low": true,
- "pull": "external_up"
- },
- "signals": {
- "in": "gpio:37"
- },
- "verified": {
- "signals": "generated"
- }
- },
- "psram": {
- "kind": "psram",
- "part": "psram",
- "signals": {
- "cs": "gpio:16",
- "clk": "gpio:17"
- }
- },
- "rgb_led": {
- "kind": "led_strip",
- "part": "sk6812",
- "spec": {
- "count": 10
- },
- "verified": {
- "part": "datasheet",
- "signals": "generated"
- },
- "source": {
- "accessory": "m5go_bottom",
- "origin": "official",
- "bundled": false
- },
- "signals": {
- "data": "gpio:15"
- }
- }
- },
- "connectors": {
- "port_a": {
- "type": "hy2_4p",
- "standard": "port_i2c",
- "positions": {
- "1": "gpio:22",
- "2": "gpio:21",
- "3": "pwr:5v",
- "4": "pwr:gnd"
- }
- },
- "mbus": {
- "type": "mbus",
- "note": "Basic/Gray/Fire/M5GO share this host M-Bus mapping. Port B/C belong to M5GO Bottom accessories. GPIO16/17 are used by PSRAM on Fire; HPWR and battery availability depend on the attached base.",
- "positions": {
- "1": "pwr:gnd",
- "2": "gpio:35",
- "3": "pwr:gnd",
- "4": "gpio:36",
- "5": "pwr:gnd",
- "6": "chip:en",
- "7": "gpio:23",
- "8": "gpio:25",
- "9": "gpio:19",
- "10": "gpio:26",
- "11": "gpio:18",
- "12": "pwr:3v3",
- "13": "gpio:3",
- "14": "gpio:1",
- "15": "gpio:16",
- "16": "gpio:17",
- "17": "gpio:21",
- "18": "gpio:22",
- "19": "gpio:2",
- "20": "gpio:5",
- "21": "gpio:12",
- "22": "gpio:13",
- "23": "gpio:15",
- "24": "gpio:0",
- "25": "nc",
- "26": "gpio:34",
- "27": "nc",
- "28": "pwr:5v",
- "29": "nc",
- "30": "pwr:bat"
- }
- },
- "port_b": {
- "type": "hy2_4p",
- "standard": "port_io",
- "source": {
- "accessory": "m5go_bottom",
- "origin": "official",
- "bundled": false
- },
- "positions": {
- "1": "gpio:36",
- "2": "gpio:26",
- "3": "pwr:5v",
- "4": "pwr:gnd"
- }
- },
- "port_c": {
- "type": "hy2_4p",
- "standard": "port_uart",
- "source": {
- "accessory": "m5go_bottom",
- "origin": "official",
- "bundled": false
- },
- "positions": {
- "1": "gpio:16",
- "2": "gpio:17",
- "3": "pwr:5v",
- "4": "pwr:gnd"
- }
- },
- "port_d": {
- "type": "hy2_4p",
- "standard": "port_io",
- "source": {
- "accessory": "m5basic_base_lite",
- "origin": "third_party",
- "bundled": false
- },
- "positions": {
- "1": "gpio:34",
- "2": "gpio:35",
- "3": "pwr:5v",
- "4": "pwr:gnd"
- }
- },
- "port_e": {
- "type": "hy2_4p",
- "standard": "port_uart",
- "source": {
- "accessory": "m5basic_base_lite",
- "origin": "third_party",
- "bundled": false
- },
- "positions": {
- "1": "gpio:5",
- "2": "gpio:13",
- "3": "pwr:5v",
- "4": "pwr:gnd"
- }
- }
- }
-}
diff --git a/extras/board_spec/generated/resolved/m5stack@pre_2020_04_fire+lcd=tn.json b/extras/board_spec/generated/resolved/m5stack@pre_2020_04_fire+lcd=tn.json
deleted file mode 100644
index 26a6b979..00000000
--- a/extras/board_spec/generated/resolved/m5stack@pre_2020_04_fire+lcd=tn.json
+++ /dev/null
@@ -1,562 +0,0 @@
-{
- "schema_version": 1,
- "id": "m5stack",
- "name": "M5Stack",
- "official_name": "M5Stack Core (Basic/Gray/Fire)",
- "aliases": [
- "core",
- "basic",
- "gray",
- "grey",
- "fire",
- "m5go",
- "m5stack basic"
- ],
- "legacy_board_id": 1,
- "chip": "esp32_d0wdq6",
- "spec": {
- "links": {
- "product": "https://docs.m5stack.com/en/core/Basic",
- "schematic": "https://m5stack-doc.oss-cn-shenzhen.aliyuncs.com/480/M5-Core-Schematic_20171206.pdf",
- "verified": {
- "product": "datasheet",
- "schematic": "datasheet"
- }
- },
- "storage": {
- "psram_mb": 4,
- "psram_mode": "quad"
- }
- },
- "pins": {
- "0": {
- "roles": [
- "conn:mbus.24",
- "dev:usb_serial.boot"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "1": {
- "roles": [
- "conn:mbus.14",
- "bus:console_uart.tx"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "2": {
- "roles": [
- "conn:mbus.19"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "3": {
- "roles": [
- "conn:mbus.13",
- "bus:console_uart.rx"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "4": {
- "roles": [
- "dev:sd.d3"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "5": {
- "roles": [
- "conn:mbus.20",
- "m5basic_base_lite/conn:port_e.1"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "12": {
- "roles": [
- "conn:mbus.21"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "13": {
- "roles": [
- "conn:mbus.22",
- "m5basic_base_lite/conn:port_e.2"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "14": {
- "roles": [
- "dev:lcd.cs"
- ]
- },
- "15": {
- "roles": [
- "conn:mbus.23",
- "m5go_bottom/dev:rgb_led.data"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "16": {
- "roles": [
- "conn:mbus.15",
- "dev:psram.cs",
- "m5go_bottom/conn:port_c.1"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "17": {
- "roles": [
- "conn:mbus.16",
- "dev:psram.clk",
- "m5go_bottom/conn:port_c.2"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "18": {
- "roles": [
- "bus:main_spi.sclk",
- "dev:sd.clk",
- "conn:mbus.11"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "19": {
- "roles": [
- "bus:main_spi.miso",
- "dev:sd.d0",
- "conn:mbus.9"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "21": {
- "roles": [
- "bus:internal_i2c.sda",
- "conn:port_a.2",
- "conn:mbus.17"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "22": {
- "roles": [
- "bus:internal_i2c.scl",
- "conn:port_a.1",
- "conn:mbus.18"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "23": {
- "roles": [
- "bus:main_spi.mosi",
- "dev:sd.cmd",
- "conn:mbus.7"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "25": {
- "roles": [
- "dev:speaker.data_out",
- "conn:mbus.8"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "26": {
- "roles": [
- "conn:mbus.10",
- "m5go_bottom/conn:port_b.2"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "27": {
- "roles": [
- "dev:lcd.dc"
- ]
- },
- "32": {
- "roles": [
- "dev:backlight.pwm"
- ]
- },
- "33": {
- "roles": [
- "dev:lcd.rst"
- ]
- },
- "34": {
- "roles": [
- "dev:mic.data_in",
- "conn:mbus.26",
- "m5basic_base_lite/conn:port_d.1"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "35": {
- "roles": [
- "conn:mbus.2",
- "m5basic_base_lite/conn:port_d.2"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "36": {
- "roles": [
- "conn:mbus.4",
- "m5go_bottom/conn:port_b.1"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "37": {
- "roles": [
- "dev:btn_c.in"
- ]
- },
- "38": {
- "roles": [
- "dev:btn_b.in"
- ]
- },
- "39": {
- "roles": [
- "dev:btn_a.in"
- ]
- }
- },
- "buses": {
- "console_uart": {
- "kind": "uart",
- "signals": [
- "tx",
- "rx"
- ],
- "preferred_host": 0,
- "fixed": true
- },
- "main_spi": {
- "kind": "spi",
- "signals": [
- "sclk",
- "mosi",
- "miso"
- ],
- "preferred_host": "SPI3_HOST",
- "fixed": false,
- "freq": 40000000,
- "freq_read": 16000000,
- "verified": {
- "signals": "generated",
- "preferred_host": "generated",
- "freq": "generated",
- "freq_read": "generated"
- }
- },
- "internal_i2c": {
- "kind": "i2c",
- "signals": [
- "sda",
- "scl"
- ],
- "preferred_host": 0,
- "fixed": false,
- "verified": {
- "signals": "generated",
- "preferred_host": "generated"
- }
- }
- },
- "devices": {
- "usb_serial": {
- "kind": "usb_uart",
- "bus": "console_uart",
- "spec": {
- "auto_reset": true
- },
- "part": "cp2104",
- "signals": {
- "boot": "gpio:0"
- }
- },
- "lcd": {
- "kind": "display",
- "bus": "main_spi",
- "part": "ili9342c",
- "spec": {
- "width": 320,
- "height": 240,
- "rotation_offset": 0,
- "panel_type": "tn"
- },
- "signals": {
- "cs": "gpio:14",
- "dc": "gpio:27",
- "rst": "gpio:33"
- },
- "verified": {
- "signals": "generated"
- }
- },
- "sd": {
- "kind": "sd",
- "part": "sd_slot",
- "bus": "main_spi",
- "verified": {
- "bus": "generated",
- "derived": "generated",
- "signals": "generated"
- },
- "derived": {
- "modes": [
- "spi"
- ],
- "bus": "main_spi",
- "cs": "gpio:4"
- },
- "signals": {
- "d3": "gpio:4",
- "clk": "gpio:18",
- "d0": "gpio:19",
- "cmd": "gpio:23"
- }
- },
- "backlight": {
- "kind": "backlight",
- "spec": {
- "freq": 44100,
- "channel": 7
- },
- "verified": {
- "spec": "generated",
- "signals": "generated"
- },
- "signals": {
- "pwm": "gpio:32"
- }
- },
- "speaker": {
- "kind": "speaker",
- "signals": {
- "data_out": "gpio:25"
- }
- },
- "mic": {
- "kind": "mic",
- "signals": {
- "data_in": "gpio:34"
- }
- },
- "btn_a": {
- "kind": "button",
- "part": "button",
- "spec": {
- "active_low": true,
- "pull": "external_up"
- },
- "signals": {
- "in": "gpio:39"
- },
- "verified": {
- "signals": "generated"
- }
- },
- "btn_b": {
- "kind": "button",
- "part": "button",
- "spec": {
- "active_low": true,
- "pull": "external_up"
- },
- "signals": {
- "in": "gpio:38"
- },
- "verified": {
- "signals": "generated"
- }
- },
- "btn_c": {
- "kind": "button",
- "part": "button",
- "spec": {
- "active_low": true,
- "pull": "external_up"
- },
- "signals": {
- "in": "gpio:37"
- },
- "verified": {
- "signals": "generated"
- }
- },
- "psram": {
- "kind": "psram",
- "part": "psram",
- "signals": {
- "cs": "gpio:16",
- "clk": "gpio:17"
- }
- },
- "rgb_led": {
- "kind": "led_strip",
- "part": "sk6812",
- "spec": {
- "count": 10
- },
- "verified": {
- "part": "datasheet",
- "signals": "generated"
- },
- "source": {
- "accessory": "m5go_bottom",
- "origin": "official",
- "bundled": false
- },
- "signals": {
- "data": "gpio:15"
- }
- }
- },
- "connectors": {
- "port_a": {
- "type": "hy2_4p",
- "standard": "port_i2c",
- "positions": {
- "1": "gpio:22",
- "2": "gpio:21",
- "3": "pwr:5v",
- "4": "pwr:gnd"
- }
- },
- "mbus": {
- "type": "mbus",
- "note": "Basic/Gray/Fire/M5GO share this host M-Bus mapping. Port B/C belong to M5GO Bottom accessories. GPIO16/17 are used by PSRAM on Fire; HPWR and battery availability depend on the attached base.",
- "positions": {
- "1": "pwr:gnd",
- "2": "gpio:35",
- "3": "pwr:gnd",
- "4": "gpio:36",
- "5": "pwr:gnd",
- "6": "chip:en",
- "7": "gpio:23",
- "8": "gpio:25",
- "9": "gpio:19",
- "10": "gpio:26",
- "11": "gpio:18",
- "12": "pwr:3v3",
- "13": "gpio:3",
- "14": "gpio:1",
- "15": "gpio:16",
- "16": "gpio:17",
- "17": "gpio:21",
- "18": "gpio:22",
- "19": "gpio:2",
- "20": "gpio:5",
- "21": "gpio:12",
- "22": "gpio:13",
- "23": "gpio:15",
- "24": "gpio:0",
- "25": "nc",
- "26": "gpio:34",
- "27": "nc",
- "28": "pwr:5v",
- "29": "nc",
- "30": "pwr:bat"
- }
- },
- "port_b": {
- "type": "hy2_4p",
- "standard": "port_io",
- "source": {
- "accessory": "m5go_bottom",
- "origin": "official",
- "bundled": false
- },
- "positions": {
- "1": "gpio:36",
- "2": "gpio:26",
- "3": "pwr:5v",
- "4": "pwr:gnd"
- }
- },
- "port_c": {
- "type": "hy2_4p",
- "standard": "port_uart",
- "source": {
- "accessory": "m5go_bottom",
- "origin": "official",
- "bundled": false
- },
- "positions": {
- "1": "gpio:16",
- "2": "gpio:17",
- "3": "pwr:5v",
- "4": "pwr:gnd"
- }
- },
- "port_d": {
- "type": "hy2_4p",
- "standard": "port_io",
- "source": {
- "accessory": "m5basic_base_lite",
- "origin": "third_party",
- "bundled": false
- },
- "positions": {
- "1": "gpio:34",
- "2": "gpio:35",
- "3": "pwr:5v",
- "4": "pwr:gnd"
- }
- },
- "port_e": {
- "type": "hy2_4p",
- "standard": "port_uart",
- "source": {
- "accessory": "m5basic_base_lite",
- "origin": "third_party",
- "bundled": false
- },
- "positions": {
- "1": "gpio:5",
- "2": "gpio:13",
- "3": "pwr:5v",
- "4": "pwr:gnd"
- }
- }
- }
-}
diff --git a/extras/board_spec/generated/resolved/m5stack@pre_v2_6_basic+lcd=ips.json b/extras/board_spec/generated/resolved/m5stack@pre_v2_6_basic+lcd=ips.json
deleted file mode 100644
index ae0b044e..00000000
--- a/extras/board_spec/generated/resolved/m5stack@pre_v2_6_basic+lcd=ips.json
+++ /dev/null
@@ -1,551 +0,0 @@
-{
- "schema_version": 1,
- "id": "m5stack",
- "name": "M5Stack",
- "official_name": "M5Stack Core (Basic/Gray/Fire)",
- "aliases": [
- "core",
- "basic",
- "gray",
- "grey",
- "fire",
- "m5go",
- "m5stack basic"
- ],
- "legacy_board_id": 1,
- "chip": "esp32_d0wdq6",
- "spec": {
- "links": {
- "product": "https://docs.m5stack.com/en/core/Basic",
- "schematic": "https://m5stack-doc.oss-cn-shenzhen.aliyuncs.com/480/M5-Core-Schematic_20171206.pdf",
- "verified": {
- "product": "datasheet",
- "schematic": "datasheet"
- }
- },
- "storage": {
- "psram_mb": 0
- }
- },
- "pins": {
- "0": {
- "roles": [
- "conn:mbus.24",
- "dev:usb_serial.boot"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "1": {
- "roles": [
- "conn:mbus.14",
- "bus:console_uart.tx"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "2": {
- "roles": [
- "conn:mbus.19"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "3": {
- "roles": [
- "conn:mbus.13",
- "bus:console_uart.rx"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "4": {
- "roles": [
- "dev:sd.d3"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "5": {
- "roles": [
- "conn:mbus.20",
- "m5basic_base_lite/conn:port_e.1"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "12": {
- "roles": [
- "conn:mbus.21"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "13": {
- "roles": [
- "conn:mbus.22",
- "m5basic_base_lite/conn:port_e.2"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "14": {
- "roles": [
- "dev:lcd.cs"
- ]
- },
- "15": {
- "roles": [
- "conn:mbus.23",
- "m5go_bottom/dev:rgb_led.data"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "16": {
- "roles": [
- "conn:mbus.15",
- "m5go_bottom/conn:port_c.1"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "17": {
- "roles": [
- "conn:mbus.16",
- "m5go_bottom/conn:port_c.2"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "18": {
- "roles": [
- "bus:main_spi.sclk",
- "dev:sd.clk",
- "conn:mbus.11"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "19": {
- "roles": [
- "bus:main_spi.miso",
- "dev:sd.d0",
- "conn:mbus.9"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "21": {
- "roles": [
- "bus:internal_i2c.sda",
- "conn:port_a.2",
- "conn:mbus.17"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "22": {
- "roles": [
- "bus:internal_i2c.scl",
- "conn:port_a.1",
- "conn:mbus.18"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "23": {
- "roles": [
- "bus:main_spi.mosi",
- "dev:sd.cmd",
- "conn:mbus.7"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "25": {
- "roles": [
- "dev:speaker.data_out",
- "conn:mbus.8"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "26": {
- "roles": [
- "conn:mbus.10",
- "m5go_bottom/conn:port_b.2"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "27": {
- "roles": [
- "dev:lcd.dc"
- ]
- },
- "32": {
- "roles": [
- "dev:backlight.pwm"
- ]
- },
- "33": {
- "roles": [
- "dev:lcd.rst"
- ]
- },
- "34": {
- "roles": [
- "dev:mic.data_in",
- "conn:mbus.26",
- "m5basic_base_lite/conn:port_d.1"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "35": {
- "roles": [
- "conn:mbus.2",
- "m5basic_base_lite/conn:port_d.2"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "36": {
- "roles": [
- "conn:mbus.4",
- "m5go_bottom/conn:port_b.1"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "37": {
- "roles": [
- "dev:btn_c.in"
- ]
- },
- "38": {
- "roles": [
- "dev:btn_b.in"
- ]
- },
- "39": {
- "roles": [
- "dev:btn_a.in"
- ]
- }
- },
- "buses": {
- "console_uart": {
- "kind": "uart",
- "signals": [
- "tx",
- "rx"
- ],
- "preferred_host": 0,
- "fixed": true
- },
- "main_spi": {
- "kind": "spi",
- "signals": [
- "sclk",
- "mosi",
- "miso"
- ],
- "preferred_host": "SPI3_HOST",
- "fixed": false,
- "freq": 40000000,
- "freq_read": 16000000,
- "verified": {
- "signals": "generated",
- "preferred_host": "generated",
- "freq": "generated",
- "freq_read": "generated"
- }
- },
- "internal_i2c": {
- "kind": "i2c",
- "signals": [
- "sda",
- "scl"
- ],
- "preferred_host": 0,
- "fixed": false,
- "verified": {
- "signals": "generated",
- "preferred_host": "generated"
- }
- }
- },
- "devices": {
- "usb_serial": {
- "kind": "usb_uart",
- "bus": "console_uart",
- "spec": {
- "auto_reset": true
- },
- "part": "cp2104",
- "signals": {
- "boot": "gpio:0"
- }
- },
- "lcd": {
- "kind": "display",
- "bus": "main_spi",
- "part": "ili9342c",
- "spec": {
- "width": 320,
- "height": 240,
- "rotation_offset": 0,
- "panel_type": "ips"
- },
- "signals": {
- "cs": "gpio:14",
- "dc": "gpio:27",
- "rst": "gpio:33"
- },
- "verified": {
- "signals": "generated"
- }
- },
- "sd": {
- "kind": "sd",
- "part": "sd_slot",
- "bus": "main_spi",
- "verified": {
- "bus": "generated",
- "derived": "generated",
- "signals": "generated"
- },
- "derived": {
- "modes": [
- "spi"
- ],
- "bus": "main_spi",
- "cs": "gpio:4"
- },
- "signals": {
- "d3": "gpio:4",
- "clk": "gpio:18",
- "d0": "gpio:19",
- "cmd": "gpio:23"
- }
- },
- "backlight": {
- "kind": "backlight",
- "spec": {
- "freq": 44100,
- "channel": 7
- },
- "verified": {
- "spec": "generated",
- "signals": "generated"
- },
- "signals": {
- "pwm": "gpio:32"
- }
- },
- "speaker": {
- "kind": "speaker",
- "signals": {
- "data_out": "gpio:25"
- }
- },
- "mic": {
- "kind": "mic",
- "signals": {
- "data_in": "gpio:34"
- }
- },
- "btn_a": {
- "kind": "button",
- "part": "button",
- "spec": {
- "active_low": true,
- "pull": "external_up"
- },
- "signals": {
- "in": "gpio:39"
- },
- "verified": {
- "signals": "generated"
- }
- },
- "btn_b": {
- "kind": "button",
- "part": "button",
- "spec": {
- "active_low": true,
- "pull": "external_up"
- },
- "signals": {
- "in": "gpio:38"
- },
- "verified": {
- "signals": "generated"
- }
- },
- "btn_c": {
- "kind": "button",
- "part": "button",
- "spec": {
- "active_low": true,
- "pull": "external_up"
- },
- "signals": {
- "in": "gpio:37"
- },
- "verified": {
- "signals": "generated"
- }
- },
- "rgb_led": {
- "kind": "led_strip",
- "part": "sk6812",
- "spec": {
- "count": 10
- },
- "verified": {
- "part": "datasheet",
- "signals": "generated"
- },
- "source": {
- "accessory": "m5go_bottom",
- "origin": "official",
- "bundled": false
- },
- "signals": {
- "data": "gpio:15"
- }
- }
- },
- "connectors": {
- "port_a": {
- "type": "hy2_4p",
- "standard": "port_i2c",
- "positions": {
- "1": "gpio:22",
- "2": "gpio:21",
- "3": "pwr:5v",
- "4": "pwr:gnd"
- }
- },
- "mbus": {
- "type": "mbus",
- "note": "Basic/Gray/Fire/M5GO share this host M-Bus mapping. Port B/C belong to M5GO Bottom accessories. GPIO16/17 are used by PSRAM on Fire; HPWR and battery availability depend on the attached base.",
- "positions": {
- "1": "pwr:gnd",
- "2": "gpio:35",
- "3": "pwr:gnd",
- "4": "gpio:36",
- "5": "pwr:gnd",
- "6": "chip:en",
- "7": "gpio:23",
- "8": "gpio:25",
- "9": "gpio:19",
- "10": "gpio:26",
- "11": "gpio:18",
- "12": "pwr:3v3",
- "13": "gpio:3",
- "14": "gpio:1",
- "15": "gpio:16",
- "16": "gpio:17",
- "17": "gpio:21",
- "18": "gpio:22",
- "19": "gpio:2",
- "20": "gpio:5",
- "21": "gpio:12",
- "22": "gpio:13",
- "23": "gpio:15",
- "24": "gpio:0",
- "25": "nc",
- "26": "gpio:34",
- "27": "nc",
- "28": "pwr:5v",
- "29": "nc",
- "30": "pwr:bat"
- }
- },
- "port_b": {
- "type": "hy2_4p",
- "standard": "port_io",
- "source": {
- "accessory": "m5go_bottom",
- "origin": "official",
- "bundled": false
- },
- "positions": {
- "1": "gpio:36",
- "2": "gpio:26",
- "3": "pwr:5v",
- "4": "pwr:gnd"
- }
- },
- "port_c": {
- "type": "hy2_4p",
- "standard": "port_uart",
- "source": {
- "accessory": "m5go_bottom",
- "origin": "official",
- "bundled": false
- },
- "positions": {
- "1": "gpio:16",
- "2": "gpio:17",
- "3": "pwr:5v",
- "4": "pwr:gnd"
- }
- },
- "port_d": {
- "type": "hy2_4p",
- "standard": "port_io",
- "source": {
- "accessory": "m5basic_base_lite",
- "origin": "third_party",
- "bundled": false
- },
- "positions": {
- "1": "gpio:34",
- "2": "gpio:35",
- "3": "pwr:5v",
- "4": "pwr:gnd"
- }
- },
- "port_e": {
- "type": "hy2_4p",
- "standard": "port_uart",
- "source": {
- "accessory": "m5basic_base_lite",
- "origin": "third_party",
- "bundled": false
- },
- "positions": {
- "1": "gpio:5",
- "2": "gpio:13",
- "3": "pwr:5v",
- "4": "pwr:gnd"
- }
- }
- }
-}
diff --git a/extras/board_spec/generated/resolved/m5stack@pre_v2_6_basic+lcd=tn.json b/extras/board_spec/generated/resolved/m5stack@pre_v2_6_basic+lcd=tn.json
deleted file mode 100644
index 075a88ba..00000000
--- a/extras/board_spec/generated/resolved/m5stack@pre_v2_6_basic+lcd=tn.json
+++ /dev/null
@@ -1,551 +0,0 @@
-{
- "schema_version": 1,
- "id": "m5stack",
- "name": "M5Stack",
- "official_name": "M5Stack Core (Basic/Gray/Fire)",
- "aliases": [
- "core",
- "basic",
- "gray",
- "grey",
- "fire",
- "m5go",
- "m5stack basic"
- ],
- "legacy_board_id": 1,
- "chip": "esp32_d0wdq6",
- "spec": {
- "links": {
- "product": "https://docs.m5stack.com/en/core/Basic",
- "schematic": "https://m5stack-doc.oss-cn-shenzhen.aliyuncs.com/480/M5-Core-Schematic_20171206.pdf",
- "verified": {
- "product": "datasheet",
- "schematic": "datasheet"
- }
- },
- "storage": {
- "psram_mb": 0
- }
- },
- "pins": {
- "0": {
- "roles": [
- "conn:mbus.24",
- "dev:usb_serial.boot"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "1": {
- "roles": [
- "conn:mbus.14",
- "bus:console_uart.tx"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "2": {
- "roles": [
- "conn:mbus.19"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "3": {
- "roles": [
- "conn:mbus.13",
- "bus:console_uart.rx"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "4": {
- "roles": [
- "dev:sd.d3"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "5": {
- "roles": [
- "conn:mbus.20",
- "m5basic_base_lite/conn:port_e.1"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "12": {
- "roles": [
- "conn:mbus.21"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "13": {
- "roles": [
- "conn:mbus.22",
- "m5basic_base_lite/conn:port_e.2"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "14": {
- "roles": [
- "dev:lcd.cs"
- ]
- },
- "15": {
- "roles": [
- "conn:mbus.23",
- "m5go_bottom/dev:rgb_led.data"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "16": {
- "roles": [
- "conn:mbus.15",
- "m5go_bottom/conn:port_c.1"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "17": {
- "roles": [
- "conn:mbus.16",
- "m5go_bottom/conn:port_c.2"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "18": {
- "roles": [
- "bus:main_spi.sclk",
- "dev:sd.clk",
- "conn:mbus.11"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "19": {
- "roles": [
- "bus:main_spi.miso",
- "dev:sd.d0",
- "conn:mbus.9"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "21": {
- "roles": [
- "bus:internal_i2c.sda",
- "conn:port_a.2",
- "conn:mbus.17"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "22": {
- "roles": [
- "bus:internal_i2c.scl",
- "conn:port_a.1",
- "conn:mbus.18"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "23": {
- "roles": [
- "bus:main_spi.mosi",
- "dev:sd.cmd",
- "conn:mbus.7"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "25": {
- "roles": [
- "dev:speaker.data_out",
- "conn:mbus.8"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "26": {
- "roles": [
- "conn:mbus.10",
- "m5go_bottom/conn:port_b.2"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "27": {
- "roles": [
- "dev:lcd.dc"
- ]
- },
- "32": {
- "roles": [
- "dev:backlight.pwm"
- ]
- },
- "33": {
- "roles": [
- "dev:lcd.rst"
- ]
- },
- "34": {
- "roles": [
- "dev:mic.data_in",
- "conn:mbus.26",
- "m5basic_base_lite/conn:port_d.1"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "35": {
- "roles": [
- "conn:mbus.2",
- "m5basic_base_lite/conn:port_d.2"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "36": {
- "roles": [
- "conn:mbus.4",
- "m5go_bottom/conn:port_b.1"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "37": {
- "roles": [
- "dev:btn_c.in"
- ]
- },
- "38": {
- "roles": [
- "dev:btn_b.in"
- ]
- },
- "39": {
- "roles": [
- "dev:btn_a.in"
- ]
- }
- },
- "buses": {
- "console_uart": {
- "kind": "uart",
- "signals": [
- "tx",
- "rx"
- ],
- "preferred_host": 0,
- "fixed": true
- },
- "main_spi": {
- "kind": "spi",
- "signals": [
- "sclk",
- "mosi",
- "miso"
- ],
- "preferred_host": "SPI3_HOST",
- "fixed": false,
- "freq": 40000000,
- "freq_read": 16000000,
- "verified": {
- "signals": "generated",
- "preferred_host": "generated",
- "freq": "generated",
- "freq_read": "generated"
- }
- },
- "internal_i2c": {
- "kind": "i2c",
- "signals": [
- "sda",
- "scl"
- ],
- "preferred_host": 0,
- "fixed": false,
- "verified": {
- "signals": "generated",
- "preferred_host": "generated"
- }
- }
- },
- "devices": {
- "usb_serial": {
- "kind": "usb_uart",
- "bus": "console_uart",
- "spec": {
- "auto_reset": true
- },
- "part": "cp2104",
- "signals": {
- "boot": "gpio:0"
- }
- },
- "lcd": {
- "kind": "display",
- "bus": "main_spi",
- "part": "ili9342c",
- "spec": {
- "width": 320,
- "height": 240,
- "rotation_offset": 0,
- "panel_type": "tn"
- },
- "signals": {
- "cs": "gpio:14",
- "dc": "gpio:27",
- "rst": "gpio:33"
- },
- "verified": {
- "signals": "generated"
- }
- },
- "sd": {
- "kind": "sd",
- "part": "sd_slot",
- "bus": "main_spi",
- "verified": {
- "bus": "generated",
- "derived": "generated",
- "signals": "generated"
- },
- "derived": {
- "modes": [
- "spi"
- ],
- "bus": "main_spi",
- "cs": "gpio:4"
- },
- "signals": {
- "d3": "gpio:4",
- "clk": "gpio:18",
- "d0": "gpio:19",
- "cmd": "gpio:23"
- }
- },
- "backlight": {
- "kind": "backlight",
- "spec": {
- "freq": 44100,
- "channel": 7
- },
- "verified": {
- "spec": "generated",
- "signals": "generated"
- },
- "signals": {
- "pwm": "gpio:32"
- }
- },
- "speaker": {
- "kind": "speaker",
- "signals": {
- "data_out": "gpio:25"
- }
- },
- "mic": {
- "kind": "mic",
- "signals": {
- "data_in": "gpio:34"
- }
- },
- "btn_a": {
- "kind": "button",
- "part": "button",
- "spec": {
- "active_low": true,
- "pull": "external_up"
- },
- "signals": {
- "in": "gpio:39"
- },
- "verified": {
- "signals": "generated"
- }
- },
- "btn_b": {
- "kind": "button",
- "part": "button",
- "spec": {
- "active_low": true,
- "pull": "external_up"
- },
- "signals": {
- "in": "gpio:38"
- },
- "verified": {
- "signals": "generated"
- }
- },
- "btn_c": {
- "kind": "button",
- "part": "button",
- "spec": {
- "active_low": true,
- "pull": "external_up"
- },
- "signals": {
- "in": "gpio:37"
- },
- "verified": {
- "signals": "generated"
- }
- },
- "rgb_led": {
- "kind": "led_strip",
- "part": "sk6812",
- "spec": {
- "count": 10
- },
- "verified": {
- "part": "datasheet",
- "signals": "generated"
- },
- "source": {
- "accessory": "m5go_bottom",
- "origin": "official",
- "bundled": false
- },
- "signals": {
- "data": "gpio:15"
- }
- }
- },
- "connectors": {
- "port_a": {
- "type": "hy2_4p",
- "standard": "port_i2c",
- "positions": {
- "1": "gpio:22",
- "2": "gpio:21",
- "3": "pwr:5v",
- "4": "pwr:gnd"
- }
- },
- "mbus": {
- "type": "mbus",
- "note": "Basic/Gray/Fire/M5GO share this host M-Bus mapping. Port B/C belong to M5GO Bottom accessories. GPIO16/17 are used by PSRAM on Fire; HPWR and battery availability depend on the attached base.",
- "positions": {
- "1": "pwr:gnd",
- "2": "gpio:35",
- "3": "pwr:gnd",
- "4": "gpio:36",
- "5": "pwr:gnd",
- "6": "chip:en",
- "7": "gpio:23",
- "8": "gpio:25",
- "9": "gpio:19",
- "10": "gpio:26",
- "11": "gpio:18",
- "12": "pwr:3v3",
- "13": "gpio:3",
- "14": "gpio:1",
- "15": "gpio:16",
- "16": "gpio:17",
- "17": "gpio:21",
- "18": "gpio:22",
- "19": "gpio:2",
- "20": "gpio:5",
- "21": "gpio:12",
- "22": "gpio:13",
- "23": "gpio:15",
- "24": "gpio:0",
- "25": "nc",
- "26": "gpio:34",
- "27": "nc",
- "28": "pwr:5v",
- "29": "nc",
- "30": "pwr:bat"
- }
- },
- "port_b": {
- "type": "hy2_4p",
- "standard": "port_io",
- "source": {
- "accessory": "m5go_bottom",
- "origin": "official",
- "bundled": false
- },
- "positions": {
- "1": "gpio:36",
- "2": "gpio:26",
- "3": "pwr:5v",
- "4": "pwr:gnd"
- }
- },
- "port_c": {
- "type": "hy2_4p",
- "standard": "port_uart",
- "source": {
- "accessory": "m5go_bottom",
- "origin": "official",
- "bundled": false
- },
- "positions": {
- "1": "gpio:16",
- "2": "gpio:17",
- "3": "pwr:5v",
- "4": "pwr:gnd"
- }
- },
- "port_d": {
- "type": "hy2_4p",
- "standard": "port_io",
- "source": {
- "accessory": "m5basic_base_lite",
- "origin": "third_party",
- "bundled": false
- },
- "positions": {
- "1": "gpio:34",
- "2": "gpio:35",
- "3": "pwr:5v",
- "4": "pwr:gnd"
- }
- },
- "port_e": {
- "type": "hy2_4p",
- "standard": "port_uart",
- "source": {
- "accessory": "m5basic_base_lite",
- "origin": "third_party",
- "bundled": false
- },
- "positions": {
- "1": "gpio:5",
- "2": "gpio:13",
- "3": "pwr:5v",
- "4": "pwr:gnd"
- }
- }
- }
-}
diff --git a/extras/board_spec/generated/resolved/m5stack@pre_v2_6_gray+lcd=ips.json b/extras/board_spec/generated/resolved/m5stack@pre_v2_6_gray+lcd=ips.json
deleted file mode 100644
index ae0b044e..00000000
--- a/extras/board_spec/generated/resolved/m5stack@pre_v2_6_gray+lcd=ips.json
+++ /dev/null
@@ -1,551 +0,0 @@
-{
- "schema_version": 1,
- "id": "m5stack",
- "name": "M5Stack",
- "official_name": "M5Stack Core (Basic/Gray/Fire)",
- "aliases": [
- "core",
- "basic",
- "gray",
- "grey",
- "fire",
- "m5go",
- "m5stack basic"
- ],
- "legacy_board_id": 1,
- "chip": "esp32_d0wdq6",
- "spec": {
- "links": {
- "product": "https://docs.m5stack.com/en/core/Basic",
- "schematic": "https://m5stack-doc.oss-cn-shenzhen.aliyuncs.com/480/M5-Core-Schematic_20171206.pdf",
- "verified": {
- "product": "datasheet",
- "schematic": "datasheet"
- }
- },
- "storage": {
- "psram_mb": 0
- }
- },
- "pins": {
- "0": {
- "roles": [
- "conn:mbus.24",
- "dev:usb_serial.boot"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "1": {
- "roles": [
- "conn:mbus.14",
- "bus:console_uart.tx"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "2": {
- "roles": [
- "conn:mbus.19"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "3": {
- "roles": [
- "conn:mbus.13",
- "bus:console_uart.rx"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "4": {
- "roles": [
- "dev:sd.d3"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "5": {
- "roles": [
- "conn:mbus.20",
- "m5basic_base_lite/conn:port_e.1"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "12": {
- "roles": [
- "conn:mbus.21"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "13": {
- "roles": [
- "conn:mbus.22",
- "m5basic_base_lite/conn:port_e.2"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "14": {
- "roles": [
- "dev:lcd.cs"
- ]
- },
- "15": {
- "roles": [
- "conn:mbus.23",
- "m5go_bottom/dev:rgb_led.data"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "16": {
- "roles": [
- "conn:mbus.15",
- "m5go_bottom/conn:port_c.1"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "17": {
- "roles": [
- "conn:mbus.16",
- "m5go_bottom/conn:port_c.2"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "18": {
- "roles": [
- "bus:main_spi.sclk",
- "dev:sd.clk",
- "conn:mbus.11"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "19": {
- "roles": [
- "bus:main_spi.miso",
- "dev:sd.d0",
- "conn:mbus.9"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "21": {
- "roles": [
- "bus:internal_i2c.sda",
- "conn:port_a.2",
- "conn:mbus.17"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "22": {
- "roles": [
- "bus:internal_i2c.scl",
- "conn:port_a.1",
- "conn:mbus.18"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "23": {
- "roles": [
- "bus:main_spi.mosi",
- "dev:sd.cmd",
- "conn:mbus.7"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "25": {
- "roles": [
- "dev:speaker.data_out",
- "conn:mbus.8"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "26": {
- "roles": [
- "conn:mbus.10",
- "m5go_bottom/conn:port_b.2"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "27": {
- "roles": [
- "dev:lcd.dc"
- ]
- },
- "32": {
- "roles": [
- "dev:backlight.pwm"
- ]
- },
- "33": {
- "roles": [
- "dev:lcd.rst"
- ]
- },
- "34": {
- "roles": [
- "dev:mic.data_in",
- "conn:mbus.26",
- "m5basic_base_lite/conn:port_d.1"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "35": {
- "roles": [
- "conn:mbus.2",
- "m5basic_base_lite/conn:port_d.2"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "36": {
- "roles": [
- "conn:mbus.4",
- "m5go_bottom/conn:port_b.1"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "37": {
- "roles": [
- "dev:btn_c.in"
- ]
- },
- "38": {
- "roles": [
- "dev:btn_b.in"
- ]
- },
- "39": {
- "roles": [
- "dev:btn_a.in"
- ]
- }
- },
- "buses": {
- "console_uart": {
- "kind": "uart",
- "signals": [
- "tx",
- "rx"
- ],
- "preferred_host": 0,
- "fixed": true
- },
- "main_spi": {
- "kind": "spi",
- "signals": [
- "sclk",
- "mosi",
- "miso"
- ],
- "preferred_host": "SPI3_HOST",
- "fixed": false,
- "freq": 40000000,
- "freq_read": 16000000,
- "verified": {
- "signals": "generated",
- "preferred_host": "generated",
- "freq": "generated",
- "freq_read": "generated"
- }
- },
- "internal_i2c": {
- "kind": "i2c",
- "signals": [
- "sda",
- "scl"
- ],
- "preferred_host": 0,
- "fixed": false,
- "verified": {
- "signals": "generated",
- "preferred_host": "generated"
- }
- }
- },
- "devices": {
- "usb_serial": {
- "kind": "usb_uart",
- "bus": "console_uart",
- "spec": {
- "auto_reset": true
- },
- "part": "cp2104",
- "signals": {
- "boot": "gpio:0"
- }
- },
- "lcd": {
- "kind": "display",
- "bus": "main_spi",
- "part": "ili9342c",
- "spec": {
- "width": 320,
- "height": 240,
- "rotation_offset": 0,
- "panel_type": "ips"
- },
- "signals": {
- "cs": "gpio:14",
- "dc": "gpio:27",
- "rst": "gpio:33"
- },
- "verified": {
- "signals": "generated"
- }
- },
- "sd": {
- "kind": "sd",
- "part": "sd_slot",
- "bus": "main_spi",
- "verified": {
- "bus": "generated",
- "derived": "generated",
- "signals": "generated"
- },
- "derived": {
- "modes": [
- "spi"
- ],
- "bus": "main_spi",
- "cs": "gpio:4"
- },
- "signals": {
- "d3": "gpio:4",
- "clk": "gpio:18",
- "d0": "gpio:19",
- "cmd": "gpio:23"
- }
- },
- "backlight": {
- "kind": "backlight",
- "spec": {
- "freq": 44100,
- "channel": 7
- },
- "verified": {
- "spec": "generated",
- "signals": "generated"
- },
- "signals": {
- "pwm": "gpio:32"
- }
- },
- "speaker": {
- "kind": "speaker",
- "signals": {
- "data_out": "gpio:25"
- }
- },
- "mic": {
- "kind": "mic",
- "signals": {
- "data_in": "gpio:34"
- }
- },
- "btn_a": {
- "kind": "button",
- "part": "button",
- "spec": {
- "active_low": true,
- "pull": "external_up"
- },
- "signals": {
- "in": "gpio:39"
- },
- "verified": {
- "signals": "generated"
- }
- },
- "btn_b": {
- "kind": "button",
- "part": "button",
- "spec": {
- "active_low": true,
- "pull": "external_up"
- },
- "signals": {
- "in": "gpio:38"
- },
- "verified": {
- "signals": "generated"
- }
- },
- "btn_c": {
- "kind": "button",
- "part": "button",
- "spec": {
- "active_low": true,
- "pull": "external_up"
- },
- "signals": {
- "in": "gpio:37"
- },
- "verified": {
- "signals": "generated"
- }
- },
- "rgb_led": {
- "kind": "led_strip",
- "part": "sk6812",
- "spec": {
- "count": 10
- },
- "verified": {
- "part": "datasheet",
- "signals": "generated"
- },
- "source": {
- "accessory": "m5go_bottom",
- "origin": "official",
- "bundled": false
- },
- "signals": {
- "data": "gpio:15"
- }
- }
- },
- "connectors": {
- "port_a": {
- "type": "hy2_4p",
- "standard": "port_i2c",
- "positions": {
- "1": "gpio:22",
- "2": "gpio:21",
- "3": "pwr:5v",
- "4": "pwr:gnd"
- }
- },
- "mbus": {
- "type": "mbus",
- "note": "Basic/Gray/Fire/M5GO share this host M-Bus mapping. Port B/C belong to M5GO Bottom accessories. GPIO16/17 are used by PSRAM on Fire; HPWR and battery availability depend on the attached base.",
- "positions": {
- "1": "pwr:gnd",
- "2": "gpio:35",
- "3": "pwr:gnd",
- "4": "gpio:36",
- "5": "pwr:gnd",
- "6": "chip:en",
- "7": "gpio:23",
- "8": "gpio:25",
- "9": "gpio:19",
- "10": "gpio:26",
- "11": "gpio:18",
- "12": "pwr:3v3",
- "13": "gpio:3",
- "14": "gpio:1",
- "15": "gpio:16",
- "16": "gpio:17",
- "17": "gpio:21",
- "18": "gpio:22",
- "19": "gpio:2",
- "20": "gpio:5",
- "21": "gpio:12",
- "22": "gpio:13",
- "23": "gpio:15",
- "24": "gpio:0",
- "25": "nc",
- "26": "gpio:34",
- "27": "nc",
- "28": "pwr:5v",
- "29": "nc",
- "30": "pwr:bat"
- }
- },
- "port_b": {
- "type": "hy2_4p",
- "standard": "port_io",
- "source": {
- "accessory": "m5go_bottom",
- "origin": "official",
- "bundled": false
- },
- "positions": {
- "1": "gpio:36",
- "2": "gpio:26",
- "3": "pwr:5v",
- "4": "pwr:gnd"
- }
- },
- "port_c": {
- "type": "hy2_4p",
- "standard": "port_uart",
- "source": {
- "accessory": "m5go_bottom",
- "origin": "official",
- "bundled": false
- },
- "positions": {
- "1": "gpio:16",
- "2": "gpio:17",
- "3": "pwr:5v",
- "4": "pwr:gnd"
- }
- },
- "port_d": {
- "type": "hy2_4p",
- "standard": "port_io",
- "source": {
- "accessory": "m5basic_base_lite",
- "origin": "third_party",
- "bundled": false
- },
- "positions": {
- "1": "gpio:34",
- "2": "gpio:35",
- "3": "pwr:5v",
- "4": "pwr:gnd"
- }
- },
- "port_e": {
- "type": "hy2_4p",
- "standard": "port_uart",
- "source": {
- "accessory": "m5basic_base_lite",
- "origin": "third_party",
- "bundled": false
- },
- "positions": {
- "1": "gpio:5",
- "2": "gpio:13",
- "3": "pwr:5v",
- "4": "pwr:gnd"
- }
- }
- }
-}
diff --git a/extras/board_spec/generated/resolved/m5stack@pre_v2_6_gray+lcd=tn.json b/extras/board_spec/generated/resolved/m5stack@pre_v2_6_gray+lcd=tn.json
deleted file mode 100644
index 075a88ba..00000000
--- a/extras/board_spec/generated/resolved/m5stack@pre_v2_6_gray+lcd=tn.json
+++ /dev/null
@@ -1,551 +0,0 @@
-{
- "schema_version": 1,
- "id": "m5stack",
- "name": "M5Stack",
- "official_name": "M5Stack Core (Basic/Gray/Fire)",
- "aliases": [
- "core",
- "basic",
- "gray",
- "grey",
- "fire",
- "m5go",
- "m5stack basic"
- ],
- "legacy_board_id": 1,
- "chip": "esp32_d0wdq6",
- "spec": {
- "links": {
- "product": "https://docs.m5stack.com/en/core/Basic",
- "schematic": "https://m5stack-doc.oss-cn-shenzhen.aliyuncs.com/480/M5-Core-Schematic_20171206.pdf",
- "verified": {
- "product": "datasheet",
- "schematic": "datasheet"
- }
- },
- "storage": {
- "psram_mb": 0
- }
- },
- "pins": {
- "0": {
- "roles": [
- "conn:mbus.24",
- "dev:usb_serial.boot"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "1": {
- "roles": [
- "conn:mbus.14",
- "bus:console_uart.tx"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "2": {
- "roles": [
- "conn:mbus.19"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "3": {
- "roles": [
- "conn:mbus.13",
- "bus:console_uart.rx"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "4": {
- "roles": [
- "dev:sd.d3"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "5": {
- "roles": [
- "conn:mbus.20",
- "m5basic_base_lite/conn:port_e.1"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "12": {
- "roles": [
- "conn:mbus.21"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "13": {
- "roles": [
- "conn:mbus.22",
- "m5basic_base_lite/conn:port_e.2"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "14": {
- "roles": [
- "dev:lcd.cs"
- ]
- },
- "15": {
- "roles": [
- "conn:mbus.23",
- "m5go_bottom/dev:rgb_led.data"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "16": {
- "roles": [
- "conn:mbus.15",
- "m5go_bottom/conn:port_c.1"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "17": {
- "roles": [
- "conn:mbus.16",
- "m5go_bottom/conn:port_c.2"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "18": {
- "roles": [
- "bus:main_spi.sclk",
- "dev:sd.clk",
- "conn:mbus.11"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "19": {
- "roles": [
- "bus:main_spi.miso",
- "dev:sd.d0",
- "conn:mbus.9"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "21": {
- "roles": [
- "bus:internal_i2c.sda",
- "conn:port_a.2",
- "conn:mbus.17"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "22": {
- "roles": [
- "bus:internal_i2c.scl",
- "conn:port_a.1",
- "conn:mbus.18"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "23": {
- "roles": [
- "bus:main_spi.mosi",
- "dev:sd.cmd",
- "conn:mbus.7"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "25": {
- "roles": [
- "dev:speaker.data_out",
- "conn:mbus.8"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "26": {
- "roles": [
- "conn:mbus.10",
- "m5go_bottom/conn:port_b.2"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "27": {
- "roles": [
- "dev:lcd.dc"
- ]
- },
- "32": {
- "roles": [
- "dev:backlight.pwm"
- ]
- },
- "33": {
- "roles": [
- "dev:lcd.rst"
- ]
- },
- "34": {
- "roles": [
- "dev:mic.data_in",
- "conn:mbus.26",
- "m5basic_base_lite/conn:port_d.1"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "35": {
- "roles": [
- "conn:mbus.2",
- "m5basic_base_lite/conn:port_d.2"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "36": {
- "roles": [
- "conn:mbus.4",
- "m5go_bottom/conn:port_b.1"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "37": {
- "roles": [
- "dev:btn_c.in"
- ]
- },
- "38": {
- "roles": [
- "dev:btn_b.in"
- ]
- },
- "39": {
- "roles": [
- "dev:btn_a.in"
- ]
- }
- },
- "buses": {
- "console_uart": {
- "kind": "uart",
- "signals": [
- "tx",
- "rx"
- ],
- "preferred_host": 0,
- "fixed": true
- },
- "main_spi": {
- "kind": "spi",
- "signals": [
- "sclk",
- "mosi",
- "miso"
- ],
- "preferred_host": "SPI3_HOST",
- "fixed": false,
- "freq": 40000000,
- "freq_read": 16000000,
- "verified": {
- "signals": "generated",
- "preferred_host": "generated",
- "freq": "generated",
- "freq_read": "generated"
- }
- },
- "internal_i2c": {
- "kind": "i2c",
- "signals": [
- "sda",
- "scl"
- ],
- "preferred_host": 0,
- "fixed": false,
- "verified": {
- "signals": "generated",
- "preferred_host": "generated"
- }
- }
- },
- "devices": {
- "usb_serial": {
- "kind": "usb_uart",
- "bus": "console_uart",
- "spec": {
- "auto_reset": true
- },
- "part": "cp2104",
- "signals": {
- "boot": "gpio:0"
- }
- },
- "lcd": {
- "kind": "display",
- "bus": "main_spi",
- "part": "ili9342c",
- "spec": {
- "width": 320,
- "height": 240,
- "rotation_offset": 0,
- "panel_type": "tn"
- },
- "signals": {
- "cs": "gpio:14",
- "dc": "gpio:27",
- "rst": "gpio:33"
- },
- "verified": {
- "signals": "generated"
- }
- },
- "sd": {
- "kind": "sd",
- "part": "sd_slot",
- "bus": "main_spi",
- "verified": {
- "bus": "generated",
- "derived": "generated",
- "signals": "generated"
- },
- "derived": {
- "modes": [
- "spi"
- ],
- "bus": "main_spi",
- "cs": "gpio:4"
- },
- "signals": {
- "d3": "gpio:4",
- "clk": "gpio:18",
- "d0": "gpio:19",
- "cmd": "gpio:23"
- }
- },
- "backlight": {
- "kind": "backlight",
- "spec": {
- "freq": 44100,
- "channel": 7
- },
- "verified": {
- "spec": "generated",
- "signals": "generated"
- },
- "signals": {
- "pwm": "gpio:32"
- }
- },
- "speaker": {
- "kind": "speaker",
- "signals": {
- "data_out": "gpio:25"
- }
- },
- "mic": {
- "kind": "mic",
- "signals": {
- "data_in": "gpio:34"
- }
- },
- "btn_a": {
- "kind": "button",
- "part": "button",
- "spec": {
- "active_low": true,
- "pull": "external_up"
- },
- "signals": {
- "in": "gpio:39"
- },
- "verified": {
- "signals": "generated"
- }
- },
- "btn_b": {
- "kind": "button",
- "part": "button",
- "spec": {
- "active_low": true,
- "pull": "external_up"
- },
- "signals": {
- "in": "gpio:38"
- },
- "verified": {
- "signals": "generated"
- }
- },
- "btn_c": {
- "kind": "button",
- "part": "button",
- "spec": {
- "active_low": true,
- "pull": "external_up"
- },
- "signals": {
- "in": "gpio:37"
- },
- "verified": {
- "signals": "generated"
- }
- },
- "rgb_led": {
- "kind": "led_strip",
- "part": "sk6812",
- "spec": {
- "count": 10
- },
- "verified": {
- "part": "datasheet",
- "signals": "generated"
- },
- "source": {
- "accessory": "m5go_bottom",
- "origin": "official",
- "bundled": false
- },
- "signals": {
- "data": "gpio:15"
- }
- }
- },
- "connectors": {
- "port_a": {
- "type": "hy2_4p",
- "standard": "port_i2c",
- "positions": {
- "1": "gpio:22",
- "2": "gpio:21",
- "3": "pwr:5v",
- "4": "pwr:gnd"
- }
- },
- "mbus": {
- "type": "mbus",
- "note": "Basic/Gray/Fire/M5GO share this host M-Bus mapping. Port B/C belong to M5GO Bottom accessories. GPIO16/17 are used by PSRAM on Fire; HPWR and battery availability depend on the attached base.",
- "positions": {
- "1": "pwr:gnd",
- "2": "gpio:35",
- "3": "pwr:gnd",
- "4": "gpio:36",
- "5": "pwr:gnd",
- "6": "chip:en",
- "7": "gpio:23",
- "8": "gpio:25",
- "9": "gpio:19",
- "10": "gpio:26",
- "11": "gpio:18",
- "12": "pwr:3v3",
- "13": "gpio:3",
- "14": "gpio:1",
- "15": "gpio:16",
- "16": "gpio:17",
- "17": "gpio:21",
- "18": "gpio:22",
- "19": "gpio:2",
- "20": "gpio:5",
- "21": "gpio:12",
- "22": "gpio:13",
- "23": "gpio:15",
- "24": "gpio:0",
- "25": "nc",
- "26": "gpio:34",
- "27": "nc",
- "28": "pwr:5v",
- "29": "nc",
- "30": "pwr:bat"
- }
- },
- "port_b": {
- "type": "hy2_4p",
- "standard": "port_io",
- "source": {
- "accessory": "m5go_bottom",
- "origin": "official",
- "bundled": false
- },
- "positions": {
- "1": "gpio:36",
- "2": "gpio:26",
- "3": "pwr:5v",
- "4": "pwr:gnd"
- }
- },
- "port_c": {
- "type": "hy2_4p",
- "standard": "port_uart",
- "source": {
- "accessory": "m5go_bottom",
- "origin": "official",
- "bundled": false
- },
- "positions": {
- "1": "gpio:16",
- "2": "gpio:17",
- "3": "pwr:5v",
- "4": "pwr:gnd"
- }
- },
- "port_d": {
- "type": "hy2_4p",
- "standard": "port_io",
- "source": {
- "accessory": "m5basic_base_lite",
- "origin": "third_party",
- "bundled": false
- },
- "positions": {
- "1": "gpio:34",
- "2": "gpio:35",
- "3": "pwr:5v",
- "4": "pwr:gnd"
- }
- },
- "port_e": {
- "type": "hy2_4p",
- "standard": "port_uart",
- "source": {
- "accessory": "m5basic_base_lite",
- "origin": "third_party",
- "bundled": false
- },
- "positions": {
- "1": "gpio:5",
- "2": "gpio:13",
- "3": "pwr:5v",
- "4": "pwr:gnd"
- }
- }
- }
-}
diff --git a/extras/board_spec/generated/resolved/m5stack@v2_6_plus_basic+lcd=ips.json b/extras/board_spec/generated/resolved/m5stack@v2_6_plus_basic+lcd=ips.json
deleted file mode 100644
index 62dfbe74..00000000
--- a/extras/board_spec/generated/resolved/m5stack@v2_6_plus_basic+lcd=ips.json
+++ /dev/null
@@ -1,551 +0,0 @@
-{
- "schema_version": 1,
- "id": "m5stack",
- "name": "M5Stack",
- "official_name": "M5Stack Core (Basic/Gray/Fire)",
- "aliases": [
- "core",
- "basic",
- "gray",
- "grey",
- "fire",
- "m5go",
- "m5stack basic"
- ],
- "legacy_board_id": 1,
- "chip": "esp32_d0wdq6",
- "spec": {
- "links": {
- "product": "https://docs.m5stack.com/en/core/Basic",
- "schematic": "https://m5stack-doc.oss-cn-shenzhen.aliyuncs.com/480/M5-Core-Schematic_20171206.pdf",
- "verified": {
- "product": "datasheet",
- "schematic": "datasheet"
- }
- },
- "storage": {
- "psram_mb": 0
- }
- },
- "pins": {
- "0": {
- "roles": [
- "conn:mbus.24",
- "dev:usb_serial.boot"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "1": {
- "roles": [
- "conn:mbus.14",
- "bus:console_uart.tx"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "2": {
- "roles": [
- "conn:mbus.19"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "3": {
- "roles": [
- "conn:mbus.13",
- "bus:console_uart.rx"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "4": {
- "roles": [
- "dev:sd.d3"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "5": {
- "roles": [
- "conn:mbus.20",
- "m5basic_base_lite/conn:port_e.1"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "12": {
- "roles": [
- "conn:mbus.21"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "13": {
- "roles": [
- "conn:mbus.22",
- "m5basic_base_lite/conn:port_e.2"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "14": {
- "roles": [
- "dev:lcd.cs"
- ]
- },
- "15": {
- "roles": [
- "conn:mbus.23",
- "m5go_bottom/dev:rgb_led.data"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "16": {
- "roles": [
- "conn:mbus.15",
- "m5go_bottom/conn:port_c.1"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "17": {
- "roles": [
- "conn:mbus.16",
- "m5go_bottom/conn:port_c.2"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "18": {
- "roles": [
- "bus:main_spi.sclk",
- "dev:sd.clk",
- "conn:mbus.11"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "19": {
- "roles": [
- "bus:main_spi.miso",
- "dev:sd.d0",
- "conn:mbus.9"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "21": {
- "roles": [
- "bus:internal_i2c.sda",
- "conn:port_a.2",
- "conn:mbus.17"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "22": {
- "roles": [
- "bus:internal_i2c.scl",
- "conn:port_a.1",
- "conn:mbus.18"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "23": {
- "roles": [
- "bus:main_spi.mosi",
- "dev:sd.cmd",
- "conn:mbus.7"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "25": {
- "roles": [
- "dev:speaker.data_out",
- "conn:mbus.8"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "26": {
- "roles": [
- "conn:mbus.10",
- "m5go_bottom/conn:port_b.2"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "27": {
- "roles": [
- "dev:lcd.dc"
- ]
- },
- "32": {
- "roles": [
- "dev:backlight.pwm"
- ]
- },
- "33": {
- "roles": [
- "dev:lcd.rst"
- ]
- },
- "34": {
- "roles": [
- "dev:mic.data_in",
- "conn:mbus.26",
- "m5basic_base_lite/conn:port_d.1"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "35": {
- "roles": [
- "conn:mbus.2",
- "m5basic_base_lite/conn:port_d.2"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "36": {
- "roles": [
- "conn:mbus.4",
- "m5go_bottom/conn:port_b.1"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "37": {
- "roles": [
- "dev:btn_c.in"
- ]
- },
- "38": {
- "roles": [
- "dev:btn_b.in"
- ]
- },
- "39": {
- "roles": [
- "dev:btn_a.in"
- ]
- }
- },
- "buses": {
- "console_uart": {
- "kind": "uart",
- "signals": [
- "tx",
- "rx"
- ],
- "preferred_host": 0,
- "fixed": true
- },
- "main_spi": {
- "kind": "spi",
- "signals": [
- "sclk",
- "mosi",
- "miso"
- ],
- "preferred_host": "SPI3_HOST",
- "fixed": false,
- "freq": 40000000,
- "freq_read": 16000000,
- "verified": {
- "signals": "generated",
- "preferred_host": "generated",
- "freq": "generated",
- "freq_read": "generated"
- }
- },
- "internal_i2c": {
- "kind": "i2c",
- "signals": [
- "sda",
- "scl"
- ],
- "preferred_host": 0,
- "fixed": false,
- "verified": {
- "signals": "generated",
- "preferred_host": "generated"
- }
- }
- },
- "devices": {
- "usb_serial": {
- "kind": "usb_uart",
- "bus": "console_uart",
- "spec": {
- "auto_reset": true
- },
- "part": "ch9102f",
- "signals": {
- "boot": "gpio:0"
- }
- },
- "lcd": {
- "kind": "display",
- "bus": "main_spi",
- "part": "ili9342c",
- "spec": {
- "width": 320,
- "height": 240,
- "rotation_offset": 0,
- "panel_type": "ips"
- },
- "signals": {
- "cs": "gpio:14",
- "dc": "gpio:27",
- "rst": "gpio:33"
- },
- "verified": {
- "signals": "generated"
- }
- },
- "sd": {
- "kind": "sd",
- "part": "sd_slot",
- "bus": "main_spi",
- "verified": {
- "bus": "generated",
- "derived": "generated",
- "signals": "generated"
- },
- "derived": {
- "modes": [
- "spi"
- ],
- "bus": "main_spi",
- "cs": "gpio:4"
- },
- "signals": {
- "d3": "gpio:4",
- "clk": "gpio:18",
- "d0": "gpio:19",
- "cmd": "gpio:23"
- }
- },
- "backlight": {
- "kind": "backlight",
- "spec": {
- "freq": 44100,
- "channel": 7
- },
- "verified": {
- "spec": "generated",
- "signals": "generated"
- },
- "signals": {
- "pwm": "gpio:32"
- }
- },
- "speaker": {
- "kind": "speaker",
- "signals": {
- "data_out": "gpio:25"
- }
- },
- "mic": {
- "kind": "mic",
- "signals": {
- "data_in": "gpio:34"
- }
- },
- "btn_a": {
- "kind": "button",
- "part": "button",
- "spec": {
- "active_low": true,
- "pull": "external_up"
- },
- "signals": {
- "in": "gpio:39"
- },
- "verified": {
- "signals": "generated"
- }
- },
- "btn_b": {
- "kind": "button",
- "part": "button",
- "spec": {
- "active_low": true,
- "pull": "external_up"
- },
- "signals": {
- "in": "gpio:38"
- },
- "verified": {
- "signals": "generated"
- }
- },
- "btn_c": {
- "kind": "button",
- "part": "button",
- "spec": {
- "active_low": true,
- "pull": "external_up"
- },
- "signals": {
- "in": "gpio:37"
- },
- "verified": {
- "signals": "generated"
- }
- },
- "rgb_led": {
- "kind": "led_strip",
- "part": "sk6812",
- "spec": {
- "count": 10
- },
- "verified": {
- "part": "datasheet",
- "signals": "generated"
- },
- "source": {
- "accessory": "m5go_bottom",
- "origin": "official",
- "bundled": false
- },
- "signals": {
- "data": "gpio:15"
- }
- }
- },
- "connectors": {
- "port_a": {
- "type": "hy2_4p",
- "standard": "port_i2c",
- "positions": {
- "1": "gpio:22",
- "2": "gpio:21",
- "3": "pwr:5v",
- "4": "pwr:gnd"
- }
- },
- "mbus": {
- "type": "mbus",
- "note": "Basic/Gray/Fire/M5GO share this host M-Bus mapping. Port B/C belong to M5GO Bottom accessories. GPIO16/17 are used by PSRAM on Fire; HPWR and battery availability depend on the attached base.",
- "positions": {
- "1": "pwr:gnd",
- "2": "gpio:35",
- "3": "pwr:gnd",
- "4": "gpio:36",
- "5": "pwr:gnd",
- "6": "chip:en",
- "7": "gpio:23",
- "8": "gpio:25",
- "9": "gpio:19",
- "10": "gpio:26",
- "11": "gpio:18",
- "12": "pwr:3v3",
- "13": "gpio:3",
- "14": "gpio:1",
- "15": "gpio:16",
- "16": "gpio:17",
- "17": "gpio:21",
- "18": "gpio:22",
- "19": "gpio:2",
- "20": "gpio:5",
- "21": "gpio:12",
- "22": "gpio:13",
- "23": "gpio:15",
- "24": "gpio:0",
- "25": "nc",
- "26": "gpio:34",
- "27": "nc",
- "28": "pwr:5v",
- "29": "nc",
- "30": "pwr:bat"
- }
- },
- "port_b": {
- "type": "hy2_4p",
- "standard": "port_io",
- "source": {
- "accessory": "m5go_bottom",
- "origin": "official",
- "bundled": false
- },
- "positions": {
- "1": "gpio:36",
- "2": "gpio:26",
- "3": "pwr:5v",
- "4": "pwr:gnd"
- }
- },
- "port_c": {
- "type": "hy2_4p",
- "standard": "port_uart",
- "source": {
- "accessory": "m5go_bottom",
- "origin": "official",
- "bundled": false
- },
- "positions": {
- "1": "gpio:16",
- "2": "gpio:17",
- "3": "pwr:5v",
- "4": "pwr:gnd"
- }
- },
- "port_d": {
- "type": "hy2_4p",
- "standard": "port_io",
- "source": {
- "accessory": "m5basic_base_lite",
- "origin": "third_party",
- "bundled": false
- },
- "positions": {
- "1": "gpio:34",
- "2": "gpio:35",
- "3": "pwr:5v",
- "4": "pwr:gnd"
- }
- },
- "port_e": {
- "type": "hy2_4p",
- "standard": "port_uart",
- "source": {
- "accessory": "m5basic_base_lite",
- "origin": "third_party",
- "bundled": false
- },
- "positions": {
- "1": "gpio:5",
- "2": "gpio:13",
- "3": "pwr:5v",
- "4": "pwr:gnd"
- }
- }
- }
-}
diff --git a/extras/board_spec/generated/resolved/m5stack@v2_6_plus_basic+lcd=tn.json b/extras/board_spec/generated/resolved/m5stack@v2_6_plus_basic+lcd=tn.json
deleted file mode 100644
index 88e2de3e..00000000
--- a/extras/board_spec/generated/resolved/m5stack@v2_6_plus_basic+lcd=tn.json
+++ /dev/null
@@ -1,551 +0,0 @@
-{
- "schema_version": 1,
- "id": "m5stack",
- "name": "M5Stack",
- "official_name": "M5Stack Core (Basic/Gray/Fire)",
- "aliases": [
- "core",
- "basic",
- "gray",
- "grey",
- "fire",
- "m5go",
- "m5stack basic"
- ],
- "legacy_board_id": 1,
- "chip": "esp32_d0wdq6",
- "spec": {
- "links": {
- "product": "https://docs.m5stack.com/en/core/Basic",
- "schematic": "https://m5stack-doc.oss-cn-shenzhen.aliyuncs.com/480/M5-Core-Schematic_20171206.pdf",
- "verified": {
- "product": "datasheet",
- "schematic": "datasheet"
- }
- },
- "storage": {
- "psram_mb": 0
- }
- },
- "pins": {
- "0": {
- "roles": [
- "conn:mbus.24",
- "dev:usb_serial.boot"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "1": {
- "roles": [
- "conn:mbus.14",
- "bus:console_uart.tx"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "2": {
- "roles": [
- "conn:mbus.19"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "3": {
- "roles": [
- "conn:mbus.13",
- "bus:console_uart.rx"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "4": {
- "roles": [
- "dev:sd.d3"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "5": {
- "roles": [
- "conn:mbus.20",
- "m5basic_base_lite/conn:port_e.1"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "12": {
- "roles": [
- "conn:mbus.21"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "13": {
- "roles": [
- "conn:mbus.22",
- "m5basic_base_lite/conn:port_e.2"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "14": {
- "roles": [
- "dev:lcd.cs"
- ]
- },
- "15": {
- "roles": [
- "conn:mbus.23",
- "m5go_bottom/dev:rgb_led.data"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "16": {
- "roles": [
- "conn:mbus.15",
- "m5go_bottom/conn:port_c.1"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "17": {
- "roles": [
- "conn:mbus.16",
- "m5go_bottom/conn:port_c.2"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "18": {
- "roles": [
- "bus:main_spi.sclk",
- "dev:sd.clk",
- "conn:mbus.11"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "19": {
- "roles": [
- "bus:main_spi.miso",
- "dev:sd.d0",
- "conn:mbus.9"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "21": {
- "roles": [
- "bus:internal_i2c.sda",
- "conn:port_a.2",
- "conn:mbus.17"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "22": {
- "roles": [
- "bus:internal_i2c.scl",
- "conn:port_a.1",
- "conn:mbus.18"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "23": {
- "roles": [
- "bus:main_spi.mosi",
- "dev:sd.cmd",
- "conn:mbus.7"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "25": {
- "roles": [
- "dev:speaker.data_out",
- "conn:mbus.8"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "26": {
- "roles": [
- "conn:mbus.10",
- "m5go_bottom/conn:port_b.2"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "27": {
- "roles": [
- "dev:lcd.dc"
- ]
- },
- "32": {
- "roles": [
- "dev:backlight.pwm"
- ]
- },
- "33": {
- "roles": [
- "dev:lcd.rst"
- ]
- },
- "34": {
- "roles": [
- "dev:mic.data_in",
- "conn:mbus.26",
- "m5basic_base_lite/conn:port_d.1"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "35": {
- "roles": [
- "conn:mbus.2",
- "m5basic_base_lite/conn:port_d.2"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "36": {
- "roles": [
- "conn:mbus.4",
- "m5go_bottom/conn:port_b.1"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "37": {
- "roles": [
- "dev:btn_c.in"
- ]
- },
- "38": {
- "roles": [
- "dev:btn_b.in"
- ]
- },
- "39": {
- "roles": [
- "dev:btn_a.in"
- ]
- }
- },
- "buses": {
- "console_uart": {
- "kind": "uart",
- "signals": [
- "tx",
- "rx"
- ],
- "preferred_host": 0,
- "fixed": true
- },
- "main_spi": {
- "kind": "spi",
- "signals": [
- "sclk",
- "mosi",
- "miso"
- ],
- "preferred_host": "SPI3_HOST",
- "fixed": false,
- "freq": 40000000,
- "freq_read": 16000000,
- "verified": {
- "signals": "generated",
- "preferred_host": "generated",
- "freq": "generated",
- "freq_read": "generated"
- }
- },
- "internal_i2c": {
- "kind": "i2c",
- "signals": [
- "sda",
- "scl"
- ],
- "preferred_host": 0,
- "fixed": false,
- "verified": {
- "signals": "generated",
- "preferred_host": "generated"
- }
- }
- },
- "devices": {
- "usb_serial": {
- "kind": "usb_uart",
- "bus": "console_uart",
- "spec": {
- "auto_reset": true
- },
- "part": "ch9102f",
- "signals": {
- "boot": "gpio:0"
- }
- },
- "lcd": {
- "kind": "display",
- "bus": "main_spi",
- "part": "ili9342c",
- "spec": {
- "width": 320,
- "height": 240,
- "rotation_offset": 0,
- "panel_type": "tn"
- },
- "signals": {
- "cs": "gpio:14",
- "dc": "gpio:27",
- "rst": "gpio:33"
- },
- "verified": {
- "signals": "generated"
- }
- },
- "sd": {
- "kind": "sd",
- "part": "sd_slot",
- "bus": "main_spi",
- "verified": {
- "bus": "generated",
- "derived": "generated",
- "signals": "generated"
- },
- "derived": {
- "modes": [
- "spi"
- ],
- "bus": "main_spi",
- "cs": "gpio:4"
- },
- "signals": {
- "d3": "gpio:4",
- "clk": "gpio:18",
- "d0": "gpio:19",
- "cmd": "gpio:23"
- }
- },
- "backlight": {
- "kind": "backlight",
- "spec": {
- "freq": 44100,
- "channel": 7
- },
- "verified": {
- "spec": "generated",
- "signals": "generated"
- },
- "signals": {
- "pwm": "gpio:32"
- }
- },
- "speaker": {
- "kind": "speaker",
- "signals": {
- "data_out": "gpio:25"
- }
- },
- "mic": {
- "kind": "mic",
- "signals": {
- "data_in": "gpio:34"
- }
- },
- "btn_a": {
- "kind": "button",
- "part": "button",
- "spec": {
- "active_low": true,
- "pull": "external_up"
- },
- "signals": {
- "in": "gpio:39"
- },
- "verified": {
- "signals": "generated"
- }
- },
- "btn_b": {
- "kind": "button",
- "part": "button",
- "spec": {
- "active_low": true,
- "pull": "external_up"
- },
- "signals": {
- "in": "gpio:38"
- },
- "verified": {
- "signals": "generated"
- }
- },
- "btn_c": {
- "kind": "button",
- "part": "button",
- "spec": {
- "active_low": true,
- "pull": "external_up"
- },
- "signals": {
- "in": "gpio:37"
- },
- "verified": {
- "signals": "generated"
- }
- },
- "rgb_led": {
- "kind": "led_strip",
- "part": "sk6812",
- "spec": {
- "count": 10
- },
- "verified": {
- "part": "datasheet",
- "signals": "generated"
- },
- "source": {
- "accessory": "m5go_bottom",
- "origin": "official",
- "bundled": false
- },
- "signals": {
- "data": "gpio:15"
- }
- }
- },
- "connectors": {
- "port_a": {
- "type": "hy2_4p",
- "standard": "port_i2c",
- "positions": {
- "1": "gpio:22",
- "2": "gpio:21",
- "3": "pwr:5v",
- "4": "pwr:gnd"
- }
- },
- "mbus": {
- "type": "mbus",
- "note": "Basic/Gray/Fire/M5GO share this host M-Bus mapping. Port B/C belong to M5GO Bottom accessories. GPIO16/17 are used by PSRAM on Fire; HPWR and battery availability depend on the attached base.",
- "positions": {
- "1": "pwr:gnd",
- "2": "gpio:35",
- "3": "pwr:gnd",
- "4": "gpio:36",
- "5": "pwr:gnd",
- "6": "chip:en",
- "7": "gpio:23",
- "8": "gpio:25",
- "9": "gpio:19",
- "10": "gpio:26",
- "11": "gpio:18",
- "12": "pwr:3v3",
- "13": "gpio:3",
- "14": "gpio:1",
- "15": "gpio:16",
- "16": "gpio:17",
- "17": "gpio:21",
- "18": "gpio:22",
- "19": "gpio:2",
- "20": "gpio:5",
- "21": "gpio:12",
- "22": "gpio:13",
- "23": "gpio:15",
- "24": "gpio:0",
- "25": "nc",
- "26": "gpio:34",
- "27": "nc",
- "28": "pwr:5v",
- "29": "nc",
- "30": "pwr:bat"
- }
- },
- "port_b": {
- "type": "hy2_4p",
- "standard": "port_io",
- "source": {
- "accessory": "m5go_bottom",
- "origin": "official",
- "bundled": false
- },
- "positions": {
- "1": "gpio:36",
- "2": "gpio:26",
- "3": "pwr:5v",
- "4": "pwr:gnd"
- }
- },
- "port_c": {
- "type": "hy2_4p",
- "standard": "port_uart",
- "source": {
- "accessory": "m5go_bottom",
- "origin": "official",
- "bundled": false
- },
- "positions": {
- "1": "gpio:16",
- "2": "gpio:17",
- "3": "pwr:5v",
- "4": "pwr:gnd"
- }
- },
- "port_d": {
- "type": "hy2_4p",
- "standard": "port_io",
- "source": {
- "accessory": "m5basic_base_lite",
- "origin": "third_party",
- "bundled": false
- },
- "positions": {
- "1": "gpio:34",
- "2": "gpio:35",
- "3": "pwr:5v",
- "4": "pwr:gnd"
- }
- },
- "port_e": {
- "type": "hy2_4p",
- "standard": "port_uart",
- "source": {
- "accessory": "m5basic_base_lite",
- "origin": "third_party",
- "bundled": false
- },
- "positions": {
- "1": "gpio:5",
- "2": "gpio:13",
- "3": "pwr:5v",
- "4": "pwr:gnd"
- }
- }
- }
-}
diff --git a/extras/board_spec/generated/resolved/m5stack@v2_6_plus_fire+lcd=ips.json b/extras/board_spec/generated/resolved/m5stack@v2_6_plus_fire+lcd=ips.json
deleted file mode 100644
index ab0e279f..00000000
--- a/extras/board_spec/generated/resolved/m5stack@v2_6_plus_fire+lcd=ips.json
+++ /dev/null
@@ -1,562 +0,0 @@
-{
- "schema_version": 1,
- "id": "m5stack",
- "name": "M5Stack",
- "official_name": "M5Stack Core (Basic/Gray/Fire)",
- "aliases": [
- "core",
- "basic",
- "gray",
- "grey",
- "fire",
- "m5go",
- "m5stack basic"
- ],
- "legacy_board_id": 1,
- "chip": "esp32_d0wdq6",
- "spec": {
- "links": {
- "product": "https://docs.m5stack.com/en/core/Basic",
- "schematic": "https://m5stack-doc.oss-cn-shenzhen.aliyuncs.com/480/M5-Core-Schematic_20171206.pdf",
- "verified": {
- "product": "datasheet",
- "schematic": "datasheet"
- }
- },
- "storage": {
- "psram_mb": 8,
- "psram_mode": "quad"
- }
- },
- "pins": {
- "0": {
- "roles": [
- "conn:mbus.24",
- "dev:usb_serial.boot"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "1": {
- "roles": [
- "conn:mbus.14",
- "bus:console_uart.tx"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "2": {
- "roles": [
- "conn:mbus.19"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "3": {
- "roles": [
- "conn:mbus.13",
- "bus:console_uart.rx"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "4": {
- "roles": [
- "dev:sd.d3"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "5": {
- "roles": [
- "conn:mbus.20",
- "m5basic_base_lite/conn:port_e.1"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "12": {
- "roles": [
- "conn:mbus.21"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "13": {
- "roles": [
- "conn:mbus.22",
- "m5basic_base_lite/conn:port_e.2"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "14": {
- "roles": [
- "dev:lcd.cs"
- ]
- },
- "15": {
- "roles": [
- "conn:mbus.23",
- "m5go_bottom/dev:rgb_led.data"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "16": {
- "roles": [
- "conn:mbus.15",
- "dev:psram.cs",
- "m5go_bottom/conn:port_c.1"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "17": {
- "roles": [
- "conn:mbus.16",
- "dev:psram.clk",
- "m5go_bottom/conn:port_c.2"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "18": {
- "roles": [
- "bus:main_spi.sclk",
- "dev:sd.clk",
- "conn:mbus.11"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "19": {
- "roles": [
- "bus:main_spi.miso",
- "dev:sd.d0",
- "conn:mbus.9"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "21": {
- "roles": [
- "bus:internal_i2c.sda",
- "conn:port_a.2",
- "conn:mbus.17"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "22": {
- "roles": [
- "bus:internal_i2c.scl",
- "conn:port_a.1",
- "conn:mbus.18"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "23": {
- "roles": [
- "bus:main_spi.mosi",
- "dev:sd.cmd",
- "conn:mbus.7"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "25": {
- "roles": [
- "dev:speaker.data_out",
- "conn:mbus.8"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "26": {
- "roles": [
- "conn:mbus.10",
- "m5go_bottom/conn:port_b.2"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "27": {
- "roles": [
- "dev:lcd.dc"
- ]
- },
- "32": {
- "roles": [
- "dev:backlight.pwm"
- ]
- },
- "33": {
- "roles": [
- "dev:lcd.rst"
- ]
- },
- "34": {
- "roles": [
- "dev:mic.data_in",
- "conn:mbus.26",
- "m5basic_base_lite/conn:port_d.1"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "35": {
- "roles": [
- "conn:mbus.2",
- "m5basic_base_lite/conn:port_d.2"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "36": {
- "roles": [
- "conn:mbus.4",
- "m5go_bottom/conn:port_b.1"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "37": {
- "roles": [
- "dev:btn_c.in"
- ]
- },
- "38": {
- "roles": [
- "dev:btn_b.in"
- ]
- },
- "39": {
- "roles": [
- "dev:btn_a.in"
- ]
- }
- },
- "buses": {
- "console_uart": {
- "kind": "uart",
- "signals": [
- "tx",
- "rx"
- ],
- "preferred_host": 0,
- "fixed": true
- },
- "main_spi": {
- "kind": "spi",
- "signals": [
- "sclk",
- "mosi",
- "miso"
- ],
- "preferred_host": "SPI3_HOST",
- "fixed": false,
- "freq": 40000000,
- "freq_read": 16000000,
- "verified": {
- "signals": "generated",
- "preferred_host": "generated",
- "freq": "generated",
- "freq_read": "generated"
- }
- },
- "internal_i2c": {
- "kind": "i2c",
- "signals": [
- "sda",
- "scl"
- ],
- "preferred_host": 0,
- "fixed": false,
- "verified": {
- "signals": "generated",
- "preferred_host": "generated"
- }
- }
- },
- "devices": {
- "usb_serial": {
- "kind": "usb_uart",
- "bus": "console_uart",
- "spec": {
- "auto_reset": true
- },
- "part": "ch9102f",
- "signals": {
- "boot": "gpio:0"
- }
- },
- "lcd": {
- "kind": "display",
- "bus": "main_spi",
- "part": "ili9342c",
- "spec": {
- "width": 320,
- "height": 240,
- "rotation_offset": 0,
- "panel_type": "ips"
- },
- "signals": {
- "cs": "gpio:14",
- "dc": "gpio:27",
- "rst": "gpio:33"
- },
- "verified": {
- "signals": "generated"
- }
- },
- "sd": {
- "kind": "sd",
- "part": "sd_slot",
- "bus": "main_spi",
- "verified": {
- "bus": "generated",
- "derived": "generated",
- "signals": "generated"
- },
- "derived": {
- "modes": [
- "spi"
- ],
- "bus": "main_spi",
- "cs": "gpio:4"
- },
- "signals": {
- "d3": "gpio:4",
- "clk": "gpio:18",
- "d0": "gpio:19",
- "cmd": "gpio:23"
- }
- },
- "backlight": {
- "kind": "backlight",
- "spec": {
- "freq": 44100,
- "channel": 7
- },
- "verified": {
- "spec": "generated",
- "signals": "generated"
- },
- "signals": {
- "pwm": "gpio:32"
- }
- },
- "speaker": {
- "kind": "speaker",
- "signals": {
- "data_out": "gpio:25"
- }
- },
- "mic": {
- "kind": "mic",
- "signals": {
- "data_in": "gpio:34"
- }
- },
- "btn_a": {
- "kind": "button",
- "part": "button",
- "spec": {
- "active_low": true,
- "pull": "external_up"
- },
- "signals": {
- "in": "gpio:39"
- },
- "verified": {
- "signals": "generated"
- }
- },
- "btn_b": {
- "kind": "button",
- "part": "button",
- "spec": {
- "active_low": true,
- "pull": "external_up"
- },
- "signals": {
- "in": "gpio:38"
- },
- "verified": {
- "signals": "generated"
- }
- },
- "btn_c": {
- "kind": "button",
- "part": "button",
- "spec": {
- "active_low": true,
- "pull": "external_up"
- },
- "signals": {
- "in": "gpio:37"
- },
- "verified": {
- "signals": "generated"
- }
- },
- "psram": {
- "kind": "psram",
- "part": "psram",
- "signals": {
- "cs": "gpio:16",
- "clk": "gpio:17"
- }
- },
- "rgb_led": {
- "kind": "led_strip",
- "part": "sk6812",
- "spec": {
- "count": 10
- },
- "verified": {
- "part": "datasheet",
- "signals": "generated"
- },
- "source": {
- "accessory": "m5go_bottom",
- "origin": "official",
- "bundled": false
- },
- "signals": {
- "data": "gpio:15"
- }
- }
- },
- "connectors": {
- "port_a": {
- "type": "hy2_4p",
- "standard": "port_i2c",
- "positions": {
- "1": "gpio:22",
- "2": "gpio:21",
- "3": "pwr:5v",
- "4": "pwr:gnd"
- }
- },
- "mbus": {
- "type": "mbus",
- "note": "Basic/Gray/Fire/M5GO share this host M-Bus mapping. Port B/C belong to M5GO Bottom accessories. GPIO16/17 are used by PSRAM on Fire; HPWR and battery availability depend on the attached base.",
- "positions": {
- "1": "pwr:gnd",
- "2": "gpio:35",
- "3": "pwr:gnd",
- "4": "gpio:36",
- "5": "pwr:gnd",
- "6": "chip:en",
- "7": "gpio:23",
- "8": "gpio:25",
- "9": "gpio:19",
- "10": "gpio:26",
- "11": "gpio:18",
- "12": "pwr:3v3",
- "13": "gpio:3",
- "14": "gpio:1",
- "15": "gpio:16",
- "16": "gpio:17",
- "17": "gpio:21",
- "18": "gpio:22",
- "19": "gpio:2",
- "20": "gpio:5",
- "21": "gpio:12",
- "22": "gpio:13",
- "23": "gpio:15",
- "24": "gpio:0",
- "25": "nc",
- "26": "gpio:34",
- "27": "nc",
- "28": "pwr:5v",
- "29": "nc",
- "30": "pwr:bat"
- }
- },
- "port_b": {
- "type": "hy2_4p",
- "standard": "port_io",
- "source": {
- "accessory": "m5go_bottom",
- "origin": "official",
- "bundled": false
- },
- "positions": {
- "1": "gpio:36",
- "2": "gpio:26",
- "3": "pwr:5v",
- "4": "pwr:gnd"
- }
- },
- "port_c": {
- "type": "hy2_4p",
- "standard": "port_uart",
- "source": {
- "accessory": "m5go_bottom",
- "origin": "official",
- "bundled": false
- },
- "positions": {
- "1": "gpio:16",
- "2": "gpio:17",
- "3": "pwr:5v",
- "4": "pwr:gnd"
- }
- },
- "port_d": {
- "type": "hy2_4p",
- "standard": "port_io",
- "source": {
- "accessory": "m5basic_base_lite",
- "origin": "third_party",
- "bundled": false
- },
- "positions": {
- "1": "gpio:34",
- "2": "gpio:35",
- "3": "pwr:5v",
- "4": "pwr:gnd"
- }
- },
- "port_e": {
- "type": "hy2_4p",
- "standard": "port_uart",
- "source": {
- "accessory": "m5basic_base_lite",
- "origin": "third_party",
- "bundled": false
- },
- "positions": {
- "1": "gpio:5",
- "2": "gpio:13",
- "3": "pwr:5v",
- "4": "pwr:gnd"
- }
- }
- }
-}
diff --git a/extras/board_spec/generated/resolved/m5stack@v2_6_plus_fire+lcd=tn.json b/extras/board_spec/generated/resolved/m5stack@v2_6_plus_fire+lcd=tn.json
deleted file mode 100644
index a7118953..00000000
--- a/extras/board_spec/generated/resolved/m5stack@v2_6_plus_fire+lcd=tn.json
+++ /dev/null
@@ -1,562 +0,0 @@
-{
- "schema_version": 1,
- "id": "m5stack",
- "name": "M5Stack",
- "official_name": "M5Stack Core (Basic/Gray/Fire)",
- "aliases": [
- "core",
- "basic",
- "gray",
- "grey",
- "fire",
- "m5go",
- "m5stack basic"
- ],
- "legacy_board_id": 1,
- "chip": "esp32_d0wdq6",
- "spec": {
- "links": {
- "product": "https://docs.m5stack.com/en/core/Basic",
- "schematic": "https://m5stack-doc.oss-cn-shenzhen.aliyuncs.com/480/M5-Core-Schematic_20171206.pdf",
- "verified": {
- "product": "datasheet",
- "schematic": "datasheet"
- }
- },
- "storage": {
- "psram_mb": 8,
- "psram_mode": "quad"
- }
- },
- "pins": {
- "0": {
- "roles": [
- "conn:mbus.24",
- "dev:usb_serial.boot"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "1": {
- "roles": [
- "conn:mbus.14",
- "bus:console_uart.tx"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "2": {
- "roles": [
- "conn:mbus.19"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "3": {
- "roles": [
- "conn:mbus.13",
- "bus:console_uart.rx"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "4": {
- "roles": [
- "dev:sd.d3"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "5": {
- "roles": [
- "conn:mbus.20",
- "m5basic_base_lite/conn:port_e.1"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "12": {
- "roles": [
- "conn:mbus.21"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "13": {
- "roles": [
- "conn:mbus.22",
- "m5basic_base_lite/conn:port_e.2"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "14": {
- "roles": [
- "dev:lcd.cs"
- ]
- },
- "15": {
- "roles": [
- "conn:mbus.23",
- "m5go_bottom/dev:rgb_led.data"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "16": {
- "roles": [
- "conn:mbus.15",
- "dev:psram.cs",
- "m5go_bottom/conn:port_c.1"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "17": {
- "roles": [
- "conn:mbus.16",
- "dev:psram.clk",
- "m5go_bottom/conn:port_c.2"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "18": {
- "roles": [
- "bus:main_spi.sclk",
- "dev:sd.clk",
- "conn:mbus.11"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "19": {
- "roles": [
- "bus:main_spi.miso",
- "dev:sd.d0",
- "conn:mbus.9"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "21": {
- "roles": [
- "bus:internal_i2c.sda",
- "conn:port_a.2",
- "conn:mbus.17"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "22": {
- "roles": [
- "bus:internal_i2c.scl",
- "conn:port_a.1",
- "conn:mbus.18"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "23": {
- "roles": [
- "bus:main_spi.mosi",
- "dev:sd.cmd",
- "conn:mbus.7"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "25": {
- "roles": [
- "dev:speaker.data_out",
- "conn:mbus.8"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "26": {
- "roles": [
- "conn:mbus.10",
- "m5go_bottom/conn:port_b.2"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "27": {
- "roles": [
- "dev:lcd.dc"
- ]
- },
- "32": {
- "roles": [
- "dev:backlight.pwm"
- ]
- },
- "33": {
- "roles": [
- "dev:lcd.rst"
- ]
- },
- "34": {
- "roles": [
- "dev:mic.data_in",
- "conn:mbus.26",
- "m5basic_base_lite/conn:port_d.1"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "35": {
- "roles": [
- "conn:mbus.2",
- "m5basic_base_lite/conn:port_d.2"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "36": {
- "roles": [
- "conn:mbus.4",
- "m5go_bottom/conn:port_b.1"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "37": {
- "roles": [
- "dev:btn_c.in"
- ]
- },
- "38": {
- "roles": [
- "dev:btn_b.in"
- ]
- },
- "39": {
- "roles": [
- "dev:btn_a.in"
- ]
- }
- },
- "buses": {
- "console_uart": {
- "kind": "uart",
- "signals": [
- "tx",
- "rx"
- ],
- "preferred_host": 0,
- "fixed": true
- },
- "main_spi": {
- "kind": "spi",
- "signals": [
- "sclk",
- "mosi",
- "miso"
- ],
- "preferred_host": "SPI3_HOST",
- "fixed": false,
- "freq": 40000000,
- "freq_read": 16000000,
- "verified": {
- "signals": "generated",
- "preferred_host": "generated",
- "freq": "generated",
- "freq_read": "generated"
- }
- },
- "internal_i2c": {
- "kind": "i2c",
- "signals": [
- "sda",
- "scl"
- ],
- "preferred_host": 0,
- "fixed": false,
- "verified": {
- "signals": "generated",
- "preferred_host": "generated"
- }
- }
- },
- "devices": {
- "usb_serial": {
- "kind": "usb_uart",
- "bus": "console_uart",
- "spec": {
- "auto_reset": true
- },
- "part": "ch9102f",
- "signals": {
- "boot": "gpio:0"
- }
- },
- "lcd": {
- "kind": "display",
- "bus": "main_spi",
- "part": "ili9342c",
- "spec": {
- "width": 320,
- "height": 240,
- "rotation_offset": 0,
- "panel_type": "tn"
- },
- "signals": {
- "cs": "gpio:14",
- "dc": "gpio:27",
- "rst": "gpio:33"
- },
- "verified": {
- "signals": "generated"
- }
- },
- "sd": {
- "kind": "sd",
- "part": "sd_slot",
- "bus": "main_spi",
- "verified": {
- "bus": "generated",
- "derived": "generated",
- "signals": "generated"
- },
- "derived": {
- "modes": [
- "spi"
- ],
- "bus": "main_spi",
- "cs": "gpio:4"
- },
- "signals": {
- "d3": "gpio:4",
- "clk": "gpio:18",
- "d0": "gpio:19",
- "cmd": "gpio:23"
- }
- },
- "backlight": {
- "kind": "backlight",
- "spec": {
- "freq": 44100,
- "channel": 7
- },
- "verified": {
- "spec": "generated",
- "signals": "generated"
- },
- "signals": {
- "pwm": "gpio:32"
- }
- },
- "speaker": {
- "kind": "speaker",
- "signals": {
- "data_out": "gpio:25"
- }
- },
- "mic": {
- "kind": "mic",
- "signals": {
- "data_in": "gpio:34"
- }
- },
- "btn_a": {
- "kind": "button",
- "part": "button",
- "spec": {
- "active_low": true,
- "pull": "external_up"
- },
- "signals": {
- "in": "gpio:39"
- },
- "verified": {
- "signals": "generated"
- }
- },
- "btn_b": {
- "kind": "button",
- "part": "button",
- "spec": {
- "active_low": true,
- "pull": "external_up"
- },
- "signals": {
- "in": "gpio:38"
- },
- "verified": {
- "signals": "generated"
- }
- },
- "btn_c": {
- "kind": "button",
- "part": "button",
- "spec": {
- "active_low": true,
- "pull": "external_up"
- },
- "signals": {
- "in": "gpio:37"
- },
- "verified": {
- "signals": "generated"
- }
- },
- "psram": {
- "kind": "psram",
- "part": "psram",
- "signals": {
- "cs": "gpio:16",
- "clk": "gpio:17"
- }
- },
- "rgb_led": {
- "kind": "led_strip",
- "part": "sk6812",
- "spec": {
- "count": 10
- },
- "verified": {
- "part": "datasheet",
- "signals": "generated"
- },
- "source": {
- "accessory": "m5go_bottom",
- "origin": "official",
- "bundled": false
- },
- "signals": {
- "data": "gpio:15"
- }
- }
- },
- "connectors": {
- "port_a": {
- "type": "hy2_4p",
- "standard": "port_i2c",
- "positions": {
- "1": "gpio:22",
- "2": "gpio:21",
- "3": "pwr:5v",
- "4": "pwr:gnd"
- }
- },
- "mbus": {
- "type": "mbus",
- "note": "Basic/Gray/Fire/M5GO share this host M-Bus mapping. Port B/C belong to M5GO Bottom accessories. GPIO16/17 are used by PSRAM on Fire; HPWR and battery availability depend on the attached base.",
- "positions": {
- "1": "pwr:gnd",
- "2": "gpio:35",
- "3": "pwr:gnd",
- "4": "gpio:36",
- "5": "pwr:gnd",
- "6": "chip:en",
- "7": "gpio:23",
- "8": "gpio:25",
- "9": "gpio:19",
- "10": "gpio:26",
- "11": "gpio:18",
- "12": "pwr:3v3",
- "13": "gpio:3",
- "14": "gpio:1",
- "15": "gpio:16",
- "16": "gpio:17",
- "17": "gpio:21",
- "18": "gpio:22",
- "19": "gpio:2",
- "20": "gpio:5",
- "21": "gpio:12",
- "22": "gpio:13",
- "23": "gpio:15",
- "24": "gpio:0",
- "25": "nc",
- "26": "gpio:34",
- "27": "nc",
- "28": "pwr:5v",
- "29": "nc",
- "30": "pwr:bat"
- }
- },
- "port_b": {
- "type": "hy2_4p",
- "standard": "port_io",
- "source": {
- "accessory": "m5go_bottom",
- "origin": "official",
- "bundled": false
- },
- "positions": {
- "1": "gpio:36",
- "2": "gpio:26",
- "3": "pwr:5v",
- "4": "pwr:gnd"
- }
- },
- "port_c": {
- "type": "hy2_4p",
- "standard": "port_uart",
- "source": {
- "accessory": "m5go_bottom",
- "origin": "official",
- "bundled": false
- },
- "positions": {
- "1": "gpio:16",
- "2": "gpio:17",
- "3": "pwr:5v",
- "4": "pwr:gnd"
- }
- },
- "port_d": {
- "type": "hy2_4p",
- "standard": "port_io",
- "source": {
- "accessory": "m5basic_base_lite",
- "origin": "third_party",
- "bundled": false
- },
- "positions": {
- "1": "gpio:34",
- "2": "gpio:35",
- "3": "pwr:5v",
- "4": "pwr:gnd"
- }
- },
- "port_e": {
- "type": "hy2_4p",
- "standard": "port_uart",
- "source": {
- "accessory": "m5basic_base_lite",
- "origin": "third_party",
- "bundled": false
- },
- "positions": {
- "1": "gpio:5",
- "2": "gpio:13",
- "3": "pwr:5v",
- "4": "pwr:gnd"
- }
- }
- }
-}
diff --git a/extras/board_spec/generated/resolved/m5stack@v2_6_plus_gray+lcd=ips.json b/extras/board_spec/generated/resolved/m5stack@v2_6_plus_gray+lcd=ips.json
deleted file mode 100644
index 62dfbe74..00000000
--- a/extras/board_spec/generated/resolved/m5stack@v2_6_plus_gray+lcd=ips.json
+++ /dev/null
@@ -1,551 +0,0 @@
-{
- "schema_version": 1,
- "id": "m5stack",
- "name": "M5Stack",
- "official_name": "M5Stack Core (Basic/Gray/Fire)",
- "aliases": [
- "core",
- "basic",
- "gray",
- "grey",
- "fire",
- "m5go",
- "m5stack basic"
- ],
- "legacy_board_id": 1,
- "chip": "esp32_d0wdq6",
- "spec": {
- "links": {
- "product": "https://docs.m5stack.com/en/core/Basic",
- "schematic": "https://m5stack-doc.oss-cn-shenzhen.aliyuncs.com/480/M5-Core-Schematic_20171206.pdf",
- "verified": {
- "product": "datasheet",
- "schematic": "datasheet"
- }
- },
- "storage": {
- "psram_mb": 0
- }
- },
- "pins": {
- "0": {
- "roles": [
- "conn:mbus.24",
- "dev:usb_serial.boot"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "1": {
- "roles": [
- "conn:mbus.14",
- "bus:console_uart.tx"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "2": {
- "roles": [
- "conn:mbus.19"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "3": {
- "roles": [
- "conn:mbus.13",
- "bus:console_uart.rx"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "4": {
- "roles": [
- "dev:sd.d3"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "5": {
- "roles": [
- "conn:mbus.20",
- "m5basic_base_lite/conn:port_e.1"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "12": {
- "roles": [
- "conn:mbus.21"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "13": {
- "roles": [
- "conn:mbus.22",
- "m5basic_base_lite/conn:port_e.2"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "14": {
- "roles": [
- "dev:lcd.cs"
- ]
- },
- "15": {
- "roles": [
- "conn:mbus.23",
- "m5go_bottom/dev:rgb_led.data"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "16": {
- "roles": [
- "conn:mbus.15",
- "m5go_bottom/conn:port_c.1"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "17": {
- "roles": [
- "conn:mbus.16",
- "m5go_bottom/conn:port_c.2"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "18": {
- "roles": [
- "bus:main_spi.sclk",
- "dev:sd.clk",
- "conn:mbus.11"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "19": {
- "roles": [
- "bus:main_spi.miso",
- "dev:sd.d0",
- "conn:mbus.9"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "21": {
- "roles": [
- "bus:internal_i2c.sda",
- "conn:port_a.2",
- "conn:mbus.17"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "22": {
- "roles": [
- "bus:internal_i2c.scl",
- "conn:port_a.1",
- "conn:mbus.18"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "23": {
- "roles": [
- "bus:main_spi.mosi",
- "dev:sd.cmd",
- "conn:mbus.7"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "25": {
- "roles": [
- "dev:speaker.data_out",
- "conn:mbus.8"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "26": {
- "roles": [
- "conn:mbus.10",
- "m5go_bottom/conn:port_b.2"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "27": {
- "roles": [
- "dev:lcd.dc"
- ]
- },
- "32": {
- "roles": [
- "dev:backlight.pwm"
- ]
- },
- "33": {
- "roles": [
- "dev:lcd.rst"
- ]
- },
- "34": {
- "roles": [
- "dev:mic.data_in",
- "conn:mbus.26",
- "m5basic_base_lite/conn:port_d.1"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "35": {
- "roles": [
- "conn:mbus.2",
- "m5basic_base_lite/conn:port_d.2"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "36": {
- "roles": [
- "conn:mbus.4",
- "m5go_bottom/conn:port_b.1"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "37": {
- "roles": [
- "dev:btn_c.in"
- ]
- },
- "38": {
- "roles": [
- "dev:btn_b.in"
- ]
- },
- "39": {
- "roles": [
- "dev:btn_a.in"
- ]
- }
- },
- "buses": {
- "console_uart": {
- "kind": "uart",
- "signals": [
- "tx",
- "rx"
- ],
- "preferred_host": 0,
- "fixed": true
- },
- "main_spi": {
- "kind": "spi",
- "signals": [
- "sclk",
- "mosi",
- "miso"
- ],
- "preferred_host": "SPI3_HOST",
- "fixed": false,
- "freq": 40000000,
- "freq_read": 16000000,
- "verified": {
- "signals": "generated",
- "preferred_host": "generated",
- "freq": "generated",
- "freq_read": "generated"
- }
- },
- "internal_i2c": {
- "kind": "i2c",
- "signals": [
- "sda",
- "scl"
- ],
- "preferred_host": 0,
- "fixed": false,
- "verified": {
- "signals": "generated",
- "preferred_host": "generated"
- }
- }
- },
- "devices": {
- "usb_serial": {
- "kind": "usb_uart",
- "bus": "console_uart",
- "spec": {
- "auto_reset": true
- },
- "part": "ch9102f",
- "signals": {
- "boot": "gpio:0"
- }
- },
- "lcd": {
- "kind": "display",
- "bus": "main_spi",
- "part": "ili9342c",
- "spec": {
- "width": 320,
- "height": 240,
- "rotation_offset": 0,
- "panel_type": "ips"
- },
- "signals": {
- "cs": "gpio:14",
- "dc": "gpio:27",
- "rst": "gpio:33"
- },
- "verified": {
- "signals": "generated"
- }
- },
- "sd": {
- "kind": "sd",
- "part": "sd_slot",
- "bus": "main_spi",
- "verified": {
- "bus": "generated",
- "derived": "generated",
- "signals": "generated"
- },
- "derived": {
- "modes": [
- "spi"
- ],
- "bus": "main_spi",
- "cs": "gpio:4"
- },
- "signals": {
- "d3": "gpio:4",
- "clk": "gpio:18",
- "d0": "gpio:19",
- "cmd": "gpio:23"
- }
- },
- "backlight": {
- "kind": "backlight",
- "spec": {
- "freq": 44100,
- "channel": 7
- },
- "verified": {
- "spec": "generated",
- "signals": "generated"
- },
- "signals": {
- "pwm": "gpio:32"
- }
- },
- "speaker": {
- "kind": "speaker",
- "signals": {
- "data_out": "gpio:25"
- }
- },
- "mic": {
- "kind": "mic",
- "signals": {
- "data_in": "gpio:34"
- }
- },
- "btn_a": {
- "kind": "button",
- "part": "button",
- "spec": {
- "active_low": true,
- "pull": "external_up"
- },
- "signals": {
- "in": "gpio:39"
- },
- "verified": {
- "signals": "generated"
- }
- },
- "btn_b": {
- "kind": "button",
- "part": "button",
- "spec": {
- "active_low": true,
- "pull": "external_up"
- },
- "signals": {
- "in": "gpio:38"
- },
- "verified": {
- "signals": "generated"
- }
- },
- "btn_c": {
- "kind": "button",
- "part": "button",
- "spec": {
- "active_low": true,
- "pull": "external_up"
- },
- "signals": {
- "in": "gpio:37"
- },
- "verified": {
- "signals": "generated"
- }
- },
- "rgb_led": {
- "kind": "led_strip",
- "part": "sk6812",
- "spec": {
- "count": 10
- },
- "verified": {
- "part": "datasheet",
- "signals": "generated"
- },
- "source": {
- "accessory": "m5go_bottom",
- "origin": "official",
- "bundled": false
- },
- "signals": {
- "data": "gpio:15"
- }
- }
- },
- "connectors": {
- "port_a": {
- "type": "hy2_4p",
- "standard": "port_i2c",
- "positions": {
- "1": "gpio:22",
- "2": "gpio:21",
- "3": "pwr:5v",
- "4": "pwr:gnd"
- }
- },
- "mbus": {
- "type": "mbus",
- "note": "Basic/Gray/Fire/M5GO share this host M-Bus mapping. Port B/C belong to M5GO Bottom accessories. GPIO16/17 are used by PSRAM on Fire; HPWR and battery availability depend on the attached base.",
- "positions": {
- "1": "pwr:gnd",
- "2": "gpio:35",
- "3": "pwr:gnd",
- "4": "gpio:36",
- "5": "pwr:gnd",
- "6": "chip:en",
- "7": "gpio:23",
- "8": "gpio:25",
- "9": "gpio:19",
- "10": "gpio:26",
- "11": "gpio:18",
- "12": "pwr:3v3",
- "13": "gpio:3",
- "14": "gpio:1",
- "15": "gpio:16",
- "16": "gpio:17",
- "17": "gpio:21",
- "18": "gpio:22",
- "19": "gpio:2",
- "20": "gpio:5",
- "21": "gpio:12",
- "22": "gpio:13",
- "23": "gpio:15",
- "24": "gpio:0",
- "25": "nc",
- "26": "gpio:34",
- "27": "nc",
- "28": "pwr:5v",
- "29": "nc",
- "30": "pwr:bat"
- }
- },
- "port_b": {
- "type": "hy2_4p",
- "standard": "port_io",
- "source": {
- "accessory": "m5go_bottom",
- "origin": "official",
- "bundled": false
- },
- "positions": {
- "1": "gpio:36",
- "2": "gpio:26",
- "3": "pwr:5v",
- "4": "pwr:gnd"
- }
- },
- "port_c": {
- "type": "hy2_4p",
- "standard": "port_uart",
- "source": {
- "accessory": "m5go_bottom",
- "origin": "official",
- "bundled": false
- },
- "positions": {
- "1": "gpio:16",
- "2": "gpio:17",
- "3": "pwr:5v",
- "4": "pwr:gnd"
- }
- },
- "port_d": {
- "type": "hy2_4p",
- "standard": "port_io",
- "source": {
- "accessory": "m5basic_base_lite",
- "origin": "third_party",
- "bundled": false
- },
- "positions": {
- "1": "gpio:34",
- "2": "gpio:35",
- "3": "pwr:5v",
- "4": "pwr:gnd"
- }
- },
- "port_e": {
- "type": "hy2_4p",
- "standard": "port_uart",
- "source": {
- "accessory": "m5basic_base_lite",
- "origin": "third_party",
- "bundled": false
- },
- "positions": {
- "1": "gpio:5",
- "2": "gpio:13",
- "3": "pwr:5v",
- "4": "pwr:gnd"
- }
- }
- }
-}
diff --git a/extras/board_spec/generated/resolved/m5stack@v2_6_plus_gray+lcd=tn.json b/extras/board_spec/generated/resolved/m5stack@v2_6_plus_gray+lcd=tn.json
deleted file mode 100644
index 88e2de3e..00000000
--- a/extras/board_spec/generated/resolved/m5stack@v2_6_plus_gray+lcd=tn.json
+++ /dev/null
@@ -1,551 +0,0 @@
-{
- "schema_version": 1,
- "id": "m5stack",
- "name": "M5Stack",
- "official_name": "M5Stack Core (Basic/Gray/Fire)",
- "aliases": [
- "core",
- "basic",
- "gray",
- "grey",
- "fire",
- "m5go",
- "m5stack basic"
- ],
- "legacy_board_id": 1,
- "chip": "esp32_d0wdq6",
- "spec": {
- "links": {
- "product": "https://docs.m5stack.com/en/core/Basic",
- "schematic": "https://m5stack-doc.oss-cn-shenzhen.aliyuncs.com/480/M5-Core-Schematic_20171206.pdf",
- "verified": {
- "product": "datasheet",
- "schematic": "datasheet"
- }
- },
- "storage": {
- "psram_mb": 0
- }
- },
- "pins": {
- "0": {
- "roles": [
- "conn:mbus.24",
- "dev:usb_serial.boot"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "1": {
- "roles": [
- "conn:mbus.14",
- "bus:console_uart.tx"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "2": {
- "roles": [
- "conn:mbus.19"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "3": {
- "roles": [
- "conn:mbus.13",
- "bus:console_uart.rx"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "4": {
- "roles": [
- "dev:sd.d3"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "5": {
- "roles": [
- "conn:mbus.20",
- "m5basic_base_lite/conn:port_e.1"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "12": {
- "roles": [
- "conn:mbus.21"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "13": {
- "roles": [
- "conn:mbus.22",
- "m5basic_base_lite/conn:port_e.2"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "14": {
- "roles": [
- "dev:lcd.cs"
- ]
- },
- "15": {
- "roles": [
- "conn:mbus.23",
- "m5go_bottom/dev:rgb_led.data"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "16": {
- "roles": [
- "conn:mbus.15",
- "m5go_bottom/conn:port_c.1"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "17": {
- "roles": [
- "conn:mbus.16",
- "m5go_bottom/conn:port_c.2"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "18": {
- "roles": [
- "bus:main_spi.sclk",
- "dev:sd.clk",
- "conn:mbus.11"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "19": {
- "roles": [
- "bus:main_spi.miso",
- "dev:sd.d0",
- "conn:mbus.9"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "21": {
- "roles": [
- "bus:internal_i2c.sda",
- "conn:port_a.2",
- "conn:mbus.17"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "22": {
- "roles": [
- "bus:internal_i2c.scl",
- "conn:port_a.1",
- "conn:mbus.18"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "23": {
- "roles": [
- "bus:main_spi.mosi",
- "dev:sd.cmd",
- "conn:mbus.7"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "25": {
- "roles": [
- "dev:speaker.data_out",
- "conn:mbus.8"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "26": {
- "roles": [
- "conn:mbus.10",
- "m5go_bottom/conn:port_b.2"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "27": {
- "roles": [
- "dev:lcd.dc"
- ]
- },
- "32": {
- "roles": [
- "dev:backlight.pwm"
- ]
- },
- "33": {
- "roles": [
- "dev:lcd.rst"
- ]
- },
- "34": {
- "roles": [
- "dev:mic.data_in",
- "conn:mbus.26",
- "m5basic_base_lite/conn:port_d.1"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "35": {
- "roles": [
- "conn:mbus.2",
- "m5basic_base_lite/conn:port_d.2"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "36": {
- "roles": [
- "conn:mbus.4",
- "m5go_bottom/conn:port_b.1"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "37": {
- "roles": [
- "dev:btn_c.in"
- ]
- },
- "38": {
- "roles": [
- "dev:btn_b.in"
- ]
- },
- "39": {
- "roles": [
- "dev:btn_a.in"
- ]
- }
- },
- "buses": {
- "console_uart": {
- "kind": "uart",
- "signals": [
- "tx",
- "rx"
- ],
- "preferred_host": 0,
- "fixed": true
- },
- "main_spi": {
- "kind": "spi",
- "signals": [
- "sclk",
- "mosi",
- "miso"
- ],
- "preferred_host": "SPI3_HOST",
- "fixed": false,
- "freq": 40000000,
- "freq_read": 16000000,
- "verified": {
- "signals": "generated",
- "preferred_host": "generated",
- "freq": "generated",
- "freq_read": "generated"
- }
- },
- "internal_i2c": {
- "kind": "i2c",
- "signals": [
- "sda",
- "scl"
- ],
- "preferred_host": 0,
- "fixed": false,
- "verified": {
- "signals": "generated",
- "preferred_host": "generated"
- }
- }
- },
- "devices": {
- "usb_serial": {
- "kind": "usb_uart",
- "bus": "console_uart",
- "spec": {
- "auto_reset": true
- },
- "part": "ch9102f",
- "signals": {
- "boot": "gpio:0"
- }
- },
- "lcd": {
- "kind": "display",
- "bus": "main_spi",
- "part": "ili9342c",
- "spec": {
- "width": 320,
- "height": 240,
- "rotation_offset": 0,
- "panel_type": "tn"
- },
- "signals": {
- "cs": "gpio:14",
- "dc": "gpio:27",
- "rst": "gpio:33"
- },
- "verified": {
- "signals": "generated"
- }
- },
- "sd": {
- "kind": "sd",
- "part": "sd_slot",
- "bus": "main_spi",
- "verified": {
- "bus": "generated",
- "derived": "generated",
- "signals": "generated"
- },
- "derived": {
- "modes": [
- "spi"
- ],
- "bus": "main_spi",
- "cs": "gpio:4"
- },
- "signals": {
- "d3": "gpio:4",
- "clk": "gpio:18",
- "d0": "gpio:19",
- "cmd": "gpio:23"
- }
- },
- "backlight": {
- "kind": "backlight",
- "spec": {
- "freq": 44100,
- "channel": 7
- },
- "verified": {
- "spec": "generated",
- "signals": "generated"
- },
- "signals": {
- "pwm": "gpio:32"
- }
- },
- "speaker": {
- "kind": "speaker",
- "signals": {
- "data_out": "gpio:25"
- }
- },
- "mic": {
- "kind": "mic",
- "signals": {
- "data_in": "gpio:34"
- }
- },
- "btn_a": {
- "kind": "button",
- "part": "button",
- "spec": {
- "active_low": true,
- "pull": "external_up"
- },
- "signals": {
- "in": "gpio:39"
- },
- "verified": {
- "signals": "generated"
- }
- },
- "btn_b": {
- "kind": "button",
- "part": "button",
- "spec": {
- "active_low": true,
- "pull": "external_up"
- },
- "signals": {
- "in": "gpio:38"
- },
- "verified": {
- "signals": "generated"
- }
- },
- "btn_c": {
- "kind": "button",
- "part": "button",
- "spec": {
- "active_low": true,
- "pull": "external_up"
- },
- "signals": {
- "in": "gpio:37"
- },
- "verified": {
- "signals": "generated"
- }
- },
- "rgb_led": {
- "kind": "led_strip",
- "part": "sk6812",
- "spec": {
- "count": 10
- },
- "verified": {
- "part": "datasheet",
- "signals": "generated"
- },
- "source": {
- "accessory": "m5go_bottom",
- "origin": "official",
- "bundled": false
- },
- "signals": {
- "data": "gpio:15"
- }
- }
- },
- "connectors": {
- "port_a": {
- "type": "hy2_4p",
- "standard": "port_i2c",
- "positions": {
- "1": "gpio:22",
- "2": "gpio:21",
- "3": "pwr:5v",
- "4": "pwr:gnd"
- }
- },
- "mbus": {
- "type": "mbus",
- "note": "Basic/Gray/Fire/M5GO share this host M-Bus mapping. Port B/C belong to M5GO Bottom accessories. GPIO16/17 are used by PSRAM on Fire; HPWR and battery availability depend on the attached base.",
- "positions": {
- "1": "pwr:gnd",
- "2": "gpio:35",
- "3": "pwr:gnd",
- "4": "gpio:36",
- "5": "pwr:gnd",
- "6": "chip:en",
- "7": "gpio:23",
- "8": "gpio:25",
- "9": "gpio:19",
- "10": "gpio:26",
- "11": "gpio:18",
- "12": "pwr:3v3",
- "13": "gpio:3",
- "14": "gpio:1",
- "15": "gpio:16",
- "16": "gpio:17",
- "17": "gpio:21",
- "18": "gpio:22",
- "19": "gpio:2",
- "20": "gpio:5",
- "21": "gpio:12",
- "22": "gpio:13",
- "23": "gpio:15",
- "24": "gpio:0",
- "25": "nc",
- "26": "gpio:34",
- "27": "nc",
- "28": "pwr:5v",
- "29": "nc",
- "30": "pwr:bat"
- }
- },
- "port_b": {
- "type": "hy2_4p",
- "standard": "port_io",
- "source": {
- "accessory": "m5go_bottom",
- "origin": "official",
- "bundled": false
- },
- "positions": {
- "1": "gpio:36",
- "2": "gpio:26",
- "3": "pwr:5v",
- "4": "pwr:gnd"
- }
- },
- "port_c": {
- "type": "hy2_4p",
- "standard": "port_uart",
- "source": {
- "accessory": "m5go_bottom",
- "origin": "official",
- "bundled": false
- },
- "positions": {
- "1": "gpio:16",
- "2": "gpio:17",
- "3": "pwr:5v",
- "4": "pwr:gnd"
- }
- },
- "port_d": {
- "type": "hy2_4p",
- "standard": "port_io",
- "source": {
- "accessory": "m5basic_base_lite",
- "origin": "third_party",
- "bundled": false
- },
- "positions": {
- "1": "gpio:34",
- "2": "gpio:35",
- "3": "pwr:5v",
- "4": "pwr:gnd"
- }
- },
- "port_e": {
- "type": "hy2_4p",
- "standard": "port_uart",
- "source": {
- "accessory": "m5basic_base_lite",
- "origin": "third_party",
- "bundled": false
- },
- "positions": {
- "1": "gpio:5",
- "2": "gpio:13",
- "3": "pwr:5v",
- "4": "pwr:gnd"
- }
- }
- }
-}
diff --git a/extras/board_spec/generated/resolved/m5stack_core2@v1_0.json b/extras/board_spec/generated/resolved/m5stack_core2@v1_0.json
deleted file mode 100644
index 1ab46366..00000000
--- a/extras/board_spec/generated/resolved/m5stack_core2@v1_0.json
+++ /dev/null
@@ -1,689 +0,0 @@
-{
- "schema_version": 1,
- "id": "m5stack_core2",
- "name": "M5StackCore2",
- "official_name": "M5Stack Core2",
- "official_name_verified": true,
- "aliases": [
- "core2",
- "core2 v1.1",
- "core2 v1.3",
- "core2 for aws",
- "aws"
- ],
- "legacy_board_id": 2,
- "chip": "esp32_d0wdq6",
- "spec": {
- "display": {
- "size_inch": 2,
- "resolution": [
- 320,
- 240
- ]
- },
- "power": {
- "battery_mah": 390,
- "usb": "type-c"
- },
- "storage": {
- "psram_mb": 8,
- "flash_mb": 16,
- "sd": true,
- "psram_mode": "quad"
- },
- "links": {
- "product": "https://docs.m5stack.com/en/core/Core2",
- "schematic": "https://m5stack-doc.oss-cn-shenzhen.aliyuncs.com/644/CORE2_V1.0_SCH.pdf",
- "verified": {
- "product": "datasheet",
- "schematic": "datasheet"
- }
- }
- },
- "pins": {
- "0": {
- "roles": [
- "bus:i2s_spk.ws",
- "bus:pdm_mic.ws",
- "conn:mbus.24",
- "dev:usb_serial.boot"
- ],
- "pull": "none",
- "note": "I2S WS shared by the speaker and PDM microphone",
- "verified": {
- "roles": "generated"
- }
- },
- "1": {
- "roles": [
- "conn:mbus.14",
- "bus:console_uart.tx"
- ],
- "pull": "none",
- "note": "TXD0",
- "verified": {
- "roles": "generated"
- }
- },
- "2": {
- "roles": [
- "bus:i2s_spk.data_out",
- "conn:mbus.23"
- ],
- "pull": "none",
- "verified": {
- "roles": "generated"
- }
- },
- "3": {
- "roles": [
- "conn:mbus.13",
- "bus:console_uart.rx"
- ],
- "pull": "none",
- "note": "RXD0",
- "verified": {
- "roles": "generated"
- }
- },
- "4": {
- "roles": [
- "dev:sd.d3"
- ],
- "pull": "up",
- "verified": {
- "roles": "generated"
- }
- },
- "5": {
- "roles": [
- "dev:lcd.cs"
- ],
- "pull": "up"
- },
- "12": {
- "roles": [
- "bus:i2s_spk.bck"
- ],
- "pull": "none"
- },
- "13": {
- "roles": [
- "conn:mbus.15",
- "m5go_bottom2/conn:port_c.1"
- ],
- "pull": "none",
- "verified": {
- "roles": "generated"
- }
- },
- "14": {
- "roles": [
- "conn:mbus.16",
- "m5go_bottom2/conn:port_c.2"
- ],
- "pull": "none",
- "verified": {
- "roles": "generated"
- }
- },
- "15": {
- "roles": [
- "dev:lcd.dc"
- ],
- "pull": "none"
- },
- "16": {
- "roles": [
- "dev:psram.cs"
- ]
- },
- "17": {
- "roles": [
- "dev:psram.clk"
- ]
- },
- "18": {
- "roles": [
- "bus:main_spi.sclk",
- "dev:sd.clk",
- "conn:mbus.11"
- ],
- "pull": "none",
- "verified": {
- "roles": "generated"
- }
- },
- "19": {
- "roles": [
- "conn:mbus.22",
- "extport_core2/conn:port_e.2"
- ],
- "pull": "none",
- "verified": {
- "roles": "generated"
- }
- },
- "21": {
- "roles": [
- "bus:internal_i2c.sda",
- "conn:mbus.17"
- ],
- "pull": "up",
- "verified": {
- "roles": "generated"
- }
- },
- "22": {
- "roles": [
- "bus:internal_i2c.scl",
- "conn:mbus.18"
- ],
- "pull": "up",
- "verified": {
- "roles": "generated"
- }
- },
- "23": {
- "roles": [
- "bus:main_spi.mosi",
- "dev:sd.cmd",
- "conn:mbus.7"
- ],
- "pull": "none",
- "verified": {
- "roles": "generated"
- }
- },
- "25": {
- "roles": [
- "conn:mbus.8",
- "m5go_bottom2/dev:rgb_led.data"
- ],
- "pull": "none",
- "note": "Optional M5GO Bottom2 LED bar (M5Unified RGBLED column)",
- "verified": {
- "roles": "generated"
- }
- },
- "26": {
- "roles": [
- "conn:mbus.10",
- "m5go_bottom2/conn:port_b.2"
- ],
- "pull": "none",
- "verified": {
- "roles": "generated"
- }
- },
- "27": {
- "roles": [
- "conn:mbus.21",
- "extport_core2/conn:port_e.1"
- ],
- "pull": "none",
- "verified": {
- "roles": "generated"
- }
- },
- "32": {
- "roles": [
- "bus:port_a_i2c.sda",
- "conn:port_a.2",
- "conn:mbus.19"
- ],
- "pull": "up",
- "verified": {
- "roles": "generated"
- }
- },
- "33": {
- "roles": [
- "bus:port_a_i2c.scl",
- "conn:port_a.1",
- "conn:mbus.20"
- ],
- "pull": "up",
- "verified": {
- "roles": "generated"
- }
- },
- "34": {
- "roles": [
- "bus:pdm_mic.data_in",
- "conn:mbus.26",
- "extport_core2/conn:port_d.1"
- ],
- "pull": "none",
- "verified": {
- "roles": "generated"
- }
- },
- "35": {
- "roles": [
- "conn:mbus.2",
- "extport_core2/conn:port_d.2"
- ],
- "pull": "none",
- "verified": {
- "roles": "generated"
- }
- },
- "36": {
- "roles": [
- "conn:mbus.4",
- "m5go_bottom2/conn:port_b.1"
- ],
- "pull": "none",
- "verified": {
- "roles": "generated"
- }
- },
- "38": {
- "roles": [
- "bus:main_spi.miso",
- "dev:sd.d0",
- "conn:mbus.9"
- ],
- "pull": "none",
- "verified": {
- "roles": "generated"
- }
- },
- "39": {
- "roles": [
- "dev:touch.int"
- ],
- "pull": "up"
- }
- },
- "buses": {
- "console_uart": {
- "kind": "uart",
- "signals": [
- "tx",
- "rx"
- ],
- "preferred_host": 0,
- "fixed": true
- },
- "main_spi": {
- "kind": "spi",
- "signals": [
- "sclk",
- "mosi",
- "miso"
- ],
- "preferred_host": "SPI3_HOST",
- "fixed": false,
- "freq": 40000000,
- "freq_read": 16000000,
- "verified": {
- "signals": "generated",
- "preferred_host": "generated",
- "freq": "generated",
- "freq_read": "generated"
- }
- },
- "internal_i2c": {
- "kind": "i2c",
- "signals": [
- "sda",
- "scl"
- ],
- "preferred_host": 1,
- "fixed": false,
- "freq": 400000,
- "verified": {
- "signals": "generated",
- "preferred_host": "generated",
- "freq": "generated"
- }
- },
- "port_a_i2c": {
- "kind": "i2c",
- "signals": [
- "sda",
- "scl"
- ],
- "preferred_host": 0,
- "fixed": false,
- "verified": {
- "signals": "generated",
- "preferred_host": "generated"
- }
- },
- "i2s_spk": {
- "kind": "i2s",
- "signals": [
- "bck",
- "ws",
- "data_out"
- ],
- "fixed": false
- },
- "pdm_mic": {
- "kind": "pdm",
- "signals": [
- "ws",
- "data_in"
- ],
- "fixed": false
- }
- },
- "devices": {
- "usb_serial": {
- "kind": "usb_uart",
- "bus": "console_uart",
- "spec": {
- "auto_reset": true
- },
- "part": "cp2104",
- "signals": {
- "boot": "gpio:0"
- }
- },
- "lcd": {
- "kind": "display",
- "bus": "main_spi",
- "spec": {
- "width": 320,
- "height": 240,
- "rotation_offset": 0
- },
- "part": "ili9342c",
- "signals": {
- "cs": "gpio:5",
- "dc": "gpio:15",
- "rst": "pin:pmic.gpio3",
- "backlight": "pin:pmic.dcdc3"
- },
- "verified": {
- "signals": "generated"
- }
- },
- "sd": {
- "kind": "sd",
- "part": "sd_slot",
- "bus": "main_spi",
- "verified": {
- "bus": "generated",
- "derived": "generated",
- "signals": "generated"
- },
- "derived": {
- "modes": [
- "spi"
- ],
- "bus": "main_spi",
- "cs": "gpio:4"
- },
- "signals": {
- "d3": "gpio:4",
- "clk": "gpio:18",
- "cmd": "gpio:23",
- "d0": "gpio:38"
- }
- },
- "touch": {
- "kind": "touch",
- "part": "ft5x06",
- "bus": "internal_i2c",
- "i2c_addr": "0x38",
- "spec": {
- "x_max": 319,
- "y_max": 279
- },
- "signals": {
- "int": "gpio:39"
- },
- "verified": {
- "signals": "generated"
- }
- },
- "speaker": {
- "kind": "speaker",
- "part": "ns4168",
- "bus": "i2s_spk",
- "enable": "pin:pmic.gpio2",
- "verified": {
- "enable": "generated"
- }
- },
- "mic": {
- "kind": "mic",
- "part": "spm1423",
- "bus": "pdm_mic"
- },
- "imu": {
- "kind": "imu",
- "bus": "internal_i2c",
- "i2c_addr": "0x68",
- "part": "mpu6886"
- },
- "rtc": {
- "kind": "rtc",
- "part": "bm8563",
- "bus": "internal_i2c",
- "i2c_addr": "0x51"
- },
- "pmic": {
- "kind": "pmic",
- "bus": "internal_i2c",
- "i2c_addr": "0x34",
- "part": "axp192",
- "pins": {
- "gpio3": {
- "roles": [
- "dev:lcd.rst"
- ]
- },
- "gpio2": {
- "roles": [
- "dev:speaker.enable"
- ]
- },
- "dcdc3": {
- "roles": [
- "dev:lcd.backlight"
- ]
- },
- "ldo2": {
- "roles": [
- "pwr:lcd_sd_3v3"
- ]
- },
- "ldo3": {
- "roles": [
- "dev:vibration.enable"
- ]
- },
- "gpio1": {
- "roles": [
- "dev:power_led.pwm"
- ]
- },
- "dcdc1": {
- "roles": [
- "pwr:esp_3v3"
- ]
- },
- "gpio0": {
- "roles": [
- "pwr:ext_ldo"
- ]
- },
- "exten": {
- "roles": [
- "pwr:ext_5v"
- ]
- },
- "pwrkey": {
- "roles": [
- "dev:btn_pwr.in"
- ]
- }
- }
- },
- "vibration": {
- "kind": "vibration",
- "signals": {
- "enable": "pin:pmic.ldo3"
- }
- },
- "power_led": {
- "kind": "led",
- "signals": {
- "pwm": "pin:pmic.gpio1"
- }
- },
- "btn_pwr": {
- "kind": "button",
- "part": "button",
- "spec": {
- "active_low": true,
- "pull": "pmic"
- },
- "signals": {
- "in": "pin:pmic.pwrkey"
- },
- "verified": {
- "signals": "generated"
- }
- },
- "psram": {
- "kind": "psram",
- "part": "psram",
- "signals": {
- "cs": "gpio:16",
- "clk": "gpio:17"
- }
- },
- "rgb_led": {
- "kind": "led_strip",
- "part": "sk6812",
- "spec": {
- "count": 10
- },
- "source": {
- "accessory": "m5go_bottom2",
- "origin": "official",
- "bundled": false
- },
- "signals": {
- "data": "gpio:25"
- },
- "verified": {
- "signals": "generated"
- }
- }
- },
- "connectors": {
- "port_a": {
- "type": "hy2_4p",
- "standard": "port_i2c",
- "positions": {
- "1": "gpio:33",
- "2": "gpio:32",
- "3": "pwr:5v",
- "4": "pwr:gnd"
- }
- },
- "mbus": {
- "type": "mbus",
- "note": "Official Core2 host mapping. Port B/C are provided by optional bottom accessories, not the bare host. GPIO34 is shared with the microphone on the attached Core2 Ext Board.",
- "positions": {
- "1": "pwr:gnd",
- "2": "gpio:35",
- "3": "pwr:gnd",
- "4": "gpio:36",
- "5": "pwr:gnd",
- "6": "chip:en",
- "7": "gpio:23",
- "8": "gpio:25",
- "9": "gpio:38",
- "10": "gpio:26",
- "11": "gpio:18",
- "12": "pwr:3v3",
- "13": "gpio:3",
- "14": "gpio:1",
- "15": "gpio:13",
- "16": "gpio:14",
- "17": "gpio:21",
- "18": "gpio:22",
- "19": "gpio:32",
- "20": "gpio:33",
- "21": "gpio:27",
- "22": "gpio:19",
- "23": "gpio:2",
- "24": "gpio:0",
- "25": "nc",
- "26": "gpio:34",
- "27": "nc",
- "28": "pwr:5v",
- "29": "nc",
- "30": "pwr:bat"
- }
- },
- "port_b": {
- "type": "hy2_4p",
- "standard": "port_io",
- "source": {
- "accessory": "m5go_bottom2",
- "origin": "official",
- "bundled": false
- },
- "positions": {
- "1": "gpio:36",
- "2": "gpio:26",
- "3": "pwr:5v",
- "4": "pwr:gnd"
- }
- },
- "port_c": {
- "type": "hy2_4p",
- "standard": "port_uart",
- "source": {
- "accessory": "m5go_bottom2",
- "origin": "official",
- "bundled": false
- },
- "positions": {
- "1": "gpio:13",
- "2": "gpio:14",
- "3": "pwr:5v",
- "4": "pwr:gnd"
- }
- },
- "port_d": {
- "type": "hy2_4p",
- "standard": "port_io",
- "source": {
- "accessory": "extport_core2",
- "origin": "official",
- "bundled": false
- },
- "positions": {
- "1": "gpio:34",
- "2": "gpio:35",
- "3": "pwr:5v",
- "4": "pwr:gnd"
- }
- },
- "port_e": {
- "type": "hy2_4p",
- "standard": "port_uart",
- "source": {
- "accessory": "extport_core2",
- "origin": "official",
- "bundled": false
- },
- "positions": {
- "1": "gpio:27",
- "2": "gpio:19",
- "3": "pwr:5v",
- "4": "pwr:gnd"
- }
- }
- }
-}
diff --git a/extras/board_spec/generated/resolved/m5stack_core2@v1_1.json b/extras/board_spec/generated/resolved/m5stack_core2@v1_1.json
deleted file mode 100644
index 9bfe01f8..00000000
--- a/extras/board_spec/generated/resolved/m5stack_core2@v1_1.json
+++ /dev/null
@@ -1,674 +0,0 @@
-{
- "schema_version": 1,
- "id": "m5stack_core2",
- "name": "M5StackCore2",
- "official_name": "M5Stack Core2",
- "official_name_verified": true,
- "aliases": [
- "core2",
- "core2 v1.1",
- "core2 v1.3",
- "core2 for aws",
- "aws"
- ],
- "legacy_board_id": 2,
- "chip": "esp32_d0wdq6",
- "spec": {
- "display": {
- "size_inch": 2,
- "resolution": [
- 320,
- 240
- ]
- },
- "power": {
- "battery_mah": 390,
- "usb": "type-c"
- },
- "storage": {
- "psram_mb": 8,
- "flash_mb": 16,
- "sd": true,
- "psram_mode": "quad"
- },
- "links": {
- "product": "https://docs.m5stack.com/en/core/Core2",
- "schematic": "https://m5stack-doc.oss-cn-shenzhen.aliyuncs.com/644/CORE2_V1.0_SCH.pdf",
- "verified": {
- "product": "datasheet",
- "schematic": "datasheet"
- }
- }
- },
- "pins": {
- "0": {
- "roles": [
- "bus:i2s_spk.ws",
- "bus:pdm_mic.ws",
- "conn:mbus.24",
- "dev:usb_serial.boot"
- ],
- "pull": "none",
- "note": "I2S WS shared by the speaker and PDM microphone",
- "verified": {
- "roles": "generated"
- }
- },
- "1": {
- "roles": [
- "conn:mbus.14",
- "bus:console_uart.tx"
- ],
- "pull": "none",
- "note": "TXD0",
- "verified": {
- "roles": "generated"
- }
- },
- "2": {
- "roles": [
- "bus:i2s_spk.data_out",
- "conn:mbus.23"
- ],
- "pull": "none",
- "verified": {
- "roles": "generated"
- }
- },
- "3": {
- "roles": [
- "conn:mbus.13",
- "bus:console_uart.rx"
- ],
- "pull": "none",
- "note": "RXD0",
- "verified": {
- "roles": "generated"
- }
- },
- "4": {
- "roles": [
- "dev:sd.d3"
- ],
- "pull": "up",
- "verified": {
- "roles": "generated"
- }
- },
- "5": {
- "roles": [
- "dev:lcd.cs"
- ],
- "pull": "up"
- },
- "12": {
- "roles": [
- "bus:i2s_spk.bck"
- ],
- "pull": "none"
- },
- "13": {
- "roles": [
- "conn:mbus.15",
- "m5go_bottom2/conn:port_c.1"
- ],
- "pull": "none",
- "verified": {
- "roles": "generated"
- }
- },
- "14": {
- "roles": [
- "conn:mbus.16",
- "m5go_bottom2/conn:port_c.2"
- ],
- "pull": "none",
- "verified": {
- "roles": "generated"
- }
- },
- "15": {
- "roles": [
- "dev:lcd.dc"
- ],
- "pull": "none"
- },
- "16": {
- "roles": [
- "dev:psram.cs"
- ]
- },
- "17": {
- "roles": [
- "dev:psram.clk"
- ]
- },
- "18": {
- "roles": [
- "bus:main_spi.sclk",
- "dev:sd.clk",
- "conn:mbus.11"
- ],
- "pull": "none",
- "verified": {
- "roles": "generated"
- }
- },
- "19": {
- "roles": [
- "conn:mbus.22",
- "extport_core2/conn:port_e.2"
- ],
- "pull": "none",
- "verified": {
- "roles": "generated"
- }
- },
- "21": {
- "roles": [
- "bus:internal_i2c.sda",
- "conn:mbus.17"
- ],
- "pull": "up",
- "verified": {
- "roles": "generated"
- }
- },
- "22": {
- "roles": [
- "bus:internal_i2c.scl",
- "conn:mbus.18"
- ],
- "pull": "up",
- "verified": {
- "roles": "generated"
- }
- },
- "23": {
- "roles": [
- "bus:main_spi.mosi",
- "dev:sd.cmd",
- "conn:mbus.7"
- ],
- "pull": "none",
- "verified": {
- "roles": "generated"
- }
- },
- "25": {
- "roles": [
- "conn:mbus.8",
- "m5go_bottom2/dev:rgb_led.data"
- ],
- "pull": "none",
- "note": "Optional M5GO Bottom2 LED bar (M5Unified RGBLED column)",
- "verified": {
- "roles": "generated"
- }
- },
- "26": {
- "roles": [
- "conn:mbus.10",
- "m5go_bottom2/conn:port_b.2"
- ],
- "pull": "none",
- "verified": {
- "roles": "generated"
- }
- },
- "27": {
- "roles": [
- "conn:mbus.21",
- "extport_core2/conn:port_e.1"
- ],
- "pull": "none",
- "verified": {
- "roles": "generated"
- }
- },
- "32": {
- "roles": [
- "bus:port_a_i2c.sda",
- "conn:port_a.2",
- "conn:mbus.19"
- ],
- "pull": "up",
- "verified": {
- "roles": "generated"
- }
- },
- "33": {
- "roles": [
- "bus:port_a_i2c.scl",
- "conn:port_a.1",
- "conn:mbus.20"
- ],
- "pull": "up",
- "verified": {
- "roles": "generated"
- }
- },
- "34": {
- "roles": [
- "bus:pdm_mic.data_in",
- "conn:mbus.26",
- "extport_core2/conn:port_d.1"
- ],
- "pull": "none",
- "verified": {
- "roles": "generated"
- }
- },
- "35": {
- "roles": [
- "conn:mbus.2",
- "extport_core2/conn:port_d.2"
- ],
- "pull": "none",
- "verified": {
- "roles": "generated"
- }
- },
- "36": {
- "roles": [
- "conn:mbus.4",
- "m5go_bottom2/conn:port_b.1"
- ],
- "pull": "none",
- "verified": {
- "roles": "generated"
- }
- },
- "38": {
- "roles": [
- "bus:main_spi.miso",
- "dev:sd.d0",
- "conn:mbus.9"
- ],
- "pull": "none",
- "verified": {
- "roles": "generated"
- }
- },
- "39": {
- "roles": [
- "dev:touch.int"
- ],
- "pull": "up"
- }
- },
- "buses": {
- "console_uart": {
- "kind": "uart",
- "signals": [
- "tx",
- "rx"
- ],
- "preferred_host": 0,
- "fixed": true
- },
- "main_spi": {
- "kind": "spi",
- "signals": [
- "sclk",
- "mosi",
- "miso"
- ],
- "preferred_host": "SPI3_HOST",
- "fixed": false,
- "freq": 40000000,
- "freq_read": 16000000,
- "verified": {
- "signals": "generated",
- "preferred_host": "generated",
- "freq": "generated",
- "freq_read": "generated"
- }
- },
- "internal_i2c": {
- "kind": "i2c",
- "signals": [
- "sda",
- "scl"
- ],
- "preferred_host": 1,
- "fixed": false,
- "freq": 400000,
- "verified": {
- "signals": "generated",
- "preferred_host": "generated",
- "freq": "generated"
- }
- },
- "port_a_i2c": {
- "kind": "i2c",
- "signals": [
- "sda",
- "scl"
- ],
- "preferred_host": 0,
- "fixed": false,
- "verified": {
- "signals": "generated",
- "preferred_host": "generated"
- }
- },
- "i2s_spk": {
- "kind": "i2s",
- "signals": [
- "bck",
- "ws",
- "data_out"
- ],
- "fixed": false
- },
- "pdm_mic": {
- "kind": "pdm",
- "signals": [
- "ws",
- "data_in"
- ],
- "fixed": false
- }
- },
- "devices": {
- "usb_serial": {
- "kind": "usb_uart",
- "bus": "console_uart",
- "spec": {
- "auto_reset": true
- },
- "part": "ch9102f",
- "signals": {
- "boot": "gpio:0"
- }
- },
- "lcd": {
- "kind": "display",
- "bus": "main_spi",
- "spec": {
- "width": 320,
- "height": 240,
- "rotation_offset": 0
- },
- "part": "ili9342c",
- "signals": {
- "cs": "gpio:5",
- "dc": "gpio:15",
- "rst": "pin:pmic.aldo2",
- "backlight": "pin:pmic.bldo1"
- },
- "verified": {
- "signals": "generated"
- }
- },
- "sd": {
- "kind": "sd",
- "part": "sd_slot",
- "bus": "main_spi",
- "verified": {
- "bus": "generated",
- "derived": "generated",
- "signals": "generated"
- },
- "derived": {
- "modes": [
- "spi"
- ],
- "bus": "main_spi",
- "cs": "gpio:4"
- },
- "signals": {
- "d3": "gpio:4",
- "clk": "gpio:18",
- "cmd": "gpio:23",
- "d0": "gpio:38"
- }
- },
- "touch": {
- "kind": "touch",
- "part": "ft5x06",
- "bus": "internal_i2c",
- "i2c_addr": "0x38",
- "spec": {
- "x_max": 319,
- "y_max": 279
- },
- "signals": {
- "int": "gpio:39"
- },
- "verified": {
- "signals": "generated"
- }
- },
- "speaker": {
- "kind": "speaker",
- "part": "ns4168",
- "bus": "i2s_spk",
- "enable": "pin:pmic.aldo3",
- "verified": {
- "enable": "generated"
- }
- },
- "mic": {
- "kind": "mic",
- "part": "spm1423",
- "bus": "pdm_mic"
- },
- "imu": {
- "kind": "imu",
- "bus": "internal_i2c",
- "i2c_addr": "0x68",
- "part": "mpu6886"
- },
- "rtc": {
- "kind": "rtc",
- "part": "bm8563",
- "bus": "internal_i2c",
- "i2c_addr": "0x51"
- },
- "pmic": {
- "kind": "pmic",
- "bus": "internal_i2c",
- "i2c_addr": "0x34",
- "part": "axp2101",
- "pins": {
- "aldo2": {
- "roles": [
- "dev:lcd.rst"
- ]
- },
- "aldo3": {
- "roles": [
- "dev:speaker.enable"
- ]
- },
- "bldo1": {
- "roles": [
- "dev:lcd.backlight"
- ]
- },
- "dldo1": {
- "roles": [
- "dev:vibration.enable"
- ]
- },
- "bldo2": {
- "roles": [
- "pwr:ext_5v"
- ]
- },
- "chgled": {
- "roles": [
- "dev:power_led.on"
- ]
- },
- "pwrkey": {
- "roles": [
- "dev:btn_pwr.in"
- ]
- }
- }
- },
- "vibration": {
- "kind": "vibration",
- "signals": {
- "enable": "pin:pmic.dldo1"
- }
- },
- "power_led": {
- "kind": "led",
- "signals": {
- "on": "pin:pmic.chgled"
- }
- },
- "btn_pwr": {
- "kind": "button",
- "part": "button",
- "spec": {
- "active_low": true,
- "pull": "pmic"
- },
- "signals": {
- "in": "pin:pmic.pwrkey"
- },
- "verified": {
- "signals": "generated"
- }
- },
- "psram": {
- "kind": "psram",
- "part": "psram",
- "signals": {
- "cs": "gpio:16",
- "clk": "gpio:17"
- }
- },
- "rgb_led": {
- "kind": "led_strip",
- "part": "sk6812",
- "spec": {
- "count": 10
- },
- "source": {
- "accessory": "m5go_bottom2",
- "origin": "official",
- "bundled": false
- },
- "signals": {
- "data": "gpio:25"
- },
- "verified": {
- "signals": "generated"
- }
- }
- },
- "connectors": {
- "port_a": {
- "type": "hy2_4p",
- "standard": "port_i2c",
- "positions": {
- "1": "gpio:33",
- "2": "gpio:32",
- "3": "pwr:5v",
- "4": "pwr:gnd"
- }
- },
- "mbus": {
- "type": "mbus",
- "note": "Official Core2 host mapping. Port B/C are provided by optional bottom accessories, not the bare host. GPIO34 is shared with the microphone on the attached Core2 Ext Board.",
- "positions": {
- "1": "pwr:gnd",
- "2": "gpio:35",
- "3": "pwr:gnd",
- "4": "gpio:36",
- "5": "pwr:gnd",
- "6": "chip:en",
- "7": "gpio:23",
- "8": "gpio:25",
- "9": "gpio:38",
- "10": "gpio:26",
- "11": "gpio:18",
- "12": "pwr:3v3",
- "13": "gpio:3",
- "14": "gpio:1",
- "15": "gpio:13",
- "16": "gpio:14",
- "17": "gpio:21",
- "18": "gpio:22",
- "19": "gpio:32",
- "20": "gpio:33",
- "21": "gpio:27",
- "22": "gpio:19",
- "23": "gpio:2",
- "24": "gpio:0",
- "25": "nc",
- "26": "gpio:34",
- "27": "nc",
- "28": "pwr:5v",
- "29": "nc",
- "30": "pwr:bat"
- }
- },
- "port_b": {
- "type": "hy2_4p",
- "standard": "port_io",
- "source": {
- "accessory": "m5go_bottom2",
- "origin": "official",
- "bundled": false
- },
- "positions": {
- "1": "gpio:36",
- "2": "gpio:26",
- "3": "pwr:5v",
- "4": "pwr:gnd"
- }
- },
- "port_c": {
- "type": "hy2_4p",
- "standard": "port_uart",
- "source": {
- "accessory": "m5go_bottom2",
- "origin": "official",
- "bundled": false
- },
- "positions": {
- "1": "gpio:13",
- "2": "gpio:14",
- "3": "pwr:5v",
- "4": "pwr:gnd"
- }
- },
- "port_d": {
- "type": "hy2_4p",
- "standard": "port_io",
- "source": {
- "accessory": "extport_core2",
- "origin": "official",
- "bundled": false
- },
- "positions": {
- "1": "gpio:34",
- "2": "gpio:35",
- "3": "pwr:5v",
- "4": "pwr:gnd"
- }
- },
- "port_e": {
- "type": "hy2_4p",
- "standard": "port_uart",
- "source": {
- "accessory": "extport_core2",
- "origin": "official",
- "bundled": false
- },
- "positions": {
- "1": "gpio:27",
- "2": "gpio:19",
- "3": "pwr:5v",
- "4": "pwr:gnd"
- }
- }
- }
-}
diff --git a/extras/board_spec/generated/resolved/m5stack_core2@v1_2.json b/extras/board_spec/generated/resolved/m5stack_core2@v1_2.json
deleted file mode 100644
index 2800930b..00000000
--- a/extras/board_spec/generated/resolved/m5stack_core2@v1_2.json
+++ /dev/null
@@ -1,689 +0,0 @@
-{
- "schema_version": 1,
- "id": "m5stack_core2",
- "name": "M5StackCore2",
- "official_name": "M5Stack Core2",
- "official_name_verified": true,
- "aliases": [
- "core2",
- "core2 v1.1",
- "core2 v1.3",
- "core2 for aws",
- "aws"
- ],
- "legacy_board_id": 2,
- "chip": "esp32_d0wdq6",
- "spec": {
- "display": {
- "size_inch": 2,
- "resolution": [
- 320,
- 240
- ]
- },
- "power": {
- "battery_mah": 390,
- "usb": "type-c"
- },
- "storage": {
- "psram_mb": 8,
- "flash_mb": 16,
- "sd": true,
- "psram_mode": "quad"
- },
- "links": {
- "product": "https://docs.m5stack.com/en/core/Core2",
- "schematic": "https://m5stack-doc.oss-cn-shenzhen.aliyuncs.com/644/CORE2_V1.0_SCH.pdf",
- "verified": {
- "product": "datasheet",
- "schematic": "datasheet"
- }
- }
- },
- "pins": {
- "0": {
- "roles": [
- "bus:i2s_spk.ws",
- "bus:pdm_mic.ws",
- "conn:mbus.24",
- "dev:usb_serial.boot"
- ],
- "pull": "none",
- "note": "I2S WS shared by the speaker and PDM microphone",
- "verified": {
- "roles": "generated"
- }
- },
- "1": {
- "roles": [
- "conn:mbus.14",
- "bus:console_uart.tx"
- ],
- "pull": "none",
- "note": "TXD0",
- "verified": {
- "roles": "generated"
- }
- },
- "2": {
- "roles": [
- "bus:i2s_spk.data_out",
- "conn:mbus.23"
- ],
- "pull": "none",
- "verified": {
- "roles": "generated"
- }
- },
- "3": {
- "roles": [
- "conn:mbus.13",
- "bus:console_uart.rx"
- ],
- "pull": "none",
- "note": "RXD0",
- "verified": {
- "roles": "generated"
- }
- },
- "4": {
- "roles": [
- "dev:sd.d3"
- ],
- "pull": "up",
- "verified": {
- "roles": "generated"
- }
- },
- "5": {
- "roles": [
- "dev:lcd.cs"
- ],
- "pull": "up"
- },
- "12": {
- "roles": [
- "bus:i2s_spk.bck"
- ],
- "pull": "none"
- },
- "13": {
- "roles": [
- "conn:mbus.15",
- "m5go_bottom2/conn:port_c.1"
- ],
- "pull": "none",
- "verified": {
- "roles": "generated"
- }
- },
- "14": {
- "roles": [
- "conn:mbus.16",
- "m5go_bottom2/conn:port_c.2"
- ],
- "pull": "none",
- "verified": {
- "roles": "generated"
- }
- },
- "15": {
- "roles": [
- "dev:lcd.dc"
- ],
- "pull": "none"
- },
- "16": {
- "roles": [
- "dev:psram.cs"
- ]
- },
- "17": {
- "roles": [
- "dev:psram.clk"
- ]
- },
- "18": {
- "roles": [
- "bus:main_spi.sclk",
- "dev:sd.clk",
- "conn:mbus.11"
- ],
- "pull": "none",
- "verified": {
- "roles": "generated"
- }
- },
- "19": {
- "roles": [
- "conn:mbus.22",
- "extport_core2/conn:port_e.2"
- ],
- "pull": "none",
- "verified": {
- "roles": "generated"
- }
- },
- "21": {
- "roles": [
- "bus:internal_i2c.sda",
- "conn:mbus.17"
- ],
- "pull": "up",
- "verified": {
- "roles": "generated"
- }
- },
- "22": {
- "roles": [
- "bus:internal_i2c.scl",
- "conn:mbus.18"
- ],
- "pull": "up",
- "verified": {
- "roles": "generated"
- }
- },
- "23": {
- "roles": [
- "bus:main_spi.mosi",
- "dev:sd.cmd",
- "conn:mbus.7"
- ],
- "pull": "none",
- "verified": {
- "roles": "generated"
- }
- },
- "25": {
- "roles": [
- "conn:mbus.8",
- "m5go_bottom2/dev:rgb_led.data"
- ],
- "pull": "none",
- "note": "Optional M5GO Bottom2 LED bar (M5Unified RGBLED column)",
- "verified": {
- "roles": "generated"
- }
- },
- "26": {
- "roles": [
- "conn:mbus.10",
- "m5go_bottom2/conn:port_b.2"
- ],
- "pull": "none",
- "verified": {
- "roles": "generated"
- }
- },
- "27": {
- "roles": [
- "conn:mbus.21",
- "extport_core2/conn:port_e.1"
- ],
- "pull": "none",
- "verified": {
- "roles": "generated"
- }
- },
- "32": {
- "roles": [
- "bus:port_a_i2c.sda",
- "conn:port_a.2",
- "conn:mbus.19"
- ],
- "pull": "up",
- "verified": {
- "roles": "generated"
- }
- },
- "33": {
- "roles": [
- "bus:port_a_i2c.scl",
- "conn:port_a.1",
- "conn:mbus.20"
- ],
- "pull": "up",
- "verified": {
- "roles": "generated"
- }
- },
- "34": {
- "roles": [
- "bus:pdm_mic.data_in",
- "conn:mbus.26",
- "extport_core2/conn:port_d.1"
- ],
- "pull": "none",
- "verified": {
- "roles": "generated"
- }
- },
- "35": {
- "roles": [
- "conn:mbus.2",
- "extport_core2/conn:port_d.2"
- ],
- "pull": "none",
- "verified": {
- "roles": "generated"
- }
- },
- "36": {
- "roles": [
- "conn:mbus.4",
- "m5go_bottom2/conn:port_b.1"
- ],
- "pull": "none",
- "verified": {
- "roles": "generated"
- }
- },
- "38": {
- "roles": [
- "bus:main_spi.miso",
- "dev:sd.d0",
- "conn:mbus.9"
- ],
- "pull": "none",
- "verified": {
- "roles": "generated"
- }
- },
- "39": {
- "roles": [
- "dev:touch.int"
- ],
- "pull": "up"
- }
- },
- "buses": {
- "console_uart": {
- "kind": "uart",
- "signals": [
- "tx",
- "rx"
- ],
- "preferred_host": 0,
- "fixed": true
- },
- "main_spi": {
- "kind": "spi",
- "signals": [
- "sclk",
- "mosi",
- "miso"
- ],
- "preferred_host": "SPI3_HOST",
- "fixed": false,
- "freq": 40000000,
- "freq_read": 16000000,
- "verified": {
- "signals": "generated",
- "preferred_host": "generated",
- "freq": "generated",
- "freq_read": "generated"
- }
- },
- "internal_i2c": {
- "kind": "i2c",
- "signals": [
- "sda",
- "scl"
- ],
- "preferred_host": 1,
- "fixed": false,
- "freq": 400000,
- "verified": {
- "signals": "generated",
- "preferred_host": "generated",
- "freq": "generated"
- }
- },
- "port_a_i2c": {
- "kind": "i2c",
- "signals": [
- "sda",
- "scl"
- ],
- "preferred_host": 0,
- "fixed": false,
- "verified": {
- "signals": "generated",
- "preferred_host": "generated"
- }
- },
- "i2s_spk": {
- "kind": "i2s",
- "signals": [
- "bck",
- "ws",
- "data_out"
- ],
- "fixed": false
- },
- "pdm_mic": {
- "kind": "pdm",
- "signals": [
- "ws",
- "data_in"
- ],
- "fixed": false
- }
- },
- "devices": {
- "usb_serial": {
- "kind": "usb_uart",
- "bus": "console_uart",
- "spec": {
- "auto_reset": true
- },
- "part": "ch9102f",
- "signals": {
- "boot": "gpio:0"
- }
- },
- "lcd": {
- "kind": "display",
- "bus": "main_spi",
- "spec": {
- "width": 320,
- "height": 240,
- "rotation_offset": 0
- },
- "part": "ili9342c",
- "signals": {
- "cs": "gpio:5",
- "dc": "gpio:15",
- "rst": "pin:pmic.gpio3",
- "backlight": "pin:pmic.dcdc3"
- },
- "verified": {
- "signals": "generated"
- }
- },
- "sd": {
- "kind": "sd",
- "part": "sd_slot",
- "bus": "main_spi",
- "verified": {
- "bus": "generated",
- "derived": "generated",
- "signals": "generated"
- },
- "derived": {
- "modes": [
- "spi"
- ],
- "bus": "main_spi",
- "cs": "gpio:4"
- },
- "signals": {
- "d3": "gpio:4",
- "clk": "gpio:18",
- "cmd": "gpio:23",
- "d0": "gpio:38"
- }
- },
- "touch": {
- "kind": "touch",
- "part": "ft5x06",
- "bus": "internal_i2c",
- "i2c_addr": "0x38",
- "spec": {
- "x_max": 319,
- "y_max": 279
- },
- "signals": {
- "int": "gpio:39"
- },
- "verified": {
- "signals": "generated"
- }
- },
- "speaker": {
- "kind": "speaker",
- "part": "ns4168",
- "bus": "i2s_spk",
- "enable": "pin:pmic.gpio2",
- "verified": {
- "enable": "generated"
- }
- },
- "mic": {
- "kind": "mic",
- "part": "spm1423",
- "bus": "pdm_mic"
- },
- "imu": {
- "kind": "imu",
- "bus": "internal_i2c",
- "i2c_addr": "0x68",
- "part": "mpu6886"
- },
- "rtc": {
- "kind": "rtc",
- "part": "bm8563",
- "bus": "internal_i2c",
- "i2c_addr": "0x51"
- },
- "pmic": {
- "kind": "pmic",
- "bus": "internal_i2c",
- "i2c_addr": "0x34",
- "part": "axp192",
- "pins": {
- "gpio3": {
- "roles": [
- "dev:lcd.rst"
- ]
- },
- "gpio2": {
- "roles": [
- "dev:speaker.enable"
- ]
- },
- "dcdc3": {
- "roles": [
- "dev:lcd.backlight"
- ]
- },
- "ldo2": {
- "roles": [
- "pwr:lcd_sd_3v3"
- ]
- },
- "ldo3": {
- "roles": [
- "dev:vibration.enable"
- ]
- },
- "gpio1": {
- "roles": [
- "dev:power_led.pwm"
- ]
- },
- "dcdc1": {
- "roles": [
- "pwr:esp_3v3"
- ]
- },
- "gpio0": {
- "roles": [
- "pwr:ext_ldo"
- ]
- },
- "exten": {
- "roles": [
- "pwr:ext_5v"
- ]
- },
- "pwrkey": {
- "roles": [
- "dev:btn_pwr.in"
- ]
- }
- }
- },
- "vibration": {
- "kind": "vibration",
- "signals": {
- "enable": "pin:pmic.ldo3"
- }
- },
- "power_led": {
- "kind": "led",
- "signals": {
- "pwm": "pin:pmic.gpio1"
- }
- },
- "btn_pwr": {
- "kind": "button",
- "part": "button",
- "spec": {
- "active_low": true,
- "pull": "pmic"
- },
- "signals": {
- "in": "pin:pmic.pwrkey"
- },
- "verified": {
- "signals": "generated"
- }
- },
- "psram": {
- "kind": "psram",
- "part": "psram",
- "signals": {
- "cs": "gpio:16",
- "clk": "gpio:17"
- }
- },
- "rgb_led": {
- "kind": "led_strip",
- "part": "sk6812",
- "spec": {
- "count": 10
- },
- "source": {
- "accessory": "m5go_bottom2",
- "origin": "official",
- "bundled": false
- },
- "signals": {
- "data": "gpio:25"
- },
- "verified": {
- "signals": "generated"
- }
- }
- },
- "connectors": {
- "port_a": {
- "type": "hy2_4p",
- "standard": "port_i2c",
- "positions": {
- "1": "gpio:33",
- "2": "gpio:32",
- "3": "pwr:5v",
- "4": "pwr:gnd"
- }
- },
- "mbus": {
- "type": "mbus",
- "note": "Official Core2 host mapping. Port B/C are provided by optional bottom accessories, not the bare host. GPIO34 is shared with the microphone on the attached Core2 Ext Board.",
- "positions": {
- "1": "pwr:gnd",
- "2": "gpio:35",
- "3": "pwr:gnd",
- "4": "gpio:36",
- "5": "pwr:gnd",
- "6": "chip:en",
- "7": "gpio:23",
- "8": "gpio:25",
- "9": "gpio:38",
- "10": "gpio:26",
- "11": "gpio:18",
- "12": "pwr:3v3",
- "13": "gpio:3",
- "14": "gpio:1",
- "15": "gpio:13",
- "16": "gpio:14",
- "17": "gpio:21",
- "18": "gpio:22",
- "19": "gpio:32",
- "20": "gpio:33",
- "21": "gpio:27",
- "22": "gpio:19",
- "23": "gpio:2",
- "24": "gpio:0",
- "25": "nc",
- "26": "gpio:34",
- "27": "nc",
- "28": "pwr:5v",
- "29": "nc",
- "30": "pwr:bat"
- }
- },
- "port_b": {
- "type": "hy2_4p",
- "standard": "port_io",
- "source": {
- "accessory": "m5go_bottom2",
- "origin": "official",
- "bundled": false
- },
- "positions": {
- "1": "gpio:36",
- "2": "gpio:26",
- "3": "pwr:5v",
- "4": "pwr:gnd"
- }
- },
- "port_c": {
- "type": "hy2_4p",
- "standard": "port_uart",
- "source": {
- "accessory": "m5go_bottom2",
- "origin": "official",
- "bundled": false
- },
- "positions": {
- "1": "gpio:13",
- "2": "gpio:14",
- "3": "pwr:5v",
- "4": "pwr:gnd"
- }
- },
- "port_d": {
- "type": "hy2_4p",
- "standard": "port_io",
- "source": {
- "accessory": "extport_core2",
- "origin": "official",
- "bundled": false
- },
- "positions": {
- "1": "gpio:34",
- "2": "gpio:35",
- "3": "pwr:5v",
- "4": "pwr:gnd"
- }
- },
- "port_e": {
- "type": "hy2_4p",
- "standard": "port_uart",
- "source": {
- "accessory": "extport_core2",
- "origin": "official",
- "bundled": false
- },
- "positions": {
- "1": "gpio:27",
- "2": "gpio:19",
- "3": "pwr:5v",
- "4": "pwr:gnd"
- }
- }
- }
-}
diff --git a/extras/board_spec/generated/resolved/m5stack_core2@v1_3.json b/extras/board_spec/generated/resolved/m5stack_core2@v1_3.json
deleted file mode 100644
index dcdf33e3..00000000
--- a/extras/board_spec/generated/resolved/m5stack_core2@v1_3.json
+++ /dev/null
@@ -1,689 +0,0 @@
-{
- "schema_version": 1,
- "id": "m5stack_core2",
- "name": "M5StackCore2",
- "official_name": "M5Stack Core2",
- "official_name_verified": true,
- "aliases": [
- "core2",
- "core2 v1.1",
- "core2 v1.3",
- "core2 for aws",
- "aws"
- ],
- "legacy_board_id": 2,
- "chip": "esp32_d0wdq6",
- "spec": {
- "display": {
- "size_inch": 2,
- "resolution": [
- 320,
- 240
- ]
- },
- "power": {
- "battery_mah": 390,
- "usb": "type-c"
- },
- "storage": {
- "psram_mb": 8,
- "flash_mb": 16,
- "sd": true,
- "psram_mode": "quad"
- },
- "links": {
- "product": "https://docs.m5stack.com/en/core/Core2",
- "schematic": "https://m5stack-doc.oss-cn-shenzhen.aliyuncs.com/644/CORE2_V1.0_SCH.pdf",
- "verified": {
- "product": "datasheet",
- "schematic": "datasheet"
- }
- }
- },
- "pins": {
- "0": {
- "roles": [
- "bus:i2s_spk.ws",
- "bus:pdm_mic.ws",
- "conn:mbus.24",
- "dev:usb_serial.boot"
- ],
- "pull": "none",
- "note": "I2S WS shared by the speaker and PDM microphone",
- "verified": {
- "roles": "generated"
- }
- },
- "1": {
- "roles": [
- "conn:mbus.14",
- "bus:console_uart.tx"
- ],
- "pull": "none",
- "note": "TXD0",
- "verified": {
- "roles": "generated"
- }
- },
- "2": {
- "roles": [
- "bus:i2s_spk.data_out",
- "conn:mbus.23"
- ],
- "pull": "none",
- "verified": {
- "roles": "generated"
- }
- },
- "3": {
- "roles": [
- "conn:mbus.13",
- "bus:console_uart.rx"
- ],
- "pull": "none",
- "note": "RXD0",
- "verified": {
- "roles": "generated"
- }
- },
- "4": {
- "roles": [
- "dev:sd.d3"
- ],
- "pull": "up",
- "verified": {
- "roles": "generated"
- }
- },
- "5": {
- "roles": [
- "dev:lcd.cs"
- ],
- "pull": "up"
- },
- "12": {
- "roles": [
- "bus:i2s_spk.bck"
- ],
- "pull": "none"
- },
- "13": {
- "roles": [
- "conn:mbus.15",
- "m5go_bottom2/conn:port_c.1"
- ],
- "pull": "none",
- "verified": {
- "roles": "generated"
- }
- },
- "14": {
- "roles": [
- "conn:mbus.16",
- "m5go_bottom2/conn:port_c.2"
- ],
- "pull": "none",
- "verified": {
- "roles": "generated"
- }
- },
- "15": {
- "roles": [
- "dev:lcd.dc"
- ],
- "pull": "none"
- },
- "16": {
- "roles": [
- "dev:psram.cs"
- ]
- },
- "17": {
- "roles": [
- "dev:psram.clk"
- ]
- },
- "18": {
- "roles": [
- "bus:main_spi.sclk",
- "dev:sd.clk",
- "conn:mbus.11"
- ],
- "pull": "none",
- "verified": {
- "roles": "generated"
- }
- },
- "19": {
- "roles": [
- "conn:mbus.22",
- "extport_core2/conn:port_e.2"
- ],
- "pull": "none",
- "verified": {
- "roles": "generated"
- }
- },
- "21": {
- "roles": [
- "bus:internal_i2c.sda",
- "conn:mbus.17"
- ],
- "pull": "up",
- "verified": {
- "roles": "generated"
- }
- },
- "22": {
- "roles": [
- "bus:internal_i2c.scl",
- "conn:mbus.18"
- ],
- "pull": "up",
- "verified": {
- "roles": "generated"
- }
- },
- "23": {
- "roles": [
- "bus:main_spi.mosi",
- "dev:sd.cmd",
- "conn:mbus.7"
- ],
- "pull": "none",
- "verified": {
- "roles": "generated"
- }
- },
- "25": {
- "roles": [
- "conn:mbus.8",
- "m5go_bottom2/dev:rgb_led.data"
- ],
- "pull": "none",
- "note": "Optional M5GO Bottom2 LED bar (M5Unified RGBLED column)",
- "verified": {
- "roles": "generated"
- }
- },
- "26": {
- "roles": [
- "conn:mbus.10",
- "m5go_bottom2/conn:port_b.2"
- ],
- "pull": "none",
- "verified": {
- "roles": "generated"
- }
- },
- "27": {
- "roles": [
- "conn:mbus.21",
- "extport_core2/conn:port_e.1"
- ],
- "pull": "none",
- "verified": {
- "roles": "generated"
- }
- },
- "32": {
- "roles": [
- "bus:port_a_i2c.sda",
- "conn:port_a.2",
- "conn:mbus.19"
- ],
- "pull": "up",
- "verified": {
- "roles": "generated"
- }
- },
- "33": {
- "roles": [
- "bus:port_a_i2c.scl",
- "conn:port_a.1",
- "conn:mbus.20"
- ],
- "pull": "up",
- "verified": {
- "roles": "generated"
- }
- },
- "34": {
- "roles": [
- "bus:pdm_mic.data_in",
- "conn:mbus.26",
- "extport_core2/conn:port_d.1"
- ],
- "pull": "none",
- "verified": {
- "roles": "generated"
- }
- },
- "35": {
- "roles": [
- "conn:mbus.2",
- "extport_core2/conn:port_d.2"
- ],
- "pull": "none",
- "verified": {
- "roles": "generated"
- }
- },
- "36": {
- "roles": [
- "conn:mbus.4",
- "m5go_bottom2/conn:port_b.1"
- ],
- "pull": "none",
- "verified": {
- "roles": "generated"
- }
- },
- "38": {
- "roles": [
- "bus:main_spi.miso",
- "dev:sd.d0",
- "conn:mbus.9"
- ],
- "pull": "none",
- "verified": {
- "roles": "generated"
- }
- },
- "39": {
- "roles": [
- "dev:touch.int"
- ],
- "pull": "up"
- }
- },
- "buses": {
- "console_uart": {
- "kind": "uart",
- "signals": [
- "tx",
- "rx"
- ],
- "preferred_host": 0,
- "fixed": true
- },
- "main_spi": {
- "kind": "spi",
- "signals": [
- "sclk",
- "mosi",
- "miso"
- ],
- "preferred_host": "SPI3_HOST",
- "fixed": false,
- "freq": 40000000,
- "freq_read": 16000000,
- "verified": {
- "signals": "generated",
- "preferred_host": "generated",
- "freq": "generated",
- "freq_read": "generated"
- }
- },
- "internal_i2c": {
- "kind": "i2c",
- "signals": [
- "sda",
- "scl"
- ],
- "preferred_host": 1,
- "fixed": false,
- "freq": 400000,
- "verified": {
- "signals": "generated",
- "preferred_host": "generated",
- "freq": "generated"
- }
- },
- "port_a_i2c": {
- "kind": "i2c",
- "signals": [
- "sda",
- "scl"
- ],
- "preferred_host": 0,
- "fixed": false,
- "verified": {
- "signals": "generated",
- "preferred_host": "generated"
- }
- },
- "i2s_spk": {
- "kind": "i2s",
- "signals": [
- "bck",
- "ws",
- "data_out"
- ],
- "fixed": false
- },
- "pdm_mic": {
- "kind": "pdm",
- "signals": [
- "ws",
- "data_in"
- ],
- "fixed": false
- }
- },
- "devices": {
- "usb_serial": {
- "kind": "usb_uart",
- "bus": "console_uart",
- "spec": {
- "auto_reset": true
- },
- "part": "ch9102f",
- "signals": {
- "boot": "gpio:0"
- }
- },
- "lcd": {
- "kind": "display",
- "bus": "main_spi",
- "spec": {
- "width": 320,
- "height": 240,
- "rotation_offset": 0
- },
- "part": "ili9342e",
- "signals": {
- "cs": "gpio:5",
- "dc": "gpio:15",
- "rst": "pin:pmic.gpio3",
- "backlight": "pin:pmic.dcdc3"
- },
- "verified": {
- "signals": "generated"
- }
- },
- "sd": {
- "kind": "sd",
- "part": "sd_slot",
- "bus": "main_spi",
- "verified": {
- "bus": "generated",
- "derived": "generated",
- "signals": "generated"
- },
- "derived": {
- "modes": [
- "spi"
- ],
- "bus": "main_spi",
- "cs": "gpio:4"
- },
- "signals": {
- "d3": "gpio:4",
- "clk": "gpio:18",
- "cmd": "gpio:23",
- "d0": "gpio:38"
- }
- },
- "touch": {
- "kind": "touch",
- "part": "ft5x06",
- "bus": "internal_i2c",
- "i2c_addr": "0x38",
- "spec": {
- "x_max": 319,
- "y_max": 279
- },
- "signals": {
- "int": "gpio:39"
- },
- "verified": {
- "signals": "generated"
- }
- },
- "speaker": {
- "kind": "speaker",
- "part": "ns4168",
- "bus": "i2s_spk",
- "enable": "pin:pmic.gpio2",
- "verified": {
- "enable": "generated"
- }
- },
- "mic": {
- "kind": "mic",
- "part": "spm1423",
- "bus": "pdm_mic"
- },
- "imu": {
- "kind": "imu",
- "bus": "internal_i2c",
- "i2c_addr": "0x68",
- "part": "bmi270"
- },
- "rtc": {
- "kind": "rtc",
- "part": "bm8563",
- "bus": "internal_i2c",
- "i2c_addr": "0x51"
- },
- "pmic": {
- "kind": "pmic",
- "bus": "internal_i2c",
- "i2c_addr": "0x34",
- "part": "axp192",
- "pins": {
- "gpio3": {
- "roles": [
- "dev:lcd.rst"
- ]
- },
- "gpio2": {
- "roles": [
- "dev:speaker.enable"
- ]
- },
- "dcdc3": {
- "roles": [
- "dev:lcd.backlight"
- ]
- },
- "ldo2": {
- "roles": [
- "pwr:lcd_sd_3v3"
- ]
- },
- "ldo3": {
- "roles": [
- "dev:vibration.enable"
- ]
- },
- "gpio1": {
- "roles": [
- "dev:power_led.pwm"
- ]
- },
- "dcdc1": {
- "roles": [
- "pwr:esp_3v3"
- ]
- },
- "gpio0": {
- "roles": [
- "pwr:ext_ldo"
- ]
- },
- "exten": {
- "roles": [
- "pwr:ext_5v"
- ]
- },
- "pwrkey": {
- "roles": [
- "dev:btn_pwr.in"
- ]
- }
- }
- },
- "vibration": {
- "kind": "vibration",
- "signals": {
- "enable": "pin:pmic.ldo3"
- }
- },
- "power_led": {
- "kind": "led",
- "signals": {
- "pwm": "pin:pmic.gpio1"
- }
- },
- "btn_pwr": {
- "kind": "button",
- "part": "button",
- "spec": {
- "active_low": true,
- "pull": "pmic"
- },
- "signals": {
- "in": "pin:pmic.pwrkey"
- },
- "verified": {
- "signals": "generated"
- }
- },
- "psram": {
- "kind": "psram",
- "part": "psram",
- "signals": {
- "cs": "gpio:16",
- "clk": "gpio:17"
- }
- },
- "rgb_led": {
- "kind": "led_strip",
- "part": "sk6812",
- "spec": {
- "count": 10
- },
- "source": {
- "accessory": "m5go_bottom2",
- "origin": "official",
- "bundled": false
- },
- "signals": {
- "data": "gpio:25"
- },
- "verified": {
- "signals": "generated"
- }
- }
- },
- "connectors": {
- "port_a": {
- "type": "hy2_4p",
- "standard": "port_i2c",
- "positions": {
- "1": "gpio:33",
- "2": "gpio:32",
- "3": "pwr:5v",
- "4": "pwr:gnd"
- }
- },
- "mbus": {
- "type": "mbus",
- "note": "Official Core2 host mapping. Port B/C are provided by optional bottom accessories, not the bare host. GPIO34 is shared with the microphone on the attached Core2 Ext Board.",
- "positions": {
- "1": "pwr:gnd",
- "2": "gpio:35",
- "3": "pwr:gnd",
- "4": "gpio:36",
- "5": "pwr:gnd",
- "6": "chip:en",
- "7": "gpio:23",
- "8": "gpio:25",
- "9": "gpio:38",
- "10": "gpio:26",
- "11": "gpio:18",
- "12": "pwr:3v3",
- "13": "gpio:3",
- "14": "gpio:1",
- "15": "gpio:13",
- "16": "gpio:14",
- "17": "gpio:21",
- "18": "gpio:22",
- "19": "gpio:32",
- "20": "gpio:33",
- "21": "gpio:27",
- "22": "gpio:19",
- "23": "gpio:2",
- "24": "gpio:0",
- "25": "nc",
- "26": "gpio:34",
- "27": "nc",
- "28": "pwr:5v",
- "29": "nc",
- "30": "pwr:bat"
- }
- },
- "port_b": {
- "type": "hy2_4p",
- "standard": "port_io",
- "source": {
- "accessory": "m5go_bottom2",
- "origin": "official",
- "bundled": false
- },
- "positions": {
- "1": "gpio:36",
- "2": "gpio:26",
- "3": "pwr:5v",
- "4": "pwr:gnd"
- }
- },
- "port_c": {
- "type": "hy2_4p",
- "standard": "port_uart",
- "source": {
- "accessory": "m5go_bottom2",
- "origin": "official",
- "bundled": false
- },
- "positions": {
- "1": "gpio:13",
- "2": "gpio:14",
- "3": "pwr:5v",
- "4": "pwr:gnd"
- }
- },
- "port_d": {
- "type": "hy2_4p",
- "standard": "port_io",
- "source": {
- "accessory": "extport_core2",
- "origin": "official",
- "bundled": false
- },
- "positions": {
- "1": "gpio:34",
- "2": "gpio:35",
- "3": "pwr:5v",
- "4": "pwr:gnd"
- }
- },
- "port_e": {
- "type": "hy2_4p",
- "standard": "port_uart",
- "source": {
- "accessory": "extport_core2",
- "origin": "official",
- "bundled": false
- },
- "positions": {
- "1": "gpio:27",
- "2": "gpio:19",
- "3": "pwr:5v",
- "4": "pwr:gnd"
- }
- }
- }
-}
diff --git a/extras/board_spec/generated/resolved/m5stack_coreink+epd=gdew0154d67.json b/extras/board_spec/generated/resolved/m5stack_coreink+epd=gdew0154d67.json
deleted file mode 100644
index dedfdeac..00000000
--- a/extras/board_spec/generated/resolved/m5stack_coreink+epd=gdew0154d67.json
+++ /dev/null
@@ -1,425 +0,0 @@
-{
- "schema_version": 1,
- "id": "m5stack_coreink",
- "name": "M5StackCoreInk",
- "official_name": "M5Stack CoreInk",
- "official_name_verified": true,
- "aliases": [
- "coreink",
- "core ink"
- ],
- "legacy_board_id": 6,
- "chip": "esp32_d0wdq6",
- "spec": {
- "display": {
- "resolution": [
- 200,
- 200
- ],
- "touch": false
- },
- "storage": {
- "psram_mb": 0
- },
- "links": {
- "product": "https://docs.m5stack.com/en/core/CoreInk",
- "schematic": "https://m5stack.oss-cn-shenzhen.aliyuncs.com/resource/docs/schematic/Core/coreink/coreink_sch.pdf",
- "verified": {
- "product": "datasheet",
- "schematic": "datasheet"
- }
- }
- },
- "pins": {
- "0": {
- "roles": [
- "dev:epd.rst",
- "dev:usb_serial.boot"
- ]
- },
- "1": {
- "roles": [
- "bus:console_uart.tx"
- ]
- },
- "3": {
- "roles": [
- "bus:console_uart.rx"
- ]
- },
- "4": {
- "roles": [
- "dev:epd.busy"
- ]
- },
- "5": {
- "roles": [
- "dev:btn_ext.in"
- ]
- },
- "9": {
- "roles": [
- "dev:epd.cs"
- ]
- },
- "12": {
- "roles": [
- "dev:power_hold.enable"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "13": {
- "roles": [
- "conn:coreink_bus.7"
- ],
- "verified": {
- "roles": "datasheet"
- }
- },
- "14": {
- "roles": [
- "conn:coreink_bus.8"
- ],
- "verified": {
- "roles": "datasheet"
- }
- },
- "15": {
- "roles": [
- "dev:epd.dc"
- ]
- },
- "18": {
- "roles": [
- "bus:main_spi.sclk",
- "conn:coreink_bus.11"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "21": {
- "roles": [
- "bus:internal_i2c.sda",
- "conn:coreink_bus.9"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "22": {
- "roles": [
- "bus:internal_i2c.scl",
- "conn:coreink_bus.10"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "23": {
- "roles": [
- "bus:main_spi.mosi",
- "conn:coreink_bus.15"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "25": {
- "roles": [
- "conn:coreink_bus.16",
- "conn:hat.5"
- ],
- "verified": {
- "roles": "datasheet"
- }
- },
- "26": {
- "roles": [
- "conn:coreink_bus.14",
- "conn:hat.3"
- ],
- "verified": {
- "roles": "datasheet"
- }
- },
- "27": {
- "roles": [
- "dev:btn_pwr.in"
- ]
- },
- "32": {
- "roles": [
- "bus:port_a_i2c.sda",
- "conn:port_a.2"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "33": {
- "roles": [
- "bus:port_a_i2c.scl",
- "conn:port_a.1"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "34": {
- "roles": [
- "bus:main_spi.miso",
- "conn:coreink_bus.13"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "36": {
- "roles": [
- "conn:coreink_bus.12",
- "conn:hat.4"
- ],
- "verified": {
- "roles": "datasheet"
- }
- },
- "37": {
- "roles": [
- "dev:btn_a.in"
- ]
- },
- "38": {
- "roles": [
- "dev:btn_b.in"
- ]
- },
- "39": {
- "roles": [
- "dev:btn_c.in"
- ]
- }
- },
- "buses": {
- "console_uart": {
- "kind": "uart",
- "signals": [
- "tx",
- "rx"
- ],
- "preferred_host": 0,
- "fixed": true
- },
- "main_spi": {
- "kind": "spi",
- "signals": [
- "sclk",
- "mosi",
- "miso"
- ],
- "preferred_host": "SPI3_HOST",
- "fixed": false,
- "freq": 40000000,
- "freq_read": 16000000,
- "verified": {
- "signals": "generated",
- "preferred_host": "generated",
- "freq": "generated",
- "freq_read": "generated"
- }
- },
- "internal_i2c": {
- "kind": "i2c",
- "signals": [
- "sda",
- "scl"
- ],
- "preferred_host": 1,
- "fixed": false,
- "verified": {
- "signals": "generated",
- "preferred_host": "generated"
- }
- },
- "port_a_i2c": {
- "kind": "i2c",
- "signals": [
- "sda",
- "scl"
- ],
- "preferred_host": 0,
- "fixed": false,
- "verified": {
- "signals": "generated",
- "preferred_host": "generated"
- }
- }
- },
- "devices": {
- "usb_serial": {
- "kind": "usb_uart",
- "part": "cp2104",
- "bus": "console_uart",
- "spec": {
- "auto_reset": true
- },
- "signals": {
- "boot": "gpio:0"
- }
- },
- "epd": {
- "kind": "display",
- "bus": "main_spi",
- "part": "gdew0154d67",
- "spec": {
- "width": 200,
- "height": 200,
- "three_wire": true
- },
- "signals": {
- "rst": "gpio:0",
- "busy": "gpio:4",
- "cs": "gpio:9",
- "dc": "gpio:15"
- },
- "verified": {
- "signals": "generated"
- }
- },
- "power_hold": {
- "kind": "power_hold",
- "signals": {
- "enable": "gpio:12"
- },
- "verified": {
- "signals": "generated"
- }
- },
- "btn_a": {
- "kind": "button",
- "part": "button",
- "spec": {
- "active_low": true,
- "pull": "external_up"
- },
- "signals": {
- "in": "gpio:37"
- },
- "verified": {
- "signals": "generated"
- }
- },
- "btn_b": {
- "kind": "button",
- "part": "button",
- "spec": {
- "active_low": true,
- "pull": "external_up"
- },
- "signals": {
- "in": "gpio:38"
- },
- "verified": {
- "signals": "generated"
- }
- },
- "btn_c": {
- "kind": "button",
- "part": "button",
- "spec": {
- "active_low": true,
- "pull": "external_up"
- },
- "signals": {
- "in": "gpio:39"
- },
- "verified": {
- "signals": "generated"
- }
- },
- "btn_ext": {
- "kind": "button",
- "part": "button",
- "spec": {
- "active_low": true,
- "pull": "external_up"
- },
- "signals": {
- "in": "gpio:5"
- },
- "verified": {
- "signals": "generated"
- }
- },
- "btn_pwr": {
- "kind": "button",
- "part": "button",
- "spec": {
- "active_low": true,
- "pull": "external_up"
- },
- "signals": {
- "in": "gpio:27"
- },
- "verified": {
- "signals": "generated"
- }
- }
- },
- "connectors": {
- "port_a": {
- "type": "hy2_4p",
- "standard": "port_i2c",
- "positions": {
- "1": "gpio:33",
- "2": "gpio:32",
- "3": "pwr:5v",
- "4": "pwr:gnd"
- }
- },
- "coreink_bus": {
- "type": "logical_terminals_16",
- "positions": {
- "1": "pwr:gnd",
- "2": "pwr:bat",
- "3": "pwr:5vin",
- "4": "pwr:5vout",
- "5": "chip:en",
- "6": "pwr:3v3",
- "7": "gpio:13",
- "8": "gpio:14",
- "9": "gpio:21",
- "10": "gpio:22",
- "11": "gpio:18",
- "12": "gpio:36",
- "13": "gpio:34",
- "14": "gpio:26",
- "15": "gpio:23",
- "16": "gpio:25"
- },
- "note": "Side BUS1 numbered as the official M5_BUS_16P schematic; GPIO paths have 47-ohm series resistors. This is not the 30-pin M-Bus. Positions are logical ordering; physical geometry is unverified.",
- "verified": {
- "positions": "datasheet"
- }
- },
- "hat": {
- "type": "logical_terminals_8",
- "positions": {
- "1": "pwr:gnd",
- "2": "pwr:5vout",
- "3": "gpio:26",
- "4": "gpio:36",
- "5": "gpio:25",
- "6": "pwr:bat",
- "7": "pwr:3v3",
- "8": "pwr:5vin"
- },
- "note": "Top exposed 8-pin socket ordered from GND to 5VIN on the official rear label. These correspond to internal FPC J1 pins 3 through 10; LED/button FPC pins 1/2 are not exposed. Positions are logical ordering; physical geometry is unverified.",
- "verified": {
- "positions": "datasheet"
- }
- }
- }
-}
diff --git a/extras/board_spec/generated/resolved/m5stack_coreink+epd=gdew0154m09.json b/extras/board_spec/generated/resolved/m5stack_coreink+epd=gdew0154m09.json
deleted file mode 100644
index 869afdfc..00000000
--- a/extras/board_spec/generated/resolved/m5stack_coreink+epd=gdew0154m09.json
+++ /dev/null
@@ -1,425 +0,0 @@
-{
- "schema_version": 1,
- "id": "m5stack_coreink",
- "name": "M5StackCoreInk",
- "official_name": "M5Stack CoreInk",
- "official_name_verified": true,
- "aliases": [
- "coreink",
- "core ink"
- ],
- "legacy_board_id": 6,
- "chip": "esp32_d0wdq6",
- "spec": {
- "display": {
- "resolution": [
- 200,
- 200
- ],
- "touch": false
- },
- "storage": {
- "psram_mb": 0
- },
- "links": {
- "product": "https://docs.m5stack.com/en/core/CoreInk",
- "schematic": "https://m5stack.oss-cn-shenzhen.aliyuncs.com/resource/docs/schematic/Core/coreink/coreink_sch.pdf",
- "verified": {
- "product": "datasheet",
- "schematic": "datasheet"
- }
- }
- },
- "pins": {
- "0": {
- "roles": [
- "dev:epd.rst",
- "dev:usb_serial.boot"
- ]
- },
- "1": {
- "roles": [
- "bus:console_uart.tx"
- ]
- },
- "3": {
- "roles": [
- "bus:console_uart.rx"
- ]
- },
- "4": {
- "roles": [
- "dev:epd.busy"
- ]
- },
- "5": {
- "roles": [
- "dev:btn_ext.in"
- ]
- },
- "9": {
- "roles": [
- "dev:epd.cs"
- ]
- },
- "12": {
- "roles": [
- "dev:power_hold.enable"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "13": {
- "roles": [
- "conn:coreink_bus.7"
- ],
- "verified": {
- "roles": "datasheet"
- }
- },
- "14": {
- "roles": [
- "conn:coreink_bus.8"
- ],
- "verified": {
- "roles": "datasheet"
- }
- },
- "15": {
- "roles": [
- "dev:epd.dc"
- ]
- },
- "18": {
- "roles": [
- "bus:main_spi.sclk",
- "conn:coreink_bus.11"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "21": {
- "roles": [
- "bus:internal_i2c.sda",
- "conn:coreink_bus.9"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "22": {
- "roles": [
- "bus:internal_i2c.scl",
- "conn:coreink_bus.10"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "23": {
- "roles": [
- "bus:main_spi.mosi",
- "conn:coreink_bus.15"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "25": {
- "roles": [
- "conn:coreink_bus.16",
- "conn:hat.5"
- ],
- "verified": {
- "roles": "datasheet"
- }
- },
- "26": {
- "roles": [
- "conn:coreink_bus.14",
- "conn:hat.3"
- ],
- "verified": {
- "roles": "datasheet"
- }
- },
- "27": {
- "roles": [
- "dev:btn_pwr.in"
- ]
- },
- "32": {
- "roles": [
- "bus:port_a_i2c.sda",
- "conn:port_a.2"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "33": {
- "roles": [
- "bus:port_a_i2c.scl",
- "conn:port_a.1"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "34": {
- "roles": [
- "bus:main_spi.miso",
- "conn:coreink_bus.13"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "36": {
- "roles": [
- "conn:coreink_bus.12",
- "conn:hat.4"
- ],
- "verified": {
- "roles": "datasheet"
- }
- },
- "37": {
- "roles": [
- "dev:btn_a.in"
- ]
- },
- "38": {
- "roles": [
- "dev:btn_b.in"
- ]
- },
- "39": {
- "roles": [
- "dev:btn_c.in"
- ]
- }
- },
- "buses": {
- "console_uart": {
- "kind": "uart",
- "signals": [
- "tx",
- "rx"
- ],
- "preferred_host": 0,
- "fixed": true
- },
- "main_spi": {
- "kind": "spi",
- "signals": [
- "sclk",
- "mosi",
- "miso"
- ],
- "preferred_host": "SPI3_HOST",
- "fixed": false,
- "freq": 40000000,
- "freq_read": 16000000,
- "verified": {
- "signals": "generated",
- "preferred_host": "generated",
- "freq": "generated",
- "freq_read": "generated"
- }
- },
- "internal_i2c": {
- "kind": "i2c",
- "signals": [
- "sda",
- "scl"
- ],
- "preferred_host": 1,
- "fixed": false,
- "verified": {
- "signals": "generated",
- "preferred_host": "generated"
- }
- },
- "port_a_i2c": {
- "kind": "i2c",
- "signals": [
- "sda",
- "scl"
- ],
- "preferred_host": 0,
- "fixed": false,
- "verified": {
- "signals": "generated",
- "preferred_host": "generated"
- }
- }
- },
- "devices": {
- "usb_serial": {
- "kind": "usb_uart",
- "part": "cp2104",
- "bus": "console_uart",
- "spec": {
- "auto_reset": true
- },
- "signals": {
- "boot": "gpio:0"
- }
- },
- "epd": {
- "kind": "display",
- "bus": "main_spi",
- "part": "gdew0154m09",
- "spec": {
- "width": 200,
- "height": 200,
- "three_wire": true
- },
- "signals": {
- "rst": "gpio:0",
- "busy": "gpio:4",
- "cs": "gpio:9",
- "dc": "gpio:15"
- },
- "verified": {
- "signals": "generated"
- }
- },
- "power_hold": {
- "kind": "power_hold",
- "signals": {
- "enable": "gpio:12"
- },
- "verified": {
- "signals": "generated"
- }
- },
- "btn_a": {
- "kind": "button",
- "part": "button",
- "spec": {
- "active_low": true,
- "pull": "external_up"
- },
- "signals": {
- "in": "gpio:37"
- },
- "verified": {
- "signals": "generated"
- }
- },
- "btn_b": {
- "kind": "button",
- "part": "button",
- "spec": {
- "active_low": true,
- "pull": "external_up"
- },
- "signals": {
- "in": "gpio:38"
- },
- "verified": {
- "signals": "generated"
- }
- },
- "btn_c": {
- "kind": "button",
- "part": "button",
- "spec": {
- "active_low": true,
- "pull": "external_up"
- },
- "signals": {
- "in": "gpio:39"
- },
- "verified": {
- "signals": "generated"
- }
- },
- "btn_ext": {
- "kind": "button",
- "part": "button",
- "spec": {
- "active_low": true,
- "pull": "external_up"
- },
- "signals": {
- "in": "gpio:5"
- },
- "verified": {
- "signals": "generated"
- }
- },
- "btn_pwr": {
- "kind": "button",
- "part": "button",
- "spec": {
- "active_low": true,
- "pull": "external_up"
- },
- "signals": {
- "in": "gpio:27"
- },
- "verified": {
- "signals": "generated"
- }
- }
- },
- "connectors": {
- "port_a": {
- "type": "hy2_4p",
- "standard": "port_i2c",
- "positions": {
- "1": "gpio:33",
- "2": "gpio:32",
- "3": "pwr:5v",
- "4": "pwr:gnd"
- }
- },
- "coreink_bus": {
- "type": "logical_terminals_16",
- "positions": {
- "1": "pwr:gnd",
- "2": "pwr:bat",
- "3": "pwr:5vin",
- "4": "pwr:5vout",
- "5": "chip:en",
- "6": "pwr:3v3",
- "7": "gpio:13",
- "8": "gpio:14",
- "9": "gpio:21",
- "10": "gpio:22",
- "11": "gpio:18",
- "12": "gpio:36",
- "13": "gpio:34",
- "14": "gpio:26",
- "15": "gpio:23",
- "16": "gpio:25"
- },
- "note": "Side BUS1 numbered as the official M5_BUS_16P schematic; GPIO paths have 47-ohm series resistors. This is not the 30-pin M-Bus. Positions are logical ordering; physical geometry is unverified.",
- "verified": {
- "positions": "datasheet"
- }
- },
- "hat": {
- "type": "logical_terminals_8",
- "positions": {
- "1": "pwr:gnd",
- "2": "pwr:5vout",
- "3": "gpio:26",
- "4": "gpio:36",
- "5": "gpio:25",
- "6": "pwr:bat",
- "7": "pwr:3v3",
- "8": "pwr:5vin"
- },
- "note": "Top exposed 8-pin socket ordered from GND to 5VIN on the official rear label. These correspond to internal FPC J1 pins 3 through 10; LED/button FPC pins 1/2 are not exposed. Positions are logical ordering; physical geometry is unverified.",
- "verified": {
- "positions": "datasheet"
- }
- }
- }
-}
diff --git a/extras/board_spec/generated/resolved/m5stack_corematrix.json b/extras/board_spec/generated/resolved/m5stack_corematrix.json
deleted file mode 100644
index 065d7709..00000000
--- a/extras/board_spec/generated/resolved/m5stack_corematrix.json
+++ /dev/null
@@ -1,410 +0,0 @@
-{
- "schema_version": 1,
- "id": "m5stack_corematrix",
- "name": "M5CoreMatrix",
- "official_name": "M5Stack CoreMatrix",
- "aliases": [
- "corematrix",
- "core matrix"
- ],
- "legacy_board_id": 152,
- "chip": "esp32c61",
- "spec": {
- "display": {
- "resolution": [
- 16,
- 16
- ],
- "touch": false
- },
- "storage": {
- "sd": true
- }
- },
- "pins": {
- "0": {
- "roles": [
- "bus:internal_i2c.sda",
- "bus:display_i2c.sda",
- "bus:port_a_i2c.sda",
- "conn:port_a.2",
- "conn:mbus.17",
- "conn:mbus.19"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "1": {
- "roles": [
- "bus:internal_i2c.scl",
- "bus:display_i2c.scl",
- "bus:port_a_i2c.scl",
- "conn:port_a.1",
- "conn:mbus.18",
- "conn:mbus.20"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "3": {
- "roles": [
- "conn:mbus.2"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "4": {
- "roles": [
- "conn:mbus.4"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "7": {
- "roles": [
- "conn:mbus.15"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "8": {
- "roles": [
- "conn:mbus.16"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "9": {
- "roles": [
- "conn:mbus.24"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "10": {
- "roles": [
- "conn:mbus.13"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "11": {
- "roles": [
- "conn:mbus.14"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "22": {
- "roles": [
- "conn:mbus.22"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "23": {
- "roles": [
- "conn:mbus.21"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "24": {
- "roles": [
- "conn:mbus.23"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "25": {
- "roles": [
- "bus:sdmmc.clk",
- "dev:sd.clk",
- "conn:mbus.12"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "26": {
- "roles": [
- "bus:sdmmc.d0",
- "dev:sd.d0",
- "conn:mbus.10"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "27": {
- "roles": [
- "bus:sdmmc.cmd",
- "dev:sd.cmd",
- "conn:mbus.8"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "28": {
- "roles": [
- "bus:sdmmc.d3",
- "dev:sd.d3"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "29": {
- "roles": [
- "conn:mbus.26"
- ],
- "verified": {
- "roles": "generated"
- }
- }
- },
- "buses": {
- "internal_i2c": {
- "kind": "i2c",
- "signals": [
- "sda",
- "scl"
- ],
- "preferred_host": 0,
- "freq": 100000,
- "freq_read": 100000,
- "fixed": true,
- "verified": {
- "signals": "generated",
- "preferred_host": "generated",
- "freq": "generated"
- }
- },
- "display_i2c": {
- "kind": "i2c",
- "signals": [
- "sda",
- "scl"
- ],
- "preferred_host": 0,
- "freq": 400000,
- "freq_read": 400000,
- "fixed": true,
- "verified": {
- "signals": "generated",
- "preferred_host": "generated",
- "freq": "generated"
- }
- },
- "port_a_i2c": {
- "kind": "i2c",
- "signals": [
- "sda",
- "scl"
- ],
- "preferred_host": 0,
- "fixed": true,
- "verified": {
- "signals": "generated",
- "preferred_host": "generated"
- }
- },
- "sdmmc": {
- "kind": "sdmmc",
- "signals": [
- "clk",
- "cmd",
- "d0",
- "d3"
- ],
- "preferred_host": 0,
- "fixed": false
- }
- },
- "devices": {
- "led_matrix": {
- "kind": "display",
- "part": "tm1680",
- "bus": "display_i2c",
- "i2c_addr": "0x72",
- "spec": {
- "width": 16,
- "height": 16,
- "rotation_offset": 0
- }
- },
- "sd": {
- "kind": "sd",
- "part": "sd_slot",
- "bus": "sdmmc",
- "verified": {
- "bus": "generated",
- "signals": "generated",
- "derived": "generated"
- },
- "signals": {
- "clk": "gpio:25",
- "d0": "gpio:26",
- "cmd": "gpio:27",
- "d3": "gpio:28"
- },
- "derived": {
- "modes": [
- "sdio1"
- ]
- }
- },
- "pmic": {
- "kind": "pmic",
- "part": "m5pm1",
- "bus": "internal_i2c",
- "pins": {
- "gpio0": {
- "roles": [
- "dev:btn_a.in"
- ]
- },
- "gpio1": {
- "roles": [
- "dev:btn_b.in"
- ]
- },
- "gpio2": {
- "roles": [
- "dev:btn_c.in"
- ]
- },
- "pwrkey": {
- "roles": [
- "dev:btn_pwr.in"
- ]
- }
- }
- },
- "ioe": {
- "kind": "io_expander",
- "part": "m5ioe1",
- "bus": "internal_i2c"
- },
- "btn_a": {
- "kind": "button",
- "part": "button",
- "spec": {
- "active_low": true,
- "pull": "pmic"
- },
- "signals": {
- "in": "pin:pmic.gpio0"
- },
- "verified": {
- "signals": "generated"
- }
- },
- "btn_b": {
- "kind": "button",
- "part": "button",
- "spec": {
- "active_low": true,
- "pull": "pmic"
- },
- "signals": {
- "in": "pin:pmic.gpio1"
- },
- "verified": {
- "signals": "generated"
- }
- },
- "btn_c": {
- "kind": "button",
- "part": "button",
- "spec": {
- "active_low": true,
- "pull": "pmic"
- },
- "signals": {
- "in": "pin:pmic.gpio2"
- },
- "verified": {
- "signals": "generated"
- }
- },
- "btn_pwr": {
- "kind": "button",
- "part": "button",
- "spec": {
- "active_low": true,
- "pull": "pmic"
- },
- "signals": {
- "in": "pin:pmic.pwrkey"
- },
- "verified": {
- "signals": "generated"
- }
- }
- },
- "connectors": {
- "port_a": {
- "type": "hy2_4p",
- "standard": "port_i2c",
- "positions": {
- "1": "gpio:1",
- "2": "gpio:0",
- "3": "pwr:5v",
- "4": "pwr:gnd"
- }
- },
- "mbus": {
- "type": "mbus",
- "positions": {
- "1": "pwr:gnd",
- "2": "gpio:3",
- "3": "pwr:gnd",
- "4": "gpio:4",
- "5": "pwr:gnd",
- "6": "chip:en",
- "7": "nc",
- "8": "gpio:27",
- "9": "nc",
- "10": "gpio:26",
- "11": "nc",
- "12": "gpio:25",
- "13": "gpio:10",
- "14": "gpio:11",
- "15": "gpio:7",
- "16": "gpio:8",
- "17": "gpio:0",
- "18": "gpio:1",
- "19": "gpio:0",
- "20": "gpio:1",
- "21": "gpio:23",
- "22": "gpio:22",
- "23": "gpio:24",
- "24": "gpio:9",
- "25": "nc",
- "26": "gpio:29",
- "27": "nc",
- "28": "pwr:5v",
- "29": "nc",
- "30": "pwr:bat"
- },
- "shared_gpio": [
- "19",
- "20"
- ]
- }
- }
-}
diff --git a/extras/board_spec/generated/resolved/m5stack_corep4x.json b/extras/board_spec/generated/resolved/m5stack_corep4x.json
deleted file mode 100644
index 148f970b..00000000
--- a/extras/board_spec/generated/resolved/m5stack_corep4x.json
+++ /dev/null
@@ -1,414 +0,0 @@
-{
- "schema_version": 1,
- "id": "m5stack_corep4x",
- "name": "M5CoreP4X",
- "official_name": "M5Stack CoreP4X",
- "official_name_verified": true,
- "aliases": [
- "corep4x",
- "core p4x",
- "p4x"
- ],
- "legacy_board_id": 31,
- "chip": "esp32p4",
- "spec": {
- "display": {
- "resolution": [
- 480,
- 480
- ],
- "touch": true
- },
- "storage": {
- "psram_mb": 32,
- "sd": true,
- "psram_mode": "opi"
- }
- },
- "pins": {
- "1": {
- "roles": [
- "dev:touch.int"
- ]
- },
- "7": {
- "roles": [
- "bus:sd_spi.mosi",
- "dev:sd.cmd",
- "conn:mbus.7"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "8": {
- "roles": [
- "bus:sd_spi.miso",
- "dev:sd.d0",
- "conn:mbus.9"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "9": {
- "roles": [
- "bus:internal_i2c.scl",
- "bus:touch_i2c.scl",
- "conn:mbus.18"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "10": {
- "roles": [
- "bus:sd_spi.sclk",
- "dev:sd.clk",
- "conn:mbus.11"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "11": {
- "roles": [
- "bus:internal_i2c.sda",
- "bus:touch_i2c.sda",
- "conn:mbus.17"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "12": {
- "roles": [
- "conn:mbus.22"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "14": {
- "roles": [
- "conn:mbus.16"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "15": {
- "roles": [
- "conn:mbus.15"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "16": {
- "roles": [
- "bus:port_a_i2c.scl",
- "conn:port_a.1",
- "conn:mbus.20"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "17": {
- "roles": [
- "conn:mbus.2"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "18": {
- "roles": [
- "bus:port_a_i2c.sda",
- "conn:port_a.2",
- "conn:mbus.19"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "19": {
- "roles": [
- "conn:mbus.26"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "20": {
- "roles": [
- "conn:mbus.4"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "21": {
- "roles": [
- "conn:mbus.8"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "22": {
- "roles": [
- "conn:mbus.10"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "23": {
- "roles": [
- "conn:mbus.24"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "34": {
- "roles": [
- "conn:mbus.23"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "37": {
- "roles": [
- "conn:mbus.14"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "38": {
- "roles": [
- "conn:mbus.13"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "39": {
- "roles": [
- "conn:mbus.21"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "50": {
- "roles": [
- "dev:sd.d3"
- ],
- "verified": {
- "roles": "generated"
- }
- }
- },
- "buses": {
- "display_dsi": {
- "kind": "dsi",
- "signals": [],
- "preferred_host": 0,
- "lane_num": 2,
- "freq": 600,
- "ldo_chan_id": 3,
- "ldo_voltage_mv": 2500,
- "fixed": true
- },
- "internal_i2c": {
- "kind": "i2c",
- "signals": [
- "sda",
- "scl"
- ],
- "preferred_host": 1,
- "freq": 100000,
- "fixed": true,
- "verified": {
- "signals": "generated",
- "preferred_host": "generated",
- "freq": "generated"
- }
- },
- "touch_i2c": {
- "kind": "i2c",
- "signals": [
- "sda",
- "scl"
- ],
- "preferred_host": 1,
- "freq": 400000,
- "fixed": true,
- "verified": {
- "signals": "generated",
- "preferred_host": "generated",
- "freq": "generated"
- }
- },
- "port_a_i2c": {
- "kind": "i2c",
- "signals": [
- "sda",
- "scl"
- ],
- "preferred_host": 1,
- "fixed": true,
- "verified": {
- "signals": "generated",
- "preferred_host": "generated"
- }
- },
- "sd_spi": {
- "kind": "spi",
- "signals": [
- "sclk",
- "mosi",
- "miso"
- ],
- "preferred_host": "SPI2_HOST",
- "fixed": false,
- "freq": 40000000,
- "freq_read": 16000000,
- "verified": {
- "signals": "generated",
- "preferred_host": "generated",
- "freq": "generated",
- "freq_read": "generated"
- }
- }
- },
- "devices": {
- "lcd": {
- "kind": "display",
- "part": "st7102",
- "bus": "display_dsi",
- "spec": {
- "width": 480,
- "height": 480,
- "memory_width": 480,
- "memory_height": 480,
- "rotation_offset": 2,
- "readable": false,
- "rgb_order": true,
- "dpi_freq_mhz": 24,
- "hsync_back_porch": 40,
- "hsync_pulse_width": 2,
- "hsync_front_porch": 40,
- "vsync_back_porch": 8,
- "vsync_pulse_width": 4,
- "vsync_front_porch": 200
- }
- },
- "touch": {
- "kind": "touch",
- "part": "cst3530",
- "bus": "touch_i2c",
- "spec": {
- "x_max": 479,
- "y_max": 479,
- "rotation_offset": 2
- },
- "signals": {
- "int": "gpio:1"
- },
- "verified": {
- "signals": "generated"
- }
- },
- "pmic": {
- "kind": "pmic",
- "part": "m5pm1",
- "bus": "internal_i2c"
- },
- "ioe": {
- "kind": "io_expander",
- "part": "m5ioe1",
- "bus": "internal_i2c"
- },
- "sd": {
- "kind": "sd",
- "part": "sd_slot",
- "bus": "sd_spi",
- "verified": {
- "bus": "generated",
- "signals": "generated",
- "derived": "generated"
- },
- "signals": {
- "cmd": "gpio:7",
- "d0": "gpio:8",
- "clk": "gpio:10",
- "d3": "gpio:50"
- },
- "derived": {
- "modes": [
- "spi",
- "sdio1"
- ],
- "bus": "sd_spi",
- "cs": "gpio:50"
- }
- },
- "psram": {
- "kind": "psram",
- "part": "psram"
- }
- },
- "connectors": {
- "port_a": {
- "type": "hy2_4p",
- "standard": "port_i2c",
- "positions": {
- "1": "gpio:16",
- "2": "gpio:18",
- "3": "pwr:5v",
- "4": "pwr:gnd"
- }
- },
- "mbus": {
- "type": "mbus",
- "positions": {
- "1": "pwr:gnd",
- "2": "gpio:17",
- "3": "pwr:gnd",
- "4": "gpio:20",
- "5": "pwr:gnd",
- "6": "chip:en",
- "7": "gpio:7",
- "8": "gpio:21",
- "9": "gpio:8",
- "10": "gpio:22",
- "11": "gpio:10",
- "12": "pwr:3v3",
- "13": "gpio:38",
- "14": "gpio:37",
- "15": "gpio:15",
- "16": "gpio:14",
- "17": "gpio:11",
- "18": "gpio:9",
- "19": "gpio:18",
- "20": "gpio:16",
- "21": "gpio:39",
- "22": "gpio:12",
- "23": "gpio:34",
- "24": "gpio:23",
- "25": "nc",
- "26": "gpio:19",
- "27": "nc",
- "28": "pwr:5v",
- "29": "nc",
- "30": "pwr:bat"
- }
- }
- }
-}
diff --git a/extras/board_spec/generated/resolved/m5stack_cores3.json b/extras/board_spec/generated/resolved/m5stack_cores3.json
deleted file mode 100644
index d21cc140..00000000
--- a/extras/board_spec/generated/resolved/m5stack_cores3.json
+++ /dev/null
@@ -1,580 +0,0 @@
-{
- "schema_version": 1,
- "id": "m5stack_cores3",
- "name": "M5StackCoreS3",
- "official_name": "M5Stack CoreS3",
- "official_name_verified": true,
- "aliases": [
- "cores3",
- "core s3"
- ],
- "legacy_board_id": 10,
- "chip": "esp32s3",
- "spec": {
- "display": {
- "resolution": [
- 320,
- 240
- ],
- "touch": true
- },
- "storage": {
- "psram_mb": 8,
- "psram_mode": "quad",
- "flash_mb": 16,
- "sd": true
- },
- "links": {
- "product": "https://docs.m5stack.com/en/core/CoreS3",
- "schematic": "https://m5stack-doc.oss-cn-shenzhen.aliyuncs.com/490/Sch_M5_CoreS3_v1.0.pdf",
- "verified": {
- "product": "datasheet",
- "schematic": "datasheet"
- }
- }
- },
- "pins": {
- "0": {
- "roles": [
- "conn:mbus.24"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "1": {
- "roles": [
- "bus:port_a_i2c.scl",
- "conn:port_a.1",
- "conn:mbus.20"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "2": {
- "roles": [
- "bus:port_a_i2c.sda",
- "conn:port_a.2",
- "conn:mbus.19"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "3": {
- "roles": [
- "dev:lcd.cs"
- ]
- },
- "4": {
- "roles": [
- "dev:sd.d3"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "5": {
- "roles": [
- "conn:mbus.8"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "6": {
- "roles": [
- "conn:mbus.21"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "7": {
- "roles": [
- "conn:mbus.22"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "8": {
- "roles": [
- "conn:port_b.1",
- "conn:mbus.4"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "9": {
- "roles": [
- "conn:port_b.2",
- "conn:mbus.10"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "10": {
- "roles": [
- "conn:port_d.2",
- "conn:mbus.2"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "11": {
- "roles": [
- "bus:internal_i2c.scl",
- "conn:mbus.18"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "12": {
- "roles": [
- "bus:internal_i2c.sda",
- "conn:mbus.17"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "13": {
- "roles": [
- "conn:mbus.23"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "14": {
- "roles": [
- "conn:port_d.1",
- "conn:mbus.26"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "15": {
- "roles": [
- "dev:camera.d4"
- ]
- },
- "16": {
- "roles": [
- "dev:camera.d5"
- ]
- },
- "17": {
- "roles": [
- "conn:port_c.2",
- "conn:port_e.2",
- "conn:mbus.16"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "18": {
- "roles": [
- "conn:port_c.1",
- "conn:port_e.1",
- "conn:mbus.15"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "21": {
- "roles": [
- "dev:touch.int"
- ]
- },
- "26": {
- "roles": [
- "dev:psram.cs"
- ]
- },
- "27": {
- "roles": [
- "dev:psram.d3"
- ]
- },
- "28": {
- "roles": [
- "dev:psram.d2"
- ]
- },
- "30": {
- "roles": [
- "dev:psram.clk"
- ]
- },
- "31": {
- "roles": [
- "dev:psram.d1"
- ]
- },
- "32": {
- "roles": [
- "dev:psram.d0"
- ]
- },
- "35": {
- "roles": [
- "bus:main_spi.miso",
- "dev:lcd.dc",
- "dev:sd.d0",
- "conn:mbus.9"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "36": {
- "roles": [
- "bus:main_spi.sclk",
- "dev:sd.clk",
- "conn:mbus.11"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "37": {
- "roles": [
- "bus:main_spi.mosi",
- "dev:sd.cmd",
- "conn:mbus.7"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "38": {
- "roles": [
- "dev:camera.href"
- ]
- },
- "39": {
- "roles": [
- "dev:camera.d0"
- ]
- },
- "40": {
- "roles": [
- "dev:camera.d1"
- ]
- },
- "41": {
- "roles": [
- "dev:camera.d2"
- ]
- },
- "42": {
- "roles": [
- "dev:camera.d3"
- ]
- },
- "43": {
- "roles": [
- "conn:mbus.14"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "44": {
- "roles": [
- "conn:mbus.13"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "45": {
- "roles": [
- "dev:camera.pclk"
- ]
- },
- "46": {
- "roles": [
- "dev:camera.vsync"
- ]
- },
- "47": {
- "roles": [
- "dev:camera.d7"
- ]
- },
- "48": {
- "roles": [
- "dev:camera.d6"
- ]
- }
- },
- "buses": {
- "main_spi": {
- "kind": "spi",
- "signals": [
- "sclk",
- "mosi",
- "miso"
- ],
- "preferred_host": "SPI2_HOST",
- "fixed": false,
- "freq": 40000000,
- "freq_read": 16000000,
- "verified": {
- "signals": "generated",
- "preferred_host": "generated",
- "freq": "generated",
- "freq_read": "generated"
- }
- },
- "internal_i2c": {
- "kind": "i2c",
- "signals": [
- "sda",
- "scl"
- ],
- "preferred_host": 1,
- "fixed": false,
- "freq": 400000,
- "verified": {
- "signals": "generated",
- "preferred_host": "generated",
- "freq": "generated"
- }
- },
- "port_a_i2c": {
- "kind": "i2c",
- "signals": [
- "sda",
- "scl"
- ],
- "preferred_host": 0,
- "fixed": false,
- "verified": {
- "signals": "generated",
- "preferred_host": "generated"
- }
- }
- },
- "devices": {
- "lcd": {
- "kind": "display",
- "part": "ili9342c",
- "bus": "main_spi",
- "spec": {
- "width": 320,
- "height": 240,
- "three_wire": true
- },
- "signals": {
- "cs": "gpio:3",
- "dc": "gpio:35"
- },
- "verified": {
- "signals": "generated"
- }
- },
- "sd": {
- "kind": "sd",
- "part": "sd_slot",
- "bus": "main_spi",
- "verified": {
- "bus": "generated",
- "signals": "generated",
- "derived": "generated"
- },
- "signals": {
- "d3": "gpio:4",
- "d0": "gpio:35",
- "clk": "gpio:36",
- "cmd": "gpio:37"
- },
- "derived": {
- "modes": [
- "spi",
- "sdio1"
- ],
- "bus": "main_spi",
- "cs": "gpio:4"
- }
- },
- "touch": {
- "kind": "touch",
- "part": "ft5x06",
- "bus": "internal_i2c",
- "i2c_addr": "0x38",
- "spec": {
- "x_max": 319,
- "y_max": 239
- },
- "signals": {
- "int": "gpio:21"
- },
- "verified": {
- "signals": "generated"
- }
- },
- "pmic": {
- "kind": "pmic",
- "part": "axp2101",
- "bus": "internal_i2c",
- "pins": {
- "pwrkey": {
- "roles": [
- "dev:btn_pwr.in"
- ]
- }
- }
- },
- "io_expander": {
- "kind": "io_expander",
- "part": "aw9523",
- "bus": "internal_i2c"
- },
- "camera": {
- "kind": "camera",
- "part": "gc0308",
- "bus": "internal_i2c",
- "signals": {
- "d4": "gpio:15",
- "d5": "gpio:16",
- "href": "gpio:38",
- "d0": "gpio:39",
- "d1": "gpio:40",
- "d2": "gpio:41",
- "d3": "gpio:42",
- "pclk": "gpio:45",
- "vsync": "gpio:46",
- "d7": "gpio:47",
- "d6": "gpio:48"
- }
- },
- "btn_pwr": {
- "kind": "button",
- "part": "button",
- "spec": {
- "active_low": true,
- "pull": "pmic"
- },
- "signals": {
- "in": "pin:pmic.pwrkey"
- },
- "verified": {
- "signals": "generated"
- }
- },
- "psram": {
- "kind": "psram",
- "part": "psram",
- "signals": {
- "cs": "gpio:26",
- "d3": "gpio:27",
- "d2": "gpio:28",
- "clk": "gpio:30",
- "d1": "gpio:31",
- "d0": "gpio:32"
- }
- }
- },
- "connectors": {
- "port_a": {
- "type": "hy2_4p",
- "standard": "port_i2c",
- "positions": {
- "1": "gpio:1",
- "2": "gpio:2",
- "3": "pwr:5v",
- "4": "pwr:gnd"
- }
- },
- "port_b": {
- "type": "hy2_4p",
- "standard": "port_io",
- "positions": {
- "1": "gpio:8",
- "2": "gpio:9",
- "3": "pwr:5v",
- "4": "pwr:gnd"
- }
- },
- "port_c": {
- "type": "hy2_4p",
- "standard": "port_uart",
- "positions": {
- "1": "gpio:18",
- "2": "gpio:17",
- "3": "pwr:5v",
- "4": "pwr:gnd"
- }
- },
- "port_d": {
- "type": "hy2_4p",
- "standard": "port_io",
- "note": "Library port alias retained for pin-table compatibility; the official product pin map shows physical Port A/B/C, not a separate PORT_D.",
- "positions": {
- "1": "gpio:14",
- "2": "gpio:10",
- "3": "pwr:5v",
- "4": "pwr:gnd"
- }
- },
- "port_e": {
- "type": "hy2_4p",
- "standard": "port_uart",
- "note": "Library port alias retained for pin-table compatibility; the official product pin map shows physical Port A/B/C, not a separate PORT_E.",
- "positions": {
- "1": "gpio:18",
- "2": "gpio:17",
- "3": "pwr:5v",
- "4": "pwr:gnd"
- }
- },
- "mbus": {
- "type": "mbus",
- "note": "The generic M-Bus defaults retain NC at HPWR positions 25/27/29. The official product table labels these HVIN, whose availability depends on the power/base assembly.",
- "positions": {
- "1": "pwr:gnd",
- "2": "gpio:10",
- "3": "pwr:gnd",
- "4": "gpio:8",
- "5": "pwr:gnd",
- "6": "chip:en",
- "7": "gpio:37",
- "8": "gpio:5",
- "9": "gpio:35",
- "10": "gpio:9",
- "11": "gpio:36",
- "12": "pwr:3v3",
- "13": "gpio:44",
- "14": "gpio:43",
- "15": "gpio:18",
- "16": "gpio:17",
- "17": "gpio:12",
- "18": "gpio:11",
- "19": "gpio:2",
- "20": "gpio:1",
- "21": "gpio:6",
- "22": "gpio:7",
- "23": "gpio:13",
- "24": "gpio:0",
- "25": "nc",
- "26": "gpio:14",
- "27": "nc",
- "28": "pwr:5v",
- "29": "nc",
- "30": "pwr:bat"
- }
- }
- }
-}
diff --git a/extras/board_spec/generated/resolved/m5stack_cores3se.json b/extras/board_spec/generated/resolved/m5stack_cores3se.json
deleted file mode 100644
index f2e78a6d..00000000
--- a/extras/board_spec/generated/resolved/m5stack_cores3se.json
+++ /dev/null
@@ -1,510 +0,0 @@
-{
- "schema_version": 1,
- "id": "m5stack_cores3se",
- "name": "M5StackCoreS3SE",
- "official_name": "M5Stack CoreS3-SE",
- "official_name_verified": true,
- "aliases": [
- "cores3 se",
- "cores3se",
- "se"
- ],
- "legacy_board_id": 17,
- "chip": "esp32s3",
- "spec": {
- "display": {
- "resolution": [
- 320,
- 240
- ],
- "touch": true
- },
- "storage": {
- "psram_mb": 8,
- "psram_mode": "quad",
- "flash_mb": 16,
- "sd": true
- },
- "links": {
- "product": "https://docs.m5stack.com/en/core/CoreS3-SE",
- "schematic": "https://m5stack-doc.oss-cn-shenzhen.aliyuncs.com/498/Sch_M5_CoreS3_SE_v1.0.pdf",
- "verified": {
- "product": "datasheet",
- "schematic": "datasheet"
- }
- }
- },
- "pins": {
- "0": {
- "roles": [
- "conn:mbus.24"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "1": {
- "roles": [
- "bus:port_a_i2c.scl",
- "conn:port_a.1",
- "conn:mbus.20"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "2": {
- "roles": [
- "bus:port_a_i2c.sda",
- "conn:port_a.2",
- "conn:mbus.19"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "3": {
- "roles": [
- "dev:lcd.cs"
- ]
- },
- "4": {
- "roles": [
- "dev:sd.d3"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "5": {
- "roles": [
- "conn:mbus.8"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "6": {
- "roles": [
- "conn:mbus.21"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "7": {
- "roles": [
- "conn:mbus.22"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "8": {
- "roles": [
- "conn:port_b.1",
- "conn:mbus.4"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "9": {
- "roles": [
- "conn:port_b.2",
- "conn:mbus.10"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "10": {
- "roles": [
- "conn:port_d.2",
- "conn:mbus.2"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "11": {
- "roles": [
- "bus:internal_i2c.scl",
- "conn:mbus.18"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "12": {
- "roles": [
- "bus:internal_i2c.sda",
- "conn:mbus.17"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "13": {
- "roles": [
- "conn:mbus.23"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "14": {
- "roles": [
- "conn:port_d.1",
- "conn:mbus.26"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "17": {
- "roles": [
- "conn:port_c.2",
- "conn:port_e.2",
- "conn:mbus.16"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "18": {
- "roles": [
- "conn:port_c.1",
- "conn:port_e.1",
- "conn:mbus.15"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "21": {
- "roles": [
- "dev:touch.int"
- ]
- },
- "26": {
- "roles": [
- "dev:psram.cs"
- ]
- },
- "27": {
- "roles": [
- "dev:psram.d3"
- ]
- },
- "28": {
- "roles": [
- "dev:psram.d2"
- ]
- },
- "30": {
- "roles": [
- "dev:psram.clk"
- ]
- },
- "31": {
- "roles": [
- "dev:psram.d1"
- ]
- },
- "32": {
- "roles": [
- "dev:psram.d0"
- ]
- },
- "35": {
- "roles": [
- "bus:main_spi.miso",
- "dev:lcd.dc",
- "dev:sd.d0",
- "conn:mbus.9"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "36": {
- "roles": [
- "bus:main_spi.sclk",
- "dev:sd.clk",
- "conn:mbus.11"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "37": {
- "roles": [
- "bus:main_spi.mosi",
- "dev:sd.cmd",
- "conn:mbus.7"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "43": {
- "roles": [
- "conn:mbus.14"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "44": {
- "roles": [
- "conn:mbus.13"
- ],
- "verified": {
- "roles": "generated"
- }
- }
- },
- "buses": {
- "main_spi": {
- "kind": "spi",
- "signals": [
- "sclk",
- "mosi",
- "miso"
- ],
- "preferred_host": "SPI2_HOST",
- "fixed": false,
- "freq": 40000000,
- "freq_read": 16000000,
- "verified": {
- "signals": "generated",
- "preferred_host": "generated",
- "freq": "generated",
- "freq_read": "generated"
- }
- },
- "internal_i2c": {
- "kind": "i2c",
- "signals": [
- "sda",
- "scl"
- ],
- "preferred_host": 1,
- "fixed": false,
- "freq": 400000,
- "verified": {
- "signals": "generated",
- "preferred_host": "generated",
- "freq": "generated"
- }
- },
- "port_a_i2c": {
- "kind": "i2c",
- "signals": [
- "sda",
- "scl"
- ],
- "preferred_host": 0,
- "fixed": false,
- "verified": {
- "signals": "generated",
- "preferred_host": "generated"
- }
- }
- },
- "devices": {
- "lcd": {
- "kind": "display",
- "part": "ili9342c",
- "bus": "main_spi",
- "spec": {
- "width": 320,
- "height": 240,
- "three_wire": true
- },
- "signals": {
- "cs": "gpio:3",
- "dc": "gpio:35"
- },
- "verified": {
- "signals": "generated"
- }
- },
- "sd": {
- "kind": "sd",
- "part": "sd_slot",
- "bus": "main_spi",
- "verified": {
- "bus": "generated",
- "signals": "generated",
- "derived": "generated"
- },
- "signals": {
- "d3": "gpio:4",
- "d0": "gpio:35",
- "clk": "gpio:36",
- "cmd": "gpio:37"
- },
- "derived": {
- "modes": [
- "spi",
- "sdio1"
- ],
- "bus": "main_spi",
- "cs": "gpio:4"
- }
- },
- "touch": {
- "kind": "touch",
- "part": "ft5x06",
- "bus": "internal_i2c",
- "i2c_addr": "0x38",
- "spec": {
- "x_max": 319,
- "y_max": 239
- },
- "signals": {
- "int": "gpio:21"
- },
- "verified": {
- "signals": "generated"
- }
- },
- "pmic": {
- "kind": "pmic",
- "part": "axp2101",
- "bus": "internal_i2c",
- "pins": {
- "pwrkey": {
- "roles": [
- "dev:btn_pwr.in"
- ]
- }
- }
- },
- "io_expander": {
- "kind": "io_expander",
- "part": "aw9523",
- "bus": "internal_i2c"
- },
- "btn_pwr": {
- "kind": "button",
- "part": "button",
- "spec": {
- "active_low": true,
- "pull": "pmic"
- },
- "signals": {
- "in": "pin:pmic.pwrkey"
- },
- "verified": {
- "signals": "generated"
- }
- },
- "psram": {
- "kind": "psram",
- "part": "psram",
- "signals": {
- "cs": "gpio:26",
- "d3": "gpio:27",
- "d2": "gpio:28",
- "clk": "gpio:30",
- "d1": "gpio:31",
- "d0": "gpio:32"
- }
- }
- },
- "connectors": {
- "port_a": {
- "type": "hy2_4p",
- "standard": "port_i2c",
- "positions": {
- "1": "gpio:1",
- "2": "gpio:2",
- "3": "pwr:5v",
- "4": "pwr:gnd"
- }
- },
- "port_b": {
- "type": "hy2_4p",
- "standard": "port_io",
- "note": "Library port contract; physical Port B/C require an attached bottom/base. The bare CoreS3-SE has Port A.",
- "positions": {
- "1": "gpio:8",
- "2": "gpio:9",
- "3": "pwr:5v",
- "4": "pwr:gnd"
- }
- },
- "port_c": {
- "type": "hy2_4p",
- "standard": "port_uart",
- "note": "Library port contract; physical Port B/C require an attached bottom/base. The bare CoreS3-SE has Port A.",
- "positions": {
- "1": "gpio:18",
- "2": "gpio:17",
- "3": "pwr:5v",
- "4": "pwr:gnd"
- }
- },
- "port_d": {
- "type": "hy2_4p",
- "standard": "port_io",
- "note": "Library port alias retained for pin-table compatibility; the official product pin map shows physical Port A/B/C, not a separate PORT_D.",
- "positions": {
- "1": "gpio:14",
- "2": "gpio:10",
- "3": "pwr:5v",
- "4": "pwr:gnd"
- }
- },
- "port_e": {
- "type": "hy2_4p",
- "standard": "port_uart",
- "note": "Library port alias retained for pin-table compatibility; the official product pin map shows physical Port A/B/C, not a separate PORT_E.",
- "positions": {
- "1": "gpio:18",
- "2": "gpio:17",
- "3": "pwr:5v",
- "4": "pwr:gnd"
- }
- },
- "mbus": {
- "type": "mbus",
- "note": "The generic M-Bus defaults retain NC at HPWR positions 25/27/29. The official CoreS3-SE bare-host table also lists NC; an attached powered base can supply these terminals.",
- "positions": {
- "1": "pwr:gnd",
- "2": "gpio:10",
- "3": "pwr:gnd",
- "4": "gpio:8",
- "5": "pwr:gnd",
- "6": "chip:en",
- "7": "gpio:37",
- "8": "gpio:5",
- "9": "gpio:35",
- "10": "gpio:9",
- "11": "gpio:36",
- "12": "pwr:3v3",
- "13": "gpio:44",
- "14": "gpio:43",
- "15": "gpio:18",
- "16": "gpio:17",
- "17": "gpio:12",
- "18": "gpio:11",
- "19": "gpio:2",
- "20": "gpio:1",
- "21": "gpio:6",
- "22": "gpio:7",
- "23": "gpio:13",
- "24": "gpio:0",
- "25": "nc",
- "26": "gpio:14",
- "27": "nc",
- "28": "pwr:5v",
- "29": "nc",
- "30": "pwr:bat"
- }
- }
- }
-}
diff --git a/extras/board_spec/generated/resolved/m5stack_stackchan.json b/extras/board_spec/generated/resolved/m5stack_stackchan.json
deleted file mode 100644
index 58d0dd04..00000000
--- a/extras/board_spec/generated/resolved/m5stack_stackchan.json
+++ /dev/null
@@ -1,528 +0,0 @@
-{
- "schema_version": 1,
- "id": "m5stack_stackchan",
- "name": "M5StackChan",
- "official_name": "M5Stack StackChan",
- "official_name_verified": true,
- "aliases": [
- "stackchan",
- "stack-chan",
- "m5stackchan",
- "stackchan core"
- ],
- "legacy_board_id": 27,
- "chip": "esp32s3",
- "spec": {
- "display": {
- "resolution": [
- 320,
- 240
- ],
- "touch": true
- },
- "storage": {
- "psram_mb": 8,
- "psram_mode": "quad",
- "flash_mb": 16,
- "sd": true
- },
- "links": {
- "product": "https://docs.m5stack.com/en/StackChan",
- "schematic": "https://m5stack-doc.oss-cn-shenzhen.aliyuncs.com/490/Sch_M5_CoreS3_v1.0.pdf",
- "verified": {
- "product": "datasheet",
- "schematic": "datasheet"
- }
- }
- },
- "pins": {
- "0": {
- "roles": [
- "conn:mbus.24"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "1": {
- "roles": [
- "bus:port_a_i2c.scl",
- "conn:port_a.1",
- "conn:mbus.20"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "2": {
- "roles": [
- "bus:port_a_i2c.sda",
- "conn:port_a.2",
- "conn:mbus.19"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "3": {
- "roles": [
- "dev:lcd.cs"
- ]
- },
- "4": {
- "roles": [
- "dev:sd.d3"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "5": {
- "roles": [
- "conn:mbus.8"
- ],
- "verified": {
- "roles": "generated"
- },
- "note": "Base pulls GPIO5 D (measured)."
- },
- "6": {
- "roles": [
- "conn:mbus.21"
- ],
- "verified": {
- "roles": "generated"
- },
- "note": "Base pulls GPIO6 U (measured)."
- },
- "7": {
- "roles": [
- "conn:mbus.22"
- ],
- "verified": {
- "roles": "generated"
- },
- "note": "Base pulls GPIO7 D (measured)."
- },
- "8": {
- "roles": [
- "conn:port_b.1",
- "conn:mbus.4"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "9": {
- "roles": [
- "conn:port_b.2",
- "conn:mbus.10"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "10": {
- "roles": [
- "conn:port_d.2",
- "conn:mbus.2"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "11": {
- "roles": [
- "bus:internal_i2c.scl",
- "conn:mbus.18"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "12": {
- "roles": [
- "bus:internal_i2c.sda",
- "conn:mbus.17"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "13": {
- "roles": [
- "conn:mbus.23"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "14": {
- "roles": [
- "conn:port_d.1",
- "conn:mbus.26"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "17": {
- "roles": [
- "conn:port_c.2",
- "conn:port_e.2",
- "conn:mbus.16"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "18": {
- "roles": [
- "conn:port_c.1",
- "conn:port_e.1",
- "conn:mbus.15"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "21": {
- "roles": [
- "dev:touch.int"
- ]
- },
- "26": {
- "roles": [
- "dev:psram.cs"
- ]
- },
- "27": {
- "roles": [
- "dev:psram.d3"
- ]
- },
- "28": {
- "roles": [
- "dev:psram.d2"
- ]
- },
- "30": {
- "roles": [
- "dev:psram.clk"
- ]
- },
- "31": {
- "roles": [
- "dev:psram.d1"
- ]
- },
- "32": {
- "roles": [
- "dev:psram.d0"
- ]
- },
- "35": {
- "roles": [
- "bus:main_spi.miso",
- "dev:lcd.dc",
- "dev:sd.d0",
- "conn:mbus.9"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "36": {
- "roles": [
- "bus:main_spi.sclk",
- "dev:sd.clk",
- "conn:mbus.11"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "37": {
- "roles": [
- "bus:main_spi.mosi",
- "dev:sd.cmd",
- "conn:mbus.7"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "43": {
- "roles": [
- "conn:mbus.14"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "44": {
- "roles": [
- "conn:mbus.13"
- ],
- "verified": {
- "roles": "generated"
- }
- }
- },
- "buses": {
- "main_spi": {
- "kind": "spi",
- "signals": [
- "sclk",
- "mosi",
- "miso"
- ],
- "preferred_host": "SPI2_HOST",
- "fixed": false,
- "freq": 40000000,
- "freq_read": 16000000,
- "verified": {
- "signals": "generated",
- "preferred_host": "generated",
- "freq": "generated",
- "freq_read": "generated"
- }
- },
- "internal_i2c": {
- "kind": "i2c",
- "signals": [
- "sda",
- "scl"
- ],
- "preferred_host": 1,
- "fixed": false,
- "freq": 400000,
- "verified": {
- "signals": "generated",
- "preferred_host": "generated",
- "freq": "generated"
- }
- },
- "port_a_i2c": {
- "kind": "i2c",
- "signals": [
- "sda",
- "scl"
- ],
- "preferred_host": 0,
- "fixed": false,
- "verified": {
- "signals": "generated",
- "preferred_host": "generated"
- }
- }
- },
- "devices": {
- "lcd": {
- "kind": "display",
- "part": "ili9342c",
- "bus": "main_spi",
- "spec": {
- "width": 320,
- "height": 240,
- "three_wire": true
- },
- "signals": {
- "cs": "gpio:3",
- "dc": "gpio:35"
- },
- "verified": {
- "signals": "generated"
- }
- },
- "sd": {
- "kind": "sd",
- "part": "sd_slot",
- "bus": "main_spi",
- "verified": {
- "bus": "generated",
- "signals": "generated",
- "derived": "generated"
- },
- "signals": {
- "d3": "gpio:4",
- "d0": "gpio:35",
- "clk": "gpio:36",
- "cmd": "gpio:37"
- },
- "derived": {
- "modes": [
- "spi",
- "sdio1"
- ],
- "bus": "main_spi",
- "cs": "gpio:4"
- }
- },
- "touch": {
- "kind": "touch",
- "part": "ft5x06",
- "bus": "internal_i2c",
- "i2c_addr": "0x38",
- "spec": {
- "x_max": 319,
- "y_max": 239
- },
- "signals": {
- "int": "gpio:21"
- },
- "verified": {
- "signals": "generated"
- }
- },
- "pmic": {
- "kind": "pmic",
- "part": "axp2101",
- "bus": "internal_i2c",
- "pins": {
- "pwrkey": {
- "roles": [
- "dev:btn_pwr.in"
- ]
- }
- }
- },
- "io_expander": {
- "kind": "io_expander",
- "part": "aw9523",
- "bus": "internal_i2c"
- },
- "camera": {
- "kind": "camera",
- "part": "gc0308",
- "bus": "internal_i2c"
- },
- "stackchan_ioe": {
- "kind": "io_expander",
- "part": "m5ioe1",
- "bus": "internal_i2c",
- "i2c_addr": "0x6F",
- "spec": {
- "probe_freq": 100000,
- "firmware_reg": 2,
- "firmware_min": 4
- }
- },
- "btn_pwr": {
- "kind": "button",
- "part": "button",
- "spec": {
- "active_low": true,
- "pull": "pmic"
- },
- "signals": {
- "in": "pin:pmic.pwrkey"
- },
- "verified": {
- "signals": "generated"
- }
- },
- "psram": {
- "kind": "psram",
- "part": "psram",
- "signals": {
- "cs": "gpio:26",
- "d3": "gpio:27",
- "d2": "gpio:28",
- "clk": "gpio:30",
- "d1": "gpio:31",
- "d0": "gpio:32"
- }
- }
- },
- "connectors": {
- "port_a": {
- "type": "hy2_4p",
- "standard": "port_i2c",
- "positions": {
- "1": "gpio:1",
- "2": "gpio:2",
- "3": "pwr:5v",
- "4": "pwr:gnd"
- }
- },
- "port_b": {
- "type": "hy2_4p",
- "standard": "port_io",
- "positions": {
- "1": "gpio:8",
- "2": "gpio:9",
- "3": "pwr:5v",
- "4": "pwr:gnd"
- }
- },
- "port_c": {
- "type": "hy2_4p",
- "standard": "port_uart",
- "positions": {
- "1": "gpio:18",
- "2": "gpio:17",
- "3": "pwr:5v",
- "4": "pwr:gnd"
- }
- },
- "port_d": {
- "type": "hy2_4p",
- "standard": "port_io",
- "note": "Library port alias retained for pin-table compatibility; the official product pin map shows physical Port A/B/C, not a separate PORT_D.",
- "positions": {
- "1": "gpio:14",
- "2": "gpio:10",
- "3": "pwr:5v",
- "4": "pwr:gnd"
- }
- },
- "port_e": {
- "type": "hy2_4p",
- "standard": "port_uart",
- "note": "Library port alias retained for pin-table compatibility; the official product pin map shows physical Port A/B/C, not a separate PORT_E.",
- "positions": {
- "1": "gpio:18",
- "2": "gpio:17",
- "3": "pwr:5v",
- "4": "pwr:gnd"
- }
- },
- "mbus": {
- "type": "mbus",
- "note": "CoreS3 host mapping. StackChan uses GPIO6/7 for servo UART, GPIO5/10 for IR and GPIO11/12 for internal I2C; these signals are shared with the host M-Bus. The generic M-Bus defaults retain NC at HPWR positions 25/27/29. The official product table labels these HVIN, whose availability depends on the power/base assembly.",
- "positions": {
- "1": "pwr:gnd",
- "2": "gpio:10",
- "3": "pwr:gnd",
- "4": "gpio:8",
- "5": "pwr:gnd",
- "6": "chip:en",
- "7": "gpio:37",
- "8": "gpio:5",
- "9": "gpio:35",
- "10": "gpio:9",
- "11": "gpio:36",
- "12": "pwr:3v3",
- "13": "gpio:44",
- "14": "gpio:43",
- "15": "gpio:18",
- "16": "gpio:17",
- "17": "gpio:12",
- "18": "gpio:11",
- "19": "gpio:2",
- "20": "gpio:1",
- "21": "gpio:6",
- "22": "gpio:7",
- "23": "gpio:13",
- "24": "gpio:0",
- "25": "nc",
- "26": "gpio:14",
- "27": "nc",
- "28": "pwr:5v",
- "29": "nc",
- "30": "pwr:bat"
- }
- }
- }
-}
diff --git a/extras/board_spec/generated/resolved/m5stack_tab5+lcd=ili9881c.json b/extras/board_spec/generated/resolved/m5stack_tab5+lcd=ili9881c.json
deleted file mode 100644
index 60cf59c4..00000000
--- a/extras/board_spec/generated/resolved/m5stack_tab5+lcd=ili9881c.json
+++ /dev/null
@@ -1,661 +0,0 @@
-{
- "schema_version": 1,
- "id": "m5stack_tab5",
- "name": "M5Tab5",
- "official_name": "M5Stack Tab5",
- "official_name_verified": true,
- "aliases": [
- "tab5",
- "m5tab5"
- ],
- "legacy_board_id": 22,
- "chip": "esp32p4",
- "spec": {
- "display": {
- "resolution": [
- 720,
- 1280
- ],
- "touch": true
- },
- "storage": {
- "psram_mb": 32,
- "sd": true,
- "psram_mode": "opi"
- },
- "links": {
- "product": "https://docs.m5stack.com/en/core/Tab5",
- "schematic": "https://m5stack-doc.oss-cn-shenzhen.aliyuncs.com/1132/Tab5_Schematics_PDF.pdf",
- "verified": {
- "product": "datasheet",
- "schematic": "datasheet"
- }
- }
- },
- "pins": {
- "0": {
- "roles": [
- "conn:side_header.7"
- ],
- "verified": {
- "roles": "datasheet"
- }
- },
- "1": {
- "roles": [
- "conn:side_header.8"
- ],
- "verified": {
- "roles": "datasheet"
- }
- },
- "2": {
- "roles": [
- "conn:mbus.21"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "3": {
- "roles": [
- "conn:mbus.19"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "4": {
- "roles": [
- "conn:mbus.20"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "5": {
- "roles": [
- "conn:mbus.11",
- "conn:stamp_pads.10"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "6": {
- "roles": [
- "conn:port_c.2",
- "conn:mbus.16",
- "conn:stamp_pads.3"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "7": {
- "roles": [
- "conn:port_c.1",
- "conn:mbus.15"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "8": {
- "roles": [
- "bus:wifi_sdio.d3"
- ]
- },
- "9": {
- "roles": [
- "bus:wifi_sdio.d2"
- ]
- },
- "10": {
- "roles": [
- "bus:wifi_sdio.d1"
- ]
- },
- "11": {
- "roles": [
- "bus:wifi_sdio.d0"
- ]
- },
- "12": {
- "roles": [
- "bus:wifi_sdio.clk"
- ]
- },
- "13": {
- "roles": [
- "bus:wifi_sdio.cmd"
- ]
- },
- "16": {
- "roles": [
- "conn:mbus.2"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "17": {
- "roles": [
- "conn:port_b.1",
- "conn:mbus.4"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "18": {
- "roles": [
- "conn:mbus.7",
- "conn:stamp_pads.11"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "19": {
- "roles": [
- "conn:mbus.9",
- "conn:stamp_pads.12"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "22": {
- "roles": [
- "dev:backlight.pwm"
- ],
- "detect_class": "down"
- },
- "23": {
- "roles": [
- "dev:touch.int"
- ]
- },
- "31": {
- "roles": [
- "bus:internal_i2c.sda",
- "bus:touch_i2c.sda",
- "conn:mbus.17",
- "conn:stamp_pads.4"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "32": {
- "roles": [
- "bus:internal_i2c.scl",
- "bus:touch_i2c.scl",
- "conn:mbus.18",
- "conn:stamp_pads.5"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "33": {
- "roles": [
- "conn:stamp_pads.6"
- ],
- "verified": {
- "roles": "datasheet"
- }
- },
- "35": {
- "roles": [
- "conn:mbus.24"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "37": {
- "roles": [
- "conn:mbus.14"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "38": {
- "roles": [
- "conn:mbus.13"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "39": {
- "roles": [
- "bus:sdmmc.d0",
- "dev:sd.d0"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "40": {
- "roles": [
- "bus:sdmmc.d1",
- "dev:sd.d1"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "41": {
- "roles": [
- "bus:sdmmc.d2",
- "dev:sd.d2"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "42": {
- "roles": [
- "bus:sdmmc.d3",
- "dev:sd.d3"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "43": {
- "roles": [
- "bus:sdmmc.clk",
- "dev:sd.clk"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "44": {
- "roles": [
- "bus:sdmmc.cmd",
- "dev:sd.cmd"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "45": {
- "roles": [
- "conn:mbus.8"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "46": {
- "roles": [
- "conn:stamp_pads.2"
- ],
- "verified": {
- "roles": "datasheet"
- }
- },
- "47": {
- "roles": [
- "conn:mbus.23"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "48": {
- "roles": [
- "conn:mbus.22"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "49": {
- "roles": [
- "conn:side_header.9"
- ],
- "verified": {
- "roles": "datasheet"
- }
- },
- "50": {
- "roles": [
- "conn:side_header.10"
- ],
- "verified": {
- "roles": "datasheet"
- }
- },
- "51": {
- "roles": [
- "conn:mbus.26"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "52": {
- "roles": [
- "conn:port_b.2",
- "conn:mbus.10"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "53": {
- "roles": [
- "bus:port_a_i2c.sda",
- "conn:port_a.2"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "54": {
- "roles": [
- "bus:port_a_i2c.scl",
- "conn:port_a.1"
- ],
- "verified": {
- "roles": "generated"
- }
- }
- },
- "buses": {
- "display_dsi": {
- "kind": "dsi",
- "signals": [],
- "preferred_host": 0,
- "lane_num": 2,
- "freq": 1040,
- "ldo_chan_id": 3,
- "ldo_voltage_mv": 2500,
- "fixed": true
- },
- "internal_i2c": {
- "kind": "i2c",
- "signals": [
- "sda",
- "scl"
- ],
- "preferred_host": 1,
- "freq": 100000,
- "fixed": true,
- "verified": {
- "signals": "generated",
- "preferred_host": "generated",
- "freq": "generated"
- }
- },
- "touch_i2c": {
- "kind": "i2c",
- "signals": [
- "sda",
- "scl"
- ],
- "preferred_host": 1,
- "freq": 400000,
- "fixed": true,
- "verified": {
- "signals": "generated",
- "preferred_host": "generated",
- "freq": "generated"
- }
- },
- "port_a_i2c": {
- "kind": "i2c",
- "signals": [
- "sda",
- "scl"
- ],
- "preferred_host": 1,
- "fixed": true,
- "verified": {
- "signals": "generated",
- "preferred_host": "generated"
- }
- },
- "sdmmc": {
- "kind": "sdmmc",
- "signals": [
- "clk",
- "cmd",
- "d0",
- "d1",
- "d2",
- "d3"
- ],
- "preferred_host": 0,
- "fixed": false
- },
- "wifi_sdio": {
- "kind": "sdmmc",
- "signals": [
- "clk",
- "cmd",
- "d0",
- "d1",
- "d2",
- "d3"
- ],
- "fixed": false
- }
- },
- "devices": {
- "lcd": {
- "kind": "display",
- "bus": "display_dsi",
- "part": "ili9881c",
- "spec": {
- "width": 720,
- "height": 1280,
- "memory_width": 720,
- "memory_height": 1280,
- "rotation_offset": 0,
- "readable": true,
- "rgb_order": true,
- "dpi_freq_mhz": 80,
- "hsync_back_porch": 140,
- "hsync_pulse_width": 40,
- "hsync_front_porch": 40,
- "vsync_back_porch": 20,
- "vsync_pulse_width": 4,
- "vsync_front_porch": 20
- }
- },
- "touch": {
- "kind": "touch",
- "part": "gt911",
- "bus": "touch_i2c",
- "spec": {
- "x_max": 719,
- "y_max": 1279,
- "rotation_offset": 0
- },
- "signals": {
- "int": "gpio:23"
- },
- "verified": {
- "signals": "generated"
- }
- },
- "ioe1": {
- "kind": "io_expander",
- "part": "pi4io",
- "bus": "internal_i2c",
- "i2c_addr": "0x43"
- },
- "ioe2": {
- "kind": "io_expander",
- "part": "pi4io",
- "bus": "internal_i2c",
- "i2c_addr": "0x44"
- },
- "backlight": {
- "kind": "backlight",
- "spec": {
- "freq": 44100,
- "channel": 7,
- "invert": false,
- "offset": 0
- },
- "verified": {
- "spec": "generated",
- "signals": "generated"
- },
- "signals": {
- "pwm": "gpio:22"
- }
- },
- "sd": {
- "kind": "sd",
- "part": "sd_slot",
- "bus": "sdmmc",
- "verified": {
- "bus": "generated",
- "signals": "generated",
- "derived": "generated"
- },
- "signals": {
- "d0": "gpio:39",
- "d1": "gpio:40",
- "d2": "gpio:41",
- "d3": "gpio:42",
- "clk": "gpio:43",
- "cmd": "gpio:44"
- },
- "derived": {
- "modes": [
- "sdio1",
- "sdio4"
- ]
- }
- },
- "psram": {
- "kind": "psram",
- "part": "psram"
- }
- },
- "connectors": {
- "port_a": {
- "type": "hy2_4p",
- "standard": "port_i2c",
- "note": "EXT5V output is shared with the rear M-Bus and side expansion header and controlled by EXT5V_EN on the internal IO expander.",
- "positions": {
- "1": "gpio:54",
- "2": "gpio:53",
- "3": "pwr:5v",
- "4": "pwr:gnd"
- }
- },
- "port_b": {
- "type": "hy2_4p",
- "standard": "port_io",
- "note": "Library port contract on the M-Bus; the product shows a physical Grove Port A only.",
- "positions": {
- "1": "gpio:17",
- "2": "gpio:52",
- "3": "pwr:5v",
- "4": "pwr:gnd"
- }
- },
- "port_c": {
- "type": "hy2_4p",
- "standard": "port_uart",
- "note": "Library port contract on the M-Bus; the product shows a physical Grove Port A only.",
- "positions": {
- "1": "gpio:7",
- "2": "gpio:6",
- "3": "pwr:5v",
- "4": "pwr:gnd"
- }
- },
- "mbus": {
- "type": "mbus",
- "note": "HPWR positions 25/27/29 are wired to SYS_VIN inside Tab5, the same rail as side header J9 pin 2.",
- "positions": {
- "1": "pwr:gnd",
- "2": "gpio:16",
- "3": "pwr:gnd",
- "4": "gpio:17",
- "5": "pwr:gnd",
- "6": "chip:en",
- "7": "gpio:18",
- "8": "gpio:45",
- "9": "gpio:19",
- "10": "gpio:52",
- "11": "gpio:5",
- "12": "pwr:3v3",
- "13": "gpio:38",
- "14": "gpio:37",
- "15": "gpio:7",
- "16": "gpio:6",
- "17": "gpio:31",
- "18": "gpio:32",
- "19": "gpio:3",
- "20": "gpio:4",
- "21": "gpio:2",
- "22": "gpio:48",
- "23": "gpio:47",
- "24": "gpio:35",
- "25": "pwr:vin",
- "26": "gpio:51",
- "27": "pwr:vin",
- "28": "pwr:5v",
- "29": "pwr:vin",
- "30": "pwr:bat"
- },
- "verified": {
- "positions": "datasheet"
- }
- },
- "side_header": {
- "type": "logical_terminals_10",
- "positions": {
- "1": "pwr:gnd",
- "2": "pwr:vin",
- "3": "pwr:gnd",
- "4": "pwr:gnd",
- "5": "pwr:5v",
- "6": "pwr:3v3",
- "7": "gpio:0",
- "8": "gpio:1",
- "9": "gpio:49",
- "10": "gpio:50"
- },
- "note": "Side 2.54-10P header J9, numbered as the official schematic. Pin 2 is SYS_VIN; pin 5 is SYS_EXT5V controlled by EXT5V_EN. Positions are logical ordering; physical geometry is unverified.",
- "verified": {
- "positions": "datasheet"
- }
- },
- "stamp_pads": {
- "type": "logical_terminals_12",
- "positions": {
- "1": "pwr:gnd",
- "2": "gpio:46",
- "3": "gpio:6",
- "4": "gpio:31",
- "5": "gpio:32",
- "6": "gpio:33",
- "7": "pwr:sys_5v",
- "8": "pwr:3v3",
- "9": "pwr:gnd",
- "10": "gpio:5",
- "11": "gpio:18",
- "12": "gpio:19"
- },
- "note": "STAMP COMM expansion pads numbered TP1 through TP12 in the official schematic. TP7 is SYS_INT5V (system 5V), distinct from switched SYS_EXT5V on Grove/side header. GPIO31/32 share internal I2C; GPIO5/18/19 share SPI. Logical terminal order only; physical geometry is unverified.",
- "verified": {
- "positions": "datasheet"
- }
- }
- }
-}
diff --git a/extras/board_spec/generated/resolved/m5stack_tab5+lcd=st7121.json b/extras/board_spec/generated/resolved/m5stack_tab5+lcd=st7121.json
deleted file mode 100644
index 3e0b4c4f..00000000
--- a/extras/board_spec/generated/resolved/m5stack_tab5+lcd=st7121.json
+++ /dev/null
@@ -1,661 +0,0 @@
-{
- "schema_version": 1,
- "id": "m5stack_tab5",
- "name": "M5Tab5",
- "official_name": "M5Stack Tab5",
- "official_name_verified": true,
- "aliases": [
- "tab5",
- "m5tab5"
- ],
- "legacy_board_id": 22,
- "chip": "esp32p4",
- "spec": {
- "display": {
- "resolution": [
- 720,
- 1280
- ],
- "touch": true
- },
- "storage": {
- "psram_mb": 32,
- "sd": true,
- "psram_mode": "opi"
- },
- "links": {
- "product": "https://docs.m5stack.com/en/core/Tab5",
- "schematic": "https://m5stack-doc.oss-cn-shenzhen.aliyuncs.com/1132/Tab5_Schematics_PDF.pdf",
- "verified": {
- "product": "datasheet",
- "schematic": "datasheet"
- }
- }
- },
- "pins": {
- "0": {
- "roles": [
- "conn:side_header.7"
- ],
- "verified": {
- "roles": "datasheet"
- }
- },
- "1": {
- "roles": [
- "conn:side_header.8"
- ],
- "verified": {
- "roles": "datasheet"
- }
- },
- "2": {
- "roles": [
- "conn:mbus.21"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "3": {
- "roles": [
- "conn:mbus.19"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "4": {
- "roles": [
- "conn:mbus.20"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "5": {
- "roles": [
- "conn:mbus.11",
- "conn:stamp_pads.10"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "6": {
- "roles": [
- "conn:port_c.2",
- "conn:mbus.16",
- "conn:stamp_pads.3"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "7": {
- "roles": [
- "conn:port_c.1",
- "conn:mbus.15"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "8": {
- "roles": [
- "bus:wifi_sdio.d3"
- ]
- },
- "9": {
- "roles": [
- "bus:wifi_sdio.d2"
- ]
- },
- "10": {
- "roles": [
- "bus:wifi_sdio.d1"
- ]
- },
- "11": {
- "roles": [
- "bus:wifi_sdio.d0"
- ]
- },
- "12": {
- "roles": [
- "bus:wifi_sdio.clk"
- ]
- },
- "13": {
- "roles": [
- "bus:wifi_sdio.cmd"
- ]
- },
- "16": {
- "roles": [
- "conn:mbus.2"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "17": {
- "roles": [
- "conn:port_b.1",
- "conn:mbus.4"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "18": {
- "roles": [
- "conn:mbus.7",
- "conn:stamp_pads.11"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "19": {
- "roles": [
- "conn:mbus.9",
- "conn:stamp_pads.12"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "22": {
- "roles": [
- "dev:backlight.pwm"
- ],
- "detect_class": "down"
- },
- "23": {
- "roles": [
- "dev:touch.int"
- ]
- },
- "31": {
- "roles": [
- "bus:internal_i2c.sda",
- "bus:touch_i2c.sda",
- "conn:mbus.17",
- "conn:stamp_pads.4"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "32": {
- "roles": [
- "bus:internal_i2c.scl",
- "bus:touch_i2c.scl",
- "conn:mbus.18",
- "conn:stamp_pads.5"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "33": {
- "roles": [
- "conn:stamp_pads.6"
- ],
- "verified": {
- "roles": "datasheet"
- }
- },
- "35": {
- "roles": [
- "conn:mbus.24"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "37": {
- "roles": [
- "conn:mbus.14"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "38": {
- "roles": [
- "conn:mbus.13"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "39": {
- "roles": [
- "bus:sdmmc.d0",
- "dev:sd.d0"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "40": {
- "roles": [
- "bus:sdmmc.d1",
- "dev:sd.d1"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "41": {
- "roles": [
- "bus:sdmmc.d2",
- "dev:sd.d2"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "42": {
- "roles": [
- "bus:sdmmc.d3",
- "dev:sd.d3"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "43": {
- "roles": [
- "bus:sdmmc.clk",
- "dev:sd.clk"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "44": {
- "roles": [
- "bus:sdmmc.cmd",
- "dev:sd.cmd"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "45": {
- "roles": [
- "conn:mbus.8"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "46": {
- "roles": [
- "conn:stamp_pads.2"
- ],
- "verified": {
- "roles": "datasheet"
- }
- },
- "47": {
- "roles": [
- "conn:mbus.23"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "48": {
- "roles": [
- "conn:mbus.22"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "49": {
- "roles": [
- "conn:side_header.9"
- ],
- "verified": {
- "roles": "datasheet"
- }
- },
- "50": {
- "roles": [
- "conn:side_header.10"
- ],
- "verified": {
- "roles": "datasheet"
- }
- },
- "51": {
- "roles": [
- "conn:mbus.26"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "52": {
- "roles": [
- "conn:port_b.2",
- "conn:mbus.10"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "53": {
- "roles": [
- "bus:port_a_i2c.sda",
- "conn:port_a.2"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "54": {
- "roles": [
- "bus:port_a_i2c.scl",
- "conn:port_a.1"
- ],
- "verified": {
- "roles": "generated"
- }
- }
- },
- "buses": {
- "display_dsi": {
- "kind": "dsi",
- "signals": [],
- "preferred_host": 0,
- "lane_num": 2,
- "freq": 1040,
- "ldo_chan_id": 3,
- "ldo_voltage_mv": 2500,
- "fixed": true
- },
- "internal_i2c": {
- "kind": "i2c",
- "signals": [
- "sda",
- "scl"
- ],
- "preferred_host": 1,
- "freq": 100000,
- "fixed": true,
- "verified": {
- "signals": "generated",
- "preferred_host": "generated",
- "freq": "generated"
- }
- },
- "touch_i2c": {
- "kind": "i2c",
- "signals": [
- "sda",
- "scl"
- ],
- "preferred_host": 1,
- "freq": 400000,
- "fixed": true,
- "verified": {
- "signals": "generated",
- "preferred_host": "generated",
- "freq": "generated"
- }
- },
- "port_a_i2c": {
- "kind": "i2c",
- "signals": [
- "sda",
- "scl"
- ],
- "preferred_host": 1,
- "fixed": true,
- "verified": {
- "signals": "generated",
- "preferred_host": "generated"
- }
- },
- "sdmmc": {
- "kind": "sdmmc",
- "signals": [
- "clk",
- "cmd",
- "d0",
- "d1",
- "d2",
- "d3"
- ],
- "preferred_host": 0,
- "fixed": false
- },
- "wifi_sdio": {
- "kind": "sdmmc",
- "signals": [
- "clk",
- "cmd",
- "d0",
- "d1",
- "d2",
- "d3"
- ],
- "fixed": false
- }
- },
- "devices": {
- "lcd": {
- "kind": "display",
- "bus": "display_dsi",
- "part": "st7121",
- "spec": {
- "width": 720,
- "height": 1280,
- "memory_width": 720,
- "memory_height": 1280,
- "rotation_offset": 0,
- "readable": true,
- "rgb_order": true,
- "dpi_freq_mhz": 70,
- "hsync_back_porch": 40,
- "hsync_pulse_width": 2,
- "hsync_front_porch": 40,
- "vsync_back_porch": 24,
- "vsync_pulse_width": 20,
- "vsync_front_porch": 200
- }
- },
- "touch": {
- "kind": "touch",
- "part": "gt911",
- "bus": "touch_i2c",
- "spec": {
- "x_max": 719,
- "y_max": 1279,
- "rotation_offset": 0
- },
- "signals": {
- "int": "gpio:23"
- },
- "verified": {
- "signals": "generated"
- }
- },
- "ioe1": {
- "kind": "io_expander",
- "part": "pi4io",
- "bus": "internal_i2c",
- "i2c_addr": "0x43"
- },
- "ioe2": {
- "kind": "io_expander",
- "part": "pi4io",
- "bus": "internal_i2c",
- "i2c_addr": "0x44"
- },
- "backlight": {
- "kind": "backlight",
- "spec": {
- "freq": 44100,
- "channel": 7,
- "invert": false,
- "offset": 0
- },
- "verified": {
- "spec": "generated",
- "signals": "generated"
- },
- "signals": {
- "pwm": "gpio:22"
- }
- },
- "sd": {
- "kind": "sd",
- "part": "sd_slot",
- "bus": "sdmmc",
- "verified": {
- "bus": "generated",
- "signals": "generated",
- "derived": "generated"
- },
- "signals": {
- "d0": "gpio:39",
- "d1": "gpio:40",
- "d2": "gpio:41",
- "d3": "gpio:42",
- "clk": "gpio:43",
- "cmd": "gpio:44"
- },
- "derived": {
- "modes": [
- "sdio1",
- "sdio4"
- ]
- }
- },
- "psram": {
- "kind": "psram",
- "part": "psram"
- }
- },
- "connectors": {
- "port_a": {
- "type": "hy2_4p",
- "standard": "port_i2c",
- "note": "EXT5V output is shared with the rear M-Bus and side expansion header and controlled by EXT5V_EN on the internal IO expander.",
- "positions": {
- "1": "gpio:54",
- "2": "gpio:53",
- "3": "pwr:5v",
- "4": "pwr:gnd"
- }
- },
- "port_b": {
- "type": "hy2_4p",
- "standard": "port_io",
- "note": "Library port contract on the M-Bus; the product shows a physical Grove Port A only.",
- "positions": {
- "1": "gpio:17",
- "2": "gpio:52",
- "3": "pwr:5v",
- "4": "pwr:gnd"
- }
- },
- "port_c": {
- "type": "hy2_4p",
- "standard": "port_uart",
- "note": "Library port contract on the M-Bus; the product shows a physical Grove Port A only.",
- "positions": {
- "1": "gpio:7",
- "2": "gpio:6",
- "3": "pwr:5v",
- "4": "pwr:gnd"
- }
- },
- "mbus": {
- "type": "mbus",
- "note": "HPWR positions 25/27/29 are wired to SYS_VIN inside Tab5, the same rail as side header J9 pin 2.",
- "positions": {
- "1": "pwr:gnd",
- "2": "gpio:16",
- "3": "pwr:gnd",
- "4": "gpio:17",
- "5": "pwr:gnd",
- "6": "chip:en",
- "7": "gpio:18",
- "8": "gpio:45",
- "9": "gpio:19",
- "10": "gpio:52",
- "11": "gpio:5",
- "12": "pwr:3v3",
- "13": "gpio:38",
- "14": "gpio:37",
- "15": "gpio:7",
- "16": "gpio:6",
- "17": "gpio:31",
- "18": "gpio:32",
- "19": "gpio:3",
- "20": "gpio:4",
- "21": "gpio:2",
- "22": "gpio:48",
- "23": "gpio:47",
- "24": "gpio:35",
- "25": "pwr:vin",
- "26": "gpio:51",
- "27": "pwr:vin",
- "28": "pwr:5v",
- "29": "pwr:vin",
- "30": "pwr:bat"
- },
- "verified": {
- "positions": "datasheet"
- }
- },
- "side_header": {
- "type": "logical_terminals_10",
- "positions": {
- "1": "pwr:gnd",
- "2": "pwr:vin",
- "3": "pwr:gnd",
- "4": "pwr:gnd",
- "5": "pwr:5v",
- "6": "pwr:3v3",
- "7": "gpio:0",
- "8": "gpio:1",
- "9": "gpio:49",
- "10": "gpio:50"
- },
- "note": "Side 2.54-10P header J9, numbered as the official schematic. Pin 2 is SYS_VIN; pin 5 is SYS_EXT5V controlled by EXT5V_EN. Positions are logical ordering; physical geometry is unverified.",
- "verified": {
- "positions": "datasheet"
- }
- },
- "stamp_pads": {
- "type": "logical_terminals_12",
- "positions": {
- "1": "pwr:gnd",
- "2": "gpio:46",
- "3": "gpio:6",
- "4": "gpio:31",
- "5": "gpio:32",
- "6": "gpio:33",
- "7": "pwr:sys_5v",
- "8": "pwr:3v3",
- "9": "pwr:gnd",
- "10": "gpio:5",
- "11": "gpio:18",
- "12": "gpio:19"
- },
- "note": "STAMP COMM expansion pads numbered TP1 through TP12 in the official schematic. TP7 is SYS_INT5V (system 5V), distinct from switched SYS_EXT5V on Grove/side header. GPIO31/32 share internal I2C; GPIO5/18/19 share SPI. Logical terminal order only; physical geometry is unverified.",
- "verified": {
- "positions": "datasheet"
- }
- }
- }
-}
diff --git a/extras/board_spec/generated/resolved/m5stack_tab5+lcd=st7123.json b/extras/board_spec/generated/resolved/m5stack_tab5+lcd=st7123.json
deleted file mode 100644
index 397d306b..00000000
--- a/extras/board_spec/generated/resolved/m5stack_tab5+lcd=st7123.json
+++ /dev/null
@@ -1,661 +0,0 @@
-{
- "schema_version": 1,
- "id": "m5stack_tab5",
- "name": "M5Tab5",
- "official_name": "M5Stack Tab5",
- "official_name_verified": true,
- "aliases": [
- "tab5",
- "m5tab5"
- ],
- "legacy_board_id": 22,
- "chip": "esp32p4",
- "spec": {
- "display": {
- "resolution": [
- 720,
- 1280
- ],
- "touch": true
- },
- "storage": {
- "psram_mb": 32,
- "sd": true,
- "psram_mode": "opi"
- },
- "links": {
- "product": "https://docs.m5stack.com/en/core/Tab5",
- "schematic": "https://m5stack-doc.oss-cn-shenzhen.aliyuncs.com/1132/Tab5_Schematics_PDF.pdf",
- "verified": {
- "product": "datasheet",
- "schematic": "datasheet"
- }
- }
- },
- "pins": {
- "0": {
- "roles": [
- "conn:side_header.7"
- ],
- "verified": {
- "roles": "datasheet"
- }
- },
- "1": {
- "roles": [
- "conn:side_header.8"
- ],
- "verified": {
- "roles": "datasheet"
- }
- },
- "2": {
- "roles": [
- "conn:mbus.21"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "3": {
- "roles": [
- "conn:mbus.19"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "4": {
- "roles": [
- "conn:mbus.20"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "5": {
- "roles": [
- "conn:mbus.11",
- "conn:stamp_pads.10"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "6": {
- "roles": [
- "conn:port_c.2",
- "conn:mbus.16",
- "conn:stamp_pads.3"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "7": {
- "roles": [
- "conn:port_c.1",
- "conn:mbus.15"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "8": {
- "roles": [
- "bus:wifi_sdio.d3"
- ]
- },
- "9": {
- "roles": [
- "bus:wifi_sdio.d2"
- ]
- },
- "10": {
- "roles": [
- "bus:wifi_sdio.d1"
- ]
- },
- "11": {
- "roles": [
- "bus:wifi_sdio.d0"
- ]
- },
- "12": {
- "roles": [
- "bus:wifi_sdio.clk"
- ]
- },
- "13": {
- "roles": [
- "bus:wifi_sdio.cmd"
- ]
- },
- "16": {
- "roles": [
- "conn:mbus.2"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "17": {
- "roles": [
- "conn:port_b.1",
- "conn:mbus.4"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "18": {
- "roles": [
- "conn:mbus.7",
- "conn:stamp_pads.11"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "19": {
- "roles": [
- "conn:mbus.9",
- "conn:stamp_pads.12"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "22": {
- "roles": [
- "dev:backlight.pwm"
- ],
- "detect_class": "down"
- },
- "23": {
- "roles": [
- "dev:touch.int"
- ]
- },
- "31": {
- "roles": [
- "bus:internal_i2c.sda",
- "bus:touch_i2c.sda",
- "conn:mbus.17",
- "conn:stamp_pads.4"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "32": {
- "roles": [
- "bus:internal_i2c.scl",
- "bus:touch_i2c.scl",
- "conn:mbus.18",
- "conn:stamp_pads.5"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "33": {
- "roles": [
- "conn:stamp_pads.6"
- ],
- "verified": {
- "roles": "datasheet"
- }
- },
- "35": {
- "roles": [
- "conn:mbus.24"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "37": {
- "roles": [
- "conn:mbus.14"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "38": {
- "roles": [
- "conn:mbus.13"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "39": {
- "roles": [
- "bus:sdmmc.d0",
- "dev:sd.d0"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "40": {
- "roles": [
- "bus:sdmmc.d1",
- "dev:sd.d1"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "41": {
- "roles": [
- "bus:sdmmc.d2",
- "dev:sd.d2"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "42": {
- "roles": [
- "bus:sdmmc.d3",
- "dev:sd.d3"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "43": {
- "roles": [
- "bus:sdmmc.clk",
- "dev:sd.clk"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "44": {
- "roles": [
- "bus:sdmmc.cmd",
- "dev:sd.cmd"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "45": {
- "roles": [
- "conn:mbus.8"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "46": {
- "roles": [
- "conn:stamp_pads.2"
- ],
- "verified": {
- "roles": "datasheet"
- }
- },
- "47": {
- "roles": [
- "conn:mbus.23"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "48": {
- "roles": [
- "conn:mbus.22"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "49": {
- "roles": [
- "conn:side_header.9"
- ],
- "verified": {
- "roles": "datasheet"
- }
- },
- "50": {
- "roles": [
- "conn:side_header.10"
- ],
- "verified": {
- "roles": "datasheet"
- }
- },
- "51": {
- "roles": [
- "conn:mbus.26"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "52": {
- "roles": [
- "conn:port_b.2",
- "conn:mbus.10"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "53": {
- "roles": [
- "bus:port_a_i2c.sda",
- "conn:port_a.2"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "54": {
- "roles": [
- "bus:port_a_i2c.scl",
- "conn:port_a.1"
- ],
- "verified": {
- "roles": "generated"
- }
- }
- },
- "buses": {
- "display_dsi": {
- "kind": "dsi",
- "signals": [],
- "preferred_host": 0,
- "lane_num": 2,
- "freq": 1040,
- "ldo_chan_id": 3,
- "ldo_voltage_mv": 2500,
- "fixed": true
- },
- "internal_i2c": {
- "kind": "i2c",
- "signals": [
- "sda",
- "scl"
- ],
- "preferred_host": 1,
- "freq": 100000,
- "fixed": true,
- "verified": {
- "signals": "generated",
- "preferred_host": "generated",
- "freq": "generated"
- }
- },
- "touch_i2c": {
- "kind": "i2c",
- "signals": [
- "sda",
- "scl"
- ],
- "preferred_host": 1,
- "freq": 400000,
- "fixed": true,
- "verified": {
- "signals": "generated",
- "preferred_host": "generated",
- "freq": "generated"
- }
- },
- "port_a_i2c": {
- "kind": "i2c",
- "signals": [
- "sda",
- "scl"
- ],
- "preferred_host": 1,
- "fixed": true,
- "verified": {
- "signals": "generated",
- "preferred_host": "generated"
- }
- },
- "sdmmc": {
- "kind": "sdmmc",
- "signals": [
- "clk",
- "cmd",
- "d0",
- "d1",
- "d2",
- "d3"
- ],
- "preferred_host": 0,
- "fixed": false
- },
- "wifi_sdio": {
- "kind": "sdmmc",
- "signals": [
- "clk",
- "cmd",
- "d0",
- "d1",
- "d2",
- "d3"
- ],
- "fixed": false
- }
- },
- "devices": {
- "lcd": {
- "kind": "display",
- "bus": "display_dsi",
- "part": "st7123",
- "spec": {
- "width": 720,
- "height": 1280,
- "memory_width": 720,
- "memory_height": 1280,
- "rotation_offset": 0,
- "readable": true,
- "rgb_order": true,
- "dpi_freq_mhz": 80,
- "hsync_back_porch": 40,
- "hsync_pulse_width": 2,
- "hsync_front_porch": 40,
- "vsync_back_porch": 8,
- "vsync_pulse_width": 2,
- "vsync_front_porch": 220
- }
- },
- "touch": {
- "kind": "touch",
- "part": "gt911",
- "bus": "touch_i2c",
- "spec": {
- "x_max": 719,
- "y_max": 1279,
- "rotation_offset": 0
- },
- "signals": {
- "int": "gpio:23"
- },
- "verified": {
- "signals": "generated"
- }
- },
- "ioe1": {
- "kind": "io_expander",
- "part": "pi4io",
- "bus": "internal_i2c",
- "i2c_addr": "0x43"
- },
- "ioe2": {
- "kind": "io_expander",
- "part": "pi4io",
- "bus": "internal_i2c",
- "i2c_addr": "0x44"
- },
- "backlight": {
- "kind": "backlight",
- "spec": {
- "freq": 44100,
- "channel": 7,
- "invert": false,
- "offset": 0
- },
- "verified": {
- "spec": "generated",
- "signals": "generated"
- },
- "signals": {
- "pwm": "gpio:22"
- }
- },
- "sd": {
- "kind": "sd",
- "part": "sd_slot",
- "bus": "sdmmc",
- "verified": {
- "bus": "generated",
- "signals": "generated",
- "derived": "generated"
- },
- "signals": {
- "d0": "gpio:39",
- "d1": "gpio:40",
- "d2": "gpio:41",
- "d3": "gpio:42",
- "clk": "gpio:43",
- "cmd": "gpio:44"
- },
- "derived": {
- "modes": [
- "sdio1",
- "sdio4"
- ]
- }
- },
- "psram": {
- "kind": "psram",
- "part": "psram"
- }
- },
- "connectors": {
- "port_a": {
- "type": "hy2_4p",
- "standard": "port_i2c",
- "note": "EXT5V output is shared with the rear M-Bus and side expansion header and controlled by EXT5V_EN on the internal IO expander.",
- "positions": {
- "1": "gpio:54",
- "2": "gpio:53",
- "3": "pwr:5v",
- "4": "pwr:gnd"
- }
- },
- "port_b": {
- "type": "hy2_4p",
- "standard": "port_io",
- "note": "Library port contract on the M-Bus; the product shows a physical Grove Port A only.",
- "positions": {
- "1": "gpio:17",
- "2": "gpio:52",
- "3": "pwr:5v",
- "4": "pwr:gnd"
- }
- },
- "port_c": {
- "type": "hy2_4p",
- "standard": "port_uart",
- "note": "Library port contract on the M-Bus; the product shows a physical Grove Port A only.",
- "positions": {
- "1": "gpio:7",
- "2": "gpio:6",
- "3": "pwr:5v",
- "4": "pwr:gnd"
- }
- },
- "mbus": {
- "type": "mbus",
- "note": "HPWR positions 25/27/29 are wired to SYS_VIN inside Tab5, the same rail as side header J9 pin 2.",
- "positions": {
- "1": "pwr:gnd",
- "2": "gpio:16",
- "3": "pwr:gnd",
- "4": "gpio:17",
- "5": "pwr:gnd",
- "6": "chip:en",
- "7": "gpio:18",
- "8": "gpio:45",
- "9": "gpio:19",
- "10": "gpio:52",
- "11": "gpio:5",
- "12": "pwr:3v3",
- "13": "gpio:38",
- "14": "gpio:37",
- "15": "gpio:7",
- "16": "gpio:6",
- "17": "gpio:31",
- "18": "gpio:32",
- "19": "gpio:3",
- "20": "gpio:4",
- "21": "gpio:2",
- "22": "gpio:48",
- "23": "gpio:47",
- "24": "gpio:35",
- "25": "pwr:vin",
- "26": "gpio:51",
- "27": "pwr:vin",
- "28": "pwr:5v",
- "29": "pwr:vin",
- "30": "pwr:bat"
- },
- "verified": {
- "positions": "datasheet"
- }
- },
- "side_header": {
- "type": "logical_terminals_10",
- "positions": {
- "1": "pwr:gnd",
- "2": "pwr:vin",
- "3": "pwr:gnd",
- "4": "pwr:gnd",
- "5": "pwr:5v",
- "6": "pwr:3v3",
- "7": "gpio:0",
- "8": "gpio:1",
- "9": "gpio:49",
- "10": "gpio:50"
- },
- "note": "Side 2.54-10P header J9, numbered as the official schematic. Pin 2 is SYS_VIN; pin 5 is SYS_EXT5V controlled by EXT5V_EN. Positions are logical ordering; physical geometry is unverified.",
- "verified": {
- "positions": "datasheet"
- }
- },
- "stamp_pads": {
- "type": "logical_terminals_12",
- "positions": {
- "1": "pwr:gnd",
- "2": "gpio:46",
- "3": "gpio:6",
- "4": "gpio:31",
- "5": "gpio:32",
- "6": "gpio:33",
- "7": "pwr:sys_5v",
- "8": "pwr:3v3",
- "9": "pwr:gnd",
- "10": "gpio:5",
- "11": "gpio:18",
- "12": "gpio:19"
- },
- "note": "STAMP COMM expansion pads numbered TP1 through TP12 in the official schematic. TP7 is SYS_INT5V (system 5V), distinct from switched SYS_EXT5V on Grove/side header. GPIO31/32 share internal I2C; GPIO5/18/19 share SPI. Logical terminal order only; physical geometry is unverified.",
- "verified": {
- "positions": "datasheet"
- }
- }
- }
-}
diff --git a/extras/board_spec/generated/resolved/m5stack_tab5x+lcd=ili9881c.json b/extras/board_spec/generated/resolved/m5stack_tab5x+lcd=ili9881c.json
deleted file mode 100644
index b61832da..00000000
--- a/extras/board_spec/generated/resolved/m5stack_tab5x+lcd=ili9881c.json
+++ /dev/null
@@ -1,551 +0,0 @@
-{
- "schema_version": 1,
- "id": "m5stack_tab5x",
- "name": "M5Tab5X",
- "official_name": "M5Stack Tab5X",
- "aliases": [
- "tab5x",
- "tab5 x"
- ],
- "legacy_board_id": 35,
- "chip": "esp32p4",
- "spec": {
- "display": {
- "resolution": [
- 720,
- 1280
- ],
- "touch": true
- },
- "storage": {
- "psram_mb": 32,
- "sd": true,
- "psram_mode": "opi"
- }
- },
- "pins": {
- "2": {
- "roles": [
- "conn:mbus.21"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "3": {
- "roles": [
- "conn:mbus.19"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "4": {
- "roles": [
- "conn:mbus.20"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "5": {
- "roles": [
- "conn:mbus.11"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "6": {
- "roles": [
- "conn:port_c.2",
- "conn:mbus.16"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "7": {
- "roles": [
- "conn:port_c.1",
- "conn:mbus.15"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "8": {
- "roles": [
- "bus:wifi_sdio.d3"
- ]
- },
- "9": {
- "roles": [
- "bus:wifi_sdio.d2"
- ]
- },
- "10": {
- "roles": [
- "bus:wifi_sdio.d1"
- ]
- },
- "11": {
- "roles": [
- "bus:wifi_sdio.d0"
- ]
- },
- "12": {
- "roles": [
- "bus:wifi_sdio.clk"
- ]
- },
- "13": {
- "roles": [
- "bus:wifi_sdio.cmd"
- ]
- },
- "16": {
- "roles": [
- "conn:mbus.2"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "17": {
- "roles": [
- "conn:port_b.1",
- "conn:mbus.4"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "18": {
- "roles": [
- "conn:mbus.7"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "19": {
- "roles": [
- "conn:mbus.9"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "22": {
- "roles": [
- "dev:backlight.pwm"
- ],
- "detect_class": "down"
- },
- "23": {
- "roles": [
- "dev:touch.int"
- ]
- },
- "31": {
- "roles": [
- "bus:internal_i2c.sda",
- "bus:touch_i2c.sda",
- "conn:mbus.17"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "32": {
- "roles": [
- "bus:internal_i2c.scl",
- "bus:touch_i2c.scl",
- "conn:mbus.18"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "35": {
- "roles": [
- "conn:mbus.24"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "37": {
- "roles": [
- "conn:mbus.14"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "38": {
- "roles": [
- "conn:mbus.13"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "39": {
- "roles": [
- "bus:sdmmc.d0",
- "dev:sd.d0"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "40": {
- "roles": [
- "bus:sdmmc.d1",
- "dev:sd.d1"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "41": {
- "roles": [
- "bus:sdmmc.d2",
- "dev:sd.d2"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "42": {
- "roles": [
- "bus:sdmmc.d3",
- "dev:sd.d3"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "43": {
- "roles": [
- "bus:sdmmc.clk",
- "dev:sd.clk"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "44": {
- "roles": [
- "bus:sdmmc.cmd",
- "dev:sd.cmd"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "45": {
- "roles": [
- "conn:mbus.8"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "47": {
- "roles": [
- "conn:mbus.23"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "48": {
- "roles": [
- "conn:mbus.22"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "51": {
- "roles": [
- "conn:mbus.26"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "52": {
- "roles": [
- "conn:port_b.2",
- "conn:mbus.10"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "53": {
- "roles": [
- "bus:port_a_i2c.sda",
- "conn:port_a.2"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "54": {
- "roles": [
- "bus:port_a_i2c.scl",
- "conn:port_a.1"
- ],
- "verified": {
- "roles": "generated"
- }
- }
- },
- "buses": {
- "display_dsi": {
- "kind": "dsi",
- "signals": [],
- "preferred_host": 0,
- "lane_num": 2,
- "freq": 1040,
- "ldo_chan_id": 3,
- "ldo_voltage_mv": 2500,
- "fixed": true
- },
- "internal_i2c": {
- "kind": "i2c",
- "signals": [
- "sda",
- "scl"
- ],
- "preferred_host": 1,
- "freq": 100000,
- "fixed": true,
- "verified": {
- "signals": "generated",
- "preferred_host": "generated",
- "freq": "generated"
- }
- },
- "touch_i2c": {
- "kind": "i2c",
- "signals": [
- "sda",
- "scl"
- ],
- "preferred_host": 1,
- "freq": 400000,
- "fixed": true,
- "verified": {
- "signals": "generated",
- "preferred_host": "generated",
- "freq": "generated"
- }
- },
- "port_a_i2c": {
- "kind": "i2c",
- "signals": [
- "sda",
- "scl"
- ],
- "preferred_host": 1,
- "fixed": true,
- "verified": {
- "signals": "generated",
- "preferred_host": "generated"
- }
- },
- "sdmmc": {
- "kind": "sdmmc",
- "signals": [
- "clk",
- "cmd",
- "d0",
- "d1",
- "d2",
- "d3"
- ],
- "preferred_host": 0,
- "fixed": false
- },
- "wifi_sdio": {
- "kind": "sdmmc",
- "signals": [
- "clk",
- "cmd",
- "d0",
- "d1",
- "d2",
- "d3"
- ],
- "fixed": false
- }
- },
- "devices": {
- "lcd": {
- "kind": "display",
- "bus": "display_dsi",
- "part": "ili9881c",
- "spec": {
- "width": 720,
- "height": 1280,
- "memory_width": 720,
- "memory_height": 1280,
- "rotation_offset": 0,
- "readable": true,
- "rgb_order": true,
- "dpi_freq_mhz": 80,
- "hsync_back_porch": 140,
- "hsync_pulse_width": 40,
- "hsync_front_porch": 40,
- "vsync_back_porch": 20,
- "vsync_pulse_width": 4,
- "vsync_front_porch": 20
- }
- },
- "touch": {
- "kind": "touch",
- "part": "gt911",
- "bus": "touch_i2c",
- "spec": {
- "x_max": 719,
- "y_max": 1279,
- "rotation_offset": 0
- },
- "signals": {
- "int": "gpio:23"
- },
- "verified": {
- "signals": "generated"
- }
- },
- "ioe1": {
- "kind": "io_expander",
- "part": "pi4io",
- "bus": "internal_i2c",
- "i2c_addr": "0x43"
- },
- "ioe2": {
- "kind": "io_expander",
- "part": "pi4io",
- "bus": "internal_i2c",
- "i2c_addr": "0x44"
- },
- "backlight": {
- "kind": "backlight",
- "spec": {
- "freq": 44100,
- "channel": 7,
- "invert": false,
- "offset": 0
- },
- "verified": {
- "spec": "generated",
- "signals": "generated"
- },
- "signals": {
- "pwm": "gpio:22"
- }
- },
- "sd": {
- "kind": "sd",
- "part": "sd_slot",
- "bus": "sdmmc",
- "verified": {
- "bus": "generated",
- "signals": "generated",
- "derived": "generated"
- },
- "signals": {
- "d0": "gpio:39",
- "d1": "gpio:40",
- "d2": "gpio:41",
- "d3": "gpio:42",
- "clk": "gpio:43",
- "cmd": "gpio:44"
- },
- "derived": {
- "modes": [
- "sdio1",
- "sdio4"
- ]
- }
- },
- "psram": {
- "kind": "psram",
- "part": "psram"
- }
- },
- "connectors": {
- "port_a": {
- "type": "hy2_4p",
- "standard": "port_i2c",
- "positions": {
- "1": "gpio:54",
- "2": "gpio:53",
- "3": "pwr:5v",
- "4": "pwr:gnd"
- }
- },
- "port_b": {
- "type": "hy2_4p",
- "standard": "port_io",
- "positions": {
- "1": "gpio:17",
- "2": "gpio:52",
- "3": "pwr:5v",
- "4": "pwr:gnd"
- }
- },
- "port_c": {
- "type": "hy2_4p",
- "standard": "port_uart",
- "positions": {
- "1": "gpio:7",
- "2": "gpio:6",
- "3": "pwr:5v",
- "4": "pwr:gnd"
- }
- },
- "mbus": {
- "type": "mbus",
- "positions": {
- "1": "pwr:gnd",
- "2": "gpio:16",
- "3": "pwr:gnd",
- "4": "gpio:17",
- "5": "pwr:gnd",
- "6": "chip:en",
- "7": "gpio:18",
- "8": "gpio:45",
- "9": "gpio:19",
- "10": "gpio:52",
- "11": "gpio:5",
- "12": "pwr:3v3",
- "13": "gpio:38",
- "14": "gpio:37",
- "15": "gpio:7",
- "16": "gpio:6",
- "17": "gpio:31",
- "18": "gpio:32",
- "19": "gpio:3",
- "20": "gpio:4",
- "21": "gpio:2",
- "22": "gpio:48",
- "23": "gpio:47",
- "24": "gpio:35",
- "25": "nc",
- "26": "gpio:51",
- "27": "nc",
- "28": "pwr:5v",
- "29": "nc",
- "30": "pwr:bat"
- }
- }
- }
-}
diff --git a/extras/board_spec/generated/resolved/m5stack_tab5x+lcd=st7121.json b/extras/board_spec/generated/resolved/m5stack_tab5x+lcd=st7121.json
deleted file mode 100644
index 63469020..00000000
--- a/extras/board_spec/generated/resolved/m5stack_tab5x+lcd=st7121.json
+++ /dev/null
@@ -1,551 +0,0 @@
-{
- "schema_version": 1,
- "id": "m5stack_tab5x",
- "name": "M5Tab5X",
- "official_name": "M5Stack Tab5X",
- "aliases": [
- "tab5x",
- "tab5 x"
- ],
- "legacy_board_id": 35,
- "chip": "esp32p4",
- "spec": {
- "display": {
- "resolution": [
- 720,
- 1280
- ],
- "touch": true
- },
- "storage": {
- "psram_mb": 32,
- "sd": true,
- "psram_mode": "opi"
- }
- },
- "pins": {
- "2": {
- "roles": [
- "conn:mbus.21"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "3": {
- "roles": [
- "conn:mbus.19"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "4": {
- "roles": [
- "conn:mbus.20"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "5": {
- "roles": [
- "conn:mbus.11"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "6": {
- "roles": [
- "conn:port_c.2",
- "conn:mbus.16"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "7": {
- "roles": [
- "conn:port_c.1",
- "conn:mbus.15"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "8": {
- "roles": [
- "bus:wifi_sdio.d3"
- ]
- },
- "9": {
- "roles": [
- "bus:wifi_sdio.d2"
- ]
- },
- "10": {
- "roles": [
- "bus:wifi_sdio.d1"
- ]
- },
- "11": {
- "roles": [
- "bus:wifi_sdio.d0"
- ]
- },
- "12": {
- "roles": [
- "bus:wifi_sdio.clk"
- ]
- },
- "13": {
- "roles": [
- "bus:wifi_sdio.cmd"
- ]
- },
- "16": {
- "roles": [
- "conn:mbus.2"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "17": {
- "roles": [
- "conn:port_b.1",
- "conn:mbus.4"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "18": {
- "roles": [
- "conn:mbus.7"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "19": {
- "roles": [
- "conn:mbus.9"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "22": {
- "roles": [
- "dev:backlight.pwm"
- ],
- "detect_class": "down"
- },
- "23": {
- "roles": [
- "dev:touch.int"
- ]
- },
- "31": {
- "roles": [
- "bus:internal_i2c.sda",
- "bus:touch_i2c.sda",
- "conn:mbus.17"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "32": {
- "roles": [
- "bus:internal_i2c.scl",
- "bus:touch_i2c.scl",
- "conn:mbus.18"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "35": {
- "roles": [
- "conn:mbus.24"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "37": {
- "roles": [
- "conn:mbus.14"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "38": {
- "roles": [
- "conn:mbus.13"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "39": {
- "roles": [
- "bus:sdmmc.d0",
- "dev:sd.d0"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "40": {
- "roles": [
- "bus:sdmmc.d1",
- "dev:sd.d1"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "41": {
- "roles": [
- "bus:sdmmc.d2",
- "dev:sd.d2"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "42": {
- "roles": [
- "bus:sdmmc.d3",
- "dev:sd.d3"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "43": {
- "roles": [
- "bus:sdmmc.clk",
- "dev:sd.clk"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "44": {
- "roles": [
- "bus:sdmmc.cmd",
- "dev:sd.cmd"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "45": {
- "roles": [
- "conn:mbus.8"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "47": {
- "roles": [
- "conn:mbus.23"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "48": {
- "roles": [
- "conn:mbus.22"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "51": {
- "roles": [
- "conn:mbus.26"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "52": {
- "roles": [
- "conn:port_b.2",
- "conn:mbus.10"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "53": {
- "roles": [
- "bus:port_a_i2c.sda",
- "conn:port_a.2"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "54": {
- "roles": [
- "bus:port_a_i2c.scl",
- "conn:port_a.1"
- ],
- "verified": {
- "roles": "generated"
- }
- }
- },
- "buses": {
- "display_dsi": {
- "kind": "dsi",
- "signals": [],
- "preferred_host": 0,
- "lane_num": 2,
- "freq": 1040,
- "ldo_chan_id": 3,
- "ldo_voltage_mv": 2500,
- "fixed": true
- },
- "internal_i2c": {
- "kind": "i2c",
- "signals": [
- "sda",
- "scl"
- ],
- "preferred_host": 1,
- "freq": 100000,
- "fixed": true,
- "verified": {
- "signals": "generated",
- "preferred_host": "generated",
- "freq": "generated"
- }
- },
- "touch_i2c": {
- "kind": "i2c",
- "signals": [
- "sda",
- "scl"
- ],
- "preferred_host": 1,
- "freq": 400000,
- "fixed": true,
- "verified": {
- "signals": "generated",
- "preferred_host": "generated",
- "freq": "generated"
- }
- },
- "port_a_i2c": {
- "kind": "i2c",
- "signals": [
- "sda",
- "scl"
- ],
- "preferred_host": 1,
- "fixed": true,
- "verified": {
- "signals": "generated",
- "preferred_host": "generated"
- }
- },
- "sdmmc": {
- "kind": "sdmmc",
- "signals": [
- "clk",
- "cmd",
- "d0",
- "d1",
- "d2",
- "d3"
- ],
- "preferred_host": 0,
- "fixed": false
- },
- "wifi_sdio": {
- "kind": "sdmmc",
- "signals": [
- "clk",
- "cmd",
- "d0",
- "d1",
- "d2",
- "d3"
- ],
- "fixed": false
- }
- },
- "devices": {
- "lcd": {
- "kind": "display",
- "bus": "display_dsi",
- "part": "st7121",
- "spec": {
- "width": 720,
- "height": 1280,
- "memory_width": 720,
- "memory_height": 1280,
- "rotation_offset": 0,
- "readable": true,
- "rgb_order": true,
- "dpi_freq_mhz": 70,
- "hsync_back_porch": 40,
- "hsync_pulse_width": 2,
- "hsync_front_porch": 40,
- "vsync_back_porch": 24,
- "vsync_pulse_width": 20,
- "vsync_front_porch": 200
- }
- },
- "touch": {
- "kind": "touch",
- "part": "gt911",
- "bus": "touch_i2c",
- "spec": {
- "x_max": 719,
- "y_max": 1279,
- "rotation_offset": 0
- },
- "signals": {
- "int": "gpio:23"
- },
- "verified": {
- "signals": "generated"
- }
- },
- "ioe1": {
- "kind": "io_expander",
- "part": "pi4io",
- "bus": "internal_i2c",
- "i2c_addr": "0x43"
- },
- "ioe2": {
- "kind": "io_expander",
- "part": "pi4io",
- "bus": "internal_i2c",
- "i2c_addr": "0x44"
- },
- "backlight": {
- "kind": "backlight",
- "spec": {
- "freq": 44100,
- "channel": 7,
- "invert": false,
- "offset": 0
- },
- "verified": {
- "spec": "generated",
- "signals": "generated"
- },
- "signals": {
- "pwm": "gpio:22"
- }
- },
- "sd": {
- "kind": "sd",
- "part": "sd_slot",
- "bus": "sdmmc",
- "verified": {
- "bus": "generated",
- "signals": "generated",
- "derived": "generated"
- },
- "signals": {
- "d0": "gpio:39",
- "d1": "gpio:40",
- "d2": "gpio:41",
- "d3": "gpio:42",
- "clk": "gpio:43",
- "cmd": "gpio:44"
- },
- "derived": {
- "modes": [
- "sdio1",
- "sdio4"
- ]
- }
- },
- "psram": {
- "kind": "psram",
- "part": "psram"
- }
- },
- "connectors": {
- "port_a": {
- "type": "hy2_4p",
- "standard": "port_i2c",
- "positions": {
- "1": "gpio:54",
- "2": "gpio:53",
- "3": "pwr:5v",
- "4": "pwr:gnd"
- }
- },
- "port_b": {
- "type": "hy2_4p",
- "standard": "port_io",
- "positions": {
- "1": "gpio:17",
- "2": "gpio:52",
- "3": "pwr:5v",
- "4": "pwr:gnd"
- }
- },
- "port_c": {
- "type": "hy2_4p",
- "standard": "port_uart",
- "positions": {
- "1": "gpio:7",
- "2": "gpio:6",
- "3": "pwr:5v",
- "4": "pwr:gnd"
- }
- },
- "mbus": {
- "type": "mbus",
- "positions": {
- "1": "pwr:gnd",
- "2": "gpio:16",
- "3": "pwr:gnd",
- "4": "gpio:17",
- "5": "pwr:gnd",
- "6": "chip:en",
- "7": "gpio:18",
- "8": "gpio:45",
- "9": "gpio:19",
- "10": "gpio:52",
- "11": "gpio:5",
- "12": "pwr:3v3",
- "13": "gpio:38",
- "14": "gpio:37",
- "15": "gpio:7",
- "16": "gpio:6",
- "17": "gpio:31",
- "18": "gpio:32",
- "19": "gpio:3",
- "20": "gpio:4",
- "21": "gpio:2",
- "22": "gpio:48",
- "23": "gpio:47",
- "24": "gpio:35",
- "25": "nc",
- "26": "gpio:51",
- "27": "nc",
- "28": "pwr:5v",
- "29": "nc",
- "30": "pwr:bat"
- }
- }
- }
-}
diff --git a/extras/board_spec/generated/resolved/m5stack_tab5x+lcd=st7123.json b/extras/board_spec/generated/resolved/m5stack_tab5x+lcd=st7123.json
deleted file mode 100644
index 4768778a..00000000
--- a/extras/board_spec/generated/resolved/m5stack_tab5x+lcd=st7123.json
+++ /dev/null
@@ -1,551 +0,0 @@
-{
- "schema_version": 1,
- "id": "m5stack_tab5x",
- "name": "M5Tab5X",
- "official_name": "M5Stack Tab5X",
- "aliases": [
- "tab5x",
- "tab5 x"
- ],
- "legacy_board_id": 35,
- "chip": "esp32p4",
- "spec": {
- "display": {
- "resolution": [
- 720,
- 1280
- ],
- "touch": true
- },
- "storage": {
- "psram_mb": 32,
- "sd": true,
- "psram_mode": "opi"
- }
- },
- "pins": {
- "2": {
- "roles": [
- "conn:mbus.21"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "3": {
- "roles": [
- "conn:mbus.19"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "4": {
- "roles": [
- "conn:mbus.20"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "5": {
- "roles": [
- "conn:mbus.11"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "6": {
- "roles": [
- "conn:port_c.2",
- "conn:mbus.16"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "7": {
- "roles": [
- "conn:port_c.1",
- "conn:mbus.15"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "8": {
- "roles": [
- "bus:wifi_sdio.d3"
- ]
- },
- "9": {
- "roles": [
- "bus:wifi_sdio.d2"
- ]
- },
- "10": {
- "roles": [
- "bus:wifi_sdio.d1"
- ]
- },
- "11": {
- "roles": [
- "bus:wifi_sdio.d0"
- ]
- },
- "12": {
- "roles": [
- "bus:wifi_sdio.clk"
- ]
- },
- "13": {
- "roles": [
- "bus:wifi_sdio.cmd"
- ]
- },
- "16": {
- "roles": [
- "conn:mbus.2"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "17": {
- "roles": [
- "conn:port_b.1",
- "conn:mbus.4"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "18": {
- "roles": [
- "conn:mbus.7"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "19": {
- "roles": [
- "conn:mbus.9"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "22": {
- "roles": [
- "dev:backlight.pwm"
- ],
- "detect_class": "down"
- },
- "23": {
- "roles": [
- "dev:touch.int"
- ]
- },
- "31": {
- "roles": [
- "bus:internal_i2c.sda",
- "bus:touch_i2c.sda",
- "conn:mbus.17"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "32": {
- "roles": [
- "bus:internal_i2c.scl",
- "bus:touch_i2c.scl",
- "conn:mbus.18"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "35": {
- "roles": [
- "conn:mbus.24"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "37": {
- "roles": [
- "conn:mbus.14"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "38": {
- "roles": [
- "conn:mbus.13"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "39": {
- "roles": [
- "bus:sdmmc.d0",
- "dev:sd.d0"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "40": {
- "roles": [
- "bus:sdmmc.d1",
- "dev:sd.d1"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "41": {
- "roles": [
- "bus:sdmmc.d2",
- "dev:sd.d2"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "42": {
- "roles": [
- "bus:sdmmc.d3",
- "dev:sd.d3"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "43": {
- "roles": [
- "bus:sdmmc.clk",
- "dev:sd.clk"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "44": {
- "roles": [
- "bus:sdmmc.cmd",
- "dev:sd.cmd"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "45": {
- "roles": [
- "conn:mbus.8"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "47": {
- "roles": [
- "conn:mbus.23"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "48": {
- "roles": [
- "conn:mbus.22"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "51": {
- "roles": [
- "conn:mbus.26"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "52": {
- "roles": [
- "conn:port_b.2",
- "conn:mbus.10"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "53": {
- "roles": [
- "bus:port_a_i2c.sda",
- "conn:port_a.2"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "54": {
- "roles": [
- "bus:port_a_i2c.scl",
- "conn:port_a.1"
- ],
- "verified": {
- "roles": "generated"
- }
- }
- },
- "buses": {
- "display_dsi": {
- "kind": "dsi",
- "signals": [],
- "preferred_host": 0,
- "lane_num": 2,
- "freq": 1040,
- "ldo_chan_id": 3,
- "ldo_voltage_mv": 2500,
- "fixed": true
- },
- "internal_i2c": {
- "kind": "i2c",
- "signals": [
- "sda",
- "scl"
- ],
- "preferred_host": 1,
- "freq": 100000,
- "fixed": true,
- "verified": {
- "signals": "generated",
- "preferred_host": "generated",
- "freq": "generated"
- }
- },
- "touch_i2c": {
- "kind": "i2c",
- "signals": [
- "sda",
- "scl"
- ],
- "preferred_host": 1,
- "freq": 400000,
- "fixed": true,
- "verified": {
- "signals": "generated",
- "preferred_host": "generated",
- "freq": "generated"
- }
- },
- "port_a_i2c": {
- "kind": "i2c",
- "signals": [
- "sda",
- "scl"
- ],
- "preferred_host": 1,
- "fixed": true,
- "verified": {
- "signals": "generated",
- "preferred_host": "generated"
- }
- },
- "sdmmc": {
- "kind": "sdmmc",
- "signals": [
- "clk",
- "cmd",
- "d0",
- "d1",
- "d2",
- "d3"
- ],
- "preferred_host": 0,
- "fixed": false
- },
- "wifi_sdio": {
- "kind": "sdmmc",
- "signals": [
- "clk",
- "cmd",
- "d0",
- "d1",
- "d2",
- "d3"
- ],
- "fixed": false
- }
- },
- "devices": {
- "lcd": {
- "kind": "display",
- "bus": "display_dsi",
- "part": "st7123",
- "spec": {
- "width": 720,
- "height": 1280,
- "memory_width": 720,
- "memory_height": 1280,
- "rotation_offset": 0,
- "readable": true,
- "rgb_order": true,
- "dpi_freq_mhz": 80,
- "hsync_back_porch": 40,
- "hsync_pulse_width": 2,
- "hsync_front_porch": 40,
- "vsync_back_porch": 8,
- "vsync_pulse_width": 2,
- "vsync_front_porch": 220
- }
- },
- "touch": {
- "kind": "touch",
- "part": "gt911",
- "bus": "touch_i2c",
- "spec": {
- "x_max": 719,
- "y_max": 1279,
- "rotation_offset": 0
- },
- "signals": {
- "int": "gpio:23"
- },
- "verified": {
- "signals": "generated"
- }
- },
- "ioe1": {
- "kind": "io_expander",
- "part": "pi4io",
- "bus": "internal_i2c",
- "i2c_addr": "0x43"
- },
- "ioe2": {
- "kind": "io_expander",
- "part": "pi4io",
- "bus": "internal_i2c",
- "i2c_addr": "0x44"
- },
- "backlight": {
- "kind": "backlight",
- "spec": {
- "freq": 44100,
- "channel": 7,
- "invert": false,
- "offset": 0
- },
- "verified": {
- "spec": "generated",
- "signals": "generated"
- },
- "signals": {
- "pwm": "gpio:22"
- }
- },
- "sd": {
- "kind": "sd",
- "part": "sd_slot",
- "bus": "sdmmc",
- "verified": {
- "bus": "generated",
- "signals": "generated",
- "derived": "generated"
- },
- "signals": {
- "d0": "gpio:39",
- "d1": "gpio:40",
- "d2": "gpio:41",
- "d3": "gpio:42",
- "clk": "gpio:43",
- "cmd": "gpio:44"
- },
- "derived": {
- "modes": [
- "sdio1",
- "sdio4"
- ]
- }
- },
- "psram": {
- "kind": "psram",
- "part": "psram"
- }
- },
- "connectors": {
- "port_a": {
- "type": "hy2_4p",
- "standard": "port_i2c",
- "positions": {
- "1": "gpio:54",
- "2": "gpio:53",
- "3": "pwr:5v",
- "4": "pwr:gnd"
- }
- },
- "port_b": {
- "type": "hy2_4p",
- "standard": "port_io",
- "positions": {
- "1": "gpio:17",
- "2": "gpio:52",
- "3": "pwr:5v",
- "4": "pwr:gnd"
- }
- },
- "port_c": {
- "type": "hy2_4p",
- "standard": "port_uart",
- "positions": {
- "1": "gpio:7",
- "2": "gpio:6",
- "3": "pwr:5v",
- "4": "pwr:gnd"
- }
- },
- "mbus": {
- "type": "mbus",
- "positions": {
- "1": "pwr:gnd",
- "2": "gpio:16",
- "3": "pwr:gnd",
- "4": "gpio:17",
- "5": "pwr:gnd",
- "6": "chip:en",
- "7": "gpio:18",
- "8": "gpio:45",
- "9": "gpio:19",
- "10": "gpio:52",
- "11": "gpio:5",
- "12": "pwr:3v3",
- "13": "gpio:38",
- "14": "gpio:37",
- "15": "gpio:7",
- "16": "gpio:6",
- "17": "gpio:31",
- "18": "gpio:32",
- "19": "gpio:3",
- "20": "gpio:4",
- "21": "gpio:2",
- "22": "gpio:48",
- "23": "gpio:47",
- "24": "gpio:35",
- "25": "nc",
- "26": "gpio:51",
- "27": "nc",
- "28": "pwr:5v",
- "29": "nc",
- "30": "pwr:bat"
- }
- }
- }
-}
diff --git a/extras/board_spec/generated/resolved/m5stampc3.json b/extras/board_spec/generated/resolved/m5stampc3.json
deleted file mode 100644
index 939941db..00000000
--- a/extras/board_spec/generated/resolved/m5stampc3.json
+++ /dev/null
@@ -1,187 +0,0 @@
-{
- "schema_version": 1,
- "id": "m5stampc3",
- "name": "M5StampC3",
- "official_name": "M5Stack Stamp-C3",
- "official_name_verified": true,
- "legacy_board_id": 134,
- "chip": "esp32c3",
- "spec": {
- "links": {
- "product": "https://docs.m5stack.com/en/core/Stamp-C3",
- "schematic": "https://static-cdn.m5stack.com/resource/docs/products/core/stamp_c3/stamp_c3_sch_01.webp",
- "verified": {
- "product": "datasheet",
- "schematic": "datasheet"
- }
- }
- },
- "pins": {
- "0": {
- "roles": [
- "conn:stamp_left.12"
- ],
- "verified": {
- "roles": "datasheet"
- }
- },
- "1": {
- "roles": [
- "conn:stamp_left.11"
- ],
- "verified": {
- "roles": "datasheet"
- }
- },
- "4": {
- "roles": [
- "conn:stamp_left.2"
- ],
- "verified": {
- "roles": "datasheet"
- }
- },
- "5": {
- "roles": [
- "conn:stamp_left.3"
- ],
- "verified": {
- "roles": "datasheet"
- }
- },
- "6": {
- "roles": [
- "conn:stamp_left.4"
- ],
- "verified": {
- "roles": "datasheet"
- }
- },
- "7": {
- "roles": [
- "conn:stamp_left.5"
- ],
- "verified": {
- "roles": "datasheet"
- }
- },
- "8": {
- "roles": [
- "conn:stamp_left.6"
- ],
- "verified": {
- "roles": "datasheet"
- }
- },
- "9": {
- "roles": [
- "conn:stamp_right.5"
- ],
- "verified": {
- "roles": "datasheet"
- }
- },
- "10": {
- "roles": [
- "conn:stamp_left.7"
- ],
- "verified": {
- "roles": "datasheet"
- }
- },
- "18": {
- "roles": [
- "conn:stamp_right.7"
- ],
- "verified": {
- "roles": "datasheet"
- }
- },
- "19": {
- "roles": [
- "conn:stamp_right.8"
- ],
- "verified": {
- "roles": "datasheet"
- }
- },
- "20": {
- "roles": [
- "bus:console_uart.rx",
- "conn:stamp_right.3"
- ],
- "note": "CH9102 TXD holds UART0 RX high against the internal pulldown",
- "verified": {
- "roles": "datasheet"
- },
- "measured_by": {
- "roles": "docs/investigations/c3-stamp-displayless-2026-09-29.md"
- }
- },
- "21": {
- "roles": [
- "bus:console_uart.tx",
- "conn:stamp_right.2"
- ],
- "verified": {
- "roles": "datasheet"
- }
- }
- },
- "buses": {
- "console_uart": {
- "kind": "uart",
- "signals": [
- "tx",
- "rx"
- ],
- "preferred_host": 0,
- "fixed": true
- }
- },
- "devices": {},
- "connectors": {
- "stamp_left": {
- "type": "logical_terminals_12",
- "positions": {
- "1": "pwr:gnd",
- "2": "gpio:4",
- "3": "gpio:5",
- "4": "gpio:6",
- "5": "gpio:7",
- "6": "gpio:8",
- "7": "gpio:10",
- "8": "pwr:5v",
- "9": "pwr:gnd",
- "10": "pwr:5v",
- "11": "gpio:1",
- "12": "gpio:0"
- },
- "note": "Positions counted top to bottom in the official component-side PinMap with antenna at the top and USB at the bottom; not schematic connector pin numbers.",
- "verified": {
- "positions": "datasheet"
- },
- "group": "pins"
- },
- "stamp_right": {
- "type": "logical_terminals_10",
- "positions": {
- "1": "pwr:3v3",
- "2": "gpio:21",
- "3": "gpio:20",
- "4": "chip:en",
- "5": "gpio:9",
- "6": "pwr:gnd",
- "7": "gpio:18",
- "8": "gpio:19",
- "9": "pwr:5v",
- "10": "pwr:gnd"
- },
- "note": "Positions counted top to bottom in the official component-side PinMap with antenna at the top and USB at the bottom; not schematic connector pin numbers. GPIO18/19 are native USB D-/D+ pads.",
- "verified": {
- "positions": "datasheet"
- },
- "group": "pins"
- }
- }
-}
diff --git a/extras/board_spec/generated/resolved/m5stampc3u.json b/extras/board_spec/generated/resolved/m5stampc3u.json
deleted file mode 100644
index be3884d3..00000000
--- a/extras/board_spec/generated/resolved/m5stampc3u.json
+++ /dev/null
@@ -1,179 +0,0 @@
-{
- "schema_version": 1,
- "id": "m5stampc3u",
- "name": "M5StampC3U",
- "official_name": "M5Stack Stamp-C3U",
- "official_name_verified": true,
- "legacy_board_id": 135,
- "chip": "esp32c3",
- "spec": {
- "links": {
- "product": "https://docs.m5stack.com/en/core/Stamp-C3U",
- "schematic": "https://static-cdn.m5stack.com/resource/docs/products/core/stamp_c3u/stamp_c3u_sch_01.webp",
- "verified": {
- "product": "datasheet",
- "schematic": "datasheet"
- }
- }
- },
- "pins": {
- "0": {
- "roles": [
- "conn:stamp_left.12"
- ],
- "verified": {
- "roles": "datasheet"
- }
- },
- "1": {
- "roles": [
- "conn:stamp_left.11"
- ],
- "verified": {
- "roles": "datasheet"
- }
- },
- "3": {
- "roles": [
- "conn:stamp_left.1"
- ],
- "verified": {
- "roles": "datasheet"
- }
- },
- "4": {
- "roles": [
- "conn:stamp_left.2"
- ],
- "verified": {
- "roles": "datasheet"
- }
- },
- "5": {
- "roles": [
- "conn:stamp_left.3"
- ],
- "verified": {
- "roles": "datasheet"
- }
- },
- "6": {
- "roles": [
- "conn:stamp_left.4"
- ],
- "verified": {
- "roles": "datasheet"
- }
- },
- "7": {
- "roles": [
- "conn:stamp_left.5"
- ],
- "verified": {
- "roles": "datasheet"
- }
- },
- "8": {
- "roles": [
- "conn:stamp_left.6"
- ],
- "verified": {
- "roles": "datasheet"
- }
- },
- "9": {
- "roles": [
- "conn:stamp_right.5"
- ],
- "verified": {
- "roles": "datasheet"
- }
- },
- "10": {
- "roles": [
- "conn:stamp_left.7"
- ],
- "verified": {
- "roles": "datasheet"
- }
- },
- "18": {
- "roles": [
- "conn:stamp_right.7"
- ],
- "verified": {
- "roles": "datasheet"
- }
- },
- "19": {
- "roles": [
- "conn:stamp_right.8"
- ],
- "verified": {
- "roles": "datasheet"
- }
- },
- "20": {
- "roles": [
- "conn:stamp_right.3"
- ],
- "verified": {
- "roles": "datasheet"
- }
- },
- "21": {
- "roles": [
- "conn:stamp_right.2"
- ],
- "verified": {
- "roles": "datasheet"
- }
- }
- },
- "buses": {},
- "devices": {},
- "connectors": {
- "stamp_left": {
- "type": "logical_terminals_12",
- "positions": {
- "1": "gpio:3",
- "2": "gpio:4",
- "3": "gpio:5",
- "4": "gpio:6",
- "5": "gpio:7",
- "6": "gpio:8",
- "7": "gpio:10",
- "8": "pwr:5v",
- "9": "pwr:gnd",
- "10": "pwr:5v",
- "11": "gpio:1",
- "12": "gpio:0"
- },
- "note": "Positions counted top to bottom in the official component-side PinMap with antenna at the top and USB at the bottom; not schematic connector pin numbers.",
- "verified": {
- "positions": "datasheet"
- },
- "group": "pins"
- },
- "stamp_right": {
- "type": "logical_terminals_10",
- "positions": {
- "1": "pwr:3v3",
- "2": "gpio:21",
- "3": "gpio:20",
- "4": "chip:en",
- "5": "gpio:9",
- "6": "pwr:gnd",
- "7": "gpio:18",
- "8": "gpio:19",
- "9": "pwr:5v",
- "10": "pwr:gnd"
- },
- "note": "Positions counted top to bottom in the official component-side PinMap with antenna at the top and USB at the bottom; not schematic connector pin numbers. GPIO18/19 are native USB D-/D+ pads. The Specifications GPIO list includes G22, while the official PinMap and schematic identify RX0 as GPIO20; the terminal assignment follows the PinMap/schematic.",
- "verified": {
- "positions": "datasheet"
- },
- "group": "pins"
- }
- }
-}
diff --git a/extras/board_spec/generated/resolved/m5stampc5.json b/extras/board_spec/generated/resolved/m5stampc5.json
deleted file mode 100644
index 78763cad..00000000
--- a/extras/board_spec/generated/resolved/m5stampc5.json
+++ /dev/null
@@ -1,242 +0,0 @@
-{
- "schema_version": 1,
- "id": "m5stampc5",
- "name": "M5StampC5",
- "official_name": "M5Stack Stamp-C5",
- "official_name_verified": true,
- "legacy_board_id": 153,
- "chip": "esp32c5",
- "spec": {
- "links": {
- "product": "https://docs.m5stack.com/en/core/Stamp-C5",
- "schematic": "https://m5stack-doc.oss-cn-shenzhen.aliyuncs.com/1258/S016_StampC5_V0.3_SCH_PDF_20260207_2026_02_07_11_34_57.pdf",
- "verified": {
- "product": "datasheet",
- "schematic": "datasheet"
- }
- }
- },
- "pins": {
- "0": {
- "roles": [
- "conn:ext_fpc.4"
- ],
- "verified": {
- "roles": "datasheet"
- }
- },
- "1": {
- "roles": [
- "conn:stamp_left.2"
- ],
- "verified": {
- "roles": "datasheet"
- }
- },
- "2": {
- "roles": [
- "conn:stamp_left.3"
- ],
- "verified": {
- "roles": "datasheet"
- }
- },
- "3": {
- "roles": [
- "conn:stamp_left.4"
- ],
- "verified": {
- "roles": "datasheet"
- }
- },
- "4": {
- "roles": [
- "conn:extra_gpio.1"
- ],
- "verified": {
- "roles": "datasheet"
- }
- },
- "5": {
- "roles": [
- "conn:stamp_right.1"
- ],
- "verified": {
- "roles": "datasheet"
- }
- },
- "6": {
- "roles": [
- "conn:stamp_right.2"
- ],
- "verified": {
- "roles": "datasheet"
- }
- },
- "7": {
- "roles": [
- "conn:stamp_right.3"
- ],
- "verified": {
- "roles": "datasheet"
- }
- },
- "8": {
- "roles": [
- "conn:stamp_right.4"
- ],
- "verified": {
- "roles": "datasheet"
- }
- },
- "9": {
- "roles": [
- "conn:stamp_right.5"
- ],
- "verified": {
- "roles": "datasheet"
- }
- },
- "10": {
- "roles": [
- "conn:stamp_right.6"
- ],
- "verified": {
- "roles": "datasheet"
- }
- },
- "11": {
- "roles": [
- "conn:ext_fpc.10"
- ],
- "verified": {
- "roles": "datasheet"
- }
- },
- "12": {
- "roles": [
- "conn:ext_fpc.12"
- ],
- "verified": {
- "roles": "datasheet"
- }
- },
- "23": {
- "roles": [
- "conn:ext_fpc.3"
- ],
- "verified": {
- "roles": "datasheet"
- }
- },
- "24": {
- "roles": [
- "conn:ext_fpc.5"
- ],
- "verified": {
- "roles": "datasheet"
- }
- },
- "25": {
- "roles": [
- "conn:ext_fpc.6"
- ],
- "verified": {
- "roles": "datasheet"
- }
- },
- "26": {
- "roles": [
- "conn:ext_fpc.8"
- ],
- "verified": {
- "roles": "datasheet"
- }
- },
- "27": {
- "roles": [
- "conn:ext_fpc.9"
- ],
- "verified": {
- "roles": "datasheet"
- }
- },
- "28": {
- "roles": [
- "conn:stamp_right.7"
- ],
- "verified": {
- "roles": "datasheet"
- }
- }
- },
- "buses": {},
- "devices": {},
- "connectors": {
- "stamp_left": {
- "type": "logical_terminals_7",
- "positions": {
- "1": "pwr:3v3",
- "2": "gpio:1",
- "3": "gpio:2",
- "4": "gpio:3",
- "5": "pwr:bat",
- "6": "pwr:vbus",
- "7": "pwr:gnd"
- },
- "note": "JP1 positions 1-7 follow the official CELL Header schematic, top to bottom in component-side PinMap.",
- "verified": {
- "positions": "datasheet"
- },
- "group": "pins"
- },
- "stamp_right": {
- "type": "logical_terminals_7",
- "positions": {
- "1": "gpio:5",
- "2": "gpio:6",
- "3": "gpio:7",
- "4": "gpio:8",
- "5": "gpio:9",
- "6": "gpio:10",
- "7": "gpio:28"
- },
- "note": "JP2 positions 1-7 follow the official CELL Header schematic. GPIO28 is also BOOT and the blue LED control.",
- "verified": {
- "positions": "datasheet"
- },
- "group": "pins"
- },
- "extra_gpio": {
- "type": "logical_terminals_1",
- "positions": {
- "1": "gpio:4"
- },
- "note": "Single exposed GPIO4 pad between the GPIO2/3 pads, documented in the official PinMap and as TP1 in the CELL Header schematic. It is separate from the seven side holes.",
- "verified": {
- "positions": "datasheet"
- }
- },
- "ext_fpc": {
- "type": "logical_terminals_12",
- "positions": {
- "1": "pwr:3v3",
- "2": "pwr:3v3",
- "3": "gpio:23",
- "4": "gpio:0",
- "5": "gpio:24",
- "6": "gpio:25",
- "7": "pwr:gnd",
- "8": "gpio:26",
- "9": "gpio:27",
- "10": "gpio:11",
- "11": "pwr:gnd",
- "12": "gpio:12"
- },
- "note": "Rear 12-pin 0.5mm FPC connector JP3. Numbers follow the official EXT.FPC table. GPIO11 TXD connects through 499 ohms. Check cable terminal ordering against the official diagram. The FPC connector is unpopulated on Stamp-C5 and populated on Stamp-C5 DIP, as shown in the official Product Comparison.",
- "verified": {
- "positions": "datasheet"
- }
- }
- }
-}
diff --git a/extras/board_spec/generated/resolved/m5stampc6.json b/extras/board_spec/generated/resolved/m5stampc6.json
deleted file mode 100644
index 3aa4ae34..00000000
--- a/extras/board_spec/generated/resolved/m5stampc6.json
+++ /dev/null
@@ -1,11 +0,0 @@
-{
- "schema_version": 1,
- "id": "m5stampc6",
- "name": "M5StampC6",
- "official_name": "M5Stack StampC6",
- "legacy_board_id": 154,
- "chip": "esp32c6",
- "pins": {},
- "buses": {},
- "devices": {}
-}
diff --git a/extras/board_spec/generated/resolved/m5stamplc.json b/extras/board_spec/generated/resolved/m5stamplc.json
deleted file mode 100644
index 77fabff9..00000000
--- a/extras/board_spec/generated/resolved/m5stamplc.json
+++ /dev/null
@@ -1,426 +0,0 @@
-{
- "schema_version": 1,
- "id": "m5stamplc",
- "name": "M5StamPLC",
- "official_name": "M5Stack StamPLC",
- "official_name_verified": true,
- "aliases": [
- "stamplc",
- "stamp plc"
- ],
- "legacy_board_id": 21,
- "chip": "esp32s3",
- "spec": {
- "display": {
- "resolution": [
- 135,
- 240
- ],
- "touch": false
- },
- "storage": {
- "psram_mb": 0,
- "sd": true
- },
- "links": {
- "product": "https://docs.m5stack.com/en/core/StamPLC",
- "schematic": "https://m5stack-doc.oss-cn-shenzhen.aliyuncs.com/1129/K141_sch_StamPLC_V10_CPU.pdf",
- "verified": {
- "product": "datasheet",
- "schematic": "datasheet"
- }
- }
- },
- "pins": {
- "1": {
- "roles": [
- "bus:port_a_i2c.scl",
- "conn:port_a.1"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "2": {
- "roles": [
- "bus:port_a_i2c.sda",
- "conn:port_a.2"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "3": {
- "roles": [
- "dev:lcd.rst",
- "conn:ext_bus.9"
- ],
- "verified": {
- "roles": "datasheet"
- }
- },
- "4": {
- "roles": [
- "conn:grove_c.1"
- ],
- "verified": {
- "roles": "datasheet"
- }
- },
- "5": {
- "roles": [
- "conn:grove_c.2"
- ],
- "verified": {
- "roles": "datasheet"
- }
- },
- "6": {
- "roles": [
- "dev:lcd.dc"
- ]
- },
- "7": {
- "roles": [
- "bus:main_spi.sclk",
- "dev:sd.clk",
- "conn:ext_bus.12"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "8": {
- "roles": [
- "bus:main_spi.mosi",
- "dev:sd.cmd",
- "conn:ext_bus.13"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "9": {
- "roles": [
- "bus:main_spi.miso",
- "dev:sd.d0",
- "conn:ext_bus.11"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "10": {
- "roles": [
- "dev:sd.d3"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "11": {
- "roles": [
- "conn:ext_bus.14"
- ],
- "verified": {
- "roles": "datasheet"
- }
- },
- "12": {
- "roles": [
- "dev:lcd.cs"
- ]
- },
- "13": {
- "roles": [
- "bus:internal_i2c.sda",
- "conn:ext_bus.8"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "14": {
- "roles": [
- "conn:ext_bus.10"
- ],
- "verified": {
- "roles": "datasheet"
- }
- },
- "15": {
- "roles": [
- "bus:internal_i2c.scl",
- "conn:ext_bus.7"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "21": {
- "roles": [
- "dev:led.data"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "40": {
- "roles": [
- "conn:ext_bus.15"
- ],
- "verified": {
- "roles": "datasheet"
- }
- },
- "41": {
- "roles": [
- "conn:ext_bus.16"
- ],
- "verified": {
- "roles": "datasheet"
- }
- },
- "44": {
- "roles": [
- "dev:buzzer.data_out"
- ],
- "note": "Internal buzzer"
- }
- },
- "buses": {
- "main_spi": {
- "kind": "spi",
- "signals": [
- "sclk",
- "mosi",
- "miso"
- ],
- "preferred_host": "SPI2_HOST",
- "fixed": false,
- "freq": 40000000,
- "freq_read": 16000000,
- "verified": {
- "signals": "generated",
- "preferred_host": "generated",
- "freq": "generated",
- "freq_read": "generated"
- }
- },
- "internal_i2c": {
- "kind": "i2c",
- "signals": [
- "sda",
- "scl"
- ],
- "preferred_host": 1,
- "freq": 400000,
- "fixed": false,
- "verified": {
- "signals": "generated",
- "preferred_host": "generated",
- "freq": "generated"
- }
- },
- "port_a_i2c": {
- "kind": "i2c",
- "signals": [
- "sda",
- "scl"
- ],
- "preferred_host": 0,
- "fixed": false,
- "verified": {
- "signals": "generated",
- "preferred_host": "generated"
- }
- }
- },
- "devices": {
- "lcd": {
- "kind": "display",
- "part": "st7789v2",
- "bus": "main_spi",
- "spec": {
- "width": 135,
- "height": 240,
- "offset_x": 52,
- "offset_y": 40,
- "rotation_offset": 1,
- "invert": true,
- "readable": true,
- "three_wire": true
- },
- "signals": {
- "rst": "gpio:3",
- "dc": "gpio:6",
- "cs": "gpio:12"
- },
- "verified": {
- "signals": "generated"
- }
- },
- "backlight": {
- "kind": "backlight",
- "bus": "internal_i2c",
- "i2c_addr": "0x43",
- "verified": {
- "i2c_addr": "datasheet"
- }
- },
- "sd": {
- "kind": "sd",
- "part": "sd_slot",
- "bus": "main_spi",
- "verified": {
- "bus": "generated",
- "signals": "generated",
- "derived": "generated"
- },
- "signals": {
- "clk": "gpio:7",
- "cmd": "gpio:8",
- "d0": "gpio:9",
- "d3": "gpio:10"
- },
- "derived": {
- "modes": [
- "spi",
- "sdio1"
- ],
- "bus": "main_spi",
- "cs": "gpio:10"
- }
- },
- "led": {
- "kind": "led_strip",
- "part": "sk6812",
- "verified": {
- "part": "datasheet",
- "signals": "generated"
- },
- "signals": {
- "data": "gpio:21"
- }
- },
- "buzzer": {
- "kind": "speaker",
- "signals": {
- "data_out": "gpio:44"
- }
- },
- "ioe": {
- "kind": "io_expander",
- "part": "pi4io",
- "bus": "internal_i2c",
- "i2c_addr": "0x43",
- "pins": {
- "p2": {
- "roles": [
- "dev:btn_a.in"
- ]
- },
- "p1": {
- "roles": [
- "dev:btn_b.in"
- ]
- },
- "p0": {
- "roles": [
- "dev:btn_c.in"
- ]
- }
- }
- },
- "btn_a": {
- "kind": "button",
- "part": "button",
- "spec": {
- "active_low": true,
- "pull": "internal_up"
- },
- "signals": {
- "in": "pin:ioe.p2"
- },
- "verified": {
- "signals": "generated"
- }
- },
- "btn_b": {
- "kind": "button",
- "part": "button",
- "spec": {
- "active_low": true,
- "pull": "internal_up"
- },
- "signals": {
- "in": "pin:ioe.p1"
- },
- "verified": {
- "signals": "generated"
- }
- },
- "btn_c": {
- "kind": "button",
- "part": "button",
- "spec": {
- "active_low": true,
- "pull": "internal_up"
- },
- "signals": {
- "in": "pin:ioe.p0"
- },
- "verified": {
- "signals": "generated"
- }
- }
- },
- "connectors": {
- "port_a": {
- "type": "hy2_4p",
- "standard": "port_i2c",
- "positions": {
- "1": "gpio:1",
- "2": "gpio:2",
- "3": "pwr:5v",
- "4": "pwr:gnd"
- }
- },
- "ext_bus": {
- "type": "logical_terminals_16",
- "positions": {
- "1": "pwr:vin",
- "2": "pwr:gnd",
- "3": "pwr:gnd",
- "4": "pwr:gnd",
- "5": "pwr:gnd",
- "6": "pwr:5vout",
- "7": "gpio:15",
- "8": "gpio:13",
- "9": "gpio:3",
- "10": "gpio:14",
- "11": "gpio:9",
- "12": "gpio:7",
- "13": "gpio:8",
- "14": "gpio:11",
- "15": "gpio:40",
- "16": "gpio:41"
- },
- "note": "Exposed StamPLC-Bus J9; terminal numbering follows the official StamPLC-Bus table and IO schematic. SCL/SDA, PHY_RST/INT and SPI signals share internal peripherals. Isolated input, relay, CAN and RS485 terminals are not direct GPIO connections and are outside this catalog entry.",
- "verified": {
- "positions": "datasheet"
- }
- },
- "grove_c": {
- "type": "hy2_4p",
- "standard": "port_uart",
- "note": "Product marking is PORT.C: white GPIO4, yellow GPIO5, red 5V, black GND. M5Unified does not assign StamPLC Port C in its package pin table, so this is cataloged as the physical grove_c connector rather than the port_c contract name.",
- "positions": {
- "1": "gpio:4",
- "2": "gpio:5",
- "3": "pwr:5v",
- "4": "pwr:gnd"
- }
- }
- }
-}
diff --git a/extras/board_spec/generated/resolved/m5stampp4.json b/extras/board_spec/generated/resolved/m5stampp4.json
deleted file mode 100644
index fe0b3460..00000000
--- a/extras/board_spec/generated/resolved/m5stampp4.json
+++ /dev/null
@@ -1,590 +0,0 @@
-{
- "schema_version": 1,
- "id": "m5stampp4",
- "name": "M5StampP4",
- "official_name": "M5Stack Stamp-P4",
- "official_name_verified": true,
- "legacy_board_id": 150,
- "chip": "esp32p4",
- "spec": {
- "links": {
- "product": "https://docs.m5stack.com/en/core/Stamp-P4",
- "schematic": "https://m5stack-doc.oss-cn-shenzhen.aliyuncs.com/1218/SCH_Stamp-P4_2026_03_16_17_23_06.pdf",
- "verified": {
- "product": "datasheet",
- "schematic": "datasheet"
- }
- }
- },
- "pins": {
- "0": {
- "roles": [
- "conn:stamp_pads.11"
- ],
- "verified": {
- "roles": "datasheet"
- }
- },
- "1": {
- "roles": [
- "conn:stamp_pads.9"
- ],
- "verified": {
- "roles": "datasheet"
- }
- },
- "2": {
- "roles": [
- "conn:stamp_pads.37"
- ],
- "verified": {
- "roles": "datasheet"
- }
- },
- "3": {
- "roles": [
- "conn:stamp_pads.45"
- ],
- "verified": {
- "roles": "datasheet"
- }
- },
- "4": {
- "roles": [
- "conn:stamp_pads.16"
- ],
- "verified": {
- "roles": "datasheet"
- }
- },
- "5": {
- "roles": [
- "conn:stamp_pads.35"
- ],
- "verified": {
- "roles": "datasheet"
- }
- },
- "6": {
- "roles": [
- "conn:stamp_pads.18"
- ],
- "verified": {
- "roles": "datasheet"
- }
- },
- "7": {
- "roles": [
- "conn:stamp_pads.8"
- ],
- "verified": {
- "roles": "datasheet"
- }
- },
- "8": {
- "roles": [
- "conn:stamp_pads.7"
- ],
- "verified": {
- "roles": "datasheet"
- }
- },
- "9": {
- "roles": [
- "conn:stamp_pads.6",
- "conn:camera_btb.16",
- "conn:sdio_btb.14"
- ],
- "verified": {
- "roles": "datasheet"
- }
- },
- "10": {
- "roles": [
- "conn:stamp_pads.5"
- ],
- "verified": {
- "roles": "datasheet"
- }
- },
- "11": {
- "roles": [
- "conn:stamp_pads.4",
- "conn:camera_btb.15",
- "conn:sdio_btb.16"
- ],
- "verified": {
- "roles": "datasheet"
- }
- },
- "12": {
- "roles": [
- "conn:stamp_pads.3"
- ],
- "verified": {
- "roles": "datasheet"
- }
- },
- "13": {
- "roles": [
- "conn:stamp_pads.29"
- ],
- "verified": {
- "roles": "datasheet"
- }
- },
- "14": {
- "roles": [
- "conn:stamp_pads.2"
- ],
- "verified": {
- "roles": "datasheet"
- }
- },
- "15": {
- "roles": [
- "conn:stamp_pads.1"
- ],
- "verified": {
- "roles": "datasheet"
- }
- },
- "16": {
- "roles": [
- "conn:stamp_pads.27"
- ],
- "verified": {
- "roles": "datasheet"
- }
- },
- "17": {
- "roles": [
- "conn:stamp_pads.26"
- ],
- "verified": {
- "roles": "datasheet"
- }
- },
- "18": {
- "roles": [
- "conn:stamp_pads.25"
- ],
- "verified": {
- "roles": "datasheet"
- }
- },
- "19": {
- "roles": [
- "conn:stamp_pads.24"
- ],
- "verified": {
- "roles": "datasheet"
- }
- },
- "20": {
- "roles": [
- "conn:stamp_pads.23"
- ],
- "verified": {
- "roles": "datasheet"
- }
- },
- "21": {
- "roles": [
- "conn:stamp_pads.22"
- ],
- "verified": {
- "roles": "datasheet"
- }
- },
- "22": {
- "roles": [
- "conn:stamp_pads.21"
- ],
- "verified": {
- "roles": "datasheet"
- }
- },
- "23": {
- "roles": [
- "conn:stamp_pads.20"
- ],
- "verified": {
- "roles": "datasheet"
- }
- },
- "26": {
- "roles": [
- "conn:stamp_pads.19"
- ],
- "verified": {
- "roles": "datasheet"
- }
- },
- "27": {
- "roles": [
- "conn:stamp_pads.17"
- ],
- "verified": {
- "roles": "datasheet"
- }
- },
- "28": {
- "roles": [
- "conn:stamp_pads.52"
- ],
- "verified": {
- "roles": "datasheet"
- }
- },
- "29": {
- "roles": [
- "conn:stamp_pads.54"
- ],
- "verified": {
- "roles": "datasheet"
- }
- },
- "30": {
- "roles": [
- "conn:stamp_pads.53"
- ],
- "verified": {
- "roles": "datasheet"
- }
- },
- "31": {
- "roles": [
- "conn:stamp_pads.51"
- ],
- "verified": {
- "roles": "datasheet"
- }
- },
- "32": {
- "roles": [
- "conn:stamp_pads.46"
- ],
- "verified": {
- "roles": "datasheet"
- }
- },
- "33": {
- "roles": [
- "conn:stamp_pads.50"
- ],
- "verified": {
- "roles": "datasheet"
- }
- },
- "34": {
- "roles": [
- "conn:stamp_pads.33"
- ],
- "verified": {
- "roles": "datasheet"
- }
- },
- "35": {
- "roles": [
- "conn:stamp_pads.36",
- "conn:stamp_pads.48"
- ],
- "verified": {
- "roles": "datasheet"
- }
- },
- "36": {
- "roles": [
- "conn:stamp_pads.47"
- ],
- "verified": {
- "roles": "datasheet"
- }
- },
- "37": {
- "roles": [
- "conn:stamp_pads.30"
- ],
- "verified": {
- "roles": "datasheet"
- }
- },
- "38": {
- "roles": [
- "conn:stamp_pads.32"
- ],
- "verified": {
- "roles": "datasheet"
- }
- },
- "39": {
- "roles": [
- "conn:stamp_pads.31"
- ],
- "verified": {
- "roles": "datasheet"
- }
- },
- "40": {
- "roles": [
- "conn:sdio_btb.19"
- ],
- "verified": {
- "roles": "datasheet"
- }
- },
- "41": {
- "roles": [
- "conn:stamp_pads.49"
- ],
- "verified": {
- "roles": "datasheet"
- }
- },
- "42": {
- "roles": [
- "conn:sdio_btb.5"
- ],
- "verified": {
- "roles": "datasheet"
- }
- },
- "43": {
- "roles": [
- "conn:sdio_btb.7"
- ],
- "verified": {
- "roles": "datasheet"
- }
- },
- "44": {
- "roles": [
- "conn:sdio_btb.9"
- ],
- "verified": {
- "roles": "datasheet"
- }
- },
- "45": {
- "roles": [
- "conn:sdio_btb.13"
- ],
- "verified": {
- "roles": "datasheet"
- }
- },
- "46": {
- "roles": [
- "conn:sdio_btb.11"
- ],
- "verified": {
- "roles": "datasheet"
- }
- },
- "47": {
- "roles": [
- "conn:sdio_btb.15"
- ],
- "verified": {
- "roles": "datasheet"
- }
- },
- "48": {
- "roles": [
- "conn:sdio_btb.17"
- ],
- "verified": {
- "roles": "datasheet"
- }
- },
- "49": {
- "roles": [
- "conn:stamp_pads.12"
- ],
- "verified": {
- "roles": "datasheet"
- }
- },
- "50": {
- "roles": [
- "conn:stamp_pads.10"
- ],
- "verified": {
- "roles": "datasheet"
- }
- },
- "51": {
- "roles": [
- "conn:sdio_btb.12"
- ],
- "verified": {
- "roles": "datasheet"
- }
- },
- "52": {
- "roles": [
- "conn:stamp_pads.55"
- ],
- "verified": {
- "roles": "datasheet"
- }
- },
- "53": {
- "roles": [
- "conn:camera_btb.3"
- ],
- "verified": {
- "roles": "datasheet"
- }
- },
- "54": {
- "roles": [
- "conn:camera_btb.2"
- ],
- "verified": {
- "roles": "datasheet"
- }
- }
- },
- "buses": {},
- "devices": {},
- "connectors": {
- "stamp_pads": {
- "type": "logical_terminals_65",
- "positions": {
- "1": "gpio:15",
- "2": "gpio:14",
- "3": "gpio:12",
- "4": "gpio:11",
- "5": "gpio:10",
- "6": "gpio:9",
- "7": "gpio:8",
- "8": "gpio:7",
- "9": "gpio:1",
- "10": "gpio:50",
- "11": "gpio:0",
- "12": "gpio:49",
- "13": "pwr:gnd",
- "14": "pwr:5vin",
- "15": "pwr:vbus",
- "16": "gpio:4",
- "17": "gpio:27",
- "18": "gpio:6",
- "19": "gpio:26",
- "20": "gpio:23",
- "21": "gpio:22",
- "22": "gpio:21",
- "23": "gpio:20",
- "24": "gpio:19",
- "25": "gpio:18",
- "26": "gpio:17",
- "27": "gpio:16",
- "28": "pwr:3v3",
- "29": "gpio:13",
- "30": "gpio:37",
- "31": "gpio:39",
- "32": "gpio:38",
- "33": "gpio:34",
- "34": "chip:en",
- "35": "gpio:5",
- "36": "gpio:35",
- "37": "gpio:2",
- "38": "pwr:gnd",
- "39": "pwr:sys_5v",
- "40": "fixed:usb2.dp",
- "41": "fixed:usb2.dn",
- "42": "pwr:gnd",
- "43": "chip:usb_dn",
- "44": "chip:usb_dp",
- "45": "gpio:3",
- "46": "gpio:32",
- "47": "gpio:36",
- "48": "gpio:35",
- "49": "gpio:41",
- "50": "gpio:33",
- "51": "gpio:31",
- "52": "gpio:28",
- "53": "gpio:30",
- "54": "gpio:29",
- "55": "gpio:52",
- "56": "pwr:gnd",
- "57": "fixed:mipi_dsi.d0n",
- "58": "fixed:mipi_dsi.d0p",
- "59": "pwr:gnd",
- "60": "fixed:mipi_dsi.clkp",
- "61": "fixed:mipi_dsi.clkn",
- "62": "pwr:gnd",
- "63": "fixed:mipi_dsi.d1n",
- "64": "fixed:mipi_dsi.d1p",
- "65": "pwr:gnd"
- },
- "note": "Numbers 1-65 follow STAMP1 in the official schematic. This logical order does not imply a uniform physical pitch. GPIO24/25 are represented as dedicated native USB D-/D+ endpoints; USB2_HOST and MIPI DSI pads are dedicated non-GPIO signals. GPIO35 reaches two pads (36 and 48).",
- "verified": {
- "positions": "datasheet"
- },
- "shared_gpio": [
- "36",
- "48"
- ]
- },
- "camera_btb": {
- "type": "logical_terminals_20",
- "positions": {
- "1": "pwr:gnd",
- "2": "gpio:54",
- "3": "gpio:53",
- "4": "pwr:gnd",
- "5": "fixed:mipi_csi.d0n",
- "6": "fixed:mipi_csi.d0p",
- "7": "pwr:gnd",
- "8": "fixed:mipi_csi.clkn",
- "9": "fixed:mipi_csi.clkp",
- "10": "pwr:gnd",
- "11": "pwr:gnd",
- "12": "fixed:mipi_csi.d1n",
- "13": "fixed:mipi_csi.d1p",
- "14": "pwr:3v3",
- "15": "gpio:11",
- "16": "gpio:9",
- "17": "pwr:gnd",
- "18": "pwr:gnd",
- "19": "pwr:gnd",
- "20": "pwr:gnd"
- },
- "note": "Exposed MIPI CSI camera BTB connector J2; terminal numbering follows the official schematic and PinMap. GPIO54=CAM_RST, GPIO53=CAM_MCLK, GPIO11=SDA, GPIO9=SCL.",
- "verified": {
- "positions": "datasheet"
- }
- },
- "sdio_btb": {
- "type": "logical_terminals_20",
- "positions": {
- "1": "pwr:gnd",
- "2": "pwr:gnd",
- "3": "pwr:gnd",
- "4": "pwr:sys_5v",
- "5": "gpio:42",
- "6": "pwr:sys_5v",
- "7": "gpio:43",
- "8": "pwr:3v3",
- "9": "gpio:44",
- "10": "pwr:3v3",
- "11": "gpio:46",
- "12": "gpio:51",
- "13": "gpio:45",
- "14": "gpio:9",
- "15": "gpio:47",
- "16": "gpio:11",
- "17": "gpio:48",
- "18": "pwr:gnd",
- "19": "gpio:40",
- "20": "pwr:gnd"
- },
- "note": "Exposed 20-pin SDIO BTB connector J3. Numbers follow the official schematic/PinMap. GPIO42 is SDIO_RST, GPIO43 CLK, GPIO44 CMD, GPIO45/46/47/48 D0/D1/D2/D3.",
- "verified": {
- "positions": "datasheet"
- }
- }
- }
-}
diff --git a/extras/board_spec/generated/resolved/m5stampp4x.json b/extras/board_spec/generated/resolved/m5stampp4x.json
deleted file mode 100644
index 5c0aaaf4..00000000
--- a/extras/board_spec/generated/resolved/m5stampp4x.json
+++ /dev/null
@@ -1,11 +0,0 @@
-{
- "schema_version": 1,
- "id": "m5stampp4x",
- "name": "M5StampP4X",
- "official_name": "M5StampP4X",
- "legacy_board_id": 156,
- "chip": "esp32p4",
- "pins": {},
- "buses": {},
- "devices": {}
-}
diff --git a/extras/board_spec/generated/resolved/m5stamppico.json b/extras/board_spec/generated/resolved/m5stamppico.json
deleted file mode 100644
index 26e0e20c..00000000
--- a/extras/board_spec/generated/resolved/m5stamppico.json
+++ /dev/null
@@ -1,201 +0,0 @@
-{
- "schema_version": 1,
- "id": "m5stamppico",
- "name": "M5StampPico",
- "official_name": "M5Stack Stamp-Pico",
- "official_name_verified": true,
- "legacy_board_id": 133,
- "chip": "esp32_d0wdq6",
- "spec": {
- "links": {
- "product": "https://docs.m5stack.com/en/core/Stamp-Pico",
- "schematic": "https://static-cdn.m5stack.com/resource/docs/products/core/stamp_pico/stamp_pico_sch_01.webp",
- "verified": {
- "product": "datasheet",
- "schematic": "datasheet"
- }
- }
- },
- "pins": {
- "0": {
- "roles": [
- "conn:stamp_right.5"
- ],
- "verified": {
- "roles": "datasheet"
- }
- },
- "1": {
- "roles": [
- "conn:stamp_right.2"
- ],
- "verified": {
- "roles": "datasheet"
- }
- },
- "3": {
- "roles": [
- "conn:stamp_right.3"
- ],
- "verified": {
- "roles": "datasheet"
- }
- },
- "18": {
- "roles": [
- "conn:stamp_left.3"
- ],
- "verified": {
- "roles": "datasheet"
- }
- },
- "19": {
- "roles": [
- "conn:stamp_left.4"
- ],
- "verified": {
- "roles": "datasheet"
- }
- },
- "21": {
- "roles": [
- "bus:internal_i2c.sda",
- "conn:stamp_left.5"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "22": {
- "roles": [
- "bus:internal_i2c.scl",
- "conn:stamp_left.6"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "25": {
- "roles": [
- "conn:stamp_left.7"
- ],
- "verified": {
- "roles": "datasheet"
- }
- },
- "26": {
- "roles": [
- "conn:stamp_left.1"
- ],
- "verified": {
- "roles": "datasheet"
- }
- },
- "27": {
- "roles": [
- "dev:rgb_led.data"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "32": {
- "roles": [
- "conn:port_a.2"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "33": {
- "roles": [
- "conn:port_a.1"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "36": {
- "roles": [
- "conn:stamp_left.2"
- ],
- "verified": {
- "roles": "datasheet"
- }
- }
- },
- "buses": {
- "internal_i2c": {
- "kind": "i2c",
- "signals": [
- "sda",
- "scl"
- ],
- "preferred_host": 1,
- "fixed": false,
- "verified": {
- "signals": "generated",
- "preferred_host": "generated"
- }
- }
- },
- "devices": {
- "rgb_led": {
- "kind": "led_strip",
- "signals": {
- "data": "gpio:27"
- },
- "verified": {
- "signals": "generated"
- }
- }
- },
- "connectors": {
- "port_a": {
- "type": "hy2_4p",
- "standard": "port_i2c",
- "note": "Grove solder footprint shown at the bottom of the official PinMap; the connector may be fitted separately. White signal is GPIO33, yellow signal is GPIO32.",
- "positions": {
- "1": "gpio:33",
- "2": "gpio:32",
- "3": "pwr:5v",
- "4": "pwr:gnd"
- }
- },
- "stamp_left": {
- "type": "logical_terminals_9",
- "positions": {
- "1": "gpio:26",
- "2": "gpio:36",
- "3": "gpio:18",
- "4": "gpio:19",
- "5": "gpio:21",
- "6": "gpio:22",
- "7": "gpio:25",
- "8": "pwr:5v",
- "9": "pwr:gnd"
- },
- "note": "Positions counted top to bottom in the official component-side PinMap with antenna at the top and Grove pads at the bottom; not schematic connector pin numbers.",
- "verified": {
- "positions": "datasheet"
- },
- "group": "pins"
- },
- "stamp_right": {
- "type": "logical_terminals_6",
- "positions": {
- "1": "pwr:3v3",
- "2": "gpio:1",
- "3": "gpio:3",
- "4": "chip:en",
- "5": "gpio:0",
- "6": "pwr:gnd"
- },
- "note": "Positions counted top to bottom in the official component-side PinMap with antenna at the top and Grove pads at the bottom; not schematic connector pin numbers.",
- "verified": {
- "positions": "datasheet"
- },
- "group": "pins"
- }
- }
-}
diff --git a/extras/board_spec/generated/resolved/m5stamps3.json b/extras/board_spec/generated/resolved/m5stamps3.json
deleted file mode 100644
index 969549f7..00000000
--- a/extras/board_spec/generated/resolved/m5stamps3.json
+++ /dev/null
@@ -1,400 +0,0 @@
-{
- "schema_version": 1,
- "id": "m5stamps3",
- "name": "M5StampS3",
- "official_name": "M5Stack Stamp-S3",
- "official_name_verified": true,
- "legacy_board_id": 136,
- "chip": "esp32s3",
- "spec": {
- "links": {
- "product": "https://docs.m5stack.com/en/core/Stamp-S3",
- "schematic": "https://m5stack-doc.oss-cn-shenzhen.aliyuncs.com/522/Sch_M5StampS3_v0.2.pdf",
- "verified": {
- "product": "datasheet",
- "schematic": "datasheet"
- }
- }
- },
- "pins": {
- "0": {
- "roles": [
- "conn:stamp_pads.20"
- ],
- "verified": {
- "roles": "datasheet"
- }
- },
- "1": {
- "roles": [
- "conn:stamp_pads.1"
- ],
- "verified": {
- "roles": "datasheet"
- }
- },
- "2": {
- "roles": [
- "conn:stamp_pads.2"
- ],
- "verified": {
- "roles": "datasheet"
- }
- },
- "3": {
- "roles": [
- "conn:stamp_pads.3"
- ],
- "verified": {
- "roles": "datasheet"
- }
- },
- "4": {
- "roles": [
- "conn:stamp_pads.4"
- ],
- "verified": {
- "roles": "datasheet"
- }
- },
- "5": {
- "roles": [
- "conn:stamp_pads.5"
- ],
- "verified": {
- "roles": "datasheet"
- }
- },
- "6": {
- "roles": [
- "conn:stamp_pads.6"
- ],
- "verified": {
- "roles": "datasheet"
- }
- },
- "7": {
- "roles": [
- "conn:stamp_pads.7"
- ],
- "verified": {
- "roles": "datasheet"
- }
- },
- "8": {
- "roles": [
- "conn:stamp_pads.8"
- ],
- "verified": {
- "roles": "datasheet"
- }
- },
- "9": {
- "roles": [
- "conn:stamp_pads.9"
- ],
- "verified": {
- "roles": "datasheet"
- }
- },
- "10": {
- "roles": [
- "conn:stamp_pads.10"
- ],
- "verified": {
- "roles": "datasheet"
- }
- },
- "11": {
- "roles": [
- "conn:stamp_pads.12"
- ],
- "verified": {
- "roles": "datasheet"
- }
- },
- "12": {
- "roles": [
- "conn:stamp_pads.14"
- ],
- "verified": {
- "roles": "datasheet"
- }
- },
- "13": {
- "roles": [
- "bus:port_a_i2c.sda",
- "conn:port_a.2",
- "conn:stamp_pads.15"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "14": {
- "roles": [
- "conn:stamp_pads.16"
- ],
- "verified": {
- "roles": "datasheet"
- }
- },
- "15": {
- "roles": [
- "bus:port_a_i2c.scl",
- "conn:port_a.1",
- "conn:stamp_pads.17"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "16": {
- "roles": [
- "conn:lcd_fpc12.4"
- ],
- "verified": {
- "roles": "datasheet"
- }
- },
- "17": {
- "roles": [
- "conn:lcd_fpc12.3"
- ],
- "verified": {
- "roles": "datasheet"
- }
- },
- "18": {
- "roles": [
- "conn:lcd_fpc12.2"
- ],
- "verified": {
- "roles": "datasheet"
- }
- },
- "21": {
- "roles": [
- "dev:rgb_led.data"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "33": {
- "roles": [
- "conn:lcd_fpc12.7",
- "conn:lcd_fpc8.3"
- ],
- "verified": {
- "roles": "datasheet"
- }
- },
- "34": {
- "roles": [
- "conn:lcd_fpc12.8",
- "conn:lcd_fpc8.4"
- ],
- "verified": {
- "roles": "datasheet"
- }
- },
- "35": {
- "roles": [
- "conn:lcd_fpc12.9",
- "conn:lcd_fpc8.5"
- ],
- "verified": {
- "roles": "datasheet"
- }
- },
- "36": {
- "roles": [
- "conn:lcd_fpc12.10",
- "conn:lcd_fpc8.6"
- ],
- "verified": {
- "roles": "datasheet"
- }
- },
- "37": {
- "roles": [
- "conn:lcd_fpc12.12",
- "conn:lcd_fpc8.8"
- ],
- "verified": {
- "roles": "datasheet"
- }
- },
- "39": {
- "roles": [
- "conn:stamp_pads.19"
- ],
- "verified": {
- "roles": "datasheet"
- }
- },
- "40": {
- "roles": [
- "conn:stamp_pads.21"
- ],
- "verified": {
- "roles": "datasheet"
- }
- },
- "41": {
- "roles": [
- "conn:stamp_pads.23"
- ],
- "verified": {
- "roles": "datasheet"
- }
- },
- "42": {
- "roles": [
- "conn:stamp_pads.25"
- ],
- "verified": {
- "roles": "datasheet"
- }
- },
- "43": {
- "roles": [
- "conn:stamp_pads.26"
- ],
- "verified": {
- "roles": "datasheet"
- }
- },
- "44": {
- "roles": [
- "conn:stamp_pads.24"
- ],
- "verified": {
- "roles": "datasheet"
- }
- },
- "46": {
- "roles": [
- "conn:stamp_pads.27"
- ],
- "verified": {
- "roles": "datasheet"
- }
- }
- },
- "buses": {
- "port_a_i2c": {
- "kind": "i2c",
- "signals": [
- "sda",
- "scl"
- ],
- "preferred_host": 0,
- "fixed": false,
- "verified": {
- "signals": "generated",
- "preferred_host": "generated"
- }
- }
- },
- "devices": {
- "rgb_led": {
- "kind": "led_strip",
- "signals": {
- "data": "gpio:21"
- },
- "verified": {
- "signals": "generated"
- }
- }
- },
- "connectors": {
- "port_a": {
- "type": "hy2_4p",
- "standard": "port_i2c",
- "note": "Port A uses GPIO15 (SCL) and GPIO13 (SDA), matching the official PinMap. The bare-module schematic has no HY2.0-4P connector; the product includes a separate HY2.0-4P terminal.",
- "positions": {
- "1": "gpio:15",
- "2": "gpio:13",
- "3": "pwr:5v",
- "4": "pwr:gnd"
- }
- },
- "stamp_pads": {
- "type": "logical_terminals_28",
- "positions": {
- "1": "gpio:1",
- "2": "gpio:2",
- "3": "gpio:3",
- "4": "gpio:4",
- "5": "gpio:5",
- "6": "gpio:6",
- "7": "gpio:7",
- "8": "gpio:8",
- "9": "gpio:9",
- "10": "gpio:10",
- "11": "pwr:gnd",
- "12": "gpio:11",
- "13": "pwr:5v",
- "14": "gpio:12",
- "15": "gpio:13",
- "16": "gpio:14",
- "17": "gpio:15",
- "18": "pwr:gnd",
- "19": "gpio:39",
- "20": "gpio:0",
- "21": "gpio:40",
- "22": "chip:en",
- "23": "gpio:41",
- "24": "gpio:44",
- "25": "gpio:42",
- "26": "gpio:43",
- "27": "gpio:46",
- "28": "pwr:3v3"
- },
- "note": "Numbers follow M1 in the official v0.2 schematic. Module SMT/DIP pads support different pitch variants; this is an electrical terminal ordering.",
- "verified": {
- "positions": "datasheet"
- }
- },
- "lcd_fpc12": {
- "type": "logical_terminals_12",
- "positions": {
- "1": "pwr:5v",
- "2": "gpio:18",
- "3": "gpio:17",
- "4": "gpio:16",
- "5": "pwr:lcd_bl",
- "6": "pwr:gnd",
- "7": "gpio:33",
- "8": "gpio:34",
- "9": "gpio:35",
- "10": "gpio:36",
- "11": "pwr:3v3",
- "12": "gpio:37"
- },
- "note": "Rear J1 12-pin 0.5mm LCD/extension footprint, marked NC in the schematic. Pin 5 BL is the SGM2578 regulated output switched by GPIO38, not a direct GPIO38 connection. Numbers follow J1.",
- "verified": {
- "positions": "datasheet"
- }
- },
- "lcd_fpc8": {
- "type": "logical_terminals_8",
- "positions": {
- "1": "pwr:lcd_bl",
- "2": "pwr:gnd",
- "3": "gpio:33",
- "4": "gpio:34",
- "5": "gpio:35",
- "6": "gpio:36",
- "7": "pwr:3v3",
- "8": "gpio:37"
- },
- "note": "Rear J3 8-pin 0.5mm LCD footprint, marked NC in the schematic. Pin 1 BL is the SGM2578 regulated output switched by GPIO38, not a direct GPIO38 connection. Numbers follow J3; the 8-pin and 12-pin footprints are assembly alternatives.",
- "verified": {
- "positions": "datasheet"
- }
- }
- }
-}
diff --git a/extras/board_spec/generated/resolved/m5stamps3bat.json b/extras/board_spec/generated/resolved/m5stamps3bat.json
deleted file mode 100644
index 883922c4..00000000
--- a/extras/board_spec/generated/resolved/m5stamps3bat.json
+++ /dev/null
@@ -1,369 +0,0 @@
-{
- "schema_version": 1,
- "id": "m5stamps3bat",
- "name": "M5StampS3Bat",
- "official_name": "M5Stack Stamp-S3Bat",
- "official_name_verified": true,
- "legacy_board_id": 149,
- "chip": "esp32s3",
- "spec": {
- "links": {
- "product": "https://docs.m5stack.com/en/core/Stamp-S3Bat",
- "schematic": "https://m5stack-doc.oss-cn-shenzhen.aliyuncs.com/1222/S015-SCH_Stamp-S3BAT.pdf",
- "verified": {
- "product": "datasheet",
- "schematic": "datasheet"
- }
- }
- },
- "pins": {
- "1": {
- "roles": [
- "conn:stamp_left.1"
- ],
- "verified": {
- "roles": "datasheet"
- }
- },
- "2": {
- "roles": [
- "conn:stamp_left.2"
- ],
- "verified": {
- "roles": "datasheet"
- }
- },
- "3": {
- "roles": [
- "conn:stamp_left.3"
- ],
- "verified": {
- "roles": "datasheet"
- }
- },
- "4": {
- "roles": [
- "conn:stamp_left.4"
- ],
- "verified": {
- "roles": "datasheet"
- }
- },
- "5": {
- "roles": [
- "conn:stamp_left.5"
- ],
- "verified": {
- "roles": "datasheet"
- }
- },
- "6": {
- "roles": [
- "conn:stamp_left.8"
- ],
- "verified": {
- "roles": "datasheet"
- }
- },
- "7": {
- "roles": [
- "conn:stamp_left.9"
- ],
- "verified": {
- "roles": "datasheet"
- }
- },
- "8": {
- "roles": [
- "conn:stamp_right.4"
- ],
- "verified": {
- "roles": "datasheet"
- }
- },
- "9": {
- "roles": [
- "conn:stamp_right.5"
- ],
- "verified": {
- "roles": "datasheet"
- }
- },
- "10": {
- "roles": [
- "conn:stamp_right.6"
- ],
- "verified": {
- "roles": "datasheet"
- }
- },
- "11": {
- "roles": [
- "conn:stamp_right.7"
- ],
- "verified": {
- "roles": "datasheet"
- }
- },
- "12": {
- "roles": [
- "conn:btb.5"
- ],
- "verified": {
- "roles": "datasheet"
- }
- },
- "13": {
- "roles": [
- "conn:btb.7"
- ],
- "verified": {
- "roles": "datasheet"
- }
- },
- "14": {
- "roles": [
- "conn:btb.9"
- ],
- "verified": {
- "roles": "datasheet"
- }
- },
- "15": {
- "roles": [
- "conn:btb.11"
- ],
- "verified": {
- "roles": "datasheet"
- }
- },
- "16": {
- "roles": [
- "conn:btb.13"
- ],
- "verified": {
- "roles": "datasheet"
- }
- },
- "17": {
- "roles": [
- "conn:btb.16"
- ],
- "verified": {
- "roles": "datasheet"
- }
- },
- "18": {
- "roles": [
- "conn:btb.15"
- ],
- "verified": {
- "roles": "datasheet"
- }
- },
- "21": {
- "roles": [
- "conn:btb.17"
- ],
- "verified": {
- "roles": "datasheet"
- }
- },
- "38": {
- "roles": [
- "conn:btb.3"
- ],
- "verified": {
- "roles": "datasheet"
- }
- },
- "39": {
- "roles": [
- "conn:btb.12"
- ],
- "verified": {
- "roles": "datasheet"
- }
- },
- "40": {
- "roles": [
- "conn:btb.1"
- ],
- "verified": {
- "roles": "datasheet"
- }
- },
- "41": {
- "roles": [
- "conn:btb.6"
- ],
- "verified": {
- "roles": "datasheet"
- }
- },
- "42": {
- "roles": [
- "conn:btb.10"
- ],
- "verified": {
- "roles": "datasheet"
- }
- },
- "43": {
- "roles": [
- "conn:btb.8"
- ],
- "verified": {
- "roles": "datasheet"
- }
- },
- "44": {
- "roles": [
- "conn:btb.18"
- ],
- "verified": {
- "roles": "datasheet"
- }
- },
- "45": {
- "roles": [
- "conn:btb.4"
- ],
- "verified": {
- "roles": "datasheet"
- }
- },
- "46": {
- "roles": [
- "conn:btb.2"
- ],
- "verified": {
- "roles": "datasheet"
- }
- },
- "47": {
- "roles": [
- "bus:internal_i2c.scl",
- "conn:btb.20"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "48": {
- "roles": [
- "bus:internal_i2c.sda",
- "conn:btb.24"
- ],
- "verified": {
- "roles": "generated"
- }
- }
- },
- "buses": {
- "internal_i2c": {
- "kind": "i2c",
- "signals": [
- "sda",
- "scl"
- ],
- "preferred_host": 1,
- "fixed": false,
- "verified": {
- "signals": "generated",
- "preferred_host": "generated"
- }
- }
- },
- "devices": {
- "pmic": {
- "kind": "pmic",
- "part": "m5pm1",
- "bus": "internal_i2c",
- "pins": {
- "gpio4": {
- "roles": [
- "conn:stamp_right.8"
- ],
- "verified": {
- "roles": "datasheet"
- },
- "note": "PY_G4_WAKE external wake terminal."
- }
- }
- }
- },
- "connectors": {
- "stamp_left": {
- "type": "logical_terminals_9",
- "positions": {
- "1": "gpio:1",
- "2": "gpio:2",
- "3": "gpio:3",
- "4": "gpio:4",
- "5": "gpio:5",
- "6": "pwr:gnd",
- "7": "pwr:5vout",
- "8": "gpio:6",
- "9": "gpio:7"
- },
- "note": "Official schematic J3 positions 1-9, top to bottom in the component-side PinMap. EXT_5V_OUT is controlled by M5PM1 5VOUT_EN.",
- "verified": {
- "positions": "datasheet"
- },
- "group": "pins"
- },
- "stamp_right": {
- "type": "logical_terminals_9",
- "positions": {
- "1": "pwr:5vin",
- "2": "pwr:3v3_l2",
- "3": "pwr:bat",
- "4": "gpio:8",
- "5": "gpio:9",
- "6": "gpio:10",
- "7": "gpio:11",
- "8": "pin:pmic.gpio4",
- "9": "pwr:gnd"
- },
- "note": "Official schematic J5 positions 1-9, top to bottom in the component-side PinMap. Wake terminal is M5PM1 GPIO4, not ESP32-S3 GPIO4. 3V3 is the switched 3V3_L2 rail.",
- "verified": {
- "positions": "datasheet"
- },
- "group": "pins"
- },
- "btb": {
- "type": "logical_terminals_24",
- "positions": {
- "1": "gpio:40",
- "2": "gpio:46",
- "3": "gpio:38",
- "4": "gpio:45",
- "5": "gpio:12",
- "6": "gpio:41",
- "7": "gpio:13",
- "8": "gpio:43",
- "9": "gpio:14",
- "10": "gpio:42",
- "11": "gpio:15",
- "12": "gpio:39",
- "13": "gpio:16",
- "14": "pwr:gnd",
- "15": "gpio:18",
- "16": "gpio:17",
- "17": "gpio:21",
- "18": "gpio:44",
- "19": "pwr:3v3_l2",
- "20": "gpio:47",
- "21": "pwr:sys_vbus",
- "22": "pwr:gnd",
- "23": "pwr:sys_vbus",
- "24": "gpio:48"
- },
- "note": "Exposed 24-pin 0.4mm BTB/DVP expansion connector H1. Terminal numbering follows the official BTB table. Positions 19/21/23 are switched 3V3_L2 / SYS_VBUS power rails; GPIO47/48 share the M5PM1 I2C bus.",
- "verified": {
- "positions": "datasheet"
- }
- }
- }
-}
diff --git a/extras/board_spec/generated/resolved/m5stamps3mini.json b/extras/board_spec/generated/resolved/m5stamps3mini.json
deleted file mode 100644
index b82480d8..00000000
--- a/extras/board_spec/generated/resolved/m5stamps3mini.json
+++ /dev/null
@@ -1,85 +0,0 @@
-{
- "schema_version": 1,
- "id": "m5stamps3mini",
- "name": "M5StampS3Mini",
- "official_name": "M5Stack M5StampS3Mini",
- "legacy_board_id": 155,
- "chip": "esp32s3",
- "pins": {
- "1": {
- "roles": [
- "bus:port_a_i2c.scl",
- "conn:port_a.1"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "2": {
- "roles": [
- "bus:port_a_i2c.sda",
- "conn:port_a.2"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "38": {
- "roles": [
- "bus:internal_i2c.sda"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "39": {
- "roles": [
- "bus:internal_i2c.scl"
- ],
- "verified": {
- "roles": "generated"
- }
- }
- },
- "buses": {
- "internal_i2c": {
- "kind": "i2c",
- "signals": [
- "sda",
- "scl"
- ],
- "preferred_host": 1,
- "fixed": false,
- "verified": {
- "signals": "generated",
- "preferred_host": "generated"
- }
- },
- "port_a_i2c": {
- "kind": "i2c",
- "signals": [
- "sda",
- "scl"
- ],
- "preferred_host": 0,
- "fixed": false,
- "verified": {
- "signals": "generated",
- "preferred_host": "generated"
- }
- }
- },
- "devices": {},
- "connectors": {
- "port_a": {
- "type": "hy2_4p",
- "standard": "port_i2c",
- "positions": {
- "1": "gpio:1",
- "2": "gpio:2",
- "3": "pwr:5v",
- "4": "pwr:gnd"
- }
- }
- }
-}
diff --git a/extras/board_spec/generated/resolved/m5station.json b/extras/board_spec/generated/resolved/m5station.json
deleted file mode 100644
index b70c29d8..00000000
--- a/extras/board_spec/generated/resolved/m5station.json
+++ /dev/null
@@ -1,399 +0,0 @@
-{
- "schema_version": 1,
- "id": "m5station",
- "name": "M5Station",
- "official_name": "M5Stack Station (Bat/485)",
- "aliases": [
- "station",
- "station-bat",
- "station-485",
- "rs485"
- ],
- "legacy_board_id": 9,
- "chip": "esp32_d0wdq6",
- "spec": {
- "storage": {
- "psram_mb": 0,
- "flash_mb": 16
- },
- "links": {
- "product": "https://docs.m5stack.com/en/core/Station-485",
- "verified": {
- "product": "datasheet",
- "schematic": "datasheet"
- },
- "schematic": "https://m5stack-doc.oss-cn-shenzhen.aliyuncs.com/521/Sch_M5Station_v1.3.pdf"
- }
- },
- "pins": {
- "0": {
- "roles": [
- "dev:usb_serial.boot"
- ]
- },
- "1": {
- "roles": [
- "bus:console_uart.tx"
- ]
- },
- "3": {
- "roles": [
- "bus:console_uart.rx"
- ]
- },
- "4": {
- "roles": [
- "dev:rgb_led.data"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "5": {
- "roles": [
- "dev:lcd.cs"
- ]
- },
- "13": {
- "roles": [
- "conn:port_c.1"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "14": {
- "roles": [
- "conn:port_c.2"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "15": {
- "roles": [
- "dev:lcd.rst"
- ]
- },
- "16": {
- "roles": [
- "conn:port_c2.1"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "17": {
- "roles": [
- "conn:port_c2.2"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "18": {
- "roles": [
- "bus:main_spi.sclk"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "19": {
- "roles": [
- "dev:lcd.dc"
- ]
- },
- "21": {
- "roles": [
- "bus:internal_i2c.sda"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "22": {
- "roles": [
- "bus:internal_i2c.scl"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "23": {
- "roles": [
- "bus:main_spi.mosi"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "25": {
- "roles": [
- "conn:port_b.2"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "26": {
- "roles": [
- "conn:port_b2.2"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "32": {
- "roles": [
- "bus:port_a_i2c.sda",
- "conn:port_a.2",
- "conn:grove_a2.2"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "33": {
- "roles": [
- "bus:port_a_i2c.scl",
- "conn:port_a.1",
- "conn:grove_a2.1"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "35": {
- "roles": [
- "conn:port_b.1"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "36": {
- "roles": [
- "conn:port_b2.1"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "37": {
- "roles": [
- "dev:btn_a.in"
- ]
- },
- "38": {
- "roles": [
- "dev:btn_b.in"
- ]
- },
- "39": {
- "roles": [
- "dev:btn_c.in"
- ]
- }
- },
- "buses": {
- "console_uart": {
- "kind": "uart",
- "signals": [
- "tx",
- "rx"
- ],
- "preferred_host": 0,
- "fixed": true
- },
- "main_spi": {
- "kind": "spi",
- "signals": [
- "sclk",
- "mosi"
- ],
- "preferred_host": "SPI2_HOST",
- "fixed": false,
- "freq": 40000000,
- "freq_read": 15000000,
- "verified": {
- "signals": "generated",
- "preferred_host": "generated",
- "freq": "generated",
- "freq_read": "generated"
- }
- },
- "internal_i2c": {
- "kind": "i2c",
- "signals": [
- "sda",
- "scl"
- ],
- "preferred_host": 1,
- "fixed": false,
- "verified": {
- "signals": "generated",
- "preferred_host": "generated"
- }
- },
- "port_a_i2c": {
- "kind": "i2c",
- "signals": [
- "sda",
- "scl"
- ],
- "preferred_host": 0,
- "fixed": false,
- "verified": {
- "signals": "generated",
- "preferred_host": "generated"
- }
- }
- },
- "devices": {
- "usb_serial": {
- "kind": "usb_uart",
- "part": "ch9102f",
- "bus": "console_uart",
- "spec": {
- "auto_reset": true
- },
- "signals": {
- "boot": "gpio:0"
- }
- },
- "lcd": {
- "kind": "display",
- "part": "st7789v2",
- "bus": "main_spi",
- "spec": {
- "width": 135,
- "height": 240,
- "rotation_offset": 1
- },
- "signals": {
- "cs": "gpio:5",
- "rst": "gpio:15",
- "dc": "gpio:19"
- },
- "verified": {
- "signals": "generated"
- }
- },
- "rgb_led": {
- "kind": "led_strip",
- "signals": {
- "data": "gpio:4"
- },
- "verified": {
- "signals": "generated"
- }
- },
- "btn_a": {
- "kind": "button",
- "part": "button",
- "spec": {
- "active_low": true,
- "pull": "external_up"
- },
- "signals": {
- "in": "gpio:37"
- },
- "verified": {
- "signals": "generated"
- }
- },
- "btn_b": {
- "kind": "button",
- "part": "button",
- "spec": {
- "active_low": true,
- "pull": "external_up"
- },
- "signals": {
- "in": "gpio:38"
- },
- "verified": {
- "signals": "generated"
- }
- },
- "btn_c": {
- "kind": "button",
- "part": "button",
- "spec": {
- "active_low": true,
- "pull": "external_up"
- },
- "signals": {
- "in": "gpio:39"
- },
- "verified": {
- "signals": "generated"
- }
- }
- },
- "connectors": {
- "port_a": {
- "type": "hy2_4p",
- "standard": "port_i2c",
- "note": "Physical PORT.A1; PORT.A2 is a second socket on the same GPIO33/32 I2C bus.",
- "positions": {
- "1": "gpio:33",
- "2": "gpio:32",
- "3": "pwr:5v",
- "4": "pwr:gnd"
- }
- },
- "port_b": {
- "type": "hy2_4p",
- "standard": "port_io",
- "positions": {
- "1": "gpio:35",
- "2": "gpio:25",
- "3": "pwr:5v",
- "4": "pwr:gnd"
- }
- },
- "port_c": {
- "type": "hy2_4p",
- "standard": "port_uart",
- "positions": {
- "1": "gpio:13",
- "2": "gpio:14",
- "3": "pwr:5v",
- "4": "pwr:gnd"
- }
- },
- "port_b2": {
- "type": "hy2_4p",
- "standard": "port_io",
- "positions": {
- "1": "gpio:36",
- "2": "gpio:26",
- "3": "pwr:5v",
- "4": "pwr:gnd"
- }
- },
- "port_c2": {
- "type": "hy2_4p",
- "standard": "port_uart",
- "positions": {
- "1": "gpio:16",
- "2": "gpio:17",
- "3": "pwr:5v",
- "4": "pwr:gnd"
- }
- },
- "grove_a2": {
- "type": "hy2_4p",
- "standard": "port_i2c",
- "note": "Physical PORT.A2 shares GPIO33/32 with PORT.A1 (port_a). Registered separately because M5Unified has one Port A contract for the two sockets.",
- "positions": {
- "1": "gpio:33",
- "2": "gpio:32",
- "3": "pwr:5v",
- "4": "pwr:gnd"
- }
- }
- }
-}
diff --git a/extras/board_spec/generated/resolved/m5stickc.json b/extras/board_spec/generated/resolved/m5stickc.json
deleted file mode 100644
index 1b1c465d..00000000
--- a/extras/board_spec/generated/resolved/m5stickc.json
+++ /dev/null
@@ -1,337 +0,0 @@
-{
- "schema_version": 1,
- "id": "m5stickc",
- "name": "M5StickC",
- "official_name": "M5Stack StickC",
- "official_name_verified": true,
- "aliases": [
- "stickc",
- "m5stickc",
- "stick c"
- ],
- "legacy_board_id": 3,
- "chip": "esp32_d0wdq6",
- "spec": {
- "display": {
- "resolution": [
- 80,
- 160
- ],
- "touch": false
- },
- "storage": {
- "psram_mb": 0
- },
- "links": {
- "product": "https://docs.m5stack.com/en/core/StickC",
- "schematic": "https://m5stack.oss-cn-shenzhen.aliyuncs.com/resource/docs/schematic/Core/M5StickC/20191118__StickC_A04_3110_Schematic_Rebuild_PinMap.pdf",
- "verified": {
- "product": "datasheet",
- "schematic": "datasheet"
- }
- }
- },
- "pins": {
- "0": {
- "roles": [
- "dev:usb_serial.boot",
- "conn:hat.5"
- ],
- "verified": {
- "roles": "datasheet"
- }
- },
- "1": {
- "roles": [
- "bus:console_uart.tx"
- ]
- },
- "3": {
- "roles": [
- "bus:console_uart.rx"
- ]
- },
- "5": {
- "roles": [
- "dev:lcd.cs"
- ]
- },
- "13": {
- "roles": [
- "bus:main_spi.sclk"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "14": {
- "roles": [
- "bus:main_spi.miso"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "15": {
- "roles": [
- "bus:main_spi.mosi"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "18": {
- "roles": [
- "dev:lcd.rst"
- ]
- },
- "21": {
- "roles": [
- "bus:internal_i2c.sda"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "22": {
- "roles": [
- "bus:internal_i2c.scl"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "23": {
- "roles": [
- "dev:lcd.dc"
- ]
- },
- "26": {
- "roles": [
- "conn:hat.3"
- ],
- "verified": {
- "roles": "datasheet"
- }
- },
- "32": {
- "roles": [
- "bus:port_a_i2c.sda",
- "conn:port_a.2"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "33": {
- "roles": [
- "bus:port_a_i2c.scl",
- "conn:port_a.1"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "36": {
- "roles": [
- "conn:hat.4"
- ],
- "verified": {
- "roles": "datasheet"
- }
- },
- "37": {
- "roles": [
- "dev:btn_a.in"
- ]
- },
- "39": {
- "roles": [
- "dev:btn_b.in"
- ]
- }
- },
- "buses": {
- "console_uart": {
- "kind": "uart",
- "signals": [
- "tx",
- "rx"
- ],
- "preferred_host": 0,
- "fixed": true
- },
- "main_spi": {
- "kind": "spi",
- "signals": [
- "sclk",
- "mosi",
- "miso"
- ],
- "preferred_host": "SPI2_HOST",
- "fixed": false,
- "freq": 27000000,
- "freq_read": 14000000,
- "verified": {
- "signals": "generated",
- "preferred_host": "generated",
- "freq": "generated",
- "freq_read": "generated"
- }
- },
- "internal_i2c": {
- "kind": "i2c",
- "signals": [
- "sda",
- "scl"
- ],
- "preferred_host": 1,
- "fixed": false,
- "freq": 400000,
- "verified": {
- "signals": "generated",
- "preferred_host": "generated",
- "freq": "generated"
- }
- },
- "port_a_i2c": {
- "kind": "i2c",
- "signals": [
- "sda",
- "scl"
- ],
- "preferred_host": 0,
- "fixed": false,
- "verified": {
- "signals": "generated",
- "preferred_host": "generated"
- }
- }
- },
- "devices": {
- "usb_serial": {
- "kind": "usb_uart",
- "part": "ch552",
- "bus": "console_uart",
- "spec": {
- "auto_reset": true
- },
- "signals": {
- "boot": "gpio:0"
- }
- },
- "lcd": {
- "kind": "display",
- "part": "st7735s",
- "bus": "main_spi",
- "spec": {
- "width": 80,
- "height": 160,
- "offset_x": 26,
- "offset_y": 1,
- "rotation_offset": 2,
- "invert": true,
- "three_wire": true,
- "panel_type": "st7735s"
- },
- "signals": {
- "cs": "gpio:5",
- "rst": "gpio:18",
- "dc": "gpio:23"
- },
- "verified": {
- "signals": "generated"
- }
- },
- "backlight": {
- "kind": "backlight",
- "bus": "internal_i2c",
- "i2c_addr": "0x34"
- },
- "pmic": {
- "kind": "pmic",
- "part": "axp192",
- "bus": "internal_i2c",
- "i2c_addr": "0x34",
- "pins": {
- "pwrkey": {
- "roles": [
- "dev:btn_pwr.in"
- ]
- }
- }
- },
- "btn_a": {
- "kind": "button",
- "part": "button",
- "spec": {
- "active_low": true,
- "pull": "external_up"
- },
- "signals": {
- "in": "gpio:37"
- },
- "verified": {
- "signals": "generated"
- }
- },
- "btn_b": {
- "kind": "button",
- "part": "button",
- "spec": {
- "active_low": true,
- "pull": "external_up"
- },
- "signals": {
- "in": "gpio:39"
- },
- "verified": {
- "signals": "generated"
- }
- },
- "btn_pwr": {
- "kind": "button",
- "part": "button",
- "spec": {
- "active_low": true,
- "pull": "pmic"
- },
- "signals": {
- "in": "pin:pmic.pwrkey"
- },
- "verified": {
- "signals": "generated"
- }
- }
- },
- "connectors": {
- "port_a": {
- "type": "hy2_4p",
- "standard": "port_i2c",
- "positions": {
- "1": "gpio:33",
- "2": "gpio:32",
- "3": "pwr:5v",
- "4": "pwr:gnd"
- }
- },
- "hat": {
- "type": "socket_1x8_254",
- "positions": {
- "1": "pwr:gnd",
- "2": "pwr:5vout",
- "3": "gpio:26",
- "4": "gpio:36",
- "5": "gpio:0",
- "6": "pwr:bat",
- "7": "pwr:3v3",
- "8": "pwr:5vin"
- },
- "verified": {
- "type": "datasheet",
- "positions": "datasheet"
- },
- "note": "HAT socket: positions 1-8 run from GND to 5V input, left to right in the rear-label view. GPIO0 is shared with the microphone clock. 5V output and 5V input are separate rails."
- }
- }
-}
diff --git a/extras/board_spec/generated/resolved/m5stickcplus.json b/extras/board_spec/generated/resolved/m5stickcplus.json
deleted file mode 100644
index 4bcde987..00000000
--- a/extras/board_spec/generated/resolved/m5stickcplus.json
+++ /dev/null
@@ -1,352 +0,0 @@
-{
- "schema_version": 1,
- "id": "m5stickcplus",
- "name": "M5StickCPlus",
- "official_name": "M5Stack StickC-Plus",
- "official_name_verified": true,
- "aliases": [
- "stickc plus",
- "m5stickc plus",
- "stickcplus",
- "stickc-plus se",
- "plus se"
- ],
- "legacy_board_id": 4,
- "chip": "esp32_d0wdq6",
- "spec": {
- "display": {
- "resolution": [
- 135,
- 240
- ],
- "touch": false
- },
- "storage": {
- "psram_mb": 0,
- "flash_mb": 4
- },
- "links": {
- "product": "https://docs.m5stack.com/en/core/StickC-Plus",
- "schematic": "https://m5stack-doc.oss-cn-shenzhen.aliyuncs.com/669/k016-p-StickC-Plus-sche.pdf",
- "verified": {
- "product": "datasheet",
- "schematic": "datasheet"
- }
- }
- },
- "pins": {
- "0": {
- "roles": [
- "dev:usb_serial.boot",
- "conn:hat.5"
- ],
- "verified": {
- "roles": "datasheet"
- }
- },
- "1": {
- "roles": [
- "bus:console_uart.tx"
- ]
- },
- "3": {
- "roles": [
- "bus:console_uart.rx"
- ]
- },
- "5": {
- "roles": [
- "dev:lcd.cs"
- ]
- },
- "13": {
- "roles": [
- "bus:main_spi.sclk"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "14": {
- "roles": [
- "bus:main_spi.miso"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "15": {
- "roles": [
- "bus:main_spi.mosi"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "18": {
- "roles": [
- "dev:lcd.rst"
- ]
- },
- "21": {
- "roles": [
- "bus:internal_i2c.sda"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "22": {
- "roles": [
- "bus:internal_i2c.scl"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "23": {
- "roles": [
- "dev:lcd.dc"
- ]
- },
- "25": {
- "roles": [
- "conn:hat.4"
- ],
- "verified": {
- "roles": "datasheet"
- }
- },
- "26": {
- "roles": [
- "conn:hat.3"
- ],
- "verified": {
- "roles": "datasheet"
- }
- },
- "32": {
- "roles": [
- "bus:port_a_i2c.sda",
- "conn:port_a.2"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "33": {
- "roles": [
- "bus:port_a_i2c.scl",
- "conn:port_a.1"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "36": {
- "roles": [
- "conn:hat.4"
- ],
- "verified": {
- "roles": "datasheet"
- }
- },
- "37": {
- "roles": [
- "dev:btn_a.in"
- ]
- },
- "39": {
- "roles": [
- "dev:btn_b.in"
- ]
- }
- },
- "buses": {
- "console_uart": {
- "kind": "uart",
- "signals": [
- "tx",
- "rx"
- ],
- "preferred_host": 0,
- "fixed": true
- },
- "main_spi": {
- "kind": "spi",
- "signals": [
- "sclk",
- "mosi",
- "miso"
- ],
- "preferred_host": "SPI2_HOST",
- "fixed": false,
- "freq": 40000000,
- "freq_read": 15000000,
- "verified": {
- "signals": "generated",
- "preferred_host": "generated",
- "freq": "generated",
- "freq_read": "generated"
- }
- },
- "internal_i2c": {
- "kind": "i2c",
- "signals": [
- "sda",
- "scl"
- ],
- "preferred_host": 1,
- "fixed": false,
- "freq": 400000,
- "verified": {
- "signals": "generated",
- "preferred_host": "generated",
- "freq": "generated"
- }
- },
- "port_a_i2c": {
- "kind": "i2c",
- "signals": [
- "sda",
- "scl"
- ],
- "preferred_host": 0,
- "fixed": false,
- "verified": {
- "signals": "generated",
- "preferred_host": "generated"
- }
- }
- },
- "devices": {
- "usb_serial": {
- "kind": "usb_uart",
- "part": "ch552",
- "bus": "console_uart",
- "spec": {
- "auto_reset": true
- },
- "signals": {
- "boot": "gpio:0"
- }
- },
- "lcd": {
- "kind": "display",
- "part": "st7789v2",
- "bus": "main_spi",
- "spec": {
- "width": 135,
- "height": 240,
- "offset_x": 52,
- "offset_y": 40,
- "invert": true,
- "three_wire": true
- },
- "signals": {
- "cs": "gpio:5",
- "rst": "gpio:18",
- "dc": "gpio:23"
- },
- "verified": {
- "signals": "generated"
- }
- },
- "backlight": {
- "kind": "backlight",
- "bus": "internal_i2c",
- "i2c_addr": "0x34"
- },
- "pmic": {
- "kind": "pmic",
- "part": "axp192",
- "bus": "internal_i2c",
- "i2c_addr": "0x34",
- "pins": {
- "pwrkey": {
- "roles": [
- "dev:btn_pwr.in"
- ]
- }
- }
- },
- "btn_a": {
- "kind": "button",
- "part": "button",
- "spec": {
- "active_low": true,
- "pull": "external_up"
- },
- "signals": {
- "in": "gpio:37"
- },
- "verified": {
- "signals": "generated"
- }
- },
- "btn_b": {
- "kind": "button",
- "part": "button",
- "spec": {
- "active_low": true,
- "pull": "external_up"
- },
- "signals": {
- "in": "gpio:39"
- },
- "verified": {
- "signals": "generated"
- }
- },
- "btn_pwr": {
- "kind": "button",
- "part": "button",
- "spec": {
- "active_low": true,
- "pull": "pmic"
- },
- "signals": {
- "in": "pin:pmic.pwrkey"
- },
- "verified": {
- "signals": "generated"
- }
- }
- },
- "connectors": {
- "port_a": {
- "type": "hy2_4p",
- "standard": "port_i2c",
- "positions": {
- "1": "gpio:33",
- "2": "gpio:32",
- "3": "pwr:5v",
- "4": "pwr:gnd"
- }
- },
- "hat": {
- "type": "socket_1x8_254",
- "positions": {
- "1": "pwr:gnd",
- "2": "pwr:5vout",
- "3": "gpio:26",
- "4": [
- "gpio:25",
- "gpio:36"
- ],
- "5": "gpio:0",
- "6": "pwr:bat",
- "7": "pwr:3v3",
- "8": "pwr:5vin"
- },
- "verified": {
- "type": "datasheet",
- "positions": "datasheet"
- },
- "note": "HAT socket: positions 1-8 run from GND to 5V input, left to right in the rear-label view. GPIO0 is shared with the microphone clock. 5V output and 5V input are separate rails. The current official rear photo is labeled CPlus 1.1 and identifies pin 4 as G36/G25; the linked older schematic labels its external pad only GPIO36. The Specifications External Pins field says G25/G26, which differs from the rear-label G36/G25 notation. This catalog follows the rear label and documented G36/G25 shared terminal without treating either notation as a confirmed typo. When using GPIO36 or GPIO25, leave the other as an input with both internal pulls disabled, as instructed by the official StickC-Plus documentation.",
- "multi_gpio": [
- "4"
- ]
- }
- }
-}
diff --git a/extras/board_spec/generated/resolved/m5stickcplus2.json b/extras/board_spec/generated/resolved/m5stickcplus2.json
deleted file mode 100644
index e2610d37..00000000
--- a/extras/board_spec/generated/resolved/m5stickcplus2.json
+++ /dev/null
@@ -1,419 +0,0 @@
-{
- "schema_version": 1,
- "id": "m5stickcplus2",
- "name": "M5StickCPlus2",
- "official_name": "M5Stack StickC-Plus2",
- "official_name_verified": true,
- "aliases": [
- "stickc plus2",
- "m5stickc plus2",
- "stickcplus2"
- ],
- "legacy_board_id": 5,
- "chip": "esp32_d0wdq6",
- "spec": {
- "display": {
- "resolution": [
- 135,
- 240
- ],
- "touch": false
- },
- "storage": {
- "psram_mb": 2,
- "psram_mode": "quad"
- },
- "links": {
- "product": "https://docs.m5stack.com/en/core/StickC-Plus2",
- "schematic": "https://m5stack-doc.oss-cn-shenzhen.aliyuncs.com/512/Sch_M5StickC_Plus2_v0.5.pdf",
- "verified": {
- "product": "datasheet",
- "schematic": "datasheet"
- }
- }
- },
- "pins": {
- "0": {
- "roles": [
- "dev:usb_serial.boot",
- "conn:hat.5"
- ],
- "verified": {
- "roles": "datasheet"
- }
- },
- "1": {
- "roles": [
- "bus:console_uart.tx"
- ]
- },
- "3": {
- "roles": [
- "bus:console_uart.rx"
- ]
- },
- "4": {
- "roles": [
- "dev:power_hold.enable"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "5": {
- "roles": [
- "dev:lcd.cs"
- ]
- },
- "9": {
- "roles": [
- "dev:psram.cs"
- ]
- },
- "10": {
- "roles": [
- "dev:psram.clk"
- ]
- },
- "12": {
- "roles": [
- "dev:lcd.rst"
- ]
- },
- "13": {
- "roles": [
- "bus:main_spi.sclk"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "14": {
- "roles": [
- "dev:lcd.dc"
- ]
- },
- "15": {
- "roles": [
- "bus:main_spi.mosi"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "19": {
- "roles": [
- "dev:ir_led.on",
- "dev:red_led.on"
- ],
- "pull": "down",
- "note": "IR transmitter and red LED driven through Q5 base",
- "verified": {
- "pull": "measured"
- },
- "measured_by": {
- "pull": "Internal-pull GPIO survey on M5StickCPlus2"
- }
- },
- "21": {
- "roles": [
- "bus:internal_i2c.sda"
- ],
- "pull": "up",
- "verified": {
- "roles": "generated",
- "pull": "measured"
- },
- "measured_by": {
- "pull": "Internal-pull GPIO survey on M5StickCPlus2"
- }
- },
- "22": {
- "roles": [
- "bus:internal_i2c.scl"
- ],
- "pull": "up",
- "verified": {
- "roles": "generated",
- "pull": "measured"
- },
- "measured_by": {
- "pull": "Internal-pull GPIO survey on M5StickCPlus2"
- }
- },
- "25": {
- "roles": [
- "conn:hat.4"
- ],
- "verified": {
- "roles": "datasheet"
- }
- },
- "26": {
- "roles": [
- "conn:hat.3"
- ],
- "verified": {
- "roles": "datasheet"
- }
- },
- "27": {
- "roles": [
- "dev:backlight.pwm"
- ]
- },
- "32": {
- "roles": [
- "bus:port_a_i2c.sda",
- "conn:port_a.2"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "33": {
- "roles": [
- "bus:port_a_i2c.scl",
- "conn:port_a.1"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "35": {
- "roles": [
- "dev:btn_pwr.in"
- ]
- },
- "36": {
- "roles": [
- "conn:hat.4"
- ],
- "verified": {
- "roles": "datasheet"
- }
- },
- "37": {
- "roles": [
- "dev:btn_a.in"
- ]
- },
- "39": {
- "roles": [
- "dev:btn_b.in"
- ]
- }
- },
- "buses": {
- "console_uart": {
- "kind": "uart",
- "signals": [
- "tx",
- "rx"
- ],
- "preferred_host": 0,
- "fixed": true
- },
- "main_spi": {
- "kind": "spi",
- "signals": [
- "sclk",
- "mosi"
- ],
- "preferred_host": "SPI2_HOST",
- "fixed": false,
- "freq": 40000000,
- "freq_read": 15000000,
- "verified": {
- "signals": "generated",
- "preferred_host": "generated",
- "freq": "generated",
- "freq_read": "generated"
- }
- },
- "internal_i2c": {
- "kind": "i2c",
- "signals": [
- "sda",
- "scl"
- ],
- "preferred_host": 1,
- "fixed": false,
- "verified": {
- "signals": "generated",
- "preferred_host": "generated"
- }
- },
- "port_a_i2c": {
- "kind": "i2c",
- "signals": [
- "sda",
- "scl"
- ],
- "preferred_host": 0,
- "fixed": false,
- "verified": {
- "signals": "generated",
- "preferred_host": "generated"
- }
- }
- },
- "devices": {
- "usb_serial": {
- "kind": "usb_uart",
- "part": "ch9102",
- "bus": "console_uart",
- "spec": {
- "auto_reset": true
- },
- "signals": {
- "boot": "gpio:0"
- }
- },
- "lcd": {
- "kind": "display",
- "part": "st7789v2",
- "bus": "main_spi",
- "spec": {
- "width": 135,
- "height": 240,
- "offset_x": 52,
- "offset_y": 40,
- "invert": true,
- "three_wire": true
- },
- "signals": {
- "cs": "gpio:5",
- "rst": "gpio:12",
- "dc": "gpio:14"
- },
- "verified": {
- "signals": "generated"
- }
- },
- "backlight": {
- "kind": "backlight",
- "spec": {
- "freq": 256,
- "channel": 7,
- "invert": false,
- "offset": 40
- },
- "verified": {
- "spec": "generated",
- "signals": "generated"
- },
- "signals": {
- "pwm": "gpio:27"
- }
- },
- "power_hold": {
- "kind": "power_hold",
- "signals": {
- "enable": "gpio:4"
- },
- "verified": {
- "signals": "generated"
- }
- },
- "ir_led": {
- "kind": "led",
- "signals": {
- "on": "gpio:19"
- }
- },
- "red_led": {
- "kind": "led",
- "signals": {
- "on": "gpio:19"
- }
- },
- "btn_a": {
- "kind": "button",
- "part": "button",
- "spec": {
- "active_low": true,
- "pull": "external_up"
- },
- "signals": {
- "in": "gpio:37"
- },
- "verified": {
- "signals": "generated"
- }
- },
- "btn_b": {
- "kind": "button",
- "part": "button",
- "spec": {
- "active_low": true,
- "pull": "external_up"
- },
- "signals": {
- "in": "gpio:39"
- },
- "verified": {
- "signals": "generated"
- }
- },
- "btn_pwr": {
- "kind": "button",
- "part": "button",
- "spec": {
- "active_low": true,
- "pull": "external_up"
- },
- "signals": {
- "in": "gpio:35"
- },
- "verified": {
- "signals": "generated"
- }
- },
- "psram": {
- "kind": "psram",
- "part": "psram",
- "signals": {
- "cs": "gpio:9",
- "clk": "gpio:10"
- }
- }
- },
- "connectors": {
- "port_a": {
- "type": "hy2_4p",
- "standard": "port_i2c",
- "positions": {
- "1": "gpio:33",
- "2": "gpio:32",
- "3": "pwr:5v",
- "4": "pwr:gnd"
- }
- },
- "hat": {
- "type": "socket_1x8_254",
- "positions": {
- "1": "pwr:gnd",
- "2": "pwr:5vout",
- "3": "gpio:26",
- "4": [
- "gpio:25",
- "gpio:36"
- ],
- "5": "gpio:0",
- "6": "pwr:bat",
- "7": "pwr:3v3",
- "8": "pwr:5vin"
- },
- "verified": {
- "type": "datasheet",
- "positions": "datasheet"
- },
- "note": "HAT socket: positions 1-8 run from GND to 5V input, left to right in the rear-label view. GPIO0 is shared with the microphone clock. 5V output and 5V input are separate rails. P1 pin 4 joins GPIO36 and GPIO25 in the official v0.5 schematic; the rear label reads G36/G25. The Specifications External Pins field says G25/G26, which differs from the rear-label G36/G25 notation. This catalog follows the rear label and documented G36/G25 shared terminal without treating either notation as a confirmed typo. When using GPIO36 or GPIO25, leave the other as an input with both internal pulls disabled, as instructed by the official StickC-Plus documentation.",
- "multi_gpio": [
- "4"
- ]
- }
- },
- "chip_package": "pico_v3_02"
-}
diff --git a/extras/board_spec/generated/resolved/m5sticks3.json b/extras/board_spec/generated/resolved/m5sticks3.json
deleted file mode 100644
index d5d68a3f..00000000
--- a/extras/board_spec/generated/resolved/m5sticks3.json
+++ /dev/null
@@ -1,527 +0,0 @@
-{
- "schema_version": 1,
- "id": "m5sticks3",
- "name": "M5StickS3",
- "official_name": "M5Stack StickS3",
- "official_name_verified": true,
- "aliases": [
- "sticks3",
- "m5sticks3",
- "stick s3"
- ],
- "legacy_board_id": 26,
- "chip": "esp32s3",
- "spec": {
- "display": {
- "resolution": [
- 135,
- 240
- ],
- "touch": false
- },
- "storage": {
- "psram_mb": 8,
- "psram_mode": "opi"
- },
- "links": {
- "product": "https://docs.m5stack.com/en/core/StickS3",
- "schematic": "https://m5stack-doc.oss-cn-shenzhen.aliyuncs.com/1207/K150_Stick_S3_PRJ_V0.6_20251111_2025_11_17_16_10_24.pdf",
- "verified": {
- "product": "datasheet",
- "schematic": "datasheet"
- }
- }
- },
- "pins": {
- "0": {
- "roles": [
- "conn:hat2.5"
- ],
- "verified": {
- "roles": "datasheet"
- }
- },
- "1": {
- "roles": [
- "conn:hat2.7"
- ],
- "verified": {
- "roles": "datasheet"
- }
- },
- "2": {
- "roles": [
- "conn:hat2.14"
- ],
- "verified": {
- "roles": "datasheet"
- }
- },
- "3": {
- "roles": [
- "conn:hat2.16"
- ],
- "verified": {
- "roles": "datasheet"
- }
- },
- "4": {
- "roles": [
- "conn:hat2.4"
- ],
- "verified": {
- "roles": "datasheet"
- }
- },
- "5": {
- "roles": [
- "conn:hat2.2"
- ],
- "verified": {
- "roles": "datasheet"
- }
- },
- "6": {
- "roles": [
- "conn:hat2.6"
- ],
- "verified": {
- "roles": "datasheet"
- }
- },
- "7": {
- "roles": [
- "conn:hat2.8"
- ],
- "verified": {
- "roles": "datasheet"
- }
- },
- "8": {
- "roles": [
- "conn:hat2.9"
- ],
- "verified": {
- "roles": "datasheet"
- }
- },
- "9": {
- "roles": [
- "bus:port_a_i2c.sda",
- "conn:port_a.2"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "10": {
- "roles": [
- "bus:port_a_i2c.scl",
- "conn:port_a.1"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "11": {
- "roles": [
- "dev:btn_a.in"
- ]
- },
- "12": {
- "roles": [
- "dev:btn_b.in"
- ]
- },
- "14": {
- "roles": [
- "bus:i2s_audio.data_out"
- ]
- },
- "15": {
- "roles": [
- "bus:i2s_audio.ws"
- ]
- },
- "16": {
- "roles": [
- "bus:i2s_audio.data_in"
- ]
- },
- "17": {
- "roles": [
- "bus:i2s_audio.bck"
- ]
- },
- "18": {
- "roles": [
- "bus:i2s_audio.mck"
- ]
- },
- "21": {
- "roles": [
- "dev:lcd.rst"
- ]
- },
- "26": {
- "roles": [
- "dev:psram.cs"
- ]
- },
- "27": {
- "roles": [
- "dev:psram.d3"
- ]
- },
- "28": {
- "roles": [
- "dev:psram.d2"
- ]
- },
- "30": {
- "roles": [
- "dev:psram.clk"
- ]
- },
- "31": {
- "roles": [
- "dev:psram.d1"
- ]
- },
- "32": {
- "roles": [
- "dev:psram.d0"
- ]
- },
- "33": {
- "roles": [
- "dev:psram.d4"
- ]
- },
- "34": {
- "roles": [
- "dev:psram.d5"
- ]
- },
- "35": {
- "roles": [
- "dev:psram.d6"
- ]
- },
- "36": {
- "roles": [
- "dev:psram.d7"
- ]
- },
- "37": {
- "roles": [
- "dev:psram.dqs"
- ]
- },
- "38": {
- "roles": [
- "dev:backlight.pwm"
- ]
- },
- "39": {
- "roles": [
- "bus:main_spi.mosi"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "40": {
- "roles": [
- "bus:main_spi.sclk"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "41": {
- "roles": [
- "dev:lcd.cs"
- ]
- },
- "43": {
- "roles": [
- "conn:hat2.10"
- ],
- "verified": {
- "roles": "datasheet"
- }
- },
- "44": {
- "roles": [
- "conn:hat2.12"
- ],
- "verified": {
- "roles": "datasheet"
- }
- },
- "45": {
- "roles": [
- "dev:lcd.dc"
- ]
- },
- "47": {
- "roles": [
- "bus:internal_i2c.sda"
- ],
- "pull": "up",
- "verified": {
- "roles": "generated"
- }
- },
- "48": {
- "roles": [
- "bus:internal_i2c.scl"
- ],
- "pull": "up",
- "verified": {
- "roles": "generated"
- }
- }
- },
- "buses": {
- "main_spi": {
- "kind": "spi",
- "signals": [
- "sclk",
- "mosi"
- ],
- "preferred_host": "SPI3_HOST",
- "fixed": false,
- "freq": 40000000,
- "freq_read": 16000000,
- "verified": {
- "signals": "generated",
- "preferred_host": "generated",
- "freq": "generated",
- "freq_read": "generated"
- }
- },
- "internal_i2c": {
- "kind": "i2c",
- "signals": [
- "sda",
- "scl"
- ],
- "preferred_host": 1,
- "fixed": false,
- "freq": 100000,
- "verified": {
- "signals": "generated",
- "preferred_host": "generated",
- "freq": "generated"
- }
- },
- "port_a_i2c": {
- "kind": "i2c",
- "signals": [
- "sda",
- "scl"
- ],
- "preferred_host": 0,
- "fixed": false,
- "verified": {
- "signals": "generated",
- "preferred_host": "generated"
- }
- },
- "i2s_audio": {
- "kind": "i2s",
- "signals": [
- "mck",
- "bck",
- "ws",
- "data_out",
- "data_in"
- ],
- "fixed": false,
- "freq": 22050,
- "note": "Speaker uses I2S0 and microphone uses I2S1; magnification is 1."
- }
- },
- "devices": {
- "lcd": {
- "kind": "display",
- "part": "st7789v2",
- "bus": "main_spi",
- "spec": {
- "width": 135,
- "height": 240,
- "offset_x": 52,
- "offset_y": 40,
- "rotation_offset": 0,
- "invert": true,
- "readable": true
- },
- "signals": {
- "rst": "gpio:21",
- "cs": "gpio:41",
- "dc": "gpio:45",
- "power": "pin:pmic.gpio2"
- },
- "verified": {
- "signals": "generated"
- }
- },
- "backlight": {
- "kind": "backlight",
- "spec": {
- "freq": 256,
- "channel": 7,
- "invert": false,
- "offset": 16
- },
- "verified": {
- "spec": "generated",
- "signals": "generated"
- },
- "signals": {
- "pwm": "gpio:38"
- }
- },
- "pmic": {
- "kind": "pmic",
- "part": "m5pm1",
- "bus": "internal_i2c",
- "pins": {
- "gpio2": {
- "roles": [
- "dev:lcd.power"
- ]
- },
- "gpio3": {
- "roles": [
- "dev:speaker.enable"
- ]
- },
- "pwrkey": {
- "roles": [
- "dev:btn_pwr.in"
- ]
- }
- }
- },
- "speaker": {
- "kind": "speaker",
- "bus": "i2s_audio",
- "verified": {
- "bus": "datasheet",
- "enable": "generated"
- },
- "enable": "pin:pmic.gpio3"
- },
- "mic": {
- "kind": "mic",
- "bus": "i2s_audio",
- "verified": {
- "bus": "datasheet"
- }
- },
- "btn_a": {
- "kind": "button",
- "part": "button",
- "spec": {
- "active_low": true,
- "pull": "external_up"
- },
- "signals": {
- "in": "gpio:11"
- },
- "verified": {
- "signals": "generated"
- }
- },
- "btn_b": {
- "kind": "button",
- "part": "button",
- "spec": {
- "active_low": true,
- "pull": "external_up"
- },
- "signals": {
- "in": "gpio:12"
- },
- "verified": {
- "signals": "generated"
- }
- },
- "btn_pwr": {
- "kind": "button",
- "part": "button",
- "spec": {
- "active_low": true,
- "pull": "pmic"
- },
- "signals": {
- "in": "pin:pmic.pwrkey"
- },
- "verified": {
- "signals": "generated"
- }
- },
- "psram": {
- "kind": "psram",
- "part": "psram",
- "signals": {
- "cs": "gpio:26",
- "d3": "gpio:27",
- "d2": "gpio:28",
- "clk": "gpio:30",
- "d1": "gpio:31",
- "d0": "gpio:32",
- "d4": "gpio:33",
- "d5": "gpio:34",
- "d6": "gpio:35",
- "d7": "gpio:36",
- "dqs": "gpio:37"
- }
- }
- },
- "connectors": {
- "port_a": {
- "type": "hy2_4p",
- "standard": "port_i2c",
- "positions": {
- "1": "gpio:10",
- "2": "gpio:9",
- "3": "pwr:5v",
- "4": "pwr:gnd"
- },
- "note": "Grove 5V shares Hat2 EXT_5V. With the default disabled EXT_5V_EN it is an input and external 5V can power the device through Grove or Hat2 EXT_5V. Enabling EXT_5V_EN makes these terminals 5V outputs; then supply power only through USB or Hat2 5V_IN.",
- "verified": {
- "positions": "datasheet"
- }
- },
- "hat2": {
- "type": "socket_2x8_254",
- "positions": {
- "1": "pwr:gnd",
- "2": "gpio:5",
- "3": "pwr:5vout",
- "4": "gpio:4",
- "5": "gpio:0",
- "6": "gpio:6",
- "7": "gpio:1",
- "8": "gpio:7",
- "9": "gpio:8",
- "10": "gpio:43",
- "11": "pwr:bat",
- "12": "gpio:44",
- "13": "pwr:3v3_l2",
- "14": "gpio:2",
- "15": "pwr:5vin",
- "16": "gpio:3"
- },
- "verified": {
- "type": "datasheet",
- "positions": "datasheet"
- },
- "note": "Hat2: logical positions follow the official Hat2-Bus table (odd pins left, even pins right), not schematic CN2 numbering. Pin 5 BOOT is ESP32-S3 GPIO0, driven by M5PM1 BOOT_OUT_OD. EXT_5V (pin 3) and Grove 5V default to input mode and can supply the device from external 5V. They become 5V outputs only when EXT_5V_EN is enabled; in output mode supply power only through USB or 5V_IN (pin 15), not through Grove/EXT_5V. Pin 13 is the switched 3V3_L2 rail."
- }
- }
-}
diff --git a/extras/board_spec/generated/resolved/m5stopwatch.json b/extras/board_spec/generated/resolved/m5stopwatch.json
deleted file mode 100644
index 81e648d7..00000000
--- a/extras/board_spec/generated/resolved/m5stopwatch.json
+++ /dev/null
@@ -1,505 +0,0 @@
-{
- "schema_version": 1,
- "id": "m5stopwatch",
- "name": "M5StopWatch",
- "official_name": "M5Stack StopWatch",
- "official_name_verified": true,
- "aliases": [
- "stopwatch",
- "stop watch"
- ],
- "legacy_board_id": 30,
- "chip": "esp32s3",
- "spec": {
- "display": {
- "resolution": [
- 468,
- 468
- ],
- "touch": true
- },
- "storage": {
- "psram_mb": 8,
- "psram_mode": "opi",
- "flash_mb": 16
- },
- "links": {
- "schematic": "https://m5stack-doc.oss-cn-shenzhen.aliyuncs.com/1242/C152-SCH_Stopwatch_PRJ_Main_VA_20251201_2026_04_24_17_46_22.pdf",
- "product": "https://docs.m5stack.com/en/core/StopWatch"
- }
- },
- "pins": {
- "0": {
- "roles": [
- "conn:rear_mux.5"
- ],
- "note": "BOOT; connected to M5PM1 BOOT_OUT_OD."
- },
- "1": {
- "roles": [
- "dev:btn_b.in"
- ]
- },
- "2": {
- "roles": [
- "dev:btn_a.in"
- ]
- },
- "3": {
- "roles": [
- "conn:rear_gpio.1"
- ],
- "note": "J5 EXT_GPIO3."
- },
- "4": {
- "roles": [
- "conn:rear_gpio.2"
- ],
- "note": "J5 EXT_GPIO4."
- },
- "5": {
- "roles": [
- "conn:rear_gpio.3"
- ],
- "note": "J5 EXT_GPIO5."
- },
- "6": {
- "roles": [
- "conn:rear_gpio.4"
- ],
- "note": "J5 EXT_GPIO6."
- },
- "7": {
- "roles": [
- "conn:rear_gpio.5"
- ],
- "note": "J5 EXT_GPIO7."
- },
- "8": {
- "roles": [
- "conn:rear_gpio.6"
- ],
- "note": "J5 EXT_GPIO8."
- },
- "9": {
- "roles": [
- "conn:rear_mux.4"
- ],
- "note": "J6 EXT_GPIO9."
- },
- "10": {
- "roles": [
- "bus:port_a_i2c.sda",
- "conn:port_a.2"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "11": {
- "roles": [
- "bus:port_a_i2c.scl",
- "conn:port_a.1"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "12": {
- "roles": [
- "dev:pmic.int"
- ],
- "note": "G12_PY_IRQ from M5PM1 G1_IRQout."
- },
- "13": {
- "roles": [
- "dev:touch.int"
- ]
- },
- "14": {
- "roles": [],
- "note": "R34 is not populated, so GPIO14 is unconnected by default. Fitting R34 connects it to PYB_SPK_EN; the stock amplifier enable is controlled by M5IOE1 PYG10."
- },
- "26": {
- "roles": [
- "dev:psram.cs"
- ]
- },
- "27": {
- "roles": [
- "dev:psram.d3"
- ]
- },
- "28": {
- "roles": [
- "dev:psram.d2"
- ]
- },
- "30": {
- "roles": [
- "dev:psram.clk"
- ]
- },
- "31": {
- "roles": [
- "dev:psram.d1"
- ]
- },
- "32": {
- "roles": [
- "dev:psram.d0"
- ]
- },
- "33": {
- "roles": [
- "dev:psram.d4"
- ]
- },
- "34": {
- "roles": [
- "dev:psram.d5"
- ]
- },
- "35": {
- "roles": [
- "dev:psram.d6"
- ]
- },
- "36": {
- "roles": [
- "dev:psram.d7"
- ]
- },
- "37": {
- "roles": [
- "dev:psram.dqs"
- ]
- },
- "38": {
- "roles": [],
- "note": "OLED TE input"
- },
- "39": {
- "roles": [
- "dev:lcd.cs"
- ]
- },
- "40": {
- "roles": [
- "bus:main_spi.sclk"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "41": {
- "roles": [
- "bus:main_spi.io0"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "42": {
- "roles": [
- "bus:main_spi.io1"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "45": {
- "roles": [
- "bus:main_spi.io3"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "46": {
- "roles": [
- "bus:main_spi.io2"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "47": {
- "roles": [
- "bus:internal_i2c.sda",
- "bus:touch_i2c.sda"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "48": {
- "roles": [
- "bus:internal_i2c.scl",
- "bus:touch_i2c.scl"
- ],
- "verified": {
- "roles": "generated"
- }
- }
- },
- "buses": {
- "main_spi": {
- "kind": "spi",
- "signals": [
- "sclk",
- "io0",
- "io1",
- "io2",
- "io3"
- ],
- "preferred_host": "SPI2_HOST",
- "fixed": false,
- "freq": 80000000,
- "freq_read": 1000000,
- "verified": {
- "signals": "generated",
- "preferred_host": "generated",
- "freq": "generated",
- "freq_read": "generated"
- }
- },
- "internal_i2c": {
- "kind": "i2c",
- "signals": [
- "sda",
- "scl"
- ],
- "preferred_host": 1,
- "freq": 100000,
- "fixed": false,
- "verified": {
- "signals": "generated",
- "preferred_host": "generated",
- "freq": "generated"
- }
- },
- "touch_i2c": {
- "kind": "i2c",
- "signals": [
- "sda",
- "scl"
- ],
- "preferred_host": 1,
- "freq": 400000,
- "fixed": false,
- "verified": {
- "signals": "generated",
- "preferred_host": "generated",
- "freq": "generated"
- }
- },
- "port_a_i2c": {
- "kind": "i2c",
- "signals": [
- "sda",
- "scl"
- ],
- "preferred_host": 0,
- "fixed": false,
- "verified": {
- "signals": "generated",
- "preferred_host": "generated"
- }
- }
- },
- "devices": {
- "lcd": {
- "kind": "display",
- "part": "co5300",
- "bus": "main_spi",
- "spec": {
- "width": 468,
- "height": 468,
- "offset_x": 6,
- "offset_y": 0,
- "rotation_offset": 0,
- "invert": false,
- "readable": false,
- "three_wire": true
- },
- "signals": {
- "cs": "gpio:39"
- },
- "verified": {
- "signals": "generated"
- }
- },
- "touch": {
- "kind": "touch",
- "part": "cst816s",
- "bus": "touch_i2c",
- "i2c_addr": "0x15",
- "spec": {
- "x_min": 0,
- "x_max": 233,
- "y_min": 0,
- "y_max": 233,
- "rotation_offset": 0
- },
- "signals": {
- "int": "gpio:13"
- },
- "verified": {
- "signals": "generated"
- }
- },
- "pmic": {
- "kind": "pmic",
- "part": "m5pm1",
- "bus": "internal_i2c",
- "pins": {
- "pwrkey": {
- "roles": [
- "dev:btn_pwr.in"
- ]
- }
- },
- "signals": {
- "int": "gpio:12"
- }
- },
- "ioe": {
- "kind": "io_expander",
- "part": "m5ioe1",
- "bus": "internal_i2c"
- },
- "rtc": {
- "kind": "rtc",
- "bus": "internal_i2c",
- "i2c_addr": "0x32"
- },
- "imu": {
- "kind": "imu",
- "bus": "internal_i2c",
- "i2c_addr": "0x68"
- },
- "nfc": {
- "kind": "sensor",
- "bus": "internal_i2c",
- "i2c_addr": "0x50"
- },
- "btn_a": {
- "kind": "button",
- "part": "button",
- "spec": {
- "active_low": true,
- "pull": "external_up"
- },
- "signals": {
- "in": "gpio:2"
- },
- "verified": {
- "signals": "generated"
- }
- },
- "btn_b": {
- "kind": "button",
- "part": "button",
- "spec": {
- "active_low": true,
- "pull": "external_up"
- },
- "signals": {
- "in": "gpio:1"
- },
- "verified": {
- "signals": "generated"
- }
- },
- "btn_pwr": {
- "kind": "button",
- "part": "button",
- "spec": {
- "active_low": true,
- "pull": "pmic"
- },
- "signals": {
- "in": "pin:pmic.pwrkey"
- },
- "verified": {
- "signals": "generated"
- }
- },
- "psram": {
- "kind": "psram",
- "part": "psram",
- "signals": {
- "cs": "gpio:26",
- "d3": "gpio:27",
- "d2": "gpio:28",
- "clk": "gpio:30",
- "d1": "gpio:31",
- "d0": "gpio:32",
- "d4": "gpio:33",
- "d5": "gpio:34",
- "d6": "gpio:35",
- "d7": "gpio:36",
- "dqs": "gpio:37"
- }
- },
- "rear_mux": {
- "kind": "transceiver",
- "part": "ch442e",
- "pins": {
- "io1": {
- "roles": [
- "conn:rear_mux.2"
- ],
- "note": "MUX_IO_1 / DB (U26 pin 4)."
- },
- "io2": {
- "roles": [
- "conn:rear_mux.3"
- ],
- "note": "MUX_IO_2 / DC (U26 pin 6)."
- }
- },
- "note": "U26 CH442E routes MUX_IO_1/2 through a switch, not a direct GPIO connection. M5IOE1 at 0x4F controls IN via PYG1 (PYB_MUX_CTR): low selects G43 UART0 TX / G44 UART0 RX (default); high selects G20 USB_P / G19 USB_N."
- }
- },
- "connectors": {
- "port_a": {
- "type": "hy2_4p",
- "standard": "port_i2c",
- "positions": {
- "1": "gpio:11",
- "2": "gpio:10",
- "3": "pwr:5v",
- "4": "pwr:gnd"
- }
- },
- "rear_gpio": {
- "type": "socket_1x7_254",
- "positions": {
- "1": "gpio:3",
- "2": "gpio:4",
- "3": "gpio:5",
- "4": "gpio:6",
- "5": "gpio:7",
- "6": "gpio:8",
- "7": "pwr:bat"
- },
- "note": "Rear right J5: pins 1-6 are G3-G8; pin 7 is BAT on v1.0.1. On v1.0, pin 7 is an external 5V input, including batches incorrectly labeled BAT. Never connect a battery to the v1.0 pin. The linked schematic shows the older Int_5V connection.",
- "group": "rear"
- },
- "rear_mux": {
- "type": "socket_1x6_254",
- "positions": {
- "1": "pwr:3v3",
- "2": "pin:rear_mux.io1",
- "3": "pin:rear_mux.io2",
- "4": "gpio:9",
- "5": "gpio:0",
- "6": "pwr:gnd"
- },
- "note": "Rear left J6: pin 1 is the switched 3V3_L2 output through R59 (0 ohm); do not exceed 200 mA. Pins 2/3 are CH442E MUX_IO_1/2: G43/G44 UART0 by default, G20/G19 USB when M5IOE1 PYG1 is high. Pin 4 is G9, pin 5 is G0 BOOT, pin 6 is GND.",
- "group": "rear"
- }
- }
-}
diff --git a/extras/board_spec/generated/resolved/m5timercam.json b/extras/board_spec/generated/resolved/m5timercam.json
deleted file mode 100644
index a7b8124b..00000000
--- a/extras/board_spec/generated/resolved/m5timercam.json
+++ /dev/null
@@ -1,184 +0,0 @@
-{
- "schema_version": 1,
- "id": "m5timercam",
- "name": "M5TimerCam",
- "official_name": "M5Stack TimerCamera",
- "official_name_verified": true,
- "aliases": [
- "timercam",
- "timer camera",
- "timer cam",
- "timercamera-x",
- "timercamera-f"
- ],
- "legacy_board_id": 132,
- "chip": "esp32_d0wdq6",
- "spec": {
- "storage": {
- "psram_mb": 8,
- "psram_mode": "quad"
- },
- "links": {
- "product": "https://docs.m5stack.com/en/unit/timercam",
- "verified": {
- "product": "datasheet",
- "schematic": "datasheet"
- },
- "schematic": "https://m5stack-doc.oss-cn-shenzhen.aliyuncs.com/1042/Sch_M5TimerCAM.pdf"
- }
- },
- "pins": {
- "0": {
- "roles": [
- "dev:usb_serial.boot"
- ]
- },
- "1": {
- "roles": [
- "bus:console_uart.tx"
- ]
- },
- "3": {
- "roles": [
- "bus:console_uart.rx"
- ]
- },
- "4": {
- "roles": [
- "bus:port_a_i2c.sda",
- "conn:port_a.2"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "12": {
- "roles": [
- "bus:internal_i2c.sda"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "13": {
- "roles": [
- "bus:port_a_i2c.scl",
- "conn:port_a.1"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "14": {
- "roles": [
- "bus:internal_i2c.scl"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "16": {
- "roles": [
- "dev:psram.cs"
- ]
- },
- "17": {
- "roles": [
- "dev:psram.clk"
- ]
- },
- "33": {
- "roles": [
- "dev:power_hold.enable"
- ],
- "verified": {
- "roles": "generated"
- }
- }
- },
- "buses": {
- "console_uart": {
- "kind": "uart",
- "signals": [
- "tx",
- "rx"
- ],
- "preferred_host": 0,
- "fixed": true
- },
- "internal_i2c": {
- "kind": "i2c",
- "signals": [
- "sda",
- "scl"
- ],
- "preferred_host": 1,
- "fixed": false,
- "verified": {
- "signals": "generated",
- "preferred_host": "generated"
- }
- },
- "port_a_i2c": {
- "kind": "i2c",
- "signals": [
- "sda",
- "scl"
- ],
- "preferred_host": 0,
- "fixed": false,
- "verified": {
- "signals": "generated",
- "preferred_host": "generated"
- }
- }
- },
- "devices": {
- "usb_serial": {
- "kind": "usb_uart",
- "part": "ch552",
- "bus": "console_uart",
- "spec": {
- "auto_reset": true
- },
- "signals": {
- "boot": "gpio:0"
- }
- },
- "power_hold": {
- "kind": "power_hold",
- "signals": {
- "enable": "gpio:33"
- },
- "verified": {
- "signals": "generated"
- }
- },
- "rtc": {
- "kind": "rtc",
- "part": "bm8563",
- "bus": "internal_i2c",
- "i2c_addr": "0x51"
- },
- "psram": {
- "kind": "psram",
- "part": "psram",
- "signals": {
- "cs": "gpio:16",
- "clk": "gpio:17"
- }
- }
- },
- "connectors": {
- "port_a": {
- "type": "hy2_4p",
- "standard": "port_i2c",
- "positions": {
- "1": "gpio:13",
- "2": "gpio:4",
- "3": "pwr:5v",
- "4": "pwr:gnd"
- }
- }
- }
-}
diff --git a/extras/board_spec/generated/resolved/m5tough+lcd=ili9342c.json b/extras/board_spec/generated/resolved/m5tough+lcd=ili9342c.json
deleted file mode 100644
index e5a4df24..00000000
--- a/extras/board_spec/generated/resolved/m5tough+lcd=ili9342c.json
+++ /dev/null
@@ -1,669 +0,0 @@
-{
- "schema_version": 1,
- "id": "m5tough",
- "name": "M5Tough",
- "official_name": "M5Stack Tough",
- "official_name_verified": true,
- "aliases": [
- "tough",
- "m5tough"
- ],
- "legacy_board_id": 8,
- "chip": "esp32_d0wdq6",
- "spec": {
- "storage": {
- "psram_mb": 8,
- "psram_mode": "quad"
- },
- "links": {
- "product": "https://docs.m5stack.com/en/core/Tough",
- "schematic": "https://m5stack-doc.oss-cn-shenzhen.aliyuncs.com/647/Tough-Schematics-PDF.pdf",
- "verified": {
- "product": "datasheet",
- "schematic": "datasheet"
- }
- }
- },
- "pins": {
- "0": {
- "roles": [
- "bus:i2s_spk.ws",
- "bus:pdm_mic.ws",
- "conn:mbus.24",
- "dev:usb_serial.boot"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "1": {
- "roles": [
- "conn:mbus.14",
- "bus:console_uart.tx"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "2": {
- "roles": [
- "bus:i2s_spk.data_out",
- "conn:mbus.23"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "3": {
- "roles": [
- "conn:mbus.13",
- "bus:console_uart.rx"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "4": {
- "roles": [
- "dev:sd.d3"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "5": {
- "roles": [
- "dev:lcd.cs"
- ]
- },
- "12": {
- "roles": [
- "bus:i2s_spk.bck"
- ]
- },
- "13": {
- "roles": [
- "conn:mbus.15",
- "tough_subboard/conn:port_c.1"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "14": {
- "roles": [
- "conn:mbus.16",
- "tough_subboard/conn:port_c.2"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "15": {
- "roles": [
- "dev:lcd.dc"
- ]
- },
- "16": {
- "roles": [
- "dev:psram.cs"
- ]
- },
- "17": {
- "roles": [
- "dev:psram.clk"
- ]
- },
- "18": {
- "roles": [
- "bus:main_spi.sclk",
- "dev:sd.clk",
- "conn:mbus.11"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "19": {
- "roles": [
- "conn:mbus.22",
- "tough_subboard/bus:uart_rs485.tx"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "21": {
- "roles": [
- "bus:internal_i2c.sda",
- "conn:mbus.17"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "22": {
- "roles": [
- "bus:internal_i2c.scl",
- "conn:mbus.18"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "23": {
- "roles": [
- "bus:main_spi.mosi",
- "dev:sd.cmd",
- "conn:mbus.7"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "25": {
- "roles": [
- "conn:mbus.8",
- "tough_subboard/conn:reset_port.2"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "26": {
- "roles": [
- "conn:mbus.10",
- "tough_subboard/conn:port_b.2"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "27": {
- "roles": [
- "conn:mbus.21",
- "tough_subboard/bus:uart_rs485.rx"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "32": {
- "roles": [
- "conn:mbus.19",
- "tough_subboard/conn:port_a.2"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "33": {
- "roles": [
- "conn:mbus.20",
- "tough_subboard/conn:port_a.1"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "34": {
- "roles": [
- "bus:pdm_mic.data_in",
- "conn:mbus.26"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "35": {
- "roles": [
- "conn:mbus.2"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "36": {
- "roles": [
- "conn:mbus.4",
- "tough_subboard/conn:port_b.1"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "38": {
- "roles": [
- "bus:main_spi.miso",
- "dev:sd.d0",
- "conn:mbus.9"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "39": {
- "roles": [
- "dev:touch.int"
- ]
- }
- },
- "buses": {
- "console_uart": {
- "kind": "uart",
- "signals": [
- "tx",
- "rx"
- ],
- "preferred_host": 0,
- "fixed": true
- },
- "main_spi": {
- "kind": "spi",
- "signals": [
- "sclk",
- "mosi",
- "miso"
- ],
- "preferred_host": "SPI3_HOST",
- "fixed": false,
- "freq": 40000000,
- "freq_read": 16000000,
- "verified": {
- "signals": "generated",
- "preferred_host": "generated",
- "freq": "generated",
- "freq_read": "generated"
- }
- },
- "internal_i2c": {
- "kind": "i2c",
- "signals": [
- "sda",
- "scl"
- ],
- "preferred_host": 1,
- "fixed": false,
- "freq": 400000,
- "verified": {
- "signals": "generated",
- "preferred_host": "generated",
- "freq": "generated"
- }
- },
- "i2s_spk": {
- "kind": "i2s",
- "signals": [
- "bck",
- "ws",
- "data_out"
- ],
- "fixed": false
- },
- "pdm_mic": {
- "kind": "pdm",
- "signals": [
- "ws",
- "data_in"
- ],
- "fixed": false
- },
- "uart_rs485": {
- "kind": "uart",
- "signals": [
- "tx",
- "rx"
- ],
- "fixed": false,
- "note": "Half-duplex auto-direction UART",
- "verified": {
- "signals": "datasheet",
- "note": "datasheet"
- },
- "source": {
- "accessory": "tough_subboard",
- "origin": "official",
- "bundled": true
- }
- }
- },
- "devices": {
- "usb_serial": {
- "kind": "usb_uart",
- "part": "ch9102",
- "bus": "console_uart",
- "spec": {
- "auto_reset": true
- },
- "signals": {
- "boot": "gpio:0"
- }
- },
- "lcd": {
- "kind": "display",
- "bus": "main_spi",
- "spec": {
- "width": 320,
- "height": 240,
- "rotation_offset": 0
- },
- "part": "ili9342c",
- "signals": {
- "cs": "gpio:5",
- "dc": "gpio:15",
- "rst": "pin:pmic.gpio3",
- "backlight": "pin:pmic.ldo3"
- },
- "verified": {
- "signals": "generated"
- }
- },
- "sd": {
- "kind": "sd",
- "part": "sd_slot",
- "bus": "main_spi",
- "verified": {
- "bus": "generated",
- "derived": "generated",
- "signals": "generated"
- },
- "derived": {
- "modes": [
- "spi"
- ],
- "bus": "main_spi",
- "cs": "gpio:4"
- },
- "signals": {
- "d3": "gpio:4",
- "clk": "gpio:18",
- "cmd": "gpio:23",
- "d0": "gpio:38"
- }
- },
- "touch": {
- "kind": "touch",
- "part": "chsc6540",
- "bus": "internal_i2c",
- "i2c_addr": "0x2E",
- "spec": {
- "x_max": 319,
- "y_max": 239
- },
- "signals": {
- "int": "gpio:39"
- },
- "verified": {
- "signals": "generated"
- }
- },
- "speaker": {
- "kind": "speaker",
- "bus": "i2s_spk",
- "enable": "pin:pmic.gpio2",
- "verified": {
- "enable": "generated"
- }
- },
- "mic": {
- "kind": "mic",
- "bus": "pdm_mic"
- },
- "pmic": {
- "kind": "pmic",
- "part": "axp192",
- "bus": "internal_i2c",
- "i2c_addr": "0x34",
- "pins": {
- "gpio3": {
- "roles": [
- "dev:lcd.rst"
- ]
- },
- "gpio2": {
- "roles": [
- "dev:speaker.enable"
- ]
- },
- "ldo3": {
- "roles": [
- "dev:lcd.backlight"
- ]
- },
- "ldo2": {
- "roles": [
- "pwr:lcd_sd_3v3"
- ]
- },
- "dcdc1": {
- "roles": [
- "pwr:esp_3v3"
- ]
- },
- "gpio0": {
- "roles": [
- "pwr:ext_ldo"
- ]
- },
- "exten": {
- "roles": [
- "pwr:ext_5v"
- ]
- },
- "pwrkey": {
- "roles": [
- "dev:btn_pwr.in"
- ]
- }
- }
- },
- "btn_pwr": {
- "kind": "button",
- "part": "button",
- "spec": {
- "active_low": true,
- "pull": "pmic"
- },
- "signals": {
- "in": "pin:pmic.pwrkey"
- },
- "verified": {
- "signals": "generated"
- }
- },
- "psram": {
- "kind": "psram",
- "part": "psram",
- "signals": {
- "cs": "gpio:16",
- "clk": "gpio:17"
- }
- },
- "rs485_xcvr": {
- "kind": "transceiver",
- "part": "sp485e",
- "bus": "uart_rs485",
- "pins": {
- "a": {
- "roles": [
- "tough_subboard/conn:rs485.2"
- ],
- "verified": {
- "roles": "datasheet"
- }
- },
- "b": {
- "roles": [
- "tough_subboard/conn:rs485.1"
- ],
- "verified": {
- "roles": "datasheet"
- }
- }
- },
- "note": "SP485E auto-direction: DI is tied to GND; GPIO19 TX drives combined DE/RE through Q1, so DE/RE have no separate GPIO role.",
- "verified": {
- "part": "datasheet",
- "note": "datasheet"
- },
- "source": {
- "accessory": "tough_subboard",
- "origin": "official",
- "bundled": true
- }
- },
- "dcdc_in": {
- "kind": "regulator",
- "part": "me3116",
- "pins": {
- "vin": {
- "roles": [
- "tough_subboard/pwr:vin"
- ],
- "note": "Shared by RS485 position 3 and M-Bus HPWR positions 25/27",
- "verified": {
- "roles": "datasheet",
- "note": "datasheet"
- }
- },
- "vout": {
- "roles": [
- "tough_subboard/pwr:5v"
- ],
- "verified": {
- "roles": "datasheet"
- }
- }
- },
- "note": "ME3116 converts the 6–24V input rail to 5V.",
- "verified": {
- "part": "datasheet",
- "note": "datasheet"
- },
- "source": {
- "accessory": "tough_subboard",
- "origin": "official",
- "bundled": true
- }
- }
- },
- "connectors": {
- "mbus": {
- "type": "mbus",
- "note": "Port A/B/C, RESET and RS485 are on the bundled Tough Ext Board, modeled by the tough_subboard accessory. Host pin-map HPWR terminals are NC; the Ext Board routes the input rail to its regulator.",
- "positions": {
- "1": "pwr:gnd",
- "2": "gpio:35",
- "3": "pwr:gnd",
- "4": "gpio:36",
- "5": "pwr:gnd",
- "6": "chip:en",
- "7": "gpio:23",
- "8": "gpio:25",
- "9": "gpio:38",
- "10": "gpio:26",
- "11": "gpio:18",
- "12": "pwr:3v3",
- "13": "gpio:3",
- "14": "gpio:1",
- "15": "gpio:13",
- "16": "gpio:14",
- "17": "gpio:21",
- "18": "gpio:22",
- "19": "gpio:32",
- "20": "gpio:33",
- "21": "gpio:27",
- "22": "gpio:19",
- "23": "gpio:2",
- "24": "gpio:0",
- "25": "nc",
- "26": "gpio:34",
- "27": "nc",
- "28": "pwr:5v",
- "29": "nc",
- "30": "pwr:bat"
- }
- },
- "port_a": {
- "type": "hy2_4p",
- "standard": "port_i2c",
- "source": {
- "accessory": "tough_subboard",
- "origin": "official",
- "bundled": true
- },
- "positions": {
- "1": "gpio:33",
- "2": "gpio:32",
- "3": "pwr:5v",
- "4": "pwr:gnd"
- }
- },
- "port_b": {
- "type": "hy2_4p",
- "standard": "port_io",
- "source": {
- "accessory": "tough_subboard",
- "origin": "official",
- "bundled": true
- },
- "positions": {
- "1": "gpio:36",
- "2": "gpio:26",
- "3": "pwr:5v",
- "4": "pwr:gnd"
- }
- },
- "port_c": {
- "type": "hy2_4p",
- "standard": "port_uart",
- "source": {
- "accessory": "tough_subboard",
- "origin": "official",
- "bundled": true
- },
- "positions": {
- "1": "gpio:13",
- "2": "gpio:14",
- "3": "pwr:5v",
- "4": "pwr:gnd"
- }
- },
- "rs485": {
- "type": "hy2_4p",
- "standard": "port_rs485",
- "positions": {
- "1": "pin:rs485_xcvr.b",
- "2": "pin:rs485_xcvr.a",
- "3": "pwr:vin",
- "4": "pwr:gnd"
- },
- "verified": {
- "positions": "datasheet"
- },
- "source": {
- "accessory": "tough_subboard",
- "origin": "official",
- "bundled": true
- }
- },
- "reset_port": {
- "type": "hy2_4p",
- "standard": "port_reset",
- "positions": {
- "1": "chip:en",
- "2": "gpio:25",
- "3": "pwr:5v",
- "4": "pwr:gnd"
- },
- "verified": {
- "positions": "datasheet"
- },
- "source": {
- "accessory": "tough_subboard",
- "origin": "official",
- "bundled": true
- }
- }
- }
-}
diff --git a/extras/board_spec/generated/resolved/m5tough+lcd=ili9342e.json b/extras/board_spec/generated/resolved/m5tough+lcd=ili9342e.json
deleted file mode 100644
index 6a383b9a..00000000
--- a/extras/board_spec/generated/resolved/m5tough+lcd=ili9342e.json
+++ /dev/null
@@ -1,669 +0,0 @@
-{
- "schema_version": 1,
- "id": "m5tough",
- "name": "M5Tough",
- "official_name": "M5Stack Tough",
- "official_name_verified": true,
- "aliases": [
- "tough",
- "m5tough"
- ],
- "legacy_board_id": 8,
- "chip": "esp32_d0wdq6",
- "spec": {
- "storage": {
- "psram_mb": 8,
- "psram_mode": "quad"
- },
- "links": {
- "product": "https://docs.m5stack.com/en/core/Tough",
- "schematic": "https://m5stack-doc.oss-cn-shenzhen.aliyuncs.com/647/Tough-Schematics-PDF.pdf",
- "verified": {
- "product": "datasheet",
- "schematic": "datasheet"
- }
- }
- },
- "pins": {
- "0": {
- "roles": [
- "bus:i2s_spk.ws",
- "bus:pdm_mic.ws",
- "conn:mbus.24",
- "dev:usb_serial.boot"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "1": {
- "roles": [
- "conn:mbus.14",
- "bus:console_uart.tx"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "2": {
- "roles": [
- "bus:i2s_spk.data_out",
- "conn:mbus.23"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "3": {
- "roles": [
- "conn:mbus.13",
- "bus:console_uart.rx"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "4": {
- "roles": [
- "dev:sd.d3"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "5": {
- "roles": [
- "dev:lcd.cs"
- ]
- },
- "12": {
- "roles": [
- "bus:i2s_spk.bck"
- ]
- },
- "13": {
- "roles": [
- "conn:mbus.15",
- "tough_subboard/conn:port_c.1"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "14": {
- "roles": [
- "conn:mbus.16",
- "tough_subboard/conn:port_c.2"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "15": {
- "roles": [
- "dev:lcd.dc"
- ]
- },
- "16": {
- "roles": [
- "dev:psram.cs"
- ]
- },
- "17": {
- "roles": [
- "dev:psram.clk"
- ]
- },
- "18": {
- "roles": [
- "bus:main_spi.sclk",
- "dev:sd.clk",
- "conn:mbus.11"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "19": {
- "roles": [
- "conn:mbus.22",
- "tough_subboard/bus:uart_rs485.tx"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "21": {
- "roles": [
- "bus:internal_i2c.sda",
- "conn:mbus.17"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "22": {
- "roles": [
- "bus:internal_i2c.scl",
- "conn:mbus.18"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "23": {
- "roles": [
- "bus:main_spi.mosi",
- "dev:sd.cmd",
- "conn:mbus.7"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "25": {
- "roles": [
- "conn:mbus.8",
- "tough_subboard/conn:reset_port.2"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "26": {
- "roles": [
- "conn:mbus.10",
- "tough_subboard/conn:port_b.2"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "27": {
- "roles": [
- "conn:mbus.21",
- "tough_subboard/bus:uart_rs485.rx"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "32": {
- "roles": [
- "conn:mbus.19",
- "tough_subboard/conn:port_a.2"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "33": {
- "roles": [
- "conn:mbus.20",
- "tough_subboard/conn:port_a.1"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "34": {
- "roles": [
- "bus:pdm_mic.data_in",
- "conn:mbus.26"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "35": {
- "roles": [
- "conn:mbus.2"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "36": {
- "roles": [
- "conn:mbus.4",
- "tough_subboard/conn:port_b.1"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "38": {
- "roles": [
- "bus:main_spi.miso",
- "dev:sd.d0",
- "conn:mbus.9"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "39": {
- "roles": [
- "dev:touch.int"
- ]
- }
- },
- "buses": {
- "console_uart": {
- "kind": "uart",
- "signals": [
- "tx",
- "rx"
- ],
- "preferred_host": 0,
- "fixed": true
- },
- "main_spi": {
- "kind": "spi",
- "signals": [
- "sclk",
- "mosi",
- "miso"
- ],
- "preferred_host": "SPI3_HOST",
- "fixed": false,
- "freq": 40000000,
- "freq_read": 16000000,
- "verified": {
- "signals": "generated",
- "preferred_host": "generated",
- "freq": "generated",
- "freq_read": "generated"
- }
- },
- "internal_i2c": {
- "kind": "i2c",
- "signals": [
- "sda",
- "scl"
- ],
- "preferred_host": 1,
- "fixed": false,
- "freq": 400000,
- "verified": {
- "signals": "generated",
- "preferred_host": "generated",
- "freq": "generated"
- }
- },
- "i2s_spk": {
- "kind": "i2s",
- "signals": [
- "bck",
- "ws",
- "data_out"
- ],
- "fixed": false
- },
- "pdm_mic": {
- "kind": "pdm",
- "signals": [
- "ws",
- "data_in"
- ],
- "fixed": false
- },
- "uart_rs485": {
- "kind": "uart",
- "signals": [
- "tx",
- "rx"
- ],
- "fixed": false,
- "note": "Half-duplex auto-direction UART",
- "verified": {
- "signals": "datasheet",
- "note": "datasheet"
- },
- "source": {
- "accessory": "tough_subboard",
- "origin": "official",
- "bundled": true
- }
- }
- },
- "devices": {
- "usb_serial": {
- "kind": "usb_uart",
- "part": "ch9102",
- "bus": "console_uart",
- "spec": {
- "auto_reset": true
- },
- "signals": {
- "boot": "gpio:0"
- }
- },
- "lcd": {
- "kind": "display",
- "bus": "main_spi",
- "spec": {
- "width": 320,
- "height": 240,
- "rotation_offset": 0
- },
- "part": "ili9342e",
- "signals": {
- "cs": "gpio:5",
- "dc": "gpio:15",
- "rst": "pin:pmic.gpio3",
- "backlight": "pin:pmic.ldo3"
- },
- "verified": {
- "signals": "generated"
- }
- },
- "sd": {
- "kind": "sd",
- "part": "sd_slot",
- "bus": "main_spi",
- "verified": {
- "bus": "generated",
- "derived": "generated",
- "signals": "generated"
- },
- "derived": {
- "modes": [
- "spi"
- ],
- "bus": "main_spi",
- "cs": "gpio:4"
- },
- "signals": {
- "d3": "gpio:4",
- "clk": "gpio:18",
- "cmd": "gpio:23",
- "d0": "gpio:38"
- }
- },
- "touch": {
- "kind": "touch",
- "part": "chsc6540",
- "bus": "internal_i2c",
- "i2c_addr": "0x2E",
- "spec": {
- "x_max": 319,
- "y_max": 239
- },
- "signals": {
- "int": "gpio:39"
- },
- "verified": {
- "signals": "generated"
- }
- },
- "speaker": {
- "kind": "speaker",
- "bus": "i2s_spk",
- "enable": "pin:pmic.gpio2",
- "verified": {
- "enable": "generated"
- }
- },
- "mic": {
- "kind": "mic",
- "bus": "pdm_mic"
- },
- "pmic": {
- "kind": "pmic",
- "part": "axp192",
- "bus": "internal_i2c",
- "i2c_addr": "0x34",
- "pins": {
- "gpio3": {
- "roles": [
- "dev:lcd.rst"
- ]
- },
- "gpio2": {
- "roles": [
- "dev:speaker.enable"
- ]
- },
- "ldo3": {
- "roles": [
- "dev:lcd.backlight"
- ]
- },
- "ldo2": {
- "roles": [
- "pwr:lcd_sd_3v3"
- ]
- },
- "dcdc1": {
- "roles": [
- "pwr:esp_3v3"
- ]
- },
- "gpio0": {
- "roles": [
- "pwr:ext_ldo"
- ]
- },
- "exten": {
- "roles": [
- "pwr:ext_5v"
- ]
- },
- "pwrkey": {
- "roles": [
- "dev:btn_pwr.in"
- ]
- }
- }
- },
- "btn_pwr": {
- "kind": "button",
- "part": "button",
- "spec": {
- "active_low": true,
- "pull": "pmic"
- },
- "signals": {
- "in": "pin:pmic.pwrkey"
- },
- "verified": {
- "signals": "generated"
- }
- },
- "psram": {
- "kind": "psram",
- "part": "psram",
- "signals": {
- "cs": "gpio:16",
- "clk": "gpio:17"
- }
- },
- "rs485_xcvr": {
- "kind": "transceiver",
- "part": "sp485e",
- "bus": "uart_rs485",
- "pins": {
- "a": {
- "roles": [
- "tough_subboard/conn:rs485.2"
- ],
- "verified": {
- "roles": "datasheet"
- }
- },
- "b": {
- "roles": [
- "tough_subboard/conn:rs485.1"
- ],
- "verified": {
- "roles": "datasheet"
- }
- }
- },
- "note": "SP485E auto-direction: DI is tied to GND; GPIO19 TX drives combined DE/RE through Q1, so DE/RE have no separate GPIO role.",
- "verified": {
- "part": "datasheet",
- "note": "datasheet"
- },
- "source": {
- "accessory": "tough_subboard",
- "origin": "official",
- "bundled": true
- }
- },
- "dcdc_in": {
- "kind": "regulator",
- "part": "me3116",
- "pins": {
- "vin": {
- "roles": [
- "tough_subboard/pwr:vin"
- ],
- "note": "Shared by RS485 position 3 and M-Bus HPWR positions 25/27",
- "verified": {
- "roles": "datasheet",
- "note": "datasheet"
- }
- },
- "vout": {
- "roles": [
- "tough_subboard/pwr:5v"
- ],
- "verified": {
- "roles": "datasheet"
- }
- }
- },
- "note": "ME3116 converts the 6–24V input rail to 5V.",
- "verified": {
- "part": "datasheet",
- "note": "datasheet"
- },
- "source": {
- "accessory": "tough_subboard",
- "origin": "official",
- "bundled": true
- }
- }
- },
- "connectors": {
- "mbus": {
- "type": "mbus",
- "note": "Port A/B/C, RESET and RS485 are on the bundled Tough Ext Board, modeled by the tough_subboard accessory. Host pin-map HPWR terminals are NC; the Ext Board routes the input rail to its regulator.",
- "positions": {
- "1": "pwr:gnd",
- "2": "gpio:35",
- "3": "pwr:gnd",
- "4": "gpio:36",
- "5": "pwr:gnd",
- "6": "chip:en",
- "7": "gpio:23",
- "8": "gpio:25",
- "9": "gpio:38",
- "10": "gpio:26",
- "11": "gpio:18",
- "12": "pwr:3v3",
- "13": "gpio:3",
- "14": "gpio:1",
- "15": "gpio:13",
- "16": "gpio:14",
- "17": "gpio:21",
- "18": "gpio:22",
- "19": "gpio:32",
- "20": "gpio:33",
- "21": "gpio:27",
- "22": "gpio:19",
- "23": "gpio:2",
- "24": "gpio:0",
- "25": "nc",
- "26": "gpio:34",
- "27": "nc",
- "28": "pwr:5v",
- "29": "nc",
- "30": "pwr:bat"
- }
- },
- "port_a": {
- "type": "hy2_4p",
- "standard": "port_i2c",
- "source": {
- "accessory": "tough_subboard",
- "origin": "official",
- "bundled": true
- },
- "positions": {
- "1": "gpio:33",
- "2": "gpio:32",
- "3": "pwr:5v",
- "4": "pwr:gnd"
- }
- },
- "port_b": {
- "type": "hy2_4p",
- "standard": "port_io",
- "source": {
- "accessory": "tough_subboard",
- "origin": "official",
- "bundled": true
- },
- "positions": {
- "1": "gpio:36",
- "2": "gpio:26",
- "3": "pwr:5v",
- "4": "pwr:gnd"
- }
- },
- "port_c": {
- "type": "hy2_4p",
- "standard": "port_uart",
- "source": {
- "accessory": "tough_subboard",
- "origin": "official",
- "bundled": true
- },
- "positions": {
- "1": "gpio:13",
- "2": "gpio:14",
- "3": "pwr:5v",
- "4": "pwr:gnd"
- }
- },
- "rs485": {
- "type": "hy2_4p",
- "standard": "port_rs485",
- "positions": {
- "1": "pin:rs485_xcvr.b",
- "2": "pin:rs485_xcvr.a",
- "3": "pwr:vin",
- "4": "pwr:gnd"
- },
- "verified": {
- "positions": "datasheet"
- },
- "source": {
- "accessory": "tough_subboard",
- "origin": "official",
- "bundled": true
- }
- },
- "reset_port": {
- "type": "hy2_4p",
- "standard": "port_reset",
- "positions": {
- "1": "chip:en",
- "2": "gpio:25",
- "3": "pwr:5v",
- "4": "pwr:gnd"
- },
- "verified": {
- "positions": "datasheet"
- },
- "source": {
- "accessory": "tough_subboard",
- "origin": "official",
- "bundled": true
- }
- }
- }
-}
diff --git a/extras/board_spec/generated/resolved/m5toughc5.json b/extras/board_spec/generated/resolved/m5toughc5.json
deleted file mode 100644
index 75ae3c95..00000000
--- a/extras/board_spec/generated/resolved/m5toughc5.json
+++ /dev/null
@@ -1,328 +0,0 @@
-{
- "schema_version": 1,
- "id": "m5toughc5",
- "name": "M5ToughC5",
- "official_name": "M5Stack ToughC5",
- "official_name_verified": true,
- "aliases": [
- "toughc5",
- "tough c5"
- ],
- "legacy_board_id": 33,
- "chip": "esp32c5",
- "spec": {
- "display": {
- "resolution": [
- 320,
- 240
- ],
- "touch": true
- },
- "storage": {
- "psram_mb": 8,
- "flash_mb": 8,
- "sd": true,
- "psram_mode": "quad"
- },
- "links": {
- "product": "https://docs.m5stack.com/en/core/ToughC5",
- "verified": {
- "product": "datasheet",
- "schematic": "datasheet"
- },
- "schematic": "https://m5stack-doc.oss-cn-shenzhen.aliyuncs.com/1275/K162_ToughC5_sche.pdf"
- }
- },
- "pins": {
- "1": {
- "roles": [
- "conn:port_b.1"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "2": {
- "roles": [
- "bus:internal_i2c.sda",
- "bus:touch_i2c.sda",
- "bus:port_a_i2c.sda",
- "conn:port_a.2"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "3": {
- "roles": [
- "bus:internal_i2c.scl",
- "bus:touch_i2c.scl",
- "bus:port_a_i2c.scl",
- "conn:port_a.1"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "6": {
- "roles": [
- "conn:port_b.2"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "7": {
- "roles": [
- "bus:main_spi.mosi",
- "dev:sd.cmd"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "8": {
- "roles": [
- "bus:main_spi.miso",
- "dev:sd.d0"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "9": {
- "roles": [
- "bus:main_spi.sclk",
- "dev:sd.clk"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "10": {
- "roles": [
- "dev:sd.d3"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "11": {
- "roles": [
- "conn:port_c.2"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "12": {
- "roles": [
- "conn:port_c.1"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "25": {
- "roles": [
- "dev:lcd.cs"
- ]
- },
- "26": {
- "roles": [
- "dev:lcd.dc"
- ]
- }
- },
- "buses": {
- "main_spi": {
- "kind": "spi",
- "signals": [
- "sclk",
- "mosi",
- "miso"
- ],
- "preferred_host": "SPI2_HOST",
- "fixed": false,
- "freq": 40000000,
- "freq_read": 16000000,
- "verified": {
- "signals": "generated",
- "preferred_host": "generated",
- "freq": "generated",
- "freq_read": "generated"
- }
- },
- "internal_i2c": {
- "kind": "i2c",
- "signals": [
- "sda",
- "scl"
- ],
- "preferred_host": 1,
- "freq": 100000,
- "fixed": true,
- "note": "preferred_host 1 is the LP-I2C port only when the SDK exposes supported LP-I2C APIs; otherwise the descriptor uses HP I2C port 0",
- "verified": {
- "signals": "generated",
- "preferred_host": "generated",
- "freq": "generated"
- }
- },
- "touch_i2c": {
- "kind": "i2c",
- "signals": [
- "sda",
- "scl"
- ],
- "preferred_host": 1,
- "freq": 400000,
- "fixed": true,
- "verified": {
- "signals": "generated",
- "preferred_host": "generated",
- "freq": "generated"
- }
- },
- "port_a_i2c": {
- "kind": "i2c",
- "signals": [
- "sda",
- "scl"
- ],
- "preferred_host": 1,
- "fixed": true,
- "verified": {
- "signals": "generated",
- "preferred_host": "generated"
- }
- }
- },
- "devices": {
- "lcd": {
- "kind": "display",
- "part": "ili9342c",
- "bus": "main_spi",
- "spec": {
- "width": 320,
- "height": 240,
- "invert": true,
- "readable": true,
- "rotation_offset": 0,
- "three_wire": true
- },
- "signals": {
- "cs": "gpio:25",
- "dc": "gpio:26"
- },
- "verified": {
- "signals": "generated"
- }
- },
- "sd": {
- "kind": "sd",
- "part": "sd_slot",
- "bus": "main_spi",
- "verified": {
- "bus": "generated",
- "signals": "generated",
- "derived": "generated"
- },
- "signals": {
- "cmd": "gpio:7",
- "d0": "gpio:8",
- "clk": "gpio:9",
- "d3": "gpio:10"
- },
- "derived": {
- "modes": [
- "spi"
- ],
- "bus": "main_spi",
- "cs": "gpio:10"
- }
- },
- "touch": {
- "kind": "touch",
- "part": "chsc6540",
- "bus": "touch_i2c",
- "i2c_addr": "0x2E",
- "spec": {
- "x_min": 0,
- "x_max": 319,
- "y_min": 0,
- "y_max": 239
- }
- },
- "pmic": {
- "kind": "pmic",
- "part": "m5pm1",
- "bus": "internal_i2c",
- "pins": {
- "pwrkey": {
- "roles": [
- "dev:btn_pwr.in"
- ]
- }
- }
- },
- "ioe": {
- "kind": "io_expander",
- "part": "m5ioe1",
- "bus": "internal_i2c"
- },
- "btn_pwr": {
- "kind": "button",
- "part": "button",
- "spec": {
- "active_low": true,
- "pull": "pmic"
- },
- "signals": {
- "in": "pin:pmic.pwrkey"
- },
- "verified": {
- "signals": "generated"
- }
- },
- "psram": {
- "kind": "psram",
- "part": "psram"
- }
- },
- "connectors": {
- "port_a": {
- "type": "hy2_4p",
- "standard": "port_i2c",
- "note": "User wiring connector on the internal expansion board; cables route through the M12 housing cable holes. The holes are not electrical M12 pin connectors.",
- "positions": {
- "1": "gpio:3",
- "2": "gpio:2",
- "3": "pwr:5v",
- "4": "pwr:gnd"
- }
- },
- "port_b": {
- "type": "hy2_4p",
- "standard": "port_io",
- "note": "User wiring connector on the internal expansion board; cables route through the M12 housing cable holes. The holes are not electrical M12 pin connectors.",
- "positions": {
- "1": "gpio:1",
- "2": "gpio:6",
- "3": "pwr:5v",
- "4": "pwr:gnd"
- }
- },
- "port_c": {
- "type": "hy2_4p",
- "standard": "port_uart",
- "note": "User wiring connector on the internal expansion board; cables route through the M12 housing cable holes. The holes are not electrical M12 pin connectors. The official color table lists white GPIO11/yellow GPIO12. The existing port_c terminal contract remains 1=GPIO12/2=GPIO11 for compatibility with the library pin table; terminal order is logical.",
- "positions": {
- "1": "gpio:12",
- "2": "gpio:11",
- "3": "pwr:5v",
- "4": "pwr:gnd"
- }
- }
- }
-}
diff --git a/extras/board_spec/generated/resolved/m5unit_c6l.json b/extras/board_spec/generated/resolved/m5unit_c6l.json
deleted file mode 100644
index aa866b4c..00000000
--- a/extras/board_spec/generated/resolved/m5unit_c6l.json
+++ /dev/null
@@ -1,240 +0,0 @@
-{
- "schema_version": 1,
- "id": "m5unit_c6l",
- "name": "M5UnitC6L",
- "official_name": "M5Stack Unit C6L",
- "official_name_verified": true,
- "aliases": [
- "unitc6l",
- "unit c6l",
- "c6l",
- "c6l unit",
- "meshtastic"
- ],
- "legacy_board_id": 25,
- "chip": "esp32c6",
- "spec": {
- "display": {
- "resolution": [
- 64,
- 48
- ],
- "touch": false
- },
- "links": {
- "product": "https://docs.m5stack.com/en/unit/Unit_C6L",
- "verified": {
- "product": "datasheet",
- "schematic": "datasheet"
- },
- "schematic": "https://m5stack-doc.oss-cn-shenzhen.aliyuncs.com/1185/SCH_Unit_C6L_SCH_B0.4.1_20250827_2025_09_02_15_04_22.pdf"
- }
- },
- "pins": {
- "2": {
- "roles": [
- "dev:power_hold.enable"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "4": {
- "roles": [
- "conn:port_b.1",
- "conn:port_c.1"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "5": {
- "roles": [
- "conn:port_b.2",
- "conn:port_c.2"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "6": {
- "roles": [
- "dev:oled.cs"
- ]
- },
- "8": {
- "roles": [
- "bus:internal_i2c.scl"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "10": {
- "roles": [
- "bus:internal_i2c.sda"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "15": {
- "roles": [
- "dev:oled.rst"
- ]
- },
- "18": {
- "roles": [
- "dev:oled.dc"
- ],
- "note": "Board-family pull signature input when the OLED is deselected"
- },
- "20": {
- "roles": [
- "bus:main_spi.sclk"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "21": {
- "roles": [
- "bus:main_spi.mosi"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "22": {
- "roles": [
- "bus:main_spi.miso"
- ],
- "note": "Legacy setup routes this NC signal as MISO",
- "verified": {
- "roles": "generated"
- }
- }
- },
- "buses": {
- "main_spi": {
- "kind": "spi",
- "signals": [
- "sclk",
- "mosi",
- "miso"
- ],
- "preferred_host": "SPI2_HOST",
- "fixed": false,
- "freq": 40000000,
- "freq_read": 10000000,
- "verified": {
- "signals": "generated",
- "preferred_host": "generated",
- "freq": "generated",
- "freq_read": "generated"
- }
- },
- "internal_i2c": {
- "kind": "i2c",
- "signals": [
- "sda",
- "scl"
- ],
- "preferred_host": 0,
- "fixed": false,
- "freq": 100000,
- "verified": {
- "signals": "generated",
- "preferred_host": "generated",
- "freq": "generated"
- }
- }
- },
- "devices": {
- "oled": {
- "kind": "display",
- "part": "ssd1306",
- "bus": "main_spi",
- "spec": {
- "width": 64,
- "height": 48,
- "offset_x": 32,
- "offset_y": 0,
- "rotation_offset": 0,
- "readable": true,
- "three_wire": true
- },
- "signals": {
- "cs": "gpio:6",
- "rst": "gpio:15",
- "dc": "gpio:18"
- },
- "verified": {
- "signals": "generated"
- }
- },
- "power_hold": {
- "kind": "power_hold",
- "spec": {
- "active_low": false
- },
- "signals": {
- "enable": "gpio:2"
- },
- "verified": {
- "signals": "generated"
- }
- },
- "ioe": {
- "kind": "io_expander",
- "part": "pi4io",
- "bus": "internal_i2c",
- "i2c_addr": "0x43",
- "pins": {
- "p0": {
- "roles": [
- "dev:btn_a.in"
- ]
- }
- }
- },
- "btn_a": {
- "kind": "button",
- "part": "button",
- "spec": {
- "active_low": true,
- "pull": "internal_up"
- },
- "signals": {
- "in": "pin:ioe.p0"
- },
- "verified": {
- "signals": "generated"
- }
- }
- },
- "connectors": {
- "port_b": {
- "type": "hy2_4p",
- "standard": "port_io",
- "note": "The product has one physical socket marked PORT.A (white GPIO4/yellow GPIO5). M5Unified assigns this pair to both port_b and port_c; these are library contracts for the same socket.",
- "positions": {
- "1": "gpio:4",
- "2": "gpio:5",
- "3": "pwr:5v",
- "4": "pwr:gnd"
- }
- },
- "port_c": {
- "type": "hy2_4p",
- "standard": "port_uart",
- "note": "The product has one physical socket marked PORT.A (white GPIO4/yellow GPIO5). M5Unified assigns this pair to both port_b and port_c; these are library contracts for the same socket.",
- "positions": {
- "1": "gpio:4",
- "2": "gpio:5",
- "3": "pwr:5v",
- "4": "pwr:gnd"
- }
- }
- }
-}
diff --git a/extras/board_spec/generated/resolved/m5unitpoep4.json b/extras/board_spec/generated/resolved/m5unitpoep4.json
deleted file mode 100644
index 6f46c84c..00000000
--- a/extras/board_spec/generated/resolved/m5unitpoep4.json
+++ /dev/null
@@ -1,458 +0,0 @@
-{
- "schema_version": 1,
- "id": "m5unitpoep4",
- "name": "M5UnitPoEP4",
- "official_name": "M5Stack Unit PoE-P4",
- "official_name_verified": true,
- "legacy_board_id": 148,
- "chip": "esp32p4",
- "spec": {
- "links": {
- "product": "https://docs.m5stack.com/en/unit/Unit_PoE-P4",
- "verified": {
- "product": "datasheet",
- "schematic": "datasheet"
- },
- "schematic": "https://m5stack-doc.oss-cn-shenzhen.aliyuncs.com/1217/SCH_StickPoE_SCH_Main_V0.2_20250829_2026_02_02_17_17_04.pdf"
- }
- },
- "pins": {
- "0": {
- "roles": [
- "bus:internal_i2c.sda",
- "conn:lcd_fpc.9",
- "conn:camera_fpc.3"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "1": {
- "roles": [
- "bus:internal_i2c.scl",
- "conn:lcd_fpc.10",
- "conn:camera_fpc.2"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "2": {
- "roles": [
- "conn:lcd_fpc.8"
- ],
- "verified": {
- "roles": "datasheet"
- }
- },
- "3": {
- "roles": [
- "conn:lcd_fpc.7"
- ],
- "verified": {
- "roles": "datasheet"
- }
- },
- "4": {
- "roles": [
- "conn:lcd_fpc.21"
- ],
- "verified": {
- "roles": "datasheet"
- }
- },
- "8": {
- "roles": [
- "conn:sdio.6"
- ],
- "verified": {
- "roles": "datasheet"
- }
- },
- "9": {
- "roles": [
- "conn:sdio.5"
- ],
- "verified": {
- "roles": "datasheet"
- }
- },
- "10": {
- "roles": [
- "conn:sdio.4"
- ],
- "verified": {
- "roles": "datasheet"
- }
- },
- "11": {
- "roles": [
- "conn:sdio.3"
- ],
- "verified": {
- "roles": "datasheet"
- }
- },
- "12": {
- "roles": [
- "conn:sdio.2"
- ],
- "verified": {
- "roles": "datasheet"
- }
- },
- "13": {
- "roles": [
- "conn:sdio.1"
- ],
- "verified": {
- "roles": "datasheet"
- }
- },
- "18": {
- "roles": [
- "conn:camera_fpc.8"
- ],
- "verified": {
- "roles": "datasheet"
- }
- },
- "19": {
- "roles": [
- "conn:hat2_bus.9"
- ],
- "verified": {
- "roles": "datasheet"
- }
- },
- "20": {
- "roles": [
- "conn:hat2_bus.7"
- ],
- "verified": {
- "roles": "datasheet"
- }
- },
- "21": {
- "roles": [
- "conn:hat2_bus.5"
- ],
- "verified": {
- "roles": "datasheet"
- }
- },
- "22": {
- "roles": [
- "conn:hat2_bus.16"
- ],
- "verified": {
- "roles": "datasheet"
- }
- },
- "23": {
- "roles": [
- "conn:hat2_bus.14"
- ],
- "verified": {
- "roles": "datasheet"
- }
- },
- "26": {
- "roles": [
- "conn:sdio.8"
- ],
- "verified": {
- "roles": "datasheet"
- }
- },
- "27": {
- "roles": [
- "conn:sdio.7"
- ],
- "verified": {
- "roles": "datasheet"
- }
- },
- "31": {
- "roles": [
- "dev:ethernet.mdc"
- ],
- "detect_class": "up"
- },
- "32": {
- "roles": [],
- "detect_class": "floating"
- },
- "35": {
- "roles": [
- "conn:isp.2"
- ],
- "verified": {
- "roles": "datasheet"
- }
- },
- "37": {
- "roles": [
- "conn:isp.5"
- ],
- "verified": {
- "roles": "datasheet"
- }
- },
- "38": {
- "roles": [
- "conn:isp.4"
- ],
- "verified": {
- "roles": "datasheet"
- }
- },
- "39": {
- "roles": [
- "conn:hat2_bus.12"
- ],
- "verified": {
- "roles": "datasheet"
- }
- },
- "40": {
- "roles": [
- "conn:hat2_bus.10"
- ],
- "verified": {
- "roles": "datasheet"
- }
- },
- "41": {
- "roles": [
- "conn:hat2_bus.8"
- ],
- "verified": {
- "roles": "datasheet"
- }
- },
- "42": {
- "roles": [
- "conn:hat2_bus.6"
- ],
- "verified": {
- "roles": "datasheet"
- }
- },
- "43": {
- "roles": [
- "conn:hat2_bus.4"
- ],
- "verified": {
- "roles": "datasheet"
- }
- },
- "44": {
- "roles": [
- "conn:hat2_bus.2"
- ],
- "verified": {
- "roles": "datasheet"
- }
- },
- "45": {
- "roles": [
- "dev:btn_a.in"
- ]
- },
- "52": {
- "roles": [
- "dev:ethernet.mdio"
- ],
- "detect_class": "up"
- },
- "53": {
- "roles": [
- "conn:port_a.2"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "54": {
- "roles": [
- "conn:port_a.1"
- ],
- "verified": {
- "roles": "generated"
- }
- }
- },
- "buses": {
- "internal_i2c": {
- "kind": "i2c",
- "signals": [
- "sda",
- "scl"
- ],
- "fixed": false,
- "verified": {
- "signals": "generated"
- }
- }
- },
- "devices": {
- "ethernet": {
- "kind": "transceiver",
- "signals": {
- "mdc": "gpio:31",
- "mdio": "gpio:52"
- }
- },
- "btn_a": {
- "kind": "button",
- "part": "button",
- "spec": {
- "active_low": true,
- "pull": "external_up"
- },
- "signals": {
- "in": "gpio:45"
- },
- "verified": {
- "signals": "generated"
- }
- }
- },
- "connectors": {
- "port_a": {
- "type": "hy2_4p",
- "standard": "port_i2c",
- "positions": {
- "1": "gpio:54",
- "2": "gpio:53",
- "3": "pwr:5v",
- "4": "pwr:gnd"
- }
- },
- "hat2_bus": {
- "type": "logical_terminals_16",
- "positions": {
- "1": "pwr:gnd",
- "2": "gpio:44",
- "3": "pwr:5v",
- "4": "gpio:43",
- "5": "gpio:21",
- "6": "gpio:42",
- "7": "gpio:20",
- "8": "gpio:41",
- "9": "gpio:19",
- "10": "gpio:40",
- "11": "nc",
- "12": "gpio:39",
- "13": "pwr:3v3",
- "14": "gpio:23",
- "15": "pwr:5v",
- "16": "gpio:22"
- },
- "note": "Hat2-Bus numbered as the official table. Logical terminal order; physical geometry is unverified.",
- "verified": {
- "positions": "datasheet"
- }
- },
- "sdio": {
- "type": "logical_terminals_9",
- "positions": {
- "1": "gpio:13",
- "2": "gpio:12",
- "3": "gpio:11",
- "4": "gpio:10",
- "5": "gpio:9",
- "6": "gpio:8",
- "7": "gpio:27",
- "8": "gpio:26",
- "9": "pwr:5v"
- },
- "note": "SDIO & ISP left group positions 1..9 in the official table; positions 7/8 are GPIO27/26 shared with USB1 D+/D-. USB receptacles are not represented. Logical terminal order; physical geometry is unverified.",
- "verified": {
- "positions": "datasheet"
- }
- },
- "isp": {
- "type": "logical_terminals_6",
- "positions": {
- "1": "pwr:gnd",
- "2": "gpio:35",
- "3": "chip:en",
- "4": "gpio:38",
- "5": "gpio:37",
- "6": "pwr:3v3"
- },
- "note": "SDIO & ISP right group positions 1..6 in the official table (BOOT/RST/UART0). Logical terminal order; physical geometry is unverified.",
- "verified": {
- "positions": "datasheet"
- }
- },
- "lcd_fpc": {
- "type": "logical_terminals_24",
- "positions": {
- "1": "pwr:gnd",
- "2": "pwr:gnd",
- "3": "pwr:lcd_bl",
- "4": "pwr:lcd_bl",
- "5": "pwr:gnd",
- "6": "pwr:3v3",
- "7": "gpio:3",
- "8": "gpio:2",
- "9": "gpio:0",
- "10": "gpio:1",
- "11": "pwr:gnd",
- "12": "fixed:dsi.clk_n",
- "13": "fixed:dsi.clk_p",
- "14": "pwr:gnd",
- "15": "fixed:dsi.d1_n",
- "16": "fixed:dsi.d1_p",
- "17": "pwr:gnd",
- "18": "fixed:dsi.d0_n",
- "19": "fixed:dsi.d0_p",
- "20": "pwr:gnd",
- "21": "gpio:4",
- "22": "pwr:3v3",
- "23": "pwr:gnd",
- "24": "pwr:gnd"
- },
- "note": "Exposed LCD expansion FPC J6, numbered as the official mainboard schematic. GPIO33 controls the ME2212 backlight regulator, not a direct FPC GPIO; LEDK pins 1/2 return through 10 ohms to ground. DSI terminals are dedicated differential signals, not numbered GPIOs. Logical terminal order; physical geometry is unverified.",
- "verified": {
- "positions": "datasheet"
- }
- },
- "camera_fpc": {
- "type": "logical_terminals_24",
- "positions": {
- "1": "pwr:gnd",
- "2": "gpio:1",
- "3": "gpio:0",
- "4": "pwr:gnd",
- "5": "pwr:gnd",
- "6": "fixed:camera.mclk",
- "7": "pwr:gnd",
- "8": "gpio:18",
- "9": "pwr:gnd",
- "10": "fixed:csi.d1_p",
- "11": "fixed:csi.d1_n",
- "12": "pwr:gnd",
- "13": "fixed:csi.clk_p",
- "14": "fixed:csi.clk_n",
- "15": "pwr:gnd",
- "16": "fixed:csi.d0_p",
- "17": "fixed:csi.d0_n",
- "18": "pwr:gnd",
- "19": "pwr:cam_2v8",
- "20": "pwr:gnd",
- "21": "pwr:gnd",
- "22": "pwr:cam_1v8",
- "23": "pwr:gnd",
- "24": "pwr:gnd"
- },
- "note": "Exposed 24-pin 0.5mm camera FPC J7, numbered as the official mainboard schematic. Pin 2 SCL comes from GPIO1 and pin 3 SDA from GPIO0 through TXS0102 to 1.8V; pin 8 CAM_RST comes from GPIO18 through a 5.1k/5.1k divider. Pin 6 CAM_MCLK is the fixed 24MHz oscillator output through R30=22 ohms and SN74LVC1T45 to 1.8V. The product PinMap lists GPIO36 for MCLK, but the schematic marks GPIO36-side R28 NC (unpopulated); populating R28 connects GPIO36 to this path. No GPIO36 connector role is assigned for the default assembly. CSI terminals are dedicated differential signals, not numbered GPIOs. Logical terminal order; physical geometry is unverified.",
- "verified": {
- "positions": "datasheet"
- }
- }
- }
-}
diff --git a/extras/board_spec/generated/resolved/m5vameter.json b/extras/board_spec/generated/resolved/m5vameter.json
deleted file mode 100644
index a077d000..00000000
--- a/extras/board_spec/generated/resolved/m5vameter.json
+++ /dev/null
@@ -1,315 +0,0 @@
-{
- "schema_version": 1,
- "id": "m5vameter",
- "name": "M5VAMeter",
- "official_name": "M5Stack VAMeter",
- "official_name_verified": true,
- "aliases": [
- "vameter",
- "va meter",
- "voltage and amperage meter"
- ],
- "legacy_board_id": 16,
- "chip": "esp32s3",
- "spec": {
- "display": {
- "resolution": [
- 240,
- 240
- ],
- "touch": false
- },
- "storage": {
- "psram_mb": 0,
- "sd": false
- },
- "links": {
- "product": "https://docs.m5stack.com/en/core/VAMeter",
- "verified": {
- "product": "datasheet",
- "schematic": "datasheet"
- },
- "schematic": "https://m5stack-doc.oss-cn-shenzhen.aliyuncs.com/518/Sch_VAMeter_V1.2.pdf"
- }
- },
- "pins": {
- "0": {
- "roles": [
- "dev:btn_b.in"
- ]
- },
- "2": {
- "roles": [
- "dev:btn_a.in"
- ]
- },
- "5": {
- "roles": [
- "bus:internal_i2c.sda"
- ],
- "note": "System I2C SDA",
- "verified": {
- "roles": "generated"
- }
- },
- "6": {
- "roles": [
- "bus:internal_i2c.scl"
- ],
- "note": "System I2C SCL",
- "verified": {
- "roles": "generated"
- }
- },
- "7": {
- "roles": [],
- "note": "Not connected"
- },
- "8": {
- "roles": [
- "bus:port_a_i2c.sda",
- "conn:port_a.2",
- "conn:ext_in.1"
- ],
- "note": "External Port A SDA",
- "verified": {
- "roles": "generated"
- }
- },
- "9": {
- "roles": [
- "bus:port_a_i2c.scl",
- "conn:port_a.1",
- "conn:ext_in.2"
- ],
- "note": "External Port A SCL",
- "verified": {
- "roles": "generated"
- }
- },
- "10": {
- "roles": [
- "conn:ext_in.3"
- ],
- "verified": {
- "roles": "datasheet"
- }
- },
- "33": {
- "roles": [
- "dev:lcd.rst"
- ]
- },
- "34": {
- "roles": [
- "dev:lcd.dc"
- ]
- },
- "35": {
- "roles": [
- "bus:main_spi.mosi"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "36": {
- "roles": [
- "bus:main_spi.sclk"
- ],
- "verified": {
- "roles": "generated"
- }
- },
- "37": {
- "roles": [
- "dev:lcd.cs"
- ]
- },
- "38": {
- "roles": [
- "dev:backlight.pwm"
- ]
- },
- "42": {
- "roles": [
- "conn:ext_out.1"
- ],
- "verified": {
- "roles": "datasheet"
- }
- }
- },
- "buses": {
- "main_spi": {
- "kind": "spi",
- "signals": [
- "sclk",
- "mosi"
- ],
- "preferred_host": "SPI3_HOST",
- "fixed": false,
- "freq": 40000000,
- "freq_read": 16000000,
- "verified": {
- "signals": "generated",
- "preferred_host": "generated",
- "freq": "generated",
- "freq_read": "generated"
- }
- },
- "internal_i2c": {
- "kind": "i2c",
- "signals": [
- "sda",
- "scl"
- ],
- "preferred_host": 1,
- "fixed": false,
- "verified": {
- "signals": "generated",
- "preferred_host": "generated"
- }
- },
- "port_a_i2c": {
- "kind": "i2c",
- "signals": [
- "sda",
- "scl"
- ],
- "preferred_host": 0,
- "fixed": false,
- "verified": {
- "signals": "generated",
- "preferred_host": "generated"
- }
- }
- },
- "devices": {
- "lcd": {
- "kind": "display",
- "part": "st7789v2",
- "bus": "main_spi",
- "spec": {
- "width": 240,
- "height": 240,
- "offset_x": 0,
- "offset_y": 0,
- "rotation_offset": 0,
- "invert": true,
- "readable": true
- },
- "signals": {
- "rst": "gpio:33",
- "dc": "gpio:34",
- "cs": "gpio:37"
- },
- "verified": {
- "signals": "generated"
- }
- },
- "backlight": {
- "kind": "backlight",
- "spec": {
- "freq": 512,
- "channel": 7,
- "invert": false,
- "offset": 64
- },
- "verified": {
- "spec": "generated",
- "signals": "generated"
- },
- "signals": {
- "pwm": "gpio:38"
- }
- },
- "probe_device_0": {
- "kind": "sensor",
- "bus": "internal_i2c",
- "i2c_addr": "0x40",
- "verified": {
- "i2c_addr": "datasheet"
- }
- },
- "probe_device_1": {
- "kind": "sensor",
- "bus": "internal_i2c",
- "i2c_addr": "0x41",
- "verified": {
- "i2c_addr": "datasheet"
- }
- },
- "btn_a": {
- "kind": "button",
- "part": "button",
- "spec": {
- "active_low": true,
- "pull": "external_up"
- },
- "signals": {
- "in": "gpio:2"
- },
- "verified": {
- "signals": "generated"
- }
- },
- "btn_b": {
- "kind": "button",
- "part": "button",
- "spec": {
- "active_low": true,
- "pull": "external_up"
- },
- "signals": {
- "in": "gpio:0"
- },
- "verified": {
- "signals": "generated"
- }
- }
- },
- "connectors": {
- "port_a": {
- "type": "hy2_4p",
- "standard": "port_i2c",
- "note": "The physical Grove (white GPIO9/yellow GPIO8) is on the included VAMeter Base, not the bare host. The existing library Port A contract is retained; no additional Grove is registered on the host.",
- "positions": {
- "1": "gpio:9",
- "2": "gpio:8",
- "3": "pwr:5v",
- "4": "pwr:gnd"
- }
- },
- "ext_in": {
- "type": "logical_terminals_6",
- "positions": {
- "1": "gpio:8",
- "2": "gpio:9",
- "3": "gpio:10",
- "4": "pwr:isolated_gnd",
- "5": "pwr:measurement_in",
- "6": "pwr:measurement_in"
- },
- "note": "Bare-host J3 CON6; FGND and FBUS_IN are the isolated measurement ground/input rail, not system ground/5V. Numbering follows the official schematic; logical terminal order, physical geometry is unverified.",
- "verified": {
- "positions": "datasheet"
- }
- },
- "ext_out": {
- "type": "logical_terminals_6",
- "positions": {
- "1": "gpio:42",
- "2": "pwr:5v",
- "3": "pwr:gnd",
- "4": "pwr:isolated_gnd",
- "5": "pwr:measurement_out",
- "6": "pwr:measurement_out"
- },
- "note": "Bare-host J4 CON6; FGND and FBUS_OUT are the isolated measurement ground/output rail. GPIO42 is WAKE. Numbering follows the official schematic; logical terminal order, physical geometry is unverified.",
- "verified": {
- "positions": "datasheet"
- }
- }
- }
-}
diff --git a/extras/board_spec/test/board_spec.test.js b/extras/board_spec/test/board_spec.test.js
index c620175f..4c05c2b8 100644
--- a/extras/board_spec/test/board_spec.test.js
+++ b/extras/board_spec/test/board_spec.test.js
@@ -626,12 +626,77 @@ test("explicit fallback takes precedence over detector candidates", async (t) =>
assert.match(defaults, /get_pkg_ver\(\) == 1\) \{ return board_t::board_M5StampS3Mini; \}/);
});
-test("all 87 revision and runtime combinations match snapshots", async () => {
+test("all 87 revision and runtime combinations validate in memory", () => {
const outputs = catalogBoards.flatMap(resolveCatalog);
assert.equal(outputs.length, 87);
+ assert.equal(new Set(outputs.map((output) => output.filename)).size, 87);
for (const output of outputs) {
- const snapshot = await fs.readFile(path.join(root, "generated/resolved", output.filename), "utf8");
- assert.equal(snapshot, formatBoard(output.board), output.filename);
+ const issues = validateBoard(output.board, {
+ ...context, chip: chips[output.board.chip], resolved: true,
+ accessories, composition: compositionTarget.compositions?.[output.board.id]?.default,
+ allow_origins: compositionTarget.allow_origins, pinTableTarget: compositionTarget,
+ });
+ assert.deepEqual(issues.filter((issue) => issue.severity !== "warning"), [], output.filename);
+ }
+});
+
+test("resolved chip and PSRAM facts preserve environment-selection inputs", () => {
+ const facts = [
+ ["m5atoms3", "esp32s3", 0, undefined],
+ ["m5stack_core2", "esp32_d0wdq6", 8, "quad"],
+ ["m5stack_cores3", "esp32s3", 8, "quad"],
+ ["m5atoms3r", "esp32s3", 8, "opi"],
+ ["m5stack_tab5", "esp32p4", 32, "opi"],
+ ];
+ for (const [id, chip, mb, mode] of facts) {
+ for (const output of resolveCatalog(catalogBoards.find((item) => item.id === id))) {
+ assert.equal(output.board.chip, chip, output.filename);
+ assert.equal(output.board.spec.storage.psram_mb, mb, output.filename);
+ assert.equal(output.board.spec.storage.psram_mode, mode, output.filename);
+ }
+ }
+});
+
+test("resolve prints one JSON array with combination names without writing generated files", async () => {
+ const docs = path.join(root, "generated/docs");
+ const names = await fs.readdir(docs);
+ const mtimes = await Promise.all(names.map(async (name) => (await fs.stat(path.join(docs, name))).mtimeMs));
+ const cached = await fs.readdir(path.join(root, "generated/resolved")).catch((error) => {
+ if (error.code !== "ENOENT") throw error;
+ return null;
+ });
+ for (const source of [board, catalogBoards.find((item) => item.id === "m5atomu")]) {
+ const result = spawnSync(process.execPath, ["cli/spec.js", "resolve", `boards/${source.id}.json`], { cwd: root, encoding: "utf8" });
+ assert.equal(result.status, 0, result.stderr);
+ assert.equal(result.stderr, "");
+ assert.deepEqual(JSON.parse(result.stdout), resolveCatalog(source).map((output) => ({
+ combination: output.filename.slice(0, -".json".length), board: JSON.parse(formatBoard(output.board)),
+ })));
+ }
+ assert.deepEqual(await Promise.all(names.map(async (name) => (await fs.stat(path.join(docs, name))).mtimeMs)), mtimes);
+ assert.deepEqual(await fs.readdir(path.join(root, "generated/resolved")).catch((error) => {
+ if (error.code !== "ENOENT") throw error;
+ return null;
+ }), cached);
+});
+
+test("resolve --out writes only the requested directory and rejects incomplete options", async () => {
+ const directory = await fs.mkdtemp(path.join(os.tmpdir(), "m5gfx-resolved-"));
+ try {
+ const destination = path.join(directory, "exports");
+ const result = spawnSync(process.execPath, ["cli/spec.js", "resolve", "boards/m5stack_core2.json", "--out", destination], { cwd: root, encoding: "utf8" });
+ assert.equal(result.status, 0, result.stderr);
+ const outputs = resolveCatalog(board);
+ assert.deepEqual((await fs.readdir(destination)).sort(), outputs.map((output) => output.filename).sort());
+ for (const output of outputs) assert.equal(await fs.readFile(path.join(destination, output.filename), "utf8"), formatBoard(output.board));
+ for (const args of [[], ["boards/m5stack_core2.json", "--out"], ["boards/m5stack_core2.json", "--out", destination, "extra"], ["boards/m5stack_core2.json", "--unknown", destination]]) {
+ const invalid = spawnSync(process.execPath, ["cli/spec.js", "resolve", ...args], { cwd: root, encoding: "utf8" });
+ assert.equal(invalid.status, 1);
+ assert.match(invalid.stderr, /optional --out /);
+ assert.equal(invalid.stdout, "");
+ }
+ } finally {
+ await fs.rm(directory, { recursive: true, force: true });
}
});
@@ -1552,7 +1617,7 @@ test("generated device fields follow kind rather than device ID", () => {
assert.equal(isGeneratedField(renamed, "/devices/status_light", "signals"), true);
});
-test("Core2 revisions match all four snapshots and confirmed PMIC endpoints", async () => {
+test("Core2 resolves all four revisions and confirmed PMIC endpoints", () => {
const outputs = resolveCatalog(board);
assert.deepEqual(outputs.map((output) => output.filename), [
"m5stack_core2@v1_0.json",
@@ -1560,10 +1625,6 @@ test("Core2 revisions match all four snapshots and confirmed PMIC endpoints", as
"m5stack_core2@v1_2.json",
"m5stack_core2@v1_3.json",
]);
- for (const output of outputs) {
- const snapshot = await fs.readFile(path.join(root, "generated/resolved", output.filename), "utf8");
- assert.equal(snapshot, formatBoard(output.board));
- }
assert.equal(outputs[0].board.devices.lcd.signals.rst, "pin:pmic.gpio3");
assert.equal(outputs[0].board.devices.speaker.enable, "pin:pmic.gpio2");
assert.equal(outputs[1].board.devices.lcd.signals.rst, "pin:pmic.aldo2");