Skip to content

Peripheral Capability and Acceptance Boundaries ​

2026-10-05 18:05 status: the four-device candidate four-device-candidate-20261005-r5 is under verification; there is no complete PASS for this round yet. r4 stays FAIL; the main evidence and the nested recovery-test evidence are both independently preserved (INTEGRITY_PASS does not mean the candidate passed). The Windows report atomic-replacement-conflict fix only achieved a local targeted PASS for four-device-soak-focused-20261005-r2 with 35 device soak items, 66 touchscreen soak items, and 24 candidate observations, with stable inputs and no device access; no physical or long-term acceptance items were added based on it.

This round prioritizes COM15 (ESP32-S3-F16R8), COM4 (ESP32-C3-F4R0), COM16 (ESP32-F4R0), and COM8/9 (the same ESP32-S3-F16R8 touchscreen). Config-preservation deployment, actual web access, resources/memory, physical feedback, and 24h/7d evidence are still pending per device; C6 capacity, the remaining environments, and the full nine-environment/RGB stay as separate todos. Dated records with P8/P7/r3 and capacity numbers below are historical and do not carry over as current candidate passes; current progress is governed by this section and the top of System Improvement Status.

Verification date: 2026-10-04. The following describes the system-improvement development candidate; before use, re-verify the device's current firmware version, capability endpoints, board revision, and actual wiring. New code existing does not prove field devices have been updated.

The code lists 44 peripheral types, of which 35 have conditional implementations and 9 are unconfigured, unimplemented, debug, or reserved types. 35 is also not the number of models that have passed physical acceptance; one type can map to multiple modules, and compile switches, chip, pins, bus, and instance counts still have limits. Modbus devices are managed by protocol configuration and are not created through the ordinary peripheral form.

Current Implementation and Software Verification ​

2026-10-04 23:44 increment: the P8 and r3 type tables below are kept as history; the latest candidate awaits full verification, and the current state is governed by System Improvement Status.

Newly added or completed capabilityLocal evidence obtainedNot yet accepted
ADS1115 same-address 1-4 channel scanr60 passed 45 real driver/cache scenarios and 50 dual-viewport form scenarios; waiting outside the lock, generation cancel, per-channel timing, whole-round publish, and outer-timeout stale-diagnostics clearing are all covered. Single-MUX compatible by default; see the scan notes.Full firmware/capacity, per-channel electrical range and calibration, channel skew, field combinations, and memory
Digital-OUT radar 49Managed GPIO, dual-edge debounce, hold-after-confirmed-inactive, and reject reads on pause/retirement/foreign owner are implemented; r56 passed 28 scenarios x 4 chip branches.Module OUT polarity, self-hold/noise, wiring and actual state; UART radar protocol not included
RTC/SD/UART/DS18B20RTC boot seed with default-off and unauthenticated-source display; SD auto-logging/bounded queue/rotation and history-file protection; UART hardware-error generation isolation; DS18 ROM binding and wait-outside-lock are all implemented with targeted regressions.Battery retention, trusted-time field changes, card-full/power-loss/recovery, serial noise, real collection, and resource usage
Action 21 and daily executionFixed-target event loop prevention, dynamic-target rejection, single-shot conditional reporting, and in-boot date watermark are implemented; real execution/graph/negative regressions passed.Current complete candidate, real MQTT reception, and field fault recovery

The shared JSON write for Health/MQTT completed real full-method/per-allocation-failure/recovery-diff verification; they do not prove MCU memory gains. 2026-10-05 00:18 check: the C6-capacity r14 with all additions has an actual BIN of 3,364,320 B, exceeding the original partition by 21,984 B; both the r13 compile failure and the r14 capacity failure are independently preserved. Offline reading of the target ELF shows the sensor cache object grew from 1304 to 1552 B; this is a static ABI size, not a runtime memory measurement. Full host/native/web/S3+C6 checks are running; there is no complete candidate PASS yet; nine-environment/RGB, all physical, resource-memory, RTC retention, and 2h/24h/7d/V14 remain unpassed. Original failure records are kept; successor re-verification does not rewrite the original conclusions.

P8 Historical Evidence ​

The P8 evidence below supersedes the "not run / fixture blocked" states in the old P7/r3 descriptions; the original P7 failures and the later type-range table are kept as history. Implemented, designated host modules passing, complete candidate passing, and physical acceptance are still four different things.

Historical targeted focused r11 passed 385/385 with stable inputs, independently preserved. The actual scope is Modbus source core 157, Protocol42, virtual peripherals 35, boot snapshot 44, HTTP52, matched-result reports 22, identity binding 15, and report payload 18; these 385 items must not be called a full-system or all-H1 pass.

The unified diagnostic P8 (precheck r8) ended FAIL at 12:05:54, 1772 inputs stable and independently preserved. The host actually ran 4058 items: 4057 passed, 0 failed/errored, 1 skipped; the skip was the Windows file-symlink permission scenario (WinError1314) in test_config_staging_journal, which does not count as verified. Native 2379/2379, offline recovery 61, memory contract, six static checks, new web pages 186 items, and config 121 items passed. The three P7 assembly-error classes and four failures were actually fixed and re-verified.

The current blocker is application capacity for two targets: S3-F8R0 program 3,682,183 B exceeds the 3,670,016 B partition by 12,167 B; C6-F4R0 program statistics did not exceed, but the actual BIN of 3,395,328 B exceeds the 3,342,336 B partition by 52,992 B. Neither has a deployable artifact in this batch; partitions are not enlarged and the capacity threshold is not relaxed; successor optimizations must be re-measured.

Evidence is in the firmware repository at artifacts/system-plan-r20-precheck-20261004-r8/host-unit-all.log (SHA256=943a1561e3b38e8a320389ea048fd4ea9aa467b77bd90b8d52f8cae6fc896cc5) and artifacts/system-plan-r20-precheck-r8-independent-verification-20261004/report.json. Independent preservation is INTEGRITY_PASS; the original candidate remains FAIL. Method counts below come from this P8 host log and do not accumulate across candidates.

Implemented capabilityP8 host evidence (no skips in the modules below)Boundaries not yet accepted
ADS1115 production driver, conversion session, and sampling chaintest_ads1115_driver 24, test_ads1115_session 14 passedRange/calibration/real collection and platform receipt
MCP23017 provider/session, RESET, and whole-bank startuptest_mcp23017_provider 21, test_mcp23017_session 19, test_mcp23017_device 27, test_io_expander_manager 3 passedA7/B7, RESET, power/load, and fault-off
PCA9685 guarded commands, OE, common frequency, explicit startconfig6/device26/provider19/session10/manager18/web12 all passed, module name prefix test_pca9685_Real PWM waveform, OE pull-up, and load
H1 description-driven forms and parsingtest_h1_parameter_contract 5, test_h1_register_contracts 7 passedLegacy web field assertions passed in test_p1_peripheral_web_contract 8 items; actual device UI and hardware still pending
GPIO/DAC and motion outputsmanaged_pin_io25, dac_action28, managed_pin_manager7, encoder_checked_lifecycle15, ordinary_control121, motion_ordinary44, stepper_managed_lifecycle44 passedThree P7 fixture assembly issues actually fixed and measured; physical voltage/waveform, IRQ, motion, and load not verified
TM1637/LCD1602/OLED sources and failure returnsdisplay_ordinary41, lcd1602_driver29, oled_i2c_ownership26, lcd_http7 passedActual characters/segments/backlight and bus combinations; ACK does not mean correct display
RF TX/RX learning, IR receiverf_output_control34, rf_receiver_lifecycle30, ir_receiver_lifecycle25 passedActual protocol/noise/distance; IR transmit not promised
RTC, SD/UART, thermostat, and migrationsystem_time_quality33, sd_status_action18, uart_action40, thermostat_runtime7, config_migration_storage17 and other existing modules passedBattery timekeeping, card faults, serial noise, thermostat load, two-board migration, and independent trial
RGB/GT911 and resource observationrgb_display_backend2, gt911_ownership17, runtime_resource_snapshots4, task_stack_snapshot26 passedRGB full firmware, physical display/touch, DRAM/DMA/PSRAM/stack and recovery measurements

Shorthand modules in the table live in the firmware repository at test/unit/test_<name>.py; the numbers are unittest method counts and do not double-count chip branches. P8 additionally passed Modbus source core 157, Protocol43, virtual peripherals 35, HTTP52; the original P7 failure modules modbus_panel_observations2, modbus_wait_scheduler2, and modbus_relay_async2 all actually passed. Module passes do not change the boundaries that application capacity failed or that platform receipt and physical feedback are not yet accepted.

The full nine-environment/RGB, device deployment, real resources/memory, RTC retention, and 2h/24h/7d/V14 are not done. The H1 driver, ordinary control, RTC/SD/UART, and migration are implemented; these acceptance gaps do not mean the whole feature set needs re-development, nor that it can be released.

P7 Historical Failures (Kept) ​

The historical unified diagnostic precheck r7 ended FAIL at 11:29:50, 1772 inputs stable and independently preserved; host results: 3914 items, 4 failures, 3 assembly-error classes, 1 skip. Only the partial results from this finished host log are listed below; web pages 186 items and config 121 items passed; native 2379 items had 5 failures, and both S3/C6 failed to compile due to Modbus cleanup-guard type mismatch, so there is no new application artifact in this batch. Evidence is in the firmware repository at artifacts/system-plan-r20-post-r6-focused-20261004-r11/report.json, artifacts/system-plan-r20-post-r6-focused-independent-verification-20261004-r11/verification.json, and artifacts/system-plan-r20-precheck-20261004-r7/host-unit-all.log.

The three assembly-error classes at the time came from RF/display dependencies not being synced; there were also four failures from old source assertions on Modbus observation, retry assembly, relay frame length, and web fields. Fixes were merged at the time and awaited r8; the P8 re-verification results above are now available. The original P7 FAIL and logs keep their original conclusions; successor passes are not written back into the historical candidate.

r3 Historical Verification Status ​

The centralized diagnostic r20-r3 ended FAIL at 2026-10-04 04:18:14 and was not releasable. 19 phase logs and 1659 inputs were independently verified; the production source and test inputs were stable, one document from another task drifted, and the original failure and input-instability records are kept. Several host subgroups passed, but the GPIO/encoder/stepper test fixtures, the GT911 test fixture, and the firmware compile entry still exposed problems; successor fixes must be centrally re-verified. Fixture fixes do not turn the original failure into a pass.

This batch's full nine environments, RGB-specific candidate, device deployment, and physical acceptance have not passed. Physical acceptance and long-term stability for all types in the table are NOT_RUN for this candidate and will not inherit passes from historical devices. For more candidate information, see System Improvement Status.

Viewing Applicability by Type ​

"Implemented" means the corresponding code entry point can be located; the full chain still needs item-by-item verification of form, parsing, save, initialization, sampling/action, quality, reporting, release, and restart recovery. Unknown or unbound test evidence does not automatically mean the feature is undeveloped.

Type ID and functionExisting implementation and applicability boundariesAcceptance still required
1 UARTGeneric serial and console; Modbus has different owner and capacity; receive events carry source generationsActual baud rates, half-frames/noise, contention, reports, and restart recovery
2 I2C, 3 SPIShared bus, address or CS leases; does not mean arbitrary I2C/SPI devices have driversMulti-device combinations, disconnects, frequency compatibility, and failure release
11/13/14 digital input, 18/19/20 interrupt inputDigital reads, pull-up/down, guarded interrupts, and bounded queues, limited by chip pinsActual polarity, debounce, frequency, missed pulses, repeated reconfiguration
12 digital outputLocal GPIO or expander channels; command/latched state is separate from load feedback; thermostat has an independent fault policySafe initial values, inversion, interlocks, actual loads, and fault-off
15/26 ADCGuarded ADC unit, channel, and calibration; chip capability and ADC2/Wi-Fi limits handled separatelyCircuit range, accuracy, real zero, disconnection, concurrency, and recovery
16/17 PWM outputLEDC resources with frequency/resolution constraints; 16 is also PWM analog outputContention with servo/buzzer/backlight, real waveform, and failure cleanup
27 DACOnly on chip branches that have DAC; the r3 rule-action-5 bypass issue was fixed in successor code, adding range, run-state, resource, and SDK-result validation, pending centralized re-verificationFull regression of action entry, voltage/load/zero output; does not mean a 0-10V circuit is available
36 LCD/OLED, 52 LCD1602Corresponding I2C/SPI displays; LCD1602 uses the PCF8574 character-LCD pathCorrect characters, truncation/backlight, NACK/short-write recovery, instance limits
37 SDIOCurrently actually SDSPI single-instance with restricted file operations, not SDMMCFull card, power loss, recovery, logging load, and bus coexistence
38 generic sensorRegistered drivers including ADS1115, AHT20, BH1750, BMP280, MPU6050, SHT30/SHT31, INA226, etc., plus legacy collection branchesPer-model fields/units, registration and instance capacity, physical collection, calibration, fault recovery
41 servo, 42 stepper motorLimited servo PWM; stepper is the existing four-phase GPIO scheme; neither has closed-loop position feedbackPulse width/coil sequence, current, limit switches, speed, lost steps, and safe stop
43 encoderTwo inputs, fixed slots, software ISR, and generation protection; not a PCNT backendMaximum frequency, direction, jitter, count boundaries, and restart
44 OneWireExisting DS18B20 collection; does not extrapolate to arbitrary OneWire devicesROM binding, conversion wait, disconnects, actual owner release
45 NeoPixelBounded LED count, backend transmission, and failure resource retention; r3-related host group 70 items passedPower, physical color/timing, long strips, and load; does not mean RGB parallel-panel display passes
47 TM1637, 48 RF, 49 digital radarDisplay tube, basic RF TX/RX with optional learning, digital-OUT radar; 49 is not the LD2410 multi-field UART driverSegments/display, actual encoding/repeated frames, polarity/debounce/disconnect, and release
50 DS1302 RTCThree-wire RTC, time source and quality, UTC/display conversionBattery retention, time error, invalid time, NTP source, and real display
51 Modbus deviceProtocol management, register mapping, word order/scaling and quality; read-only template generation for disabled draftsSpecific meters, CRC/timeouts, word order/units, read/write limits, and platform receipt
53 IR receive, 54 RFIDIR decoding and MFRC522 SPI singleton with restricted block operations; generic IR transmit not promisedSpecific protocols/card types, noise/dedup, permissions, timeouts, and release
55 I/O expansionPCF8574 8-channel, MCP23017 16-channel; MCP23017 whole-bank explicit startup, input sampling vs output latching distinguishedA7/B7, RESET, sub-channel safety, config preservation, and bus faults
56 screenSPI ST7789/ILI9341 and restricted ST7701 RGB/GT911 configuration; actual backend/buffer/worker have resource registrationRGB-specific firmware, DRAM/PSRAM peaks, touch/sleep/display, and long-term stability
57 PCA9685Explicit start after review, exclusive OE, common-frequency constraints, and guarded commands; outputs are not auto-recoveredOE external pull-up, fault-off, real PWM frequency/waveform/load
60 device eventLogical object, no physical GPIO; event identity, rules, and queuesLoops, throttling, offline reports, and restart config
0 unconfigured; 4 CAN, 5 USB, 21 GPIO_TOUCH, 31 JTAG, 32 SWD, 39 CAMERA, 40 ETHERNET, 46 reserved slotThese 9 types are not supported as ordinary peripheral drivers; 40 differs from the standalone W5500 network feature, and 21 differs from GT911 touchLegacy configs are rejected with an unavailable hint and not counted in available modules

What Data and Control States Mean ​

Sensor samples carry source, unit, time, and quality; failed, stale, and unsampled values must not be passed off as valid zeros. ADS1115 already has a driver-to-cache-to-observed-value-to-field-report chain; the chain existing does not mean physical calibration or cloud receipt has passed.

Applicable actions such as GPIO and NeoPixel can report control results per rule; reports capture field identity before execution, verify the source after execution, and use bounded send/cache. Enqueued, handed to the send interface, and actually received by the platform are accepted separately. MCP23017 output latched values are also not physical feedback from relays, pumps, valves, or other loads.

Thermostat actions read controller state and execution records and do not directly drive or clear fault latches through a single action; diagnostics state that physical feedback is unobserved. PCA9685 has state and execution records and, per current policy, does not enter GPIO-style automatic property reporting; its success only means the local session accepted it, and the physical output is still unverified.

Modbus mappings can provide quality and freshness to display/history, depending on the related compiled features; normal display cannot replace meter calibration or MQTT receipt. Configuration migration is accepted by preview, prepare, restart-recovery, and commit stages; a successful prepare does not mean the active config has switched.

Physical Evidence Still to Deliver ​

  • Software regression, nine-environment and RGB artifacts of the same final candidate, with all original failure records kept.
  • A physical matrix tied to specific devices, artifacts, configs, and wiring, with real resource/memory peaks and recovery measurements.
  • 24h/7d continuous runs, physical fault and recovery records, and the NC01-NC04 independent trials.

The device phase separately confirms authorization, identity, config preservation, and wiring safety; dangerous outputs with unclear conditions stay NOT_RUN. Host tests, code completion, successful flashing, and physical acceptance are different deliverables; see the Release Checklist.

FastBee | fastbee.cn