MBMap Registry

Compatibility

Tools that read .mbmap files, and which parts of the format (SPEC.md) each one supports.

Tools

ToolWhat it isWhat it does with a map
ModbenchModbus TCP/UDP/RTU/ASCII client for Windows, Linux and macOS, with a command line (modbench-cli) and an MCP serverOpens a map and reads (and writes) the device by register name; browses and downloads this library; runs a simulated device shaped after a map. From the command line: validate and convert maps, and map reads every register of a map from a device; the MCP tools read_map and validate_map do the same for an AI assistant
ScanBus-BRFree Modbus RTU/TCP master, slave simulator and RTU sniffer for Windows and Linux (from version 5.2.0)Searches this library and shows a device's registers (name, function, address); imports the register names as aliases and fills in the function, start address, type and byte order of the first register, plus the map's unit ID, baud rate and parity. Its main table reads contiguous blocks (a start address and a count), not single registers by name; clicking a register opens that register in a separate window. Shows each map's status, and saves a map as CSV (the registers only), TXT or RTF (with descriptions and notes)
MTUIKeyboard-driven Modbus TCP/RTU client for the terminal, for Windows, Linux and macOS, with a web demo (from version 1.6.0)Imports a pasted map: each register is pinned and labelled with its name and unit, and gets a rule that decodes its type, byte and word order, scale, offset and translation table. Registers it cannot decode (strings, multi-bit fields) keep only their label

Support by feature

Legend: Yes supported · Kept read and written back, not shown · — not supported or not documented.

Feature (SPEC.md section) Modbench ScanBus-BR MTUI
Format version 2, JSON (§2, §3)YesYes: maps from this libraryYes: pasted as JSON
Format version 1, CSV (§10, deprecated)Yes: opens it with a warning and converts it to version 2——
All types: bool, 16/32/64-bit integers, float32, float64, string (§6)YesYes: the type of the first register or of a clicked register is usedYes: labelled only
byte_order and word_order, per file and per register (§6)Yes, and the user can override the byte order of a mapYes: the byte order of the first register or of a clicked register is usedYes
address_base 0 and 1 (§5)Yes—Yes
Connection defaults: protocol, unit_id, port, baudrate, parity, databits, stopbits (§3)Yes: filled in when the map is openedunit_id, baudrate and parity only: filled in if not already connected, and can be edited—
max_read_registers, max_read_bits (§3)Yes: longer reads are split——
Translation tables, named (enums) and inline (§4.1)Yes: labels shown, and offered when writing—Yes: labels shown
Sentinel values (§4.2)Yes: shown as their label, left out of charts and alarms——
Bit fields, bit and bits (§4.3)Yes: read, and written by changing only the field—bit only: the bits of one register share one rule; bits labelled only
Scale factor registers, scale_factor (§4.4)Yes: the exponent register is read with the value——
Write limits, write_min and write_max (§4.5)Yes: values outside them are refused before writing——
Reference values (§4.6)Yes: match, mismatch and failed checks are shown——
Identity registers, role, and models (§4.7, §9)Yes: the device is checked against the map's models and firmware——
Identity from the device, identify with FC17 or FC43 (§4.8, §9)Yes: read, validated, kept when the map is saved, and compared with the map's models and firmware by Check device (app and command line). FC43 is complete. FC17 answers whose run-indicator byte is not 0x00 or 0xFF are rejected by the Modbus library, so the check is unknown for those devices. The map builder has no fields for it yet——
Separate read requests, read_alone and read_group (§4.9)Yes: validated, and honoured when reads are planned (polling and the Node-RED export). The map builder has no fields for them yet——
Firmware ranges, per map and per register (§3.2, §9)Yes: once the firmware is known, only its registers are read——
revision and revised (§3.1)Yes: shown with the map——
source, sources, notes, comment (§3.3, §2)KeptNotes and descriptions: included when a map is saved as TXT or RTF—
Validation codes (§7)Yes: all of them, with the same codes and JSON Pointers; checked against tests/——
x_status (this library, not the format)Yes: shown as an icon in the library and the map pickerYes: shown as an indicator (official, unofficial, verified)—

Adding a tool

Building a tool that reads .mbmap? Follow SPEC.md and check it against the sample files in tests/: each one lists the diagnostics a reader must report. Then open a pull request that adds your tool to this page, with what it supports. Partial support is fine: say which parts it reads and which it ignores.

From COMPATIBILITY.md in the library. To add a tool, open a pull request that changes that file.