{
  "boardSha256": "2f949d76b53bf75e4b6f56e5e68623900b1f3e9c2403770409e647953aabc93d",
  "scope": "Manufacturer pin mapping and default electrical topology; not physical qualification",
  "hostPinsChecked": 22,
  "lcdPinsChecked": 8,
  "buttonsChecked": 8,
  "buttons": [
    {
      "key": "KEY_LEFT",
      "reference": "SW501",
      "hostPin": "12",
      "net": "JoystickLeft",
      "gpioBank": 1,
      "runtimeDeviceAlias": "/dev/gpiochip-bank1",
      "line": 24,
      "domainV": 3.3,
      "released": "high with domain-correct pull-up",
      "pressed": "low",
      "externalPullUp": false
    },
    {
      "key": "KEY_UP",
      "reference": "SW502",
      "hostPin": "13",
      "net": "JoystickUp",
      "gpioBank": 1,
      "runtimeDeviceAlias": "/dev/gpiochip-bank1",
      "line": 25,
      "domainV": 3.3,
      "released": "high with domain-correct pull-up",
      "pressed": "low",
      "externalPullUp": false
    },
    {
      "key": "KEY_PRESS",
      "reference": "SW503",
      "hostPin": "16",
      "net": "JoystickPress",
      "gpioBank": 1,
      "runtimeDeviceAlias": "/dev/gpiochip-bank1",
      "line": 22,
      "domainV": 3.3,
      "released": "high with domain-correct pull-up",
      "pressed": "low",
      "externalPullUp": false
    },
    {
      "key": "KEY_DOWN",
      "reference": "SW504",
      "hostPin": "17",
      "net": "JoystickDown",
      "gpioBank": 1,
      "runtimeDeviceAlias": "/dev/gpiochip-bank1",
      "line": 23,
      "domainV": 3.3,
      "released": "high with domain-correct pull-up",
      "pressed": "low",
      "externalPullUp": false
    },
    {
      "key": "KEY_RIGHT",
      "reference": "SW505",
      "hostPin": "18",
      "net": "JoystickRight",
      "gpioBank": 0,
      "runtimeDeviceAlias": "/dev/gpiochip-bank0",
      "line": 4,
      "domainV": 3.3,
      "released": "high with domain-correct pull-up",
      "pressed": "low",
      "externalPullUp": false
    },
    {
      "key": "KEY1",
      "reference": "SW506",
      "hostPin": "19",
      "net": "Key1",
      "gpioBank": 4,
      "runtimeDeviceAlias": "/dev/gpiochip-bank4",
      "line": 16,
      "domainV": 1.8,
      "released": "high with domain-correct pull-up",
      "pressed": "low",
      "externalPullUp": false
    },
    {
      "key": "KEY2",
      "reference": "SW507",
      "hostPin": "20",
      "net": "Key2",
      "gpioBank": 4,
      "runtimeDeviceAlias": "/dev/gpiochip-bank4",
      "line": 17,
      "domainV": 1.8,
      "released": "high with domain-correct pull-up",
      "pressed": "low",
      "externalPullUp": false
    },
    {
      "key": "KEY3",
      "reference": "SW508",
      "hostPin": "11",
      "net": "Key3",
      "gpioBank": 1,
      "runtimeDeviceAlias": "/dev/gpiochip-bank1",
      "line": 21,
      "domainV": 3.3,
      "released": "high with domain-correct pull-up",
      "pressed": "low",
      "externalPullUp": false
    }
  ],
  "result": "PCB mapping and generated carrier profile pass; packed image and physical operation remain to verify",
  "checks": [
    "All U202 pad nets",
    "All J701 pad nets",
    "Closed/open CS and BL jumper defaults",
    "Separate LCD and host 3.3V outputs",
    "LDO supply/enable/decoupling",
    "Unused host I2C and 1.8V output",
    "All eight normally-open button paths and exact net membership; no external pull-ups",
    "UART crossed through series resistors",
    "Reader VDD5/VDD33/card supply separation and nominal 1uF capacitors",
    "UR2 identity, first socket numbered contacts, presence and series card clock",
    "Pinned FOX_22 display and button settings",
    "10MHz patch changes only FOX_22 SPI speed and is idempotent",
    "Generated carrier profile uses kernel bank-label aliases for display and all eight buttons"
  ],
  "firmware": {
    "commit": "efdd1cfd14e80a076a7e1ae91e9f2270ecbcd44f",
    "sourceSha256": "6444ae780d74e346c5a52b239fb3871c95a05f5f4fd609a9bb11bdb00f6f472a",
    "upstreamDefaultHz": 40000000,
    "hothmiMinimumWriteCycleNs": 66,
    "requiredHz": 10000000,
    "patchTested": true,
    "carrierIoConfigSha256": "02bc415276c37dbf3332a2d7535284ade431e42173d472c41f7798b3bb4d8f4b",
    "gpioBankSelection": "kernel-label-aliases",
    "installedOrBuiltImageVerified": false
  },
  "remaining": [
    "LCD total current and LDO thermal qualification",
    "Supply startup/shutdown and logic timing measurements",
    "Actual module/header revision and orientation continuity check",
    "Verify packed carrier bank-label profile and 10MHz selection; measure live SPI and display operation"
  ]
}
