{ "$schema": "https://raw.githubusercontent.com/nobrega8/mbmap-library/main/schema/mbmap-2.schema.json", "mbmap": 2, "vendor": "Samrello", "model": "IDTS-302/96-RS", "vendor_website": "samrello.com.br", "description": "Two-channel temperature indicator with RS485 Modbus RTU", "revision": 1, "revised": "2026-11-11", "source": "Samrello, Mapa de registros RS485, IDTS-302/96, firmware V00", "sources": [ { "title": "Mapa de registros RS485 - IDTS-302/96", "version": "firmware V00", "note": "Register map supplied with the map request" } ], "notes": [ "Addresses are the hexadecimal ones from the manual (0x9C40 = 40000); the manual's read example sends 0x9C40 as the start address, so they are used as they are (address_base 0).", "Function 0x03 reads. The manual lists each value as 2 bytes (one register) and marks the setpoints as read/write; it gives no scale or unit for the temperatures, so values are the raw device counts. Check the scale against the display.", "Serial format: 8 data bits, no parity, 1 stop bit. The manual does not give a baud rate; the device address is 1 to 127.", "Status bits of register 40013: bit 0 SSR, bit 1 S1, bit 2 S2, each 1 when the output is on." ], "protocol": "rtu", "unit_id": 1, "data_bits": 8, "parity": "N", "stop_bits": 1, "byte_order": "big", "word_order": "big", "address_base": 0, "x_status": "official", "registers": [ {"name": "Temperature 1", "group": "Measurements", "area": "holding", "address": 40000, "type": "int16", "access": "R", "description": "Process value, channel 1"}, {"name": "Temperature 2", "group": "Measurements", "area": "holding", "address": 40001, "type": "int16", "access": "R", "description": "Process value, channel 2"}, {"name": "Maximum temperature 1", "group": "Measurements", "area": "holding", "address": 40024, "type": "int16", "access": "R"}, {"name": "Maximum temperature 2", "group": "Measurements", "area": "holding", "address": 40025, "type": "int16", "access": "R"}, {"name": "Minimum temperature 1", "group": "Measurements", "area": "holding", "address": 40034, "type": "int16", "access": "R"}, {"name": "Minimum temperature 2", "group": "Measurements", "area": "holding", "address": 40035, "type": "int16", "access": "R"}, {"name": "Average temperature 1", "group": "Measurements", "area": "holding", "address": 40044, "type": "int16", "access": "R"}, {"name": "Average temperature 2", "group": "Measurements", "area": "holding", "address": 40045, "type": "int16", "access": "R"}, {"name": "Setpoint S1", "group": "Setpoints", "area": "holding", "address": 40010, "type": "int16", "access": "RW"}, {"name": "Setpoint S2", "group": "Setpoints", "area": "holding", "address": 40011, "type": "int16", "access": "RW"}, {"name": "Setpoint PV", "group": "Setpoints", "area": "holding", "address": 40012, "type": "int16", "access": "RW"}, {"name": "SSR output on", "group": "Status", "area": "holding", "address": 40013, "type": "bool", "access": "R", "bit": 0}, {"name": "S1 output on", "group": "Status", "area": "holding", "address": 40013, "type": "bool", "access": "R", "bit": 1}, {"name": "S2 output on", "group": "Status", "area": "holding", "address": 40013, "type": "bool", "access": "R", "bit": 2}, {"name": "Offset channel 1", "group": "Configuration", "area": "holding", "address": 40014, "type": "int16", "access": "R"}, {"name": "Offset channel 2", "group": "Configuration", "area": "holding", "address": 40015, "type": "int16", "access": "R"} ] }