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.
{ "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" }