BIN ↔ Intel HEX / SREC Converter · Schema

Raw schema.

Same JSON the GET /v1/iot-arduino/bin-ihex-srec-converter/schema endpoint returns — formatted for reading. Use it to codegen typed clients or document the contract.

bin-ihex-srec-converter.schema.json
{
  "tool": "bin-ihex-srec-converter",
  "domain": "iot-arduino",
  "version": "1.0.0",
  "name": "BIN ↔ Intel HEX / SREC Converter",
  "description": "Convert firmware images between raw binary, Intel HEX, and Motorola S-record. Validates checksums, preserves sparse address maps, handles linear and segmented Intel HEX addressing, and emits a raw hex preview for inspection.",
  "standard": null,
  "inputs": [
    {
      "key": "source_format",
      "label": "Source Format",
      "help": "BIN reads from source_base64. Intel HEX and SREC read from source_text.",
      "type": "enum",
      "options": [
        "bin",
        "ihex",
        "srec"
      ],
      "default": "bin"
    },
    {
      "key": "target_format",
      "label": "Target Format",
      "help": "The browser UI adds file upload and download on top of this same API contract.",
      "type": "enum",
      "options": [
        "bin",
        "ihex",
        "srec"
      ],
      "default": "ihex"
    },
    {
      "key": "source_text",
      "label": "Source Text",
      "help": "Paste Intel HEX or Motorola SREC text here when source_format is ihex or srec.",
      "type": "string",
      "maxLength": 8000000,
      "default": ""
    },
    {
      "key": "source_base64",
      "label": "Source Binary (Base64)",
      "help": "Base64-encoded binary payload when source_format is bin.",
      "type": "string",
      "maxLength": 12000000,
      "default": ""
    },
    {
      "key": "start_address",
      "label": "Start Address",
      "unit": "addr",
      "help": "Memory address where a raw BIN image starts.",
      "type": "integer",
      "min": 0,
      "max": 2147483647,
      "step": 1,
      "default": 0
    },
    {
      "key": "record_size",
      "label": "Record Size",
      "help": "Bytes per Intel HEX or SREC data record.",
      "type": "enum",
      "options": [
        "4",
        "8",
        "16",
        "32"
      ],
      "default": "16"
    },
    {
      "key": "preview_word_size",
      "label": "Preview Word Size",
      "help": "Groups the raw hex preview as bytes, 16-bit words, or 32-bit words.",
      "type": "enum",
      "options": [
        "1",
        "2",
        "4"
      ],
      "default": "1"
    },
    {
      "key": "padding_byte",
      "label": "Padding Byte",
      "unit": "0-255",
      "help": "Fill byte used when exporting sparse address maps to BIN with gap_mode = pad.",
      "type": "integer",
      "min": 0,
      "max": 255,
      "step": 1,
      "default": 255
    },
    {
      "key": "address_offset",
      "label": "Address Offset",
      "unit": "addr",
      "help": "Shift all addresses before serialising the target format.",
      "type": "integer",
      "min": -2147483647,
      "max": 2147483647,
      "step": 1,
      "default": 0
    },
    {
      "key": "gap_mode",
      "label": "BIN Gap Handling",
      "help": "pad keeps original addresses by filling gaps. compact concatenates segments and drops absolute gaps.",
      "type": "enum",
      "options": [
        "pad",
        "compact"
      ],
      "default": "pad"
    }
  ],
  "outputs": [
    {
      "key": "output_format",
      "label": "Output Format",
      "type": "string"
    },
    {
      "key": "checksum_valid",
      "label": "Checksums Valid",
      "type": "boolean"
    },
    {
      "key": "total_input_bytes",
      "label": "Input Bytes",
      "type": "integer",
      "unit": "bytes"
    },
    {
      "key": "output_size_bytes",
      "label": "Output Size",
      "type": "integer",
      "unit": "bytes"
    },
    {
      "key": "segment_count",
      "label": "Segments",
      "type": "integer"
    },
    {
      "key": "address_range",
      "label": "Address Range",
      "type": "string"
    },
    {
      "key": "segment_summary",
      "label": "Segment Map",
      "type": "string",
      "render": "lines"
    },
    {
      "key": "warnings",
      "label": "Warnings",
      "type": "string",
      "render": "lines"
    },
    {
      "key": "hex_preview",
      "label": "Hex Preview",
      "type": "string",
      "render": "code"
    },
    {
      "key": "target_text",
      "label": "Converted Text",
      "type": "string",
      "render": "code"
    },
    {
      "key": "target_base64",
      "label": "Converted Binary (Base64)",
      "type": "string"
    }
  ],
  "endpoint": "/v1/iot-arduino/bin-ihex-srec-converter"
}