Skip to content

[dev test] w27e257 — FAIL (7a89fcea856a) #23

Open

Description

@AndersBNielsen
Step Verdict Reason
id OK -
read OK -
blank-check OK -
write BAD -
verify BAD -
erase OK -
{
  "schema_version": "1.2",
  "generated": "2026-08-06T08:32:52Z",
  "auto_capture": {
    "host_version": "3.0.0b15",
    "fw_board_identity": null,
    "hw_revision": "Rev 2.0-class, Override HW: Rev 2.3",
    "chip": "w27e257",
    "protocol": "7",
    "chip_id_expected": 55810,
    "chip_id_actual": null,
    "chip_id_mismatch_reason": null
  },
  "transport_health": {
    "cobs_errors": "not measured",
    "crc_failures": "not measured",
    "retries": "not measured",
    "timeouts": "not measured",
    "transport_suspect": false
  },
  "steps": [
    {
      "op": "id",
      "verdict": "OK",
      "reason": "",
      "error_code": null,
      "fingerprint": null
    },
    {
      "op": "read",
      "verdict": "OK",
      "reason": "",
      "error_code": null,
      "fingerprint": null
    },
    {
      "op": "blank-check",
      "verdict": "OK",
      "reason": "",
      "error_code": null,
      "fingerprint": null
    },
    {
      "op": "write",
      "verdict": "BAD",
      "reason": "",
      "error_code": null,
      "fingerprint": "blank/contact"
    },
    {
      "op": "verify",
      "verdict": "BAD",
      "reason": "",
      "error_code": null,
      "fingerprint": "blank/contact"
    },
    {
      "op": "erase",
      "verdict": "OK",
      "reason": "",
      "error_code": null,
      "fingerprint": null
    }
  ],
  "banner": {
    "n_ran": 6,
    "m_applicable": 6,
    "locked_steps": []
  },
  "voltage": {
    "vpp_before_mv": 12500,
    "vpp_after_mv": 12500,
    "vpe_before_mv": 14600,
    "vpe_after_mv": 14600,
    "vpp_mv": "not measured",
    "vpe_mv": "not measured"
  },
  "is_submittable": true,
  "dedup_fingerprint": "7a89fcea856a",
  "db_diff": {
    "current_support_status": "supported",
    "proposed_disposition": "suggests: community-fail signal (advisory -- human triage required)",
    "ladder_state": "community-fail"
  }
}

Activity

  1. henols commented on Aug 8, 2026

    @henols
    Owner

    Consolidated reports for w27e257

    2 dev test reports describe this EPROM. Folding them here so it is triaged once.

    Issue Verdict Fingerprint Host Report date Failing steps
    #23 FAIL 7a89fcea856a 3.0.0b15 2026-08-06 write, verify
    #24 FAIL 3870f9b5f6ca 3.0.0b15 2026-08-06 blank-check

    Issues sharing a fingerprint are the same failure re-reported. A PASS row is evidence (the chip can work — suspect intermittency or a since-fixed path), not grounds to close this issue.

  2. henols commented on Aug 8, 2026

    @henols
    Owner

    Datasheet cross-check — W27E257

    Datasheet: Winbond W27E257, Revision A3, January 1997 (datasheets/W27E257.pdf)
    Failing steps: write BAD, verify BAD (folded #24: blank-check BAD)

    Check Datasheet Database Verdict
    Pin map (28-DIP) PIN CONFIGURATIONS, 28-pin DIP, pins 1–28 — pin 1 = VPP, pin 22 = OE (two separate pins, unlike the 27512 family) DIP28_27256 MATCH — all 28 pins agree
    Pin count / size 32,768 × 8, A0–A14, 28-pin 600 mil DIP pin_count: 28, 0x8000 MATCH
    VCC single 5V supply; VCP = 5V for program; VCE 4.5–5.5V for erase vcc: 5V MATCH
    Chip ID Product Identifier with A9 = VHH (12V): manufacturer DAh, device 02h chip_id_value: 0xda02 MATCH
    Erase VPP = VPE (14V), A9 = VPE (14V), OE = VIH, A0 = VIL, other addresses VIL, data VIH, CE pulsed low flags: electrically erasable MATCH
    Pulse timing erase within 100 mS; program pulse via CE pulse_duration: 100 us MATCH
    VPP (program) Program mode: VPP raised to 12V (VCC = VCP 5V, OE = VIH, CE pulsed low). VPE = 14V is the erase voltage only vpp: 13.5V, vpp_mv: 13500 MISMATCH — 13.5V is neither the 12V program voltage nor the 14V erase voltage
    Program verify TABLE OF OPERATING MODES, Program Verify row: CE = VIH, OE = VIL, VCC = VCP, VPP held at 12V protocol 0x07, generic eprom.cpp path shared with W27C512 / M27C512 MISMATCH — 0x07's verify does not match this part

    The pin map is right and the chip ID is right — this is not a wiring or identification fault.
    Two rows do not match, and both sit directly on the failing steps.

    1. vpp: 13.5V is wrong for programming. The datasheet's program condition is VPP = 12V; 14V
      is reserved for erase. 13.5V is below the 14.5V absolute maximum so it is not destructive, but
      it is outside the specified program condition in both directions. The report measured
      vpp 12500 mV, so the rail did not reach the requested 13.5V either — the requested value and
      the delivered value disagree as well.

    2. Program verify wants CE HIGH with VPP still at 12V. This part is unusual: Program Verify
      is CE = VIH, OE = VIL, VPP = VPP (12V). Compare W27C512 on the same protocol 0x07, whose
      program verify is CE = VIL with OE/VPP dropped to VIL. One generic implementation
      cannot satisfy both, and firmware has a single eprom.cpp covering 0x07/0x08/0x0B with no
      per-part variation. That is a coherent single explanation for write BAD and verify BAD
      together: the bytes may well be programming, and the verify read is then performed under
      conditions this device does not answer in.

    Note also that W27E257 carries VPP on a dedicated pin 1 with OE separate on pin 22, whereas
    protocol 0x07 is described as "requires VPP on OE/VPP pin". The pinout key encodes pin 1
    correctly, so the bus config is right — but the algorithm's assumption is not this part's
    topology. Directly relevant to #15 ("Implement protocol-specific EPROM programming algorithms in
    firmware").

    Most likely cause: the shared 0x07 program-verify sequence, with vpp: 13.5V as a second,
    independent defect that should be corrected to 12V regardless. The vpp value is generated by
    build_db.py from infoic, so the fix belongs in the decode function, not in the JSON.

    Unchecked: whether erase actually reaches A9 = 13.75–14.25V at the socket (the firmware does have
    a CTRL_VPP_A9_ENABLE path, but the achieved voltage needs a DMM); the datasheet gives no VPP
    tolerance for the program condition, only for erase, so how far 13.5V is out of spec is not
    quantifiable from this document.

    Folded #24 (blank-check BAD, fingerprint 3870f9b5f6ca) into this issue — a distinct failure of
    the same EPROM, kept in the consolidated table above.

  3. AndersBNielsen commented on Aug 9, 2026

    @AndersBNielsen
    Author
  4. added
    dev-testCommunity `dev test` chip-validation report
    cause:databaseWrong field in the generated chip database
    on Aug 31, 2026
  5. henols commented on Sep 12, 2026

    @henols
    Owner

    Hi @AndersBNielsen — resuming the thread from 2026-08-09. You were right: what you flagged as a rig fault got reported back to you as a chip verdict, and the triage argued against you on exactly that point. That argument was wrong.

    The limit this tool still has, stated plainly. The fix here is not "the tool can now see an unhooked VPP" — it can't, and it still won't be able to on your next run. The report's status axis only fires for a serial error or a hardware-operation error; a mis-wired VPP doesn't raise either of those, it just produces bad read/write/verify data that still gets treated as an ordinary chip result. So a fresh run today, on the same rig fault, would still show write BAD, verify BAD and would still file under a FAIL title — not a harness-status title. Re-running with the same VPP wiring will not come back clean.

    What actually changed. Two things, and neither is "the tool now detects your fault":

    • The misleading vpp_mv/vpe_mv voltage fields were removed from the report entirely. They read the boost-regulator rail, and a regulator rail reads healthy even when the socket itself isn't wired up — which is exactly the trap you hit.
    • A disclosure line was added to every report instead, and it says so in its own words:

    "vpp/vpe readings measure the regulator rail only -- they do not show whether the eprom socket is connected (advisory)"

    That's the honest version of what those readings can and can't tell you. It would have kept you from reading a healthy rail as a healthy socket connection back in August.

    The W27E257 datasheet defect is still open, unfixed, and on the record. The programming voltage this project's own database carries for the W27E257 is 13.5 V; the datasheet gives 12 V. That's not retracted, not quietly dropped, and nothing else currently tracks it as fixed. When it's corrected, the fix goes into the database generator's decode function; the generated database file itself is regenerated wholesale from that generator and is never hand-edited. Separately: the W27E257 is an EEPROM, not a UV-EPROM, so none of that recent UV-part harness work touches this chip's family at all.

    Being precise about what I'm conceding. You mentioned the second run actually passed — I want to be careful here, because I looked, and there's no w27e257 run in the tracker that reads PASS; both w27e257 reports here (this one and the earlier #24) are FAIL. What I'm conceding in full is the general point you made: a rig fault got written up as a chip verdict. I'm not going to imply a passing run exists when the tracker doesn't carry one.

    Labels changing on this issue, and why. I'm adding cause:rig alongside the standing cause:database — the database defect above is real and unfixed, so that label was never wrong, it's just not the whole story. And I'm adding needs:report because this is now waiting on a fresh run from you.

    If you want to re-run it. Reports are now at schema_version 2.0, and the deduplication fingerprint was deliberately re-keyed in this same release — a fresh run will not group with this old one, and that's expected, not a new defect on top of the old one. Install the released app version 3.0.0b39 (pip install --pre -U firestarter — the plain, non---pre install on PyPI is still a 2.x release, none of this is in it), flash firmware 3.0.0b27 with firestarter fw --install, then run firestarter dev test w27e257 again. If your VPP wiring is fixed this time, the report will tell you plainly rather than reading a healthy rail as a healthy connection.

    This issue stays open — I'm not closing it on my own reading, only on your response.

  6. added
    cause:rigOperator wiring, socket or voltage fault — not a software defect
    needs:reportWaiting on a fresh `dev test` run from the reporter
    on Sep 12, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    cause:databaseWrong field in the generated chip databasecause:rigOperator wiring, socket or voltage fault — not a software defectdev-testCommunity `dev test` chip-validation reportneeds:reportWaiting on a fresh `dev test` run from the reporter

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions