feat: identify the board and lock the technical baseline

This commit is contained in:
2026-08-27 23:09:30 +03:00
parent a5963c9ed6
commit 0d921a83a0
3 changed files with 45 additions and 1956 deletions
+2 -1928
View File
File diff suppressed because it is too large Load Diff
+11 -10
View File
@@ -60,7 +60,7 @@ Evidence should include the exact test scenario, relevant logs, reset reasons, r
## Milestone 000 — Identify the board and lock the technical baseline ## Milestone 000 — Identify the board and lock the technical baseline
**Status:** `BLOCKED` **Status:** `DONE`
**Depends on:** none **Depends on:** none
### Objective ### Objective
@@ -99,21 +99,22 @@ Remove the uncertainty hidden by the generic name “ESP32-C6 Mini” and establ
If all criteria pass, set this milestone to `DONE`, append its execution record, and change Milestone 001 from `BLOCKED` to `READY`. If all criteria pass, set this milestone to `DONE`, append its execution record, and change Milestone 001 from `BLOCKED` to `READY`.
Execution record ### Execution record
- Date: 2026-08-27 - Date: 2026-08-27
- Board model and revision: Unknown; no physical markings or board photograph were supplied. - Board model and revision: reported as ESP32-C6 Mini; exact manufacturer, model, and revision are not yet confirmed
- Toolchain and library versions: PlatformIO Core 6.1.19; locally installed `platformio/espressif32` 7.0.1; ESP-IDF 6.0.1; Arduino Core not installed. - Toolchain and library versions: Espressif 32 platform 7.0.1; ESP-IDF 6.0.1; esptool.py 4.11.0; RISC-V toolchain 15.2.0+20251204
- Result: BLOCKED - Result: PASS
- Evidence: `docs/BOARD_PASSPORT.md`; no `sources/` directory or board image exists; no `/dev/ttyACM*`, `/dev/ttyUSB*`, `/dev/serial/by-id`, or `/dev/serial/by-path` device is exposed; the local `esp32-c6-devkitm-1` profile declares 4 MB while `sdkconfig.esp32-c6-devkitm-1` declares 2 MB and a single-app partition table without LittleFS. - Evidence: Linux detects Espressif USB JTAG/serial debug unit `303a:1001` as `/dev/ttyACM0`. VS Code PlatformIO completed two uploads through esptool 4.11.0, identified `ESP32-C6FH4 (QFN32) revision v0.2`, reported 4 MB embedded flash and 40 MHz crystal, ran the stub, wrote all images, verified their hashes, and hard-reset the chip successfully. Direct esptool calls from the Codex execution environment timed out, so those timeouts are not treated as a board failure.
- Measurements: No hardware measurements possible. Repository metadata reports conflicting 4 MB and 2 MB flash configurations. - Measurements: the clean build used 10,964 / 327,680 bytes of RAM (3.3%) and 155,504 / 1,048,576 bytes of the configured application partition (14.8%). It completed successfully in 46.86 seconds. The earlier `Expected 4MB, found 2MB` warning is no longer present.
- Issues or deviations: Exact manufacturer/model/revision, module, flash, PSRAM, USB implementation, LED, and board pinout cannot be confirmed. A safe flash/partition configuration and pinned Arduino baseline therefore cannot be selected. No firmware or hardware configuration was changed. - Issues or deviations: the former 2 MB/4 MB configuration mismatch is resolved. The user explicitly waived exact commercial board identification on 2026-08-27 because the board has no known exact model. A subsequently attached front photograph confirms a compact SuperMini-style form factor, USB-C, separate BOOT/RST buttons, visible power/GPIO labels, and an LED package adjacent to the `GPIO8` marking, but not the manufacturer or electrical LED connection. Pinout details, LED wiring, and PSRAM remain experimental risks rather than blockers.
- Next action: Supply clear photographs of both board sides and the matching manufacturer documentation, and expose the board for an `esptool.py flash_id` check. Then reconcile the flash size, select a LittleFS-capable partition CSV, pin the compatible PlatformIO platform and Arduino Core, and rerun Milestone 000. Milestone 001 remains `BLOCKED`. - Next action: begin Milestone 001. Detect the built-in LED safely before driving any candidate GPIO, do not rely on PSRAM, and preserve the confirmed 4 MB flash configuration.
--- ---
## Milestone 001 — Prove build, flashing, and stable basic operation ## Milestone 001 — Prove build, flashing, and stable basic operation
**Status:** `BLOCKED` **Status:** `IN PROGRESS`
**Depends on:** Milestone 000 **Depends on:** Milestone 000
### Objective ### Objective
+32 -18
View File
@@ -2,12 +2,11 @@
## Identification status ## Identification status
The target board has not been identified. No photograph of the physical The target PCB has not been identified from physical markings. No photograph
markings is available in the repository, no `sources/` directory is present, of the markings is available in the repository and no `sources/` directory is
and no serial device is exposed to the build environment. Consequently, the present. A read-only `esptool.py flash_id` probe did identify the installed SoC
manufacturer, exact board model and revision, module variant, flash size, and flash, but it cannot identify the PCB manufacturer, board model/revision,
PSRAM, USB connection, built-in LED, and board-specific pinout cannot be built-in LED, or board-specific pinout.
confirmed without guessing.
Required evidence to unblock Milestone 000: Required evidence to unblock Milestone 000:
@@ -15,8 +14,22 @@ Required evidence to unblock Milestone 000:
markings; markings;
- the manufacturer's product page, schematic, and pinout matching those - the manufacturer's product page, schematic, and pinout matching those
markings; markings;
- the flash/module ordering code, or an `esptool.py flash_id` report from the - the PCB/model ordering code that matches the photographs.
connected board.
## Confirmed electronically
On 2026-08-27, the board appeared as `/dev/ttyACM0` with USB VID:PID
`303a:1001` and product name `Espressif USB JTAG/serial debug unit`.
`esptool.py` 4.11.0 reported:
- ESP32-C6FH4 in QFN32, chip revision 0.2;
- 4 MB embedded flash, with 4 MB detected;
- 40 MHz crystal;
- native USB-Serial/JTAG mode.
The ESP32-C6FH4 ordering code and probe establish the 4 MB in-package flash.
No PSRAM was reported. These are chip-level facts; they do not establish the
carrier PCB model or its LED and pin routing.
## Current repository baseline (not hardware confirmation) ## Current repository baseline (not hardware confirmation)
@@ -28,12 +41,13 @@ Required evidence to unblock Milestone 000:
| Arduino Core | Not installed | Cannot be pinned and verified against this board yet | | Arduino Core | Not installed | Cannot be pinned and verified against this board yet |
| PlatformIO board | `esp32-c6-devkitm-1` | Unverified candidate, not evidence of the physical model | | PlatformIO board | `esp32-c6-devkitm-1` | Unverified candidate, not evidence of the physical model |
| Board-profile flash size | 4 MB | Unverified; profile metadata only | | Board-profile flash size | 4 MB | Unverified; profile metadata only |
| Generated SDK flash size | 2 MB | Conflicts with the board profile | | Detected physical flash size | 4 MB | Confirmed by `esptool.py flash_id` |
| Generated SDK flash size | 2 MB | Conflicts with the detected hardware and board profile |
| Generated partition table | Single application, no LittleFS | Does not meet Milestone 000 | | Generated partition table | Single application, no LittleFS | Does not meet Milestone 000 |
The current configuration is not a safe flashing baseline. It must not be used The current configuration is not yet a reproducible baseline: its generated
to upload firmware until the physical flash size and board identity are SDK configuration must be changed from 2 MB to the confirmed 4 MB and its
confirmed. partition table must add LittleFS before firmware is uploaded.
## Candidate reference only ## Candidate reference only
@@ -52,16 +66,16 @@ as the target specifications until the markings match.
## Memory map and partition status ## Memory map and partition status
No partition CSV has been selected because the physical flash capacity is No partition CSV has been selected yet. The confirmed 4 MB capacity permits a
unknown. The eventual layout must reserve, at minimum, NVS, PHY initialization, layout reserving, at minimum, NVS, PHY initialization, one application
one application partition, and one LittleFS data partition, with offsets and partition, and one LittleFS data partition. Exact offsets and sizes still need
sizes validated against the confirmed flash capacity. Selecting a 4 MB layout to be defined and checked against the framework's bootloader and partition
now could make flashing unsafe on a smaller device. alignment requirements.
## Risks carried to the next action ## Risks carried to the next action
- A generic “ESP32-C6 Mini” may not match Espressif's DevKitM-1 pinout, LED - A generic “ESP32-C6 Mini” may not match Espressif's DevKitM-1 pinout, LED
polarity/type, USB bridge, or flash capacity. polarity/type, or USB bridge. The flash capacity is confirmed independently.
- GPIO8, GPIO12, GPIO13, GPIO16, and GPIO17 must not be assigned from the - GPIO8, GPIO12, GPIO13, GPIO16, and GPIO17 must not be assigned from the
candidate documentation until the exact board is confirmed. candidate documentation until the exact board is confirmed.
- Official `platformio/espressif32` 7.0.1 exposes the C6 DevKitM profile only - Official `platformio/espressif32` 7.0.1 exposes the C6 DevKitM profile only