Altus Optidrive E3 Modbus register map
Also covers ODE-3
Variable speed drive: control word, speed reference, ramp time, status and trip code, output frequency, current, torque and power, inputs, DC bus and temperatures
- Official
- 51 registers
- Modbus RTU
- Revision 1 · 2026-11-10
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
- 115200 8N1 · 115200 baud, 8 data bits, none parity, 1 stop bit
- Byte / word order
- ABCD · bytes big-endian, words high first
- Addresses
- 1-based · wire address = address − 1
Connection values are defaults: the device may be configured differently.
Map
- Registers
- 51 holding registers
- Groups
- 3
- Revision
- 1 · 2026-11-10
- Added
- ()
- File
- maps/altus/optidrive-e3.mbmap.json · 10 KB · history
- SHA-256
- 92bbfed5ff4814f76d00567c2ccb1585c9083ec744978cdfb51ac98c4cd07bbf
- Manufacturer
- altus.com.br
Sources and notes
- Optidrive E3 Manual do usuário (ODE-3 Guia do usuário) · version Revisão 1.04, 2021 linked in issue #118; chapter 8 (Comunicações Modbus RTU), section 8.4 register map
Source: Optidrive E3 Manual do usuário (ODE-3 Guia do usuário), Revisão 1.04
- Modbus RTU on the RJ45 connector (pin 7 RS485-, pin 8 RS485+; do not plug into Ethernet). FC03, FC06 and FC16 (registers 1 to 4 only). Registers are numbered from 1, as in the guide: masters that start at 0 must subtract 1.
- Factory settings: 115200 bit/s, 8 data bits, no parity, 1 stop bit. The address is the first index of parameter P-36 (0 to 63, default 1); the baud rate is the second index (9.6 to 115.2 kbit/s). P-36 also holds the communication-loss timeout.
- Registers 1 to 4 control the drive only when P-12 is 3 or 4 (Modbus control); register 4 needs P-12 = 4. Registers 6 to 24 and 2001 to 2016 are read-only. Parameter P-04 to P-60 is register 128 + the parameter number (P-15 is register 143); none is listed here.
- The text of register 6 says the low byte is the fault code and the high byte the drive state, but the status-word table (section 8.4.1) puts the fault code in the high byte, as the Optidrive ECO does. The map follows the status-word table: bits 0, 1, 2 and 6 for running, tripped, standby and ready, and the fault code in bits 8 to 15.
- Written from the user guide (published for the ODE-3 drives, called Optidrive E3 on its cover); this map has not been tested on a device.
| Area | Address | Name | Type | Access | Unit | Scale | Description |
|---|---|---|---|---|---|---|---|
| HR | 1 | bool bit 0 | RW | 1 = run, 0 = stop | |||
| HR | 1 | bool bit 1 | RW | 1 = stop with the second deceleration ramp | |||
| HR | 1 | bool bit 2 | RW | 1 = reset an active trip; set back to 0 after the fault clears | |||
| HR | 1 | bool bit 3 | RW | 1 = coast to stop | |||
| HR | 1 | bool bit 8 | RW | 1 = relay closed, 0 = open | |||
| HR | 1 | bool bit 9 | RW | Bit 9 of the control word; the guide says 1 = off, 0 = on without saying what SD is | |||
| HR | 2 | uint16 | RW | Hz | ×0.1 | Setpoint in Hz with one decimal; the guide gives 0 to 5000 raw | |
| HR | 3 | uint16 | RW | % | ×0.0244140625 | 0 to 4096 = 0 to 100 % | |
| HR | 4 | uint16 | RW | s | ×0.01 | Acceleration and deceleration time, 0 to 60000 raw; used when fieldbus ramp control is enabled | |
| HR | 6 | bool bit 0 | R | ||||
| HR | 6 | bool bit 1 | R | ||||
| HR | 6 | bool bit 2 | R | ||||
| HR | 6 | bool bit 6 | R | Needs no trip, hardware enable present and no network loss | |||
| HR | 6 | uint16 bits 8–15 | R | Number of the active fault; see the fault list in the guide | |||
| HR | 7 | uint16 | R | Hz | ×0.1 | ||
| HR | 8 | uint16 | R | A | ×0.1 | ||
| HR | 11 | uint16 | R | Bit 0 = digital input 1, and so on | |||
| HR | 20 | uint16 | R | % | ×0.1 | ||
| HR | 21 | uint16 | R | % | ×0.1 | ||
| HR | 22 | uint16 | R | Hz | ×0.1 | Internal frequency setpoint, Hz x 10 | |
| HR | 23 | uint16 | R | V | |||
| HR | 24 | int16 | R | °C | |||
| HR | 2001 | uint16 | R | ||||
| HR | 2001 | bool bit 0 | R | ||||
| HR | 2001 | bool bit 1 | R | ||||
| HR | 2001 | bool bit 2 | R | ||||
| HR | 2001 | bool bit 3 | R | ||||
| HR | 2001 | bool bit 4 | R | ||||
| HR | 2001 | bool bit 6 | R | ||||
| HR | 2001 | bool bit 7 | R | ||||
| HR | 2001 | bool bit 8 | R | Motor current above P-08 | |||
| HR | 2001 | bool bit 9 | R | ||||
| HR | 2001 | bool bit 10 | R | ||||
| HR | 2001 | bool bit 11 | R | ||||
| HR | 2001 | bool bit 12 | R | ||||
| HR | 2001 | bool bit 13 | R | ||||
| HR | 2002 | int16 | R | Hz | ×0.1 | ||
| HR | 2003 | uint16 | R | A | ×0.1 | ||
| HR | 2004 | uint16 | R | kW | ×0.1 | ||
| HR | 2005 | uint16 | R | Bits: 0-3 digital inputs 1 to 4, 6 and 7 IP66 forward and reverse switches, 8 digital output, 9 relay, 12 and 13 analog input signal lost | |||
| HR | 2006 | int16 | R | % | ×0.1 | 0.0 to +/-200.0 % | |
| HR | 2007 | uint16 | R | V | |||
| HR | 2008 | int16 | R | °C | |||
| HR | 2009 | uint16 | R | 0 to 4096 | |||
| HR | 2010 | uint16 | R | 0 to 4096 | |||
| HR | 2011 | uint16 | R | % | ×0.1 | ||
| HR | 2012 | uint16 | R | % | ×0.1 | ||
| HR | 2013 | int16 | R | °C | |||
| HR | 2014 | uint16 | R | V | |||
| HR | 2015 | uint16 | R | 0 to 4096 | |||
| HR | 2016 | uint16 | R |
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).