nobrega8/mbmap-library

Open JSON format and community-driven library of Modbus device register maps, with validation and firmware compatibility.

Python

10

31 commits

updated Oct 15, 2026

See the code

See what people are saying

SourceMessageScoreDate

MBMap: an open format for sharing Modbus device register maps (r/opensource)

I've been building MBMap, an open format for describing Modbus devices and their registers. The idea is simple: device register maps should be portable data, not information that has to be manually re-created in every Modbus client. A .mbmap file describes registers, data types, byte order,…

3

Oct 13, 2026

README

mbmap-library

An open library of Modbus register maps in the .mbmap format.

Each file describes one device model: the manufacturer, how to connect to it and what every register means. Load a map into a compatible tool and you get the device's variables, already named, scaled and typed, without typing addresses from a PDF manual.

Layout

SPEC.md                         the .mbmap format specification
maps/<vendor>/<model>.mbmap     the shared maps
examples/                       fictional maps that show the format
index.json                      list of the maps, for apps that browse the library
tools/validate.py               validator (also runs in CI)
tools/build_index.py            rebuilds index.json
tests/                          sample files and the diagnostics each must produce,
                                for checking any .mbmap reader against the spec

Folder and file names are lowercase slugs, e.g. maps/acme-meters/pm-200.mbmap.

Using the maps

.mbmap is plain text based on CSV, so you can open a map in any text editor or spreadsheet. Tools that read the format:

  • Modbench: a lightweight Modbus TCP/RTU client for Windows and Linux. It can browse and download the maps in this repository directly.

Building a tool that reads .mbmap? Open a pull request to add it here.

Contributing

New maps and fixes are welcome. Read CONTRIBUTING.md, then check your file:

python tools/validate.py maps/your-vendor/your-model.mbmap

License

The maps, the spec and the tools are dedicated to the public domain under CC0 1.0. You can use them for anything, including commercial products, without asking or giving credit.

The maps are provided as is. Always check a map against the manufacturer's documentation before you write to a live device.

cc0
device-library
iiot
industrial-automation
mbmap
modbus
modbus-map
modbus-rtu
modbus-tcp
open-data
plc
register-map
scada

nobrega8/mbmap-library

Open JSON format and community-driven library of Modbus device register maps, with validation and firmware compatibility.

Python

10

31 commits

updated Oct 15, 2026

See the code

See what people are saying

SourceMessageScoreDate

MBMap: an open format for sharing Modbus device register maps (r/opensource)

I've been building MBMap, an open format for describing Modbus devices and their registers. The idea is simple: device register maps should be portable data, not information that has to be manually re-created in every Modbus client. A .mbmap file describes registers, data types, byte order,…

3

Oct 13, 2026

README

mbmap-library

An open library of Modbus register maps in the .mbmap format.

Each file describes one device model: the manufacturer, how to connect to it and what every register means. Load a map into a compatible tool and you get the device's variables, already named, scaled and typed, without typing addresses from a PDF manual.

Layout

SPEC.md                         the .mbmap format specification
maps/<vendor>/<model>.mbmap     the shared maps
examples/                       fictional maps that show the format
index.json                      list of the maps, for apps that browse the library
tools/validate.py               validator (also runs in CI)
tools/build_index.py            rebuilds index.json
tests/                          sample files and the diagnostics each must produce,
                                for checking any .mbmap reader against the spec

Folder and file names are lowercase slugs, e.g. maps/acme-meters/pm-200.mbmap.

Using the maps

.mbmap is plain text based on CSV, so you can open a map in any text editor or spreadsheet. Tools that read the format:

  • Modbench: a lightweight Modbus TCP/RTU client for Windows and Linux. It can browse and download the maps in this repository directly.

Building a tool that reads .mbmap? Open a pull request to add it here.

Contributing

New maps and fixes are welcome. Read CONTRIBUTING.md, then check your file:

python tools/validate.py maps/your-vendor/your-model.mbmap

License

The maps, the spec and the tools are dedicated to the public domain under CC0 1.0. You can use them for anything, including commercial products, without asking or giving credit.

The maps are provided as is. Always check a map against the manufacturer's documentation before you write to a live device.

cc0
device-library
iiot
industrial-automation
mbmap
modbus
modbus-map
modbus-rtu
modbus-tcp
open-data
plc
register-map
scada