Neatbo.

Intel HEX address merger

Merge local Intel HEX 00–05 files by sparse 32-bit addresses, checking record checksums, overlaps and entry-point conflicts before output.

Browser-local processingInputIntel HEX filesOutputIntel HEX / Address-map JSON / CSVUp to 2 MiB per file · File limit: 64
  1. 1Add input
  2. 2Adjust settings
  3. 3Get your result

Tool input and files are processed in this browser without being uploaded.

Your input

Inputs are kept temporarily in this tab when switching tools. Refreshing or closing clears them; large results may need to be regenerated.

⌘ / Ctrl + Enter to run

or drag and drop them here

Files stay on this device. Your originals stay unchanged.

.hex · .ihex · .txt

Up to 2 MiB per file · File limit: 64

    0 characters · 0 bytes
    Options

    Complete the required options first. You can keep the defaults for the rest.

    Preparing the tool…

    Before you start

    Combine bootloader and application HEX exports only when their stored address bytes do not overlap. Review complete segments and entry metadata, then deliver canonical HEX and a sparse address map without filling large address gaps.

    How to use this tool

    1. Select the original bootloader/application HEX files, or paste one complete HEX file for inspection.
    2. Check stored ranges, segment bounds and retained entry-point kind; any overlap fails before a download.
    3. Download merged.hex, the complete address-map JSON and segment report. Verify the result with the receiving firmware tool before flashing.

    Supported inputs and limits

    Paste one HEX file or select up to 64 UTF-8 files, combined at most 2 MiB. Selected files take precedence. At most 50,000 nonempty records and 1 MiB stored bytes; sparse addresses are independent of their span. Total complete artifacts up to 10 MiB; segment preview first 200.

    Supports records 00 data, 01 EOF, 02 extended segment address, 03 CS:IP start, 04 extended linear address and 05 EIP start. Count, checksum, record address and type-specific length must be exact. Every file needs one EOF; later records, invalid hex/whitespace, duplicate start records and unknown types reject. Empty lines and an optional leading UTF-8 BOM are accepted.

    Addresses range 0x00000000–0xFFFFFFFF. Data that exceeds this range rejects. Any repeated stored address, even with the same byte, rejects the entire merge. One compatible entry-point declaration is retained; different kinds or values conflict. No partial result is supplied on failure.

    Output uses 16-byte data records with extended linear bases and retains the start-record kind. Address-map JSON contains every contiguous segment and its exact hex bytes; report/CSV provide complete segment bounds with exclusive ends (0x100000000 is permitted as an end). No gap filling, hardware flashing, target suitability, firmware-signature authentication or application CRC validation.

    Worked example

    Example input

    :0400000001020304F2
    :0400000500000000F7
    :00000001FF
    
    Example options
    {"secondary":"","params":{"spreadsheetSafe":true}}

    Example output

    {
      "format": "Intel HEX 00–05",
      "inputFiles": 1,
      "inputBytes": 52,
      "records": 3,
      "storedBytes": 4,
      "segments": [
        {
          "start": 0,
          "endExclusive": 4,
          "storedBytes": 4,
          "startHex": "00000000",
          "endExclusiveHex": "00000004"
        }
      ],
      "minimumAddress": "00000000",
      "maximumAddress": "00000003",
      "startKind": "linear",
      "outputRecords": 4,
      "entry": {
        "kind": "linear",
        "eip": 0
      },
      "sources": [
        {
          "name": "pasted.hex",
          "records": 3,
          "storedBytes": 4,
          "entry": {
            "kind": "linear",
            "eip": 0
          }
        }
      ]
    }

    When something does not work

    Regenerate records with correct lengths/checksums and one final EOF. Resolve overlapping regions and conflicting start records in the original linker/build configuration. Keep unsupported record formats separate; rerun from complete corrected files.

    Frequently asked questions

    Can identical overlapping bytes be merged?

    No. Every repeated stored address rejects, even when bytes match. Resolve ownership in the build outputs before merging.

    Will an address near 0xFFFFFFFF allocate a 4 GiB image?

    No. The tool stores only present bytes and emits sparse segments. It does not allocate or fill the address span.

    Does a checksum prove the firmware will run?

    No. Intel HEX record checksums only check record integrity. The tool does not know the target flash layout, boot protocol or application CRC.

    Documentation & further reading

    Related tools