{
  "$schema": "https://raw.githubusercontent.com/nobrega8/mbmap-library/main/schema/mbmap-2.schema.json",
  "mbmap": 2,
  "vendor": "Fuji Electric",
  "model": "FRENIC-Mini / Eco / Multi / MEGA",
  "models": [
    "FRENIC-Mini",
    "FRENIC-Eco",
    "FRENIC-Multi",
    "FRENIC-MEGA"
  ],
  "vendor_website": "fujielectric.com",
  "description": "General-purpose inverters with Modbus RTU on the RS-485 port",
  "revision": 1,
  "revised": "2026-10-18",
  "source": "Fuji Electric FRENIC RS-485 User's Manual, document 24A7-E-0082 (MEH448)",
  "sources": [
    {
      "title": "RS-485 User's Manual (24A7-E-0082), FRENIC-Mini/Eco/Multi/MEGA",
      "url": "https://americas.fujielectric.com/files/RS-485_Users_Manual_24A7-E-0082.pdf"
    }
  ],
  "notes": [
    "The address of a function code is its group number times 256 plus its number: F01 is 0x0001, S01 is 0x0701, M01 is 0x0801, y01 is 0x0E01 (groups: F 0, E 1, C 2, P 3, H 4, A 5, o 6, S 7, M 8, r 10, J 13, y 14, W 15, X 16, Z 17, b 18, d 19).",
    "This map lists the communications dedicated codes S and M that all four families support, the link-function codes y01 to y10, y98 and y99, and a few F codes. The W, X and Z keypad mirrors, the other F, E, C, P, H and A codes and the model-specific S and M codes (torque, PG, option, motor temperature) are in the manual.",
    "Reading 03 returns up to 50 words (100 on MEGA) and does not cross a function code group; unused codes read as 0. Function 06 writes one register and 16 several; coils are not supported by FRENIC-Mini.",
    "Data formats: integers use format 1, 0.1 units format 3, 0.01 units format 5 or 22, and the per-unit values (S01, S12, S13, M01, M06, M27, M32, M49, M50, M68) are +/-20000 = 100 % or the maximum frequency.",
    "To run the inverter over Modbus the link must be valid: set H30 (and y98, y99) so that the frequency and operation commands come from communications; y99 = 1, 2 or 3 does the same from the host without changing H30.",
    "The manual does not give the factory serial settings; the connection defaults here are the format's defaults. Parity y06 = 0 (no parity) uses 2 stop bits, 1 and 2 (even and odd) use 1 stop bit.",
    "Not every code exists on every family: the manual's support columns could not be read reliably, so check the notes in each description. The manual marks M02 to M04, M08, M22, M28 to M30, M34, M66 and M67 as missing on three of the four families (they are left out here), and M07, M33 and M63 to M65 as missing on one."
  ],
  "protocol": "rtu",
  "unit_id": 1,
  "data_bits": 8,
  "byte_order": "big",
  "address_base": 0,
  "max_read_registers": 50,
  "x_status": "official",
  "enums": {
    "alarm": {"0": "No alarm", "1": "Overcurrent during acceleration (0c1)", "2": "Overcurrent during deceleration (0c2)", "3": "Overcurrent at constant speed (0c3)", "5": "Ground fault (ef)", "6": "Overvoltage during acceleration (0u1)", "7": "Overvoltage during deceleration (0u2)", "8": "Overvoltage at constant speed or stopping (0u3)", "10": "Undervoltage (lu)", "11": "Input phase loss (lin)", "14": "Fuse blown (fus)", "16": "Charging circuit fault (pbf)", "17": "Heat sink overheat (0h1)", "18": "External alarm (0h2)", "19": "Internal air overheat (0h3)", "20": "Motor protection, PTC/NTC thermistor (0h4)", "22": "Braking resistor overheat (dbh)", "23": "Motor overload (0l1)", "24": "Motor 2 overload (0l2)", "25": "Inverter overload (0lu)", "27": "Over speed protection (0s)", "28": "PG disconnection (pg)", "29": "NTC disconnection error (nrb)", "31": "Memory error (er1)", "32": "Keypad communications error (er2)", "33": "CPU error (er3)", "34": "Option communications error (er4)", "35": "Option error (er5)", "36": "Run operation error (er6)", "37": "Tuning error (er7)", "38": "RS-485 communications error, port 1 (er8)", "44": "Motor 3 overload (0l3)", "45": "Motor 4 overload (0l4)", "46": "Output phase loss (0pl)", "47": "Excessive speed deviation (ere)", "51": "Data save error on insufficient voltage (erf)", "53": "RS-485 communications error, option/port 2 (erp)", "54": "Hardware error (erh)", "57": "EN circuit error (ecf)", "58": "PID feedback disconnection (cof)", "59": "DB transistor trouble (dba)", "100": "DC fan lock detected (fal)", "101": "Motor overload warning (0l)", "102": "Cooling fin overheat warning (0h)", "103": "Life warning (lif)", "104": "Command loss (ref)", "105": "PID warning output (pid)", "106": "Low torque detected (uTl)", "107": "Thermistor detected, PTC (pTc)", "108": "Machine life, accumulated operation hours (rTe)", "109": "Machine life, number of starts (cnT)", "254": "Simulated error (err)"},
    "model_type": {"1": "VG", "2": "G", "3": "P", "4": "E", "5": "C", "6": "S", "7": "DPS", "8": "DGS", "9": "H (1667 Hz)", "10": "H (3000 Hz)", "11": "F", "12": "RHC", "13": "RHR", "14": "Lift"},
    "generation": {"1": "11 series", "2": "7 series", "3": "1 series (RHR A, RHC C series)", "4": "Eco", "5": "PLUS series"},
    "destination": {"1": "Japan (standard)", "2": "Asia", "3": "China", "4": "Europe", "5": "USA", "6": "Taiwan"},
    "supply": {"1": "Single-phase 100 V", "2": "Single-phase 200 V", "3": "Three-phase 200 V", "4": "Three-phase 400 V"},
    "comm_error": {"0": "Alarm stop at once (er8 / erp)", "1": "Run for the timer, then alarm stop", "2": "Run for the timer, continue if communications recover, else alarm stop", "3": "Keep running"},
    "baud": {"0": "2400 bit/s", "1": "4800 bit/s", "2": "9600 bit/s", "3": "19200 bit/s", "4": "38400 bit/s"},
    "data_length": {"0": "8 bits", "1": "7 bits"},
    "parity": {"0": "None (2 stop bits)", "1": "Even (1 stop bit)", "2": "Odd (1 stop bit)", "3": "None (1 stop bit)"},
    "stop_bits": {"0": "2 bits", "1": "1 bit"},
    "protocol": {"0": "Modbus RTU", "1": "FRENIC Loader", "2": "Fuji general-purpose inverter protocol", "3": "N2 protocol"},
    "link_mode": {"0": "Frequency and operation per H30 and y98", "1": "Frequency and operation from communications", "2": "Frequency per H30 and y98, operation from communications", "3": "Frequency from communications, operation per H30 and y98"}
  },
  "registers": [
    {"name": "Model code", "group": "Device", "area": "holding", "address": 2071, "type": "uint16", "access": "R", "description": "Four hex digits: model (bits 12-15), generation (8-11), destination (4-7), input power supply (0-3); 0x5313 is a C series, 1 series, Japan, three-phase 200 V"},
    {"name": "Model", "group": "Device", "area": "holding", "address": 2071, "type": "uint16", "access": "R", "bit": 12, "bits": 4, "enum": "model_type", "description": "Bits 12 to 15 of the model code"},
    {"name": "Generation", "group": "Device", "area": "holding", "address": 2071, "type": "uint16", "access": "R", "bit": 8, "bits": 4, "enum": "generation", "description": "Bits 8 to 11 of the model code"},
    {"name": "Destination", "group": "Device", "area": "holding", "address": 2071, "type": "uint16", "access": "R", "bit": 4, "bits": 4, "enum": "destination", "description": "Bits 4 to 7 of the model code"},
    {"name": "Input power supply", "group": "Device", "area": "holding", "address": 2071, "type": "uint16", "access": "R", "bit": 0, "bits": 4, "enum": "supply", "description": "Bits 0 to 3 of the model code"},
    {"name": "Capacity", "group": "Device", "area": "holding", "address": 2072, "type": "uint16", "access": "R", "scale": 0.01, "unit": "kW", "description": "Inverter capacity, sent as kW x 100"},
    {"name": "ROM version", "group": "Device", "area": "holding", "address": 2073, "type": "uint16", "access": "R", "description": "Inverter ROM version", "role": "firmware"},
    {"name": "Rated current", "group": "Device", "area": "holding", "address": 2117, "type": "uint16", "access": "R", "scale": 0.01, "unit": "A", "description": "0.01 A up to 22 kW; models of 30 kW and more use 0.1 A"},
    {"name": "Frequency reference (p.u.)", "group": "Monitoring", "area": "holding", "address": 2049, "type": "int16", "access": "R", "description": "Final frequency command; 20000 = maximum frequency"},
    {"name": "Frequency reference", "group": "Monitoring", "area": "holding", "address": 2053, "type": "uint16", "access": "R", "scale": 0.01, "unit": "Hz", "description": "Final frequency command"},
    {"name": "Output frequency 1 (p.u.)", "group": "Monitoring", "area": "holding", "address": 2054, "type": "int16", "access": "R", "description": "Before slip compensation; 20000 = maximum frequency"},
    {"name": "Output frequency", "group": "Monitoring", "area": "holding", "address": 2057, "type": "uint16", "access": "R", "scale": 0.01, "unit": "Hz"},
    {"name": "Input power", "group": "Monitoring", "area": "holding", "address": 2058, "type": "uint16", "access": "R", "scale": 0.01, "unit": "%", "description": "Percent of the nominal applicable motor output"},
    {"name": "Output current", "group": "Monitoring", "area": "holding", "address": 2059, "type": "uint16", "access": "R", "scale": 0.01, "unit": "%", "description": "Effective value, percent of the inverter rated current"},
    {"name": "Output voltage", "group": "Monitoring", "area": "holding", "address": 2060, "type": "uint16", "access": "R", "scale": 0.1, "unit": "V", "description": "Effective value; whole volts"},
    {"name": "Operation command (final)", "group": "Monitoring", "area": "holding", "address": 2061, "type": "uint16", "access": "R", "description": "Same bit layout as S06"},
    {"name": "General-purpose output terminals", "group": "Monitoring", "area": "holding", "address": 2063, "type": "uint16", "access": "R"},
    {"name": "Cumulative operation time", "group": "Counters", "area": "holding", "address": 2068, "type": "uint16", "access": "R", "unit": "h"},
    {"name": "DC link voltage", "group": "Monitoring", "area": "holding", "address": 2069, "type": "uint16", "access": "R", "unit": "V"},
    {"name": "Communication error code", "group": "Alarms and faults", "area": "holding", "address": 2074, "type": "uint16", "access": "R", "description": "Error code of the last RS-485 transmission (table of codes in the manual)"},
    {"name": "Heat sink temperature", "group": "Monitoring", "area": "holding", "address": 2110, "type": "uint16", "access": "R", "unit": "°C"},
    {"name": "Main circuit capacitor life", "group": "Maintenance", "area": "holding", "address": 2094, "type": "uint16", "access": "R", "scale": 0.1, "unit": "%", "description": "100 % when new"},
    {"name": "PC board capacitor life", "group": "Maintenance", "area": "holding", "address": 2095, "type": "uint16", "access": "R", "unit": "h", "description": "Cumulative operating time; stays at 65535 on Multi and MEGA, use W67"},
    {"name": "Heat sink life", "group": "Maintenance", "area": "holding", "address": 2096, "type": "uint16", "access": "R", "unit": "h", "description": "Cumulative operating time; stays at 65535 on Multi and MEGA, use W68"},
    {"name": "Terminal [12] input (p.u.)", "group": "Inputs and outputs", "area": "holding", "address": 2097, "type": "int16", "access": "R", "description": "-20000 = -10 V, 20000 = 10 V"},
    {"name": "Terminal [C1] input (p.u.)", "group": "Inputs and outputs", "area": "holding", "address": 2098, "type": "int16", "access": "R", "description": "0 = 0 mA, 20000 = 20 mA"},
    {"name": "PID final command", "group": "Monitoring", "area": "holding", "address": 2116, "type": "int16", "access": "R", "description": "20000 = 100 %"},
    {"name": "Input terminal information", "group": "Inputs and outputs", "area": "holding", "address": 2119, "type": "uint16", "access": "R", "description": "Same bit layout as S06: commands from the terminal block and communications"},
    {"name": "Running forward", "group": "Status", "area": "holding", "address": 2062, "type": "bool", "access": "R", "bit": 0},
    {"name": "Running reverse", "group": "Status", "area": "holding", "address": 2062, "type": "bool", "access": "R", "bit": 1},
    {"name": "DC braking active", "group": "Status", "area": "holding", "address": 2062, "type": "bool", "access": "R", "bit": 2, "description": "or pre-exciting"},
    {"name": "Inverter shut down", "group": "Status", "area": "holding", "address": 2062, "type": "bool", "access": "R", "bit": 3},
    {"name": "DC link voltage established", "group": "Status", "area": "holding", "address": 2062, "type": "bool", "access": "R", "bit": 5, "description": "0 = undervoltage"},
    {"name": "Current limiting", "group": "Status", "area": "holding", "address": 2062, "type": "bool", "access": "R", "bit": 8},
    {"name": "Accelerating", "group": "Status", "area": "holding", "address": 2062, "type": "bool", "access": "R", "bit": 9},
    {"name": "Decelerating", "group": "Status", "area": "holding", "address": 2062, "type": "bool", "access": "R", "bit": 10},
    {"name": "Alarm relay active", "group": "Status", "area": "holding", "address": 2062, "type": "bool", "access": "R", "bit": 11, "description": "Any fault"},
    {"name": "Communications link effective", "group": "Status", "area": "holding", "address": 2062, "type": "bool", "access": "R", "bit": 12},
    {"name": "Writing function code data", "group": "Status", "area": "holding", "address": 2062, "type": "bool", "access": "R", "bit": 15, "description": "Busy"},
    {"name": "Braking", "group": "Status", "area": "holding", "address": 2062, "type": "bool", "access": "R", "bit": 4, "description": "Fixed to 0 on FRENIC-Mini"},
    {"name": "Torque limiting", "group": "Status", "area": "holding", "address": 2062, "type": "bool", "access": "R", "bit": 6, "description": "Not on Mini or Eco"},
    {"name": "Voltage limiting", "group": "Status", "area": "holding", "address": 2062, "type": "bool", "access": "R", "bit": 7},
    {"name": "Latest alarm", "group": "Alarms and faults", "area": "holding", "address": 2064, "type": "uint16", "access": "R", "enum": "alarm"},
    {"name": "Last alarm", "group": "Alarms and faults", "area": "holding", "address": 2065, "type": "uint16", "access": "R", "enum": "alarm"},
    {"name": "Second last alarm", "group": "Alarms and faults", "area": "holding", "address": 2066, "type": "uint16", "access": "R", "enum": "alarm"},
    {"name": "Third last alarm", "group": "Alarms and faults", "area": "holding", "address": 2067, "type": "uint16", "access": "R", "enum": "alarm"},
    {"name": "Frequency command (p.u.)", "group": "Control", "area": "holding", "address": 1793, "type": "int16", "access": "RW", "write_min": -32768, "write_max": 32767, "description": "20000 = maximum frequency; takes precedence over S05 when not 0"},
    {"name": "Frequency command", "group": "Control", "area": "holding", "address": 1797, "type": "uint16", "access": "RW", "scale": 0.01, "unit": "Hz", "description": "Used when S01 is 0"},
    {"name": "Operation command", "group": "Control", "area": "holding", "address": 1798, "type": "uint16", "access": "RW", "description": "Bit 0 FWD, bit 1 REV, bits 2 to 10 X1 to X9, bit 13 XF, bit 14 XR, bit 15 alarm reset (set then clear)"},
    {"name": "Run forward command", "group": "Control", "area": "holding", "address": 1798, "type": "bool", "access": "RW", "bit": 0},
    {"name": "Run reverse command", "group": "Control", "area": "holding", "address": 1798, "type": "bool", "access": "RW", "bit": 1},
    {"name": "Input X1 command", "group": "Control", "area": "holding", "address": 1798, "type": "bool", "access": "RW", "bit": 2, "description": "Acts as the general-purpose terminal function set in E01 to E09; X4 and X5 are not on FRENIC-Mini, X6 to X9 only on MEGA"},
    {"name": "Input X2 command", "group": "Control", "area": "holding", "address": 1798, "type": "bool", "access": "RW", "bit": 3, "description": "Acts as the general-purpose terminal function set in E01 to E09; X4 and X5 are not on FRENIC-Mini, X6 to X9 only on MEGA"},
    {"name": "Input X3 command", "group": "Control", "area": "holding", "address": 1798, "type": "bool", "access": "RW", "bit": 4, "description": "Acts as the general-purpose terminal function set in E01 to E09; X4 and X5 are not on FRENIC-Mini, X6 to X9 only on MEGA"},
    {"name": "Input X4 command", "group": "Control", "area": "holding", "address": 1798, "type": "bool", "access": "RW", "bit": 5, "description": "Acts as the general-purpose terminal function set in E01 to E09; X4 and X5 are not on FRENIC-Mini, X6 to X9 only on MEGA"},
    {"name": "Input X5 command", "group": "Control", "area": "holding", "address": 1798, "type": "bool", "access": "RW", "bit": 6, "description": "Acts as the general-purpose terminal function set in E01 to E09; X4 and X5 are not on FRENIC-Mini, X6 to X9 only on MEGA"},
    {"name": "Input X6 command", "group": "Control", "area": "holding", "address": 1798, "type": "bool", "access": "RW", "bit": 7, "description": "Acts as the general-purpose terminal function set in E01 to E09; X4 and X5 are not on FRENIC-Mini, X6 to X9 only on MEGA"},
    {"name": "Input X7 command", "group": "Control", "area": "holding", "address": 1798, "type": "bool", "access": "RW", "bit": 8, "description": "Acts as the general-purpose terminal function set in E01 to E09; X4 and X5 are not on FRENIC-Mini, X6 to X9 only on MEGA"},
    {"name": "Input X8 command", "group": "Control", "area": "holding", "address": 1798, "type": "bool", "access": "RW", "bit": 9, "description": "Acts as the general-purpose terminal function set in E01 to E09; X4 and X5 are not on FRENIC-Mini, X6 to X9 only on MEGA"},
    {"name": "Input X9 command", "group": "Control", "area": "holding", "address": 1798, "type": "bool", "access": "RW", "bit": 10, "description": "Acts as the general-purpose terminal function set in E01 to E09; X4 and X5 are not on FRENIC-Mini, X6 to X9 only on MEGA"},
    {"name": "Terminal FWD command", "group": "Control", "area": "holding", "address": 1798, "type": "bool", "access": "RW", "bit": 13, "description": "XF; function set in E98"},
    {"name": "Terminal REV command", "group": "Control", "area": "holding", "address": 1798, "type": "bool", "access": "RW", "bit": 14, "description": "XR; function set in E99"},
    {"name": "Alarm reset (S06)", "group": "Control", "area": "holding", "address": 1798, "type": "bool", "access": "RW", "bit": 15, "description": "Set to 1 and then back to 0; the run command must be cleared first"},
    {"name": "Acceleration time (F07)", "group": "Control", "area": "holding", "address": 1800, "type": "uint16", "access": "RW", "scale": 0.1, "unit": "s", "write_min": 0, "write_max": 6000, "description": "0.0 to 3600.0 s on Mini, Eco and Multi, 0.0 to 6000.0 s on MEGA; the digits below 0.1 s are dropped"},
    {"name": "Deceleration time (F08)", "group": "Control", "area": "holding", "address": 1801, "type": "uint16", "access": "RW", "scale": 0.1, "unit": "s", "write_min": 0, "write_max": 6000, "description": "Same range as S08"},
    {"name": "PID command", "group": "Control", "area": "holding", "address": 1805, "type": "int16", "access": "RW", "write_min": -32768, "write_max": 32767, "description": "+/-20000 = +/-100 %"},
    {"name": "Alarm reset command", "group": "Control", "area": "holding", "address": 1806, "type": "uint16", "access": "RW", "write_min": 0, "write_max": 1, "description": "Write 1 to reset; reads 0; always valid whatever H30, y98 and y99"},
    {"name": "Data protection (F00)", "group": "Parameters", "area": "holding", "address": 0, "type": "uint16", "access": "RW"},
    {"name": "Frequency command 1 (F01)", "group": "Parameters", "area": "holding", "address": 1, "type": "uint16", "access": "RW", "description": "Source of the frequency command"},
    {"name": "Operation method (F02)", "group": "Parameters", "area": "holding", "address": 2, "type": "uint16", "access": "RW"},
    {"name": "Maximum frequency 1 (F03)", "group": "Parameters", "area": "holding", "address": 3, "type": "uint16", "access": "RW", "scale": 0.1, "unit": "Hz"},
    {"name": "Base frequency 1 (F04)", "group": "Parameters", "area": "holding", "address": 4, "type": "uint16", "access": "RW", "scale": 0.1, "unit": "Hz"},
    {"name": "Rated voltage at base frequency 1 (F05)", "group": "Parameters", "area": "holding", "address": 5, "type": "uint16", "access": "RW", "unit": "V"},
    {"name": "Station address (y01)", "group": "Serial interface", "area": "holding", "address": 3585, "type": "uint16", "access": "RW", "write_min": 1, "write_max": 247, "description": "1 to 247 for Modbus RTU"},
    {"name": "Operation on communications error (y02)", "group": "Serial interface", "area": "holding", "address": 3586, "type": "uint16", "access": "RW", "enum": "comm_error"},
    {"name": "Error processing timer (y03)", "group": "Serial interface", "area": "holding", "address": 3587, "type": "uint16", "access": "RW", "scale": 0.1, "unit": "s", "write_min": 0, "write_max": 600},
    {"name": "Baud rate (y04)", "group": "Serial interface", "area": "holding", "address": 3588, "type": "uint16", "access": "RW", "enum": "baud", "description": "38400 bit/s is not on FRENIC-Mini"},
    {"name": "Data length (y05)", "group": "Serial interface", "area": "holding", "address": 3589, "type": "uint16", "access": "RW", "enum": "data_length", "description": "Fixed to 8 bits for Modbus RTU"},
    {"name": "Parity (y06)", "group": "Serial interface", "area": "holding", "address": 3590, "type": "uint16", "access": "RW", "enum": "parity", "description": "Sets the stop bits too; value 3 is not on Mini and Eco"},
    {"name": "Stop bits (y07)", "group": "Serial interface", "area": "holding", "address": 3591, "type": "uint16", "access": "RW", "enum": "stop_bits", "description": "Set automatically from the parity for Modbus RTU"},
    {"name": "No-response error detection time (y08)", "group": "Serial interface", "area": "holding", "address": 3592, "type": "uint16", "access": "RW", "unit": "s", "write_min": 0, "write_max": 60, "description": "0 disables the detection"},
    {"name": "Response interval (y09)", "group": "Serial interface", "area": "holding", "address": 3593, "type": "uint16", "access": "RW", "scale": 0.01, "unit": "s"},
    {"name": "Protocol selection (y10)", "group": "Serial interface", "area": "holding", "address": 3594, "type": "uint16", "access": "RW", "enum": "protocol"},
    {"name": "Bus link function mode (y98)", "group": "Serial interface", "area": "holding", "address": 3682, "type": "uint16", "access": "RW", "description": "Not on FRENIC-Mini"},
    {"name": "Loader link function mode (y99)", "group": "Serial interface", "area": "holding", "address": 3683, "type": "uint16", "access": "RW", "enum": "link_mode", "description": "Not saved: returns to 0 at power-off; write it by communications"}
  ]
}
