Paste a .hex, .ihex, .s19, .s28, .s37, .srec or .mot image. All 17 checks run here in your browser — the same rules the VS Code extension runs, nothing truncated, nothing uploaded. Your image never leaves this page.
One image is free, forever, all 17 checks. The licence covers the next job: sweep every image in the build folder in one pass and keep the dated Markdown audit report as a file you own — per-image release evidence for the technical documentation file. $29 once, one licence key per person or CI seat, 7-day full refund. A freelance firmware consultant averages $105 an hour.
Get the full version — sweep the whole build folder, $29Or install the free extension for VS Code and audit any open image at the line: Intel HEX & S-record Image Audit.
Free for the file open in your editor - no key, no limit. The workspace sweep and the report ask for a key.
VS Code MarketplaceOpen VSX (Cursor, VSCodium)npmMCP server (npx)Docker Hubext install ReadyStack.hex-image-audit npx @readystack/hex-image-audit <file> npx @readystack/hex-image-audit --mcp
Team? One key for every ReadyStack linter, 5 seats, $149 once
This page is the working piece. The full pack has everything below.
Recomputes every checksum in a .hex or .srec image and maps every address it writes, before the image reaches the programmer.
Freelance embedded software engineers average $104 an hour and firmware consultants $105 (contractrates.fyi, crowdsourced rates, June 2026). One hour of one of them re-reading one image costs more than this licence.
Buy the full version — $29· ReadyStack
Real numbers from this tool, line by line.

Seven errors in one Intel HEX image, and the build that produced it reported success. It was fourteen lines of Intel HEX from an ARM build folder — the sort of file an embedded engineer hands to a flash programmer without opening it. A record-level audit returned eighteen findings, seven of them the kind a programmer refuses outright: a record ending in 0x2A where the recomputed two's-complement checksum is 0xE8, a byte-count field claiming sixteen data bytes over a record that carries fifteen, a generator comment left in the middle of the image, a second record writing address 0x08000108 that line seven had already written, a record starting at 0xFFF8 and running sixteen bytes past 0xFFFF with no type 04 record to raise the base, an undefined record type 0x07, and sixteen bytes appended after the end-of-file record where no conforming loader will ever read them.
None of it is exotic; it is happens to a .hex file between the linker and the bench. Images get merged with a bootloader. A calibration constant gets patched by hand or by a script at the last minute. A build step regenerates part of the file and appends the rest. Every one of those can leave a record whose checksum belonged to the bytes that used to be there, and the format does nothing to stop it: Intel HEX is a text file, and an editor will happily save a record that no longer adds up.
The checksum is one byte at the end of each record, the two's complement of the sum of every byte before it. Verifying it is a loop and an addition. It goes unverified not because it is hard but because nothing in the normal path does it. A hex viewer renders records. A diff shows the lines changed. A chatbot asked to patch a record will confidently return one, and it cannot check a checksum over bytes it never sees. The programmer at the flashing station does check — the wrong moment, because by then the build is signed off and the boards are in the fixture.
Motorola S-records have the same problem with a different formula: the checksum is 0xFF minus the sum of the count, address and data bytes, and the count byte itself has to cover address plus data plus checksum. An S5 or S6 record declares how many data records the file holds. When a file has been cut, merged or filtered after it was built, that tally stops matching — the cheapest proof there is that something touched the image after the toolchain did.
Then there is the part no per-record check can see: the address map. Map every absolute byte the image writes, honouring type 02 and type 04 extended-address records, and three classes of defect fall out. Overlaps, where two records claim the same absolute address and the flashed value depends on the load order of whichever tool reads the file. Gaps, where a section the linker placed never made it into the image and those cells keep whatever was in flash before. And blocks that do not fill whole flash pages, which on page-programmed parts forces a read-modify-write or erases the rest of the page.
Intel HEX & S-record Image Audit runs sixteen such checks over a single file and puts each finding on its line. The clean sample image shipped with it produces none; the patched one produces eighteen. It reads .hex, .ihex, .s19, .s28, .s37, .srec and .mot, in the editor or in a browser tab, and auditing one image is free and complete — no key, nothing truncated. Embedded firmware contract work is commonly billed at $90 to $150 an hour, the honest yardstick for an hour spent adding up records by hand.
Free in your browser, same sixteen rules: https://getreadystack.com/tools/hex-image-audit
It reads a .hex, .ihex, .s19, .s28, .s37, .srec or .mot file and runs 17 checks over it. It recomputes every Intel HEX and S-record checksum from the record's own bytes, compares every byte-count field with the data present, and maps every absolute address the image writes to find overlaps, gaps, page-straddling blocks and a stray entry point.
Embedded firmware and release engineers who produce or receive .hex and S-record images: anyone who merges a bootloader with an application image, hand-patches a constant at the last minute, regenerates an image from a script, or mails one to a contract manufacturer. Also for whoever now archives each shipped image as a dated record for an EU market.
They read these formats and will tell you a file is malformed, but they generally stop at the first record they cannot parse and hand you a parse error, not a list. They do not name every bad record, overlap, gap and page-straddling block at its line, and they leave you no dated report to archive.
Auditing one image is free and complete: all 17 checks, no key, nothing truncated, no watermark, no trial counter, in the editor or in the browser. The licence covers a different job — sweeping every image in the build folder in one pass and writing a dated Markdown report you keep. The first sweep runs free for seven days.
Freelance embedded software engineers average $104 an hour and firmware consultants $105, on crowdsourced rates collected through June 2026. Reading one merged image record by record is an hour of that, and it is an hour nobody budgets, which is why the image ships unread. The licence is $29 once, 7-day refund.
One question, answered by the person who built it. Your email only if you want the answer sent.