Why: the same keyboard as a real key matrix: 21 keys in a 4 × 6 matrix with a diode per key on a Pro Micro, where the reference circuit keyboard has 2 × 2. edakit's matrix rules and the simulated scan run on it – the scan reads through the diodes and ghosts without them.
| Stage | Code | Where | Judged | Why |
|---|---|---|---|---|
| check | DOCS.file | edakit.toml | criterion | The transcription has no requirements file: what the published design must do stands in its own documents, not in edakit's form. edakit requires the file before a release (handbook 3.6); it is no point of the design. |
| check | LVL.undefined | LED | real | The LED chain's data input hangs on TX0/D3 alone: the ATmega32U4's port pins are tri-stated while it resets (datasheet 10.2.1), so LED3's DIN floats until the firmware drives it – no resistor holds it. |
| check | REQ.missing | VCC | real | The 27 LEDs on VCC have no capacitor at all – the board has none. The SK6812MINI-E datasheet calls a decoupling capacitor at every LED essential (section 14); the WS2812B-V5/W's says it needs none. |
| check | REQ.missing | SCL | lacks | The board has no I2C pull-ups; they would have to come from the OLED module the builder plugs into J2, which the schematic does not contain. |
| check | REQ.missing | SDA | lacks | As SCL: a pull-up on SDA can only come from the OLED module, which the schematic does not contain. |
| check | PARTS.supplier | J2 | lacks | J2 is the OLED socket, not named in the build guide by part number; the 4-pin header that stands in has no LCSC number here – LCSC's search refused the request. |
| check | PARTS.verified/device | J1 | lacks | The stand-in for the MJ-4PP-9, SparkFun's 4UCON 20153, has no LCSC number and no EasyEDA device. |
| check | PARTS.verified/device | J2 | lacks | As PARTS.supplier: the stand-in header of the OLED socket names neither an LCSC part nor an EasyEDA device. |
| check | PARTS.verified/device | U1 | criterion | The Pro Micro is a bought board, ordered from SparkFun (DEV-12640): edakit asks every part for an LCSC number or an EasyEDA device to place it; this design is KiCad, its footprint kbd:ProMicro_v3. |
| check | REQ.missing/leave | data | real | The split link runs from RX1/D2 straight to the TRRS jack's tip – no series resistor, no ESD protection – on a cable plugged and unplugged next to the ring that carries VCC. |
| sim | LIM.i | U1 | real | With every LED lit the half draws 0.93 A from the Pro Micro's USB, beyond the 0.5 A of a USB 2.0 port and of the module's PTC ('VCC: 5V at 500mA') – before the right half, which it also feeds through the jack. The firmware's brightness limit has to keep it below. |
| sim | LIM.range | U1 | real | With every LED lit at the lowest USB voltage, VCC sags to 4.47 V behind the cable, below the 4.5 V the ATmega32U4 needs for its 16 MHz. |
- A pressed key of the matrix whose row is not scanned – SW1 and SW2 in the ghost load, their diodes blocking on purpose – judged as a contact starved of its minimum load, 0 µA against the socket's 10 µA (REQ.value/min_load).
- The rows not scanned could not be released: every output of the mcu config was driven in every load, so a ghost through a released row could not be simulated. A load's gpio level null now leaves the output on its pull-up.