Growatt MIN / MIC / MOD inverters Modbus register map
Also covers TL-X, TL-XH, MOD TL3-XH
Single- and three-phase string inverters (TL-X, TL-XH, MOD TL3-XH) that use the 3000-range input registers of the Growatt protocol
- Official
- 71 registers
- Modbus RTU
- Revision 1 · 2026-11-10
- Identity: firmware, serial number
Official: Written from the manufacturer's documentation, but not tested on a device yet. Check the map against the manufacturer's documentation before you write to a live device. Tested it? Report a test.
Communication
- Protocol
- Modbus RTU
- Unit ID
- 1
- Serial
- 9600 8N1 · 9600 baud, 8 data bits, none parity, 1 stop bit
- Byte / word order
- ABCD · bytes big-endian, words high first
- Addresses
- 0-based
- Max read
- 125 registers per request
Connection values are defaults: the device may be configured differently.
Map
- Registers
- 8 holding registers, 63 input registers
- Groups
- 10
- Revision
- 1 · 2026-11-10
- Added
- ()
- File
- maps/growatt/min-mic-mod.mbmap.json · 13 KB · history
- SHA-256
- f12e2b26321523c890b677790686b98e56220d90f680717a965e446b5a541464
- Manufacturer
- growatt.com
Device identity
What a tool can read to check that this map fits the connected device (SPEC.md section 4.7). Registers with a role are read like any other register.
| Role | Register | Address | Type | Values |
|---|---|---|---|---|
| Firmware | Firmware version | holding 9 | string[3] | |
| Serial number | Serial number | holding 3001 | string[15] |
Sources and notes
- Growatt Inverter Modbus RTU Protocol · version V1.24 input registers 3000-3124 and holding registers 3000-3016 (section "Use for TL-X and TL-XH"), plus a few holding registers of the first group; linked in issue #186
Source: Growatt Inverter Modbus RTU Protocol V1.24
- Difference from the TL3-X / MAX / MIX / SPH map: that map reads the first register group (input 0-124). This one reads the 3000-3124 group, which TL-X / TL-XH (MIN) and MOD TL3-XH inverters use for live data; the same quantities sit at different addresses (for example output power at 3023-3024 instead of 35-36) and the status register is split into a mode byte and a state byte.
- The document lists MIN as TL-X / TL-XH / TL-XH US. It does not name MIC or MOD models separately, except MOD TL3-XH, which it gives the same 3000-3124 input range; MIC is assumed to belong to the same family.
- Only the 3000-3124 input group is mapped. The document also describes 3125-3374 (storage and battery data of the TL-XH variants); those registers are not mapped here.
- 32-bit values are sent high word first. Registers the document leaves without a unit or marks reserved (PV4 values, reactive power, the DCI and GFCI currents) are left out.
- Meter-related registers (3041-3046, 3067-3078) only carry data when the inverter has a meter or CT connected.
- Holding registers 0-124 follow the first group; only a few common ones are repeated here. The 03 range for these inverters is 0-124 and 3000-3124.
- Default serial settings follow the first-group map: 9600 baud, 8N1, address range 1-254. The document for this group does not state them again.
- Written from the manufacturer's document; not tested on a device.
| Area | Address | Name | Type | Access | Unit | Scale | Description |
|---|---|---|---|---|---|---|---|
| IR | 3000 | uint16 bits 0–7 | R | Low byte: machine state shown on the web page | |||
| IR | 3000 | uint16 bits 8–15 | R | High byte: detailed operating mode | |||
| IR | 3001 | uint32 ABCD | R | W | ×0.1 | ||
| IR | 3003 | uint16 | R | V | ×0.1 | ||
| IR | 3004 | uint16 | R | A | ×0.1 | ||
| IR | 3005 | uint32 ABCD | R | W | ×0.1 | ||
| IR | 3007 | uint16 | R | V | ×0.1 | ||
| IR | 3008 | uint16 | R | A | ×0.1 | ||
| IR | 3009 | uint32 ABCD | R | W | ×0.1 | ||
| IR | 3011 | uint16 | R | V | ×0.1 | ||
| IR | 3012 | uint16 | R | A | ×0.1 | ||
| IR | 3013 | uint32 ABCD | R | W | ×0.1 | ||
| IR | 3019 | uint32 ABCD | R | W | ×0.1 | ||
| IR | 3023 | uint32 ABCD | R | W | ×0.1 | ||
| IR | 3025 | uint16 | R | Hz | ×0.01 | ||
| IR | 3026 | uint16 | R | V | ×0.1 | Phase voltage (the only phase on single-phase models) | |
| IR | 3027 | uint16 | R | A | ×0.1 | ||
| IR | 3028 | uint32 ABCD | R | VA | ×0.1 | ||
| IR | 3030 | uint16 | R | V | ×0.1 | Phase voltage | |
| IR | 3031 | uint16 | R | A | ×0.1 | ||
| IR | 3032 | uint32 ABCD | R | VA | ×0.1 | ||
| IR | 3034 | uint16 | R | V | ×0.1 | Phase voltage | |
| IR | 3035 | uint16 | R | A | ×0.1 | ||
| IR | 3036 | uint32 ABCD | R | VA | ×0.1 | ||
| IR | 3038 | uint16 | R | V | ×0.1 | ||
| IR | 3039 | uint16 | R | V | ×0.1 | ||
| IR | 3040 | uint16 | R | V | ×0.1 | ||
| IR | 3041 | uint32 ABCD | R | W | ×0.1 | Needs a meter or CT | |
| IR | 3043 | uint32 ABCD | R | W | ×0.1 | Needs a meter or CT | |
| IR | 3045 | uint32 ABCD | R | W | ×0.1 | Needs a meter or CT | |
| IR | 3047 | uint32 ABCD | R | s | ×0.5 | ||
| IR | 3049 | uint32 ABCD | R | kWh | ×0.1 | ||
| IR | 3051 | uint32 ABCD | R | kWh | ×0.1 | ||
| IR | 3053 | uint32 ABCD | R | kWh | ×0.1 | ||
| IR | 3055 | uint32 ABCD | R | kWh | ×0.1 | ||
| IR | 3057 | uint32 ABCD | R | kWh | ×0.1 | ||
| IR | 3059 | uint32 ABCD | R | kWh | ×0.1 | ||
| IR | 3061 | uint32 ABCD | R | kWh | ×0.1 | ||
| IR | 3063 | uint32 ABCD | R | kWh | ×0.1 | ||
| IR | 3065 | uint32 ABCD | R | kWh | ×0.1 | ||
| IR | 3067 | uint32 ABCD | R | kWh | ×0.1 | Needs a meter or CT | |
| IR | 3069 | uint32 ABCD | R | kWh | ×0.1 | Needs a meter or CT | |
| IR | 3071 | uint32 ABCD | R | kWh | ×0.1 | Needs a meter or CT | |
| IR | 3073 | uint32 ABCD | R | kWh | ×0.1 | Needs a meter or CT | |
| IR | 3075 | uint32 ABCD | R | kWh | ×0.1 | Needs a meter or CT | |
| IR | 3077 | uint32 ABCD | R | kWh | ×0.1 | Needs a meter or CT | |
| IR | 3083 | uint32 ABCD | R | kWh | ×0.1 | ||
| IR | 3086 | uint16 | R | ||||
| IR | 3087 | uint16 | R | kΩ | |||
| IR | 3093 | uint16 | R | °C | ×0.1 | ||
| IR | 3094 | uint16 | R | °C | ×0.1 | ||
| IR | 3095 | uint16 | R | °C | ×0.1 | ||
| IR | 3097 | uint16 | R | °C | ×0.1 | ||
| IR | 3098 | uint16 | R | V | ×0.1 | ||
| IR | 3099 | uint16 | R | V | ×0.1 | ||
| IR | 3100 | uint16 | R | 0-20000, raw value of the PF command | |||
| IR | 3101 | uint16 | R | % | |||
| IR | 3102 | uint32 ABCD | R | W | ×0.1 | ||
| IR | 3105 | uint16 | R | ||||
| IR | 3106 | uint16 | R | ||||
| IR | 3107 | uint16 | R | ||||
| IR | 3108 | uint16 | R | ||||
| IR | 3115 | uint16 | R | s | |||
| HR | 0 | uint16 | RW | ||||
| HR | 3 | uint16 | RW | % | 0-100, or 255 for no limit | ||
| HR | 9 | string[3] | R | ||||
| HR | 12 | string[3] | R | ||||
| HR | 30 | uint16 | RW | ||||
| HR | 3001 | string[15] | R | 30 ASCII characters; older units keep it in registers 23-27 instead | |||
| HR | 3000 | uint16 | RW | % | ×0.1 | Power rate applied when the export limit function fails | |
| HR | 3016 | uint16 | RW |
No registers match
Try part of the name, an address (decimal or 0x hex) or clear the filters.
Help improve this map
- I tested it on a deviceReport whether it worked, even if you did not write the map.
- Suggest a correctionEdit the file on GitHub; it opens a pull request.
- Report a problemA wrong address, type, scale or byte order.
- Read the formatWhat each key of the file means (SPEC.md).