Live demo — data resets daily at 03:00 UTC. Nothing you enter is saved.
B12 CB Test Station Upgrade Path
ETT00000005 · Rev R0
testin_progress
Generated 2026-07-26 13:55 UTC

Test station upgrade path for B12 CB. Primary domain: test. Secondary domain: mechanics.

Coverage 0%
Done 0%
Requirements 0
Test Cases 24
Records 0
Blockers 2

Milestones

Code Title Status Target Achieved TC
MS-008 Standoff Sleeve Solution Mechanical achieved 2026-06-12 2026-06-18 0 / 0
MS-002 Accordion A2 hardware + firmware upgrade ready marker 2026-06-17 0 / 0
MS-003 All ~22 A1→A2 PSU tests ported and passing achieved 2026-06-21 2026-06-23 0 / 0
MS-004 Manual regression test complete — zero failures marker 2026-06-26 0 / 24
MS-005 Deployed to Synplex and validated via OperatorUI marker 2026-06-30 0 / 0
MS-006 Documentation and CM upgrade instructions complete marker 2026-07-10 0 / 0
MS-007 Receiving party confirmation — project complete marker 2026-07-31 0 / 0
MS-001 R1.0 HW BOM revision approved marker 2026-08-31 0 / 0
MS-009 Completed Deployment and Current Release OK at CM marker 2026-08-31 0 / 0
MS-010 2x Test Stations Upgraded at CM marker 2026-08-31 0 / 0

Milestone gates

Items (10)

Code Status Severity Kind Title Date
E-009 open blocking notice A2 fresh firmware makes existing accordion.py wrapper potentially obsolete — API unknown, porting blocked 2026-06-08
E-010 open blocking notice CRPS 12V/75A bulk PSU on A2 — full fix required (ARM64 handler port + udev rule for MCP2221A) 2026-06-08
E-008 open warning decision A1 PSU control is centralized in one shared file — not 22 separate tests 2026-06-08
E-006 open info decision Replace Accordion A1 with Accordion A2 as programmable PSU in B12 CB test station 2026-06-08
E-007 open info decision Two test repositories — CB0 and CB1 separate repos 2026-06-08
E-012 open info decision M2Top PSU channel mapping confirmed: CH1=standby (TA/AWO), CH2=testboard (B6_PROD_TB) 2026-06-10
E-014 open info decision Standoff sleeve prototype accepted — 5 pcs in production (Felix G) 2026-06-18
E-015 open info decision R1.0 BOM review deferred to 2026-08-31 with Martin J — known delta items noted 2026-06-23
E-011 closed warning notice udev rule for MCP2221A HID access must be baked into A2 OS image 2026-06-09
E-013 closed warning notice R1.0 BOM near-complete — A2 top cover ESH number pending from Felix G 2026-06-10

Requirements

Code Status Category Title Statement Acceptance
REQ-001 draft Hardware Test station HW BOM revised to R1.0 The test station hardware BOM shall be revised from R0.0 to R1.0, removing the Accordion A1 and integrating the Accordion A2 (with PSU module) as the replacement programmable PSU feeding the B12 CRPS Test Adapter and B6_Production_test_board. R1.0 BOM is approved; Accordion A1 is physically removed from the station; Accordion A2 with PSU module is installed and operational.
REQ-002 draft Hardware Accordion A2 BOM updated to include PSU module The Accordion A2 unit installed in the B12 CB test station shall have its BOM updated to include the PSU module, which is absent from the current A2 configuration. A2 BOM revision includes the PSU module; unit is physically assembled with PSU module installed and verified operational before station integration.
REQ-003 draft Software A1 PSU power-control tests ported to Accordion A2 All approximately 22 test cases (TestStand sequences and Python scripts) that currently use Accordion A1 for PSU power control shall be identified, re-written, and ported to use Accordion A2. All ~22 tests identified and catalogued; each test re-developed targeting the A2 API; all ported tests pass individually on the upgraded station.
REQ-004 draft Verification Full regression test suite passes on upgraded station The complete B12 CB test suite (CB0 and CB1) shall be executed manually on the upgraded R1.0 station and all tests shall pass before deployment to Synplex. Full manual regression run completed on R1.0 hardware with zero new failures; all A2-ported tests and all unmodified tests pass.
REQ-005 draft Deployment Upgraded station deployed to Synplex and validated via OperatorUI The upgraded test station software shall be deployed to the Synplex network and validated end-to-end via the OperatorUI, confirming all tests are executable and passing in the production environment. Station is visible and active in Synplex; full test suite executes successfully via OperatorUI with no failures.
REQ-006 draft Documentation Documentation updated for R1.0 changes All relevant documentation (station setup guide, hardware configuration, test guide) shall be updated to accurately reflect the R1.0 hardware and software changes before handover. Updated documentation is reviewed, approved, and available to all stakeholders prior to handover on 2026-06-25.
REQ-007 draft Documentation CM production personnel upgrade instructions produced Step-by-step upgrade instructions for contract manufacturer production personnel shall be produced, covering all hardware changes required to upgrade a B12 CB test station from R0.0 to R1.0. Upgrade instructions are reviewed, approved, and delivered to CM production personnel before 2026-06-25.
REQ-008 draft Process Confirmation sign-off obtained from all receiving parties A confirmation round shall be conducted with all receiving parties (CM, operators, and relevant stakeholders) to verify the upgraded R1.0 station meets requirements, with confirmation received no later than 2026-06-25. Written or recorded confirmation received from all identified receiving parties by 2026-06-25.

Test Cases

Code Status Category Title / Signal Target Pass Criterion Linked REQ
TC-001 open Programming [CB0] Step 2 — Erase FPGA Flash (optional) FPGA flash erased successfully or step skipped as optional. REQ-004
TC-002 open TestStand Native [CB0] Step 3 — Power Devices Programming All power regulators programmed successfully. PSU sequencing via Accordion A2 (ported from A1). **Note: native TestStand .seq — no Python. A1 calls must be identified and re-implemented manually in TestStand.** REQ-003
TC-003 open Electrical [CB0] Step 4 — XJTAG Test XJTAG boundary scan passes with no faults detected. REQ-004
TC-004 open Software [CB0] Step 5a — Bsp Setup Test BSP setup completes without errors; board support package initialised correctly. REQ-004
TC-005 open Software [CB0] Step 5b — Bsp sseFPGA Test sseFPGA BSP test passes; FPGA communication verified. REQ-004
TC-006 open Software [CB0] Step 6 — Bsp rFPGA Test rFPGA BSP test passes; reconfigurable FPGA communication verified. REQ-004
TC-007 open Functional [CB0] Step 7 — Functional Test All functional test items pass. PSU power control (if using A1) ported to Accordion A2. REQ-003
TC-008 open Electrical [CB0] Step 8 — Power Rails Status Test All power rails within specification. PSU control ported from A1 to Accordion A2. REQ-003
TC-009 open Electrical [CB0] Step 9 — Sidebands Test All sideband signals verified within expected states. REQ-004
TC-010 open Electrical [CB0] Step 10 — Memory XCVR Test Memory transceiver test passes; all XCVR links verified. REQ-004
TC-011 open Electrical [CB0] Step 11 — Internal Clock Test Internal clock frequencies within specification. REQ-004
TC-012 open Electrical [CB0] Step 12 — External Clock Test External clock input/output frequencies within specification. REQ-004
TC-013 open Functional [CB0] Step 13 — Halo CyUSB Test Halo CyUSB interface test passes; USB communication verified. REQ-004
TC-014 open Functional [CB0] Step 14 — Final Test All final test items pass; board cleared for next stage. PSU control (if using A1) ported to Accordion A2. REQ-003
TC-015 open Programming [CB1] Step 2 — Bsp FTDI Reprog. (optional) FTDI reprogramming completes successfully or step skipped as optional. REQ-004
TC-016 open Programming [CB1] Step 3 — Erase FPGA Flash (optional) FPGA flash erased successfully or step skipped as optional. REQ-004
TC-017 open TestStand Native [CB1] Step 4 — Power Device Programming All power devices programmed successfully. PSU sequencing via Accordion A2 (ported from A1). **Note: native TestStand .seq — no Python. A1 calls must be identified and re-implemented manually in TestStand.** REQ-003
TC-018 open Electrical [CB1] Step 5 — XJTAG Test XJTAG boundary scan passes with no faults detected. REQ-004
TC-019 open Software [CB1] Step 6 — Bsp serFPGA Test serFPGA BSP test passes; serial FPGA communication verified. REQ-004
TC-020 open Functional [CB1] Step 7 — Functional Test All functional test items pass. PSU power control (if using A1) ported to Accordion A2. REQ-003
TC-021 open Electrical [CB1] Step 8 — Power Rails Status Test All power rails within specification. PSU control ported from A1 to Accordion A2. REQ-003
TC-022 open Electrical [CB1] Step 9 — Sidebands Test All sideband signals verified within expected states. REQ-004
TC-023 open Electrical [CB1] Step 10 — Memory XCVR Test Memory transceiver test passes; all XCVR links verified. REQ-004
TC-024 open Functional [CB1] Step 11 — Final Test All final test items pass; board cleared for next stage. PSU control (if using A1) ported to Accordion A2. REQ-003

Verification Records

No verification records.

Decisions

E-006 Replace Accordion A1 with Accordion A2 as programmable PSU in B12 CB test station info

Decision

The Accordion A1, currently acting as the programmable PSU feeding the B12 CRPS Test Adapter and B6_Production_test_board, shall be removed and replaced by the Accordion A2 already inside the test fixture. This is the primary driver of the R0.0 → R1.0 hardware BOM revision.

Rationale

  • Accordion A2 is already physically present inside the fixture, making it the natural PSU replacement.
  • Removing A1 reduces cable complexity and consolidates PSU management onto a single platform.
  • A2 requires a BOM upgrade to include the PSU module (currently absent) before it can fulfill this role.

Alternatives considered

  • Keep A1 alongside A2: Rejected — adds unnecessary complexity and defeats the consolidation goal.
  • Use external bench PSU: Rejected — not compatible with automated test sequences and Synplex/OperatorUI workflow.

Consequences

  • ~22 TestStand/Python test cases that reference A1 PSU control must be re-written for the A2 API (see REQ-003).
  • Accordion A2 firmware upgrade required in conjunction with hardware BOM change.
  • Full regression test required before Synplex deployment (see REQ-004).
E-007 Two test repositories — CB0 and CB1 separate repos info

Decision

The B12 CB test station upgrade uses two separate repositories, one per DUT.

DUT Repository
B12 Control Board 0 (CB0) https://github.com/esharpab/testdevelopment_b12_cb0.git
B12 Control Board 1 (CB1) https://github.com/esharpab/testdevelopment_b12_cb1.git

The CB0 repo is set as the project's primary repositoryUrl. CB1 is tracked here.

Rationale

DUTs are distinct boards with separate test suites. Keeping repos separate maintains clean separation of test scope per board.

Consequences

  • Test cases in PLEASE tagged [CB0] or [CB1] to identify which repo/DUT they belong to.
  • A1→A2 PSU porting work (REQ-003) spans both repos — ~22 tests total across both.
E-008 A1 PSU control is centralized in one shared file — not 22 separate tests warning

Finding

After reading the Python source, all A1 PSU control is in a single shared file that is copied (Imported/) into every test folder:

H200_12F_CB_common_testStand_preparations.py

The porting work (REQ-003) is primarily a change to this one file, not 22 separate test scripts.

A1 PSU API calls (current)

All go through esharp.accordion.Accordion class:

from esharp.accordion import Accordion

accdn_handle = Accordion(agent)
accdn_handle.open()
accdn_handle.reset(True)
accdn_handle.loadModule("CRPS")

# PSU channels (numeric index):
accdn_handle.setPsu(0, True/False, 12.0, 3)    # Standby voltage — 12V/3A
accdn_handle.setPsu(1, True/False, 12.0, 2)    # Testboard voltage — 12V/2A
accdn_handle.setPsu(2, True/False, 12.0, 75)   # CRPS voltage — 12V/75A

A2 PSU API (target)

The A2 path is implemented via the dual-mode accordion_a2.py facade (set_rail("standby"/"testboard"/"crps", enable)), which writes M2Top PMBus resources on A2 and falls back to setPsu(ch,…) on A1. standby/testboard channel strings confirmed on live hw — see E-010 / E-012.

Migration scope (Python — DONE & committed)

  1. common_TestStand_load_CB_accordion() — replaced Accordion(agent) with AccordionA2 attach pattern ✅
  2. common_standby_voltage_enable/disable() — remapped to A2 set_rail("standby")
  3. common_testboard_voltage_enable/disable() — remapped to A2 set_rail("testboard")
  4. common_CRPS_voltage_enable/disable() — kept deferred on A2 (E-010, CRPS bring-up WIP) ⏳
  5. Updated file re-copied into all Imported/ dirs; committed/pushed (CB0 225dc2e, CB1 331946a) ✅

Native TestStand (.seq) — MANUAL, gated, MS-owned (NOT automatable)

PwrRailsSetup (CB0/CB1) contains additional A1 PSU calls inside the TestStand sequences. The .seq files are binary — they cannot be read, parsed, or edited programmatically (no Python/text to diff). This rework must be done manually by MS within the project's gate process; it is outside the scope of any automated/AI edit. Tracking only — no code action available here.

E-012 M2Top PSU channel mapping confirmed: CH1=standby (TA/AWO), CH2=testboard (B6_PROD_TB) info

Decision

The logical rail mapping in accordion_a2.py (_RAILS) is confirmed and kept as-is:

Rail A1 (old) A2 / M2Top (slot 0.16, ESH10000533) Drives Setting
standby setPsu(0, …) 0.16.ESH10000533.0x4F.CH1.* B12_CRPS_TA → CB AWO domain 12 V / 3 A
testboard setPsu(1, …) 0.16.ESH10000533.0x4F.CH2.* B6_PROD_TB (BOA production test board) 12 V / 2 A

Rationale

A1 side (from code, git HEAD pre-migration):

  • setPsu(1) → B6_PROD_TB is explicit: the test_board_powerEnable flag in every test top-file carries the comment "For B12, BOA_PROD_TB must be powered on…" and feeds en_CBTBcommon_testboard_voltage_enable()setPsu(1, True, 12.0, 2).
  • setPsu(0) → TA/AWO: docstring "Enables standby voltage to the CB", enabled by default on every attach (always-on semantics); the AWO enables live on the TA GPIO expander (0.15.ESH10000462.CB0_PSM_AWO_EN, TA_PMBUS_AWO_EN) and the Bsp tests check PSM_AWO_PG after standby comes up.

Physical mapping (confirmed by Mikael Svensson, 2026-06-10): A1 ch0 (standby) is the left-hand channel output on the A1. On the new M2Top PSU in the A2, the corresponding channel is CH1 — located on the right-hand side looking at the two channel outputs. The sides are mirrored between A1 and M2Top: identify channels by name, never by position.

Alternatives considered

  • Swap to CH1=testboard / CH2=standby: rejected — physical inspection of the channel outputs confirms CH1 is the standby feed despite its mirrored position.

Consequences

  • accordion_a2.py _RAILS table stays unchanged; the "UNCONFIRMED" comment is replaced with this confirmation (propagated to all 24 Imported/ copies in CB0+CB1 repos).
  • The standby and testboard rails are now fully portable/ready on A2. Remaining PSU blocker is CRPS only (E-010 / E-002).
  • CM upgrade instructions (REQ-007) should warn about the mirrored channel positions when cabling.
E-014 Standoff sleeve prototype accepted — 5 pcs in production (Felix G) info

Decision

Black plastic standoff sleeve prototype designed by Felix G was reviewed and accepted by MS on 2026-06-17. Felix's team is producing 5 pcs for the R1.0 upgrade fleet.

What the sleeve does

Lifts the main fixture plate (black lid frame) slightly so it sits level on the grey base enclosure. Sleeves are mounted on the aluminum extrusion rails at the sides of the lid frame, secured with threaded metal inserts and bolts.

Prototype photos (2026-06-17)

Six photos captured at acceptance:

  1. Overview — lid raised (front/side): Full enclosure showing the gap between black top frame and grey base where sleeves locate. Red E-stop button visible on front panel.
  2. Close-up — two sleeve blocks on corner rail (lid open): Shows the black plastic blocks with brass/threaded inserts seated on the extrusion rail. Two blocks visible at the corner, one above the other.
  3. Inside view — sleeve block on rail with Perspex label: Clear acrylic/Perspex material visible (ISO 9001 certification label on material sheet). Accordion (red) and PCB/cable harness visible in background.
  4. Side rail — single sleeve block with bolt: One sleeve block on the aluminum extrusion from the side; bolt head visible on top. Station interior with Accordion and braided cable harness.
  5. Corner detail — sleeve integrated, closed position: Sleeve block visible as raised block between black lid frame and grey base; Lasbricka M4 (EPN1000184) fastener bins in foreground on bench.
  6. Full station assembled — lid level: HARMONIX SPACE front panel visible. Fixture lid sits level on the enclosure with sleeve solution in place. Station in final assembled state on workbench.

Material

Acrylic/Perspex (black). Threaded metal inserts for bolted attachment to extrusion rail.

Production status

5 pcs ordered; Felix G's team responsible for delivery. No ESH number assigned to sleeve part yet — to be determined if formal BOM entry needed for CM upgrade instructions (REQ-007).

E-015 R1.0 BOM review deferred to 2026-08-31 with Martin J — known delta items noted info

Decision

The formal R1.0 HW BOM review (MS-001) is deferred to 2026-08-31 and will be done together with Martin J.

Known BOM delta items (R0.0 → R1.0)

Item Note
Standoff sleeve (black acrylic) Prototype accepted 2026-06-17; 5 pcs in production by Felix G. See E-014. No ESH number assigned yet.
Power cable (longer spec, 80 cm) New length requirement vs R0.0 — exact spec TBD with Martin J.
Fan guard 60 mm New addition for R1.0 — exact spec TBD with Martin J.
Accordion A1 Removed (see E-006)
Accordion A2 + PSU module Added (see E-006, REQ-001, REQ-002)

Why deferred

BOM formalization not on critical path for the 2026-06-25 software/deployment deadline. Martin J is the right co-author for the hardware BOM entries.

Notices

E-009 A2 fresh firmware makes existing accordion.py wrapper potentially obsolete — API unknown, porting blocked blocking open

Situation

The R1.0 hardware revision includes a fresh firmware flash for the Accordion A2. This was confirmed by MS 2026-06-08.

The existing AccordionTsQ2/accordion.py wrapper (already present in every Imported/ folder in both CB0 and CB1 repos) was generated against an older A2 firmware. It cannot be assumed compatible with the new firmware.

Consequence

The A1→A2 PSU porting work (REQ-003, E-008) is blocked until:

  1. New A2 hardware with fresh firmware is available in the test station
  2. The new firmware API is documented or a new Python wrapper is generated
  3. PSU channel string names are confirmed for the new firmware
  4. 75A CRPS channel capability is verified on the new PSU module

Risk to schedule

Deadline is 2026-06-25 — 17 days from today. If the new A2 hardware+firmware does not arrive soon, there is insufficient time to port, regression test, and deploy before the deadline.

What is needed immediately

  • New A2 firmware API spec or autogenerated Python wrapper (accordion.py)
  • Confirmed PSU channel name mapping: standby (12V/3A), testboard (12V/2A), CRPS (12V/75A)
  • Confirmation that A2 PSU module can source 75A for CRPS load
  • ETA for new A2 hardware delivery to test station

Current state of code

All six PSU control functions in H200_12F_CB_common_testStand_preparations.py use esharp.accordion.Accordion (A1 class, numeric indices). The AccordionTsQ2/accordion.py file exists in every Imported/ folder but is the pre-upgrade A2 API — both are potentially wrong for R1.0.

E-010 CRPS 12V/75A bulk PSU on A2 — full fix required (ARM64 handler port + udev rule for MCP2221A) blocking open

Situation

The CRPS 12V/75A supply is an external, USB-controlled server-style PSU — never internal to A1. A1 loaded it via loadModule("CRPS"); the handler talks to it over a USB serial bridge via a Microchip MCP2221A USB HID bridge. In the R1.0 upgrade it is re-cabled to the A2.

Current state (2026-06-10) — NOT working yet

Per MS: the CRPS is still being brought up on A2. What appears on the live unit right now is an in-progress attempt, not a verified/working path — do not treat CRPS as done.

  • GET /api/Modules/loaded shows a CRPS module (CrpsHandler.dll, /dev/ttyUSB0, enabled:true). This is the team's WIP bring-up of the external PSU, not a confirmed-functional control path.

Fix 1 — ARM64 handler port (Daniel Rhodin, WIP)

Root cause / owner

The blocker is an architecture port: the CRPS handler was 32-bit on the A1 platform; the A2 (AGENT Q2 Base) runs 64-bit ARM, so the handler / its native dependency needed fixing for ARM64. Daniel Rhodin is working the CRPS fixes — pending.

What is still needed

  • Daniel: finish the 32→64-bit ARM port of the CRPS handler so the external PSU is controllable on A2 — in progress
  • Identify the actual control surface for the bulk supply's enable / voltage / current — separate from the TA sideband signals
  • Confirm 12 V / 75 A capability of the unit
  • Port common_CRPS_voltage_enable/disable() and the CRPS path in common_TestStand_load_CB_accordion() once the above are known

Fix 2 — udev rule for MCP2221A HID access (bake into A2 OS image)

Background

The CRPS external USB PSU connects to the A2 via the MCP2221A USB HID bridge. On Linux, /dev/hidraw* nodes default to root:root 0600, which blocks the accordion firmware service (non-root) from opening the device.

The fix (documented as E-001 on ESH10000158 R6) is a udev rule:

/etc/udev/rules.d/99-mcp2221.rules

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

This was applied manually on one A2 unit to unblock integration testing. For all future A2 deployments this rule must be present out of the box.

Request to firmware lead (Daniel Rhodin)

Include /etc/udev/rules.d/99-mcp2221.rules (content above) in the A2 base OS image / provisioning so every shipped or re-imaged A2 has CRPS HID access without manual intervention.

Alternatively, group-based approach:

SUBSYSTEM=="hidraw", ATTRS{idVendor}=="04d8", ATTRS{idProduct}=="00dd", GROUP="accordion", MODE="0660"

(requires the accordion service user to be a member of the accordion group)

What is needed

  • Daniel: include udev rule in A2 OS image / provisioning

Correction note

The resources 0.15.ESH10000462.CRPS_12V_ENn / CRPS_12V_PG / CRPS_1_PRESENTn / CRPS_ISHARE / CRPS_CR_BUSn belong to the B12 CB TA module (ESH10000462, slot 0.15) — these are the DUT-side CRPS interface / sideband signals exercised by SidebandsTest continuity checks (CrpsTAGpioHandler, expander 0x20). They are NOT control of the external bulk CRPS PSU.

⚠️ An earlier revision of this notice incorrectly concluded "CRPS enable = these TA GPIOs / CRPS substantially resolved." That was wrong (conflated the TA's DUT-interface signals with the bulk-supply control). Reverted.


M2Top standby/testboard — confirmed against live hw (unchanged, unblocked)

  • 0.16.ESH10000533.0x4F.CH1.*standby (12V/3A) → B12_CRPS_TA / CB AWO domain
  • 0.16.ESH10000533.0x4F.CH2.*testboard (12V/2A) → B6_PROD_TB

All three resources the shim writes per channel (.OUTPUT_VOLTAGE, .IOUT_OC_FAULT_LIMIT, .OUTPUT_ENABLE) exist on the live unit. CH1/CH2 assignment confirmed 2026-06-10 — see decision E-012 (positions mirrored vs A1; identify by name, not position).

Impact on porting (REQ-003)

  • common_standby_voltage_enable/disable() and common_testboard_voltage_enable/disable() — ready, validated against live hw.
  • common_CRPS_voltage_enable/disable() + the load_crps()/CRPS path — still blocked on Daniel's ARM64 handler port + udev rule. Shim correctly keeps these deferred (NotImplementedError / skip on A2).
E-011 udev rule for MCP2221A HID access must be baked into A2 OS image warning closed

Merged into E-010.

E-013 R1.0 BOM near-complete — A2 top cover ESH number pending from Felix G warning closed

Status (2026-06-10)

R1.0 BOM has been created. SharpMES is updated to R1. The BOM is otherwise complete with one item outstanding:

Pending: ESH number for the Accordion A2 top cover — a variant specific to this tailored A2 (M2PSU + B12 TA configuration). This part does not yet have an ESH number in the system.

Owner: Felix G — waiting on ESH number assignment.

Action

  • Felix G: provide ESH number for the A2 top cover (M2PSU + B12 TA variant) — ESH10000691
  • MS: add the top cover to the R1.0 BOM — resolved 2026-06-22

Impact on MS-001

MS-001 (R1.0 HW BOM approved) — top cover now has ESH number; BOM can be finalised.

Design Rule Status

No violations   Warning   Error   Waived