Live demo — data resets daily at 03:00 UTC. Nothing you enter is saved.
Accordion A2 Base PCBA
ESH10000158 · Rev R6
in_progress
Generated 2026-07-26 14:04 UTC
Coverage 0%
Done 0%
Requirements 0
Test Cases 7
Records 0
Blockers 1

Milestones

No milestones defined.

Items (2)

Code Status Severity Kind Title Date
E-002 open blocking issue CRPS module init fails — PMBus register length mismatch (2-byte register set to 1 byte) 2026-06-09
E-001 closed blocking issue CRPS module fails to load — MCP2221A HID device permission denied on /dev/hidraw0 2026-06-08

Requirements

Code Status Category Title Statement Acceptance
REQ-EL-001 draft compliance RoHS Compliance The design shall use only RoHS-compliant materials. All BOM items must have a valid RoHS certificate of compliance. Valid RoHS certificate of compliance on file for all BOM line items.
REQ-EL-002 draft compliance REACH / SVHC Declaration The design shall comply with the REACH regulation. Any SVHC present above 0.1 % w/w in any article shall be declared. REACH/SVHC declaration obtained from all component suppliers and filed in the project documentation.
REQ-EL-003 draft compliance EMC Compliance The design shall comply with applicable EMC standards for conducted and radiated emissions. Pass pre-compliance scan and, where required, certified lab test.
REQ-EL-004 draft environmental Operating Temperature Range The design shall operate correctly and without damage across the full ambient temperature range specified in the design brief. Functional test passes at minimum and maximum rated ambient in an environmental chamber.
REQ-EL-005 draft robustness ESD Protection All external interfaces shall tolerate ESD events of at least ±4 kV (contact) and ±8 kV (air) per IEC 61000-4-2 without permanent damage or loss of function. ESD test passes at specified levels with no permanent damage.
REQ-EL-006 draft compliance CE Marking Applicability CE marking applicability shall be assessed at project start. If the product is placed on the EU / EEA market, it shall be CE-marked per the applicable EU directives (typically LVD, EMC Directive, RoHS Directive, and RED if any radio equipment), with a signed Declaration of Conformity on file. If the product is NOT placed on the EU / EEA market, the market scope decision shall be recorded as a `please_decision_create` so CE assessment can be skipped knowingly. CE marking applicability assessed and the assessment recorded as a `please_decision`. For products in EU/EEA market scope: applicable EU directives identified, conformity assessment complete, signed Declaration of Conformity on file, CE mark properly affixed. For products outside EU/EEA market scope: a `please_decision` documents the market scope and the CE-skip rationale.
REQ-EL-007 draft quality Test Limit Derivation Documented Every test case that defines numeric measurement limits (low_limit, high_limit, nominal, tolerancePct) shall have a documented derivation explaining how those limits were chosen. For each test case with numeric limits, evidence of derivation exists — `passCriterion` references the component values and tolerances in the measurement path, OR a linked `please_decision` documents the corner math, OR the implementing Maestro YAML carries a `Limit derivation` comment block citing such a decision.

Test Cases

Code Status Category Title / Signal Target Pass Criterion Linked REQ
TC-EL-001 open compliance RoHS CoC Collection Obtain and file RoHS certificate of compliance for each BOM line item before releasing the design to production. REQ-EL-001
TC-EL-002 open compliance REACH Declaration Collection Obtain REACH/SVHC declaration from each component supplier; file in the project documentation. REQ-EL-002
TC-EL-003 open compliance EMC Pre-Compliance Scan Run conducted and radiated emissions scan; verify results are below applicable limits. REQ-EL-003
TC-EL-004 open environmental Temperature Range Functional Test Operate unit at minimum and maximum rated ambient for at least 30 minutes each; verify correct function and no damage. REQ-EL-004
TC-EL-005 open robustness ESD Immunity Test Apply ESD events to all external connectors per IEC 61000-4-2 at ±4 kV contact / ±8 kV air; verify no permanent damage or loss of function. REQ-EL-005
TC-EL-006 open compliance CE Marking + Declaration of Conformity Audit Confirm a `please_decision` records the CE applicability assessment. For products in EU/EEA market scope: confirm applicable EU directives are identified, conformity assessment is complete, signed Declaration of Conformity is on file, and CE mark is affixed per directive requirements. For products outside EU/EEA market scope: confirm the `please_decision` documents the market scope and CE-skip rationale. REQ-EL-006
TC-EL-007 open quality Limit Derivation Audit For each test case in this project that has numeric limits, confirm at least one derivation source exists: (a) `passCriterion` field includes tolerance / component references, OR (b) a `please_decision` is linked covering the limit derivation, OR (c) the implementing Maestro YAML has a `Limit derivation` comment block citing a decision id. Reference example: PT-SIG.04 + `please_decision` D.03 in projectId 1. REQ-EL-007

Verification Records

No verification records.

Issues

E-002 CRPS module init fails — PMBus register length mismatch (2-byte register set to 1 byte) blocking open

Symptom

After resolving the HID permissions issue (E-001), the CRPS module now fails during Crps.Reset() with:

Specified argument was out of the range of valid values.
(Parameter 'Tried to set a register with length 2 bytes to a length of 1')

  at DeviceLibrary.PmBus.PmRegisterEntry.set_RawValue(Byte[] value)
  at DeviceLibrary.PmBus.RegisterCollection.ReadDefinitions(PsmDeviceType type)
  at DeviceLibrary.PmBus.RegisterCollection..ctor(PsmDeviceType type)
  at DeviceLibrary.PmBus.RegisterCollection.Get(PsmDeviceType type)
  at DeviceLibrary.PmBus.Chip..ctor(IFileLogging logger, Project parent, ParsedChip chip)
  at DeviceLibrary.PmBus.Project..ctor(IModule owner, IFileLogging logger, IBusHandler handler, ProjectConfig cfg, String name, String sourceBusName, Int32 supportedClockSpeed, Boolean usePEC)
  at AccordionUno.Modules.PmbusHandler.LoadProject(String base64ByteString)
  at AccordionUno.Modules.PmbusHandler.SetValue(String name, String value)
  at CrpsHandler.Crps.Reset()
  at AccordionUno.Services.ExtensionModuleService.LoadModule(IModuleSettings m)

Root cause (suspected)

RegisterCollection.ReadDefinitions loads the PMBus register map for the CRPS PSU device type (PsmDeviceType). During loading it calls PmRegisterEntry.set_RawValue to set a default/initial value for a register — but the byte array supplied is 1 byte long while the register is declared as 2 bytes wide. This is a length mismatch between the register definition and the value initializer.

Likely causes:

  1. The CRPS device register definition file has a register declared with the wrong length (2 instead of 1, or vice versa).
  2. The default value initializer constructs a 1-byte array for a register that requires 2 bytes.
  3. A recent change to the device library or CRPS device definition introduced a regression.

What to check

  • The PsmDeviceType definition for the CRPS PSU — find the register(s) declared as 2 bytes and verify their default value initializers.
  • Git log on DeviceLibrary.PmBus / CrpsHandler for recent changes to register definitions.
  • Whether this error reproduces on A1 hardware / previous firmware version.

Context

Raised from project ETT00000005 R0 (B12 CB Test Station Upgrade Path). This is the second blocker on CRPS integration after E-001 (HID permissions — now resolved). Deadline 2026-06-25.

E-001 CRPS module fails to load — MCP2221A HID device permission denied on /dev/hidraw0 blocking closed

Symptom

When loading the CRPS extension module via AccordionUno.Services.ExtensionModuleService.LoadModule, the firmware throws:

Not permitted to open HID class device at /dev/hidraw0
  at HidSharp.Platform.Linux.LinuxHidDevice.OpenDeviceDirectly(...)
  at MCP2221IO.Device.Open()
  at CrpsHandler.Crps.Reset()
  at AccordionUno.Services.ExtensionModuleService.LoadModule(IModuleSettings m)

Root cause

The CRPS PSU connects via a Microchip MCP2221A USB HID bridge. On Linux, /dev/hidraw* nodes are owned by root:root with mode 0600 by default. The accordion firmware service runs as a non-root user and is denied access.

The device is physically present and enumerated — the OS finds it at /dev/hidraw0 — but the service user lacks read/write permission.

Fix

Add a udev rule targeting the MCP2221A by USB Vendor/Product ID. This is a one-time OS-level configuration — it does not grant the service sudo or root rights at runtime.

File to create on the A2: /etc/udev/rules.d/99-mcp2221.rules

SUBSYSTEM=="hidraw", ATTRS{idVendor}=="04d8", ATTRS{idProduct}=="00dd", MODE="0666"

After creating the file, reload udev and re-enumerate:

udevadm control --reload-rules
udevadm trigger

Then unplug and replug the CRPS USB cable (or reboot).

Verify the PID first:

lsusb | grep -i microchip

If the product ID differs from 00dd, substitute the correct value in the rule.

Alternatives (if broader device access is undesirable)

  • Group-based: create a dedicated group, add the accordion service user to it, and scope the udev rule to that group with GROUP="accordion", MODE="0660" — tighter than 0666.
  • systemd DeviceAllow: add DeviceAllow=/dev/hidraw0 rw and DevicePolicy=closed to the accordion service unit file.

Resolution

udev rule applied by Mikael Svensson 2026-06-09. Fix confirmed — HID open error no longer occurs; CRPS module now advances past USB device open. New error encountered further in initialization — see E-002.

Context

Raised from project ETT00000005 R0 (B12 CB Test Station Upgrade Path).

Resolution:

udev rule /etc/udev/rules.d/99-mcp2221.rules applied 2026-06-09. HID permissions error resolved. See E-002 for next blocking issue.

Design Rule Status

No violations   Warning   Error   Waived