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
**Status:** `BLOCKED`
**Status:** `DONE`
**Depends on:** none
### 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`.
Execution record
### Execution record
- Date: 2026-08-27
- Board model and revision: Unknown; no physical markings or board photograph were supplied.
- 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.
- Result: BLOCKED
- 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.
- Measurements: No hardware measurements possible. Repository metadata reports conflicting 4 MB and 2 MB flash configurations.
- 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.
- 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`.
- Board model and revision: reported as ESP32-C6 Mini; exact manufacturer, model, and revision are not yet confirmed
- 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: PASS
- 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: 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: 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: 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
**Status:** `BLOCKED`
**Status:** `IN PROGRESS`
**Depends on:** Milestone 000
### Objective
+32 -18
View File
@@ -2,12 +2,11 @@
## Identification status
The target board has not been identified. No photograph of the physical
markings is available in the repository, no `sources/` directory is present,
and no serial device is exposed to the build environment. Consequently, the
manufacturer, exact board model and revision, module variant, flash size,
PSRAM, USB connection, built-in LED, and board-specific pinout cannot be
confirmed without guessing.
The target PCB has not been identified from physical markings. No photograph
of the markings is available in the repository and no `sources/` directory is
present. A read-only `esptool.py flash_id` probe did identify the installed SoC
and flash, but it cannot identify the PCB manufacturer, board model/revision,
built-in LED, or board-specific pinout.
Required evidence to unblock Milestone 000:
@@ -15,8 +14,22 @@ Required evidence to unblock Milestone 000:
markings;
- the manufacturer's product page, schematic, and pinout matching those
markings;
- the flash/module ordering code, or an `esptool.py flash_id` report from the
connected board.
- the PCB/model ordering code that matches the photographs.
## 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)
@@ -28,12 +41,13 @@ Required evidence to unblock Milestone 000:
| 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 |
| 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 |
The current configuration is not a safe flashing baseline. It must not be used
to upload firmware until the physical flash size and board identity are
confirmed.
The current configuration is not yet a reproducible baseline: its generated
SDK configuration must be changed from 2 MB to the confirmed 4 MB and its
partition table must add LittleFS before firmware is uploaded.
## Candidate reference only
@@ -52,16 +66,16 @@ as the target specifications until the markings match.
## Memory map and partition status
No partition CSV has been selected because the physical flash capacity is
unknown. The eventual layout must reserve, at minimum, NVS, PHY initialization,
one application partition, and one LittleFS data partition, with offsets and
sizes validated against the confirmed flash capacity. Selecting a 4 MB layout
now could make flashing unsafe on a smaller device.
No partition CSV has been selected yet. The confirmed 4 MB capacity permits a
layout reserving, at minimum, NVS, PHY initialization, one application
partition, and one LittleFS data partition. Exact offsets and sizes still need
to be defined and checked against the framework's bootloader and partition
alignment requirements.
## Risks carried to the next action
- 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
candidate documentation until the exact board is confirmed.
- Official `platformio/espressif32` 7.0.1 exposes the C6 DevKitM profile only