What This Module Does
The M0310 is an embedded protocol conversion module that converts Modbus RTU slave devices into HART slave devices. It is designed for field device manufacturers who want to add HART communication capability to their existing Modbus instruments without redesigning the entire product.
The module is embedded directly into Modbus protocol input devices — such as flow meters, level transmitters, and other measuring instruments — and runs the Modbus application layer protocol through TTL level signals. The M0310 serves as the Modbus master and the HART slave, converting data from Modbus data registers (input registers, holding registers) into dynamic variables used in HART commands. Additionally, the module provides a 4-20mA analog current output proportional to the primary variable (PV) value.
This means you can take an existing Modbus instrument and turn it into a HART-enabled field device with analog output, all with minimal hardware changes.
Who Uses It
OEM manufacturers of industrial instruments who need to add HART 7.0 communication and 4-20mA analog output to their product lines. Product engineers looking to upgrade Modbus-based devices — flow meters, level transmitters, pressure transmitters — to support HART without developing a HART protocol stack from scratch.
The M0310 is particularly valuable for manufacturers who want to quickly enable HART communication on their instruments without writing protocol software or redesigning hardware. It’s a drop-in module that gets you to market faster.
How It Works
The M0310 sits between the HART bus and the Modbus device. It connects to the main control board of the field device through a socket — externally connected to the HART bus, internally connected to the field device.
Data flow direction:
- Modbus to HART: The module, acting as a Modbus master, reads data from the user board (Modbus slave) via TTL-level UART. The data is then mapped to device variables (0-5) and further mapped to HART dynamic variables (PV, SV, TV, QV).
- HART to Modbus: When a HART master sends a HART command (e.g., writing PV range limits), the module parses the command, maps the data back to Modbus holding registers, and writes it to the user board.
Key mapping concept:
Modbus Register Data → Device Variable (n) → Dynamic Variable (PV/SV/TV/QV)
For example, if a holding register at address 30000 in a flow meter stores the instantaneous flow value, the register can be configured to device variable 0, which is then assigned as the primary variable (PV). This mapping is fully configurable.
Analog Current Output
The M0310 provides a 4-20mA analog current output proportional to the primary variable (PV) value. When the PV value reaches the upper range limit, the module outputs 20.000mA. When the PV value reaches the lower range limit, the module outputs 4.000mA.
Saturated output (fixed):
- PV exceeds upper limit: 20.800mA
- PV exceeds lower limit: 3.800mA
Fault alarm output (selectable via DIP switch):
- Low current alarm: 3.750mA
- High current alarm: 21.750mA
Multi-point mode behavior:
When the polling address is not set to ‘0’, the analog channel outputs a fixed 4.000mA regardless of the PV value. Only when the polling address is set to ‘0’ does the module output the 4-20mA analog current corresponding to the PV value.
Hardware Interface
The M0310 uses a 2.54mm pitch IDC16 (2×8) standard socket (JP3) to connect to the user board.
Pin definition (JP3):
| Pin | Name | Description |
|---|---|---|
| 1 | IVCC | 5V DC isolated power |
| 2 | IGND | For VCC |
| 3 | I/RST | Reset, low active |
| 4 | IGND | For VCC |
| 5 | OTxD | MCU UART transmitter |
| 6 | O- | Reserved |
| 7 | O- | Reserved |
| 8 | IRxD | MCU UART receiver |
| 9 | O- | Reserved |
| 10 | OLED | For LED-, HART communication indication |
| 11 | I/O | HART+ |
| 12 | I/O | HART- |
| 13 | O- | Reserved |
| 14 | I- | Reserved |
| 15 | I- | Reserved |
| 16 | I- | Reserved |
Reserved bus interface:
For direct HART bus connection when the bus is not routed on the user board.
DIP switches:
| Switch | OFF Position | ON Position |
|---|---|---|
| AL | High current alarm | Low current alarm |
| WP | Write enabled | Write protected |
LED indicators:
| LED1 | LED2 | Status |
|---|---|---|
| On | On | Module initialization |
| On | On (steady) | Standby, no communication |
| On | Flashing | HART communication active |
| Flashing | On | Modbus communication active |
| Off | Off | No communication or fault |
Supported wiring configurations:
The M0310 supports three-wire and four-wire equipment only. It does not support two-wire equipment.
HART Protocol Support
The M0310 implements the HART 7.0 protocol and supports Burst mode operation.
| Command | Description | Command | Description |
|---|---|---|---|
| 0 | Read unique identifier | 33 | Read device variables |
| 1 | Read PV unit and value | 34 | Write PV damping value |
| 2 | Read PV current and percentage | 35 | Write PV range values |
| 3 | Read dynamic variables and PV current | 36 | Set PV upper range with current value |
| 6 | Write polling address | 37 | Set PV lower range with current value |
| 7 | Read polling address | 40 | Enter/exit fixed current mode |
| 8 | Read dynamic variable categories | 41 | Perform self-test |
| 9 | Read device variables and status | 42 | Perform device reset |
| 11 | Read device ID using tag | 43 | Set PV zero with current value |
| 12 | Read message | 44 | Write PV units |
| 13 | Read tag, descriptor, date | 45 | Trim loop current zero (4mA) |
| 14 | Read PV sensor information | 46 | Trim loop current gain (20mA) |
| 15 | Read device information | 47 | Write PV transfer function |
| 16 | Read final assembly number | 49 | Write PV sensor serial number |
| 17 | Write message | 50 | Read dynamic variable assignments |
| 18 | Write tag, descriptor, date | 51 | Write dynamic variable assignments |
| 19 | Write final assembly number | 53 | Write device variable units |
| 20 | Read long tag | 59 | Write number of response preambles |
| 21 | Read unique identifier with long tag | 105 | Read Burst mode configuration |
| 22 | Write long tag | 107 | Write Burst device variables |
| 38 | Reset configuration changed flag | 108 | Write Burst mode command number |
| 48 | Read additional device status | 109 | Burst mode control |
Modbus Interface
The M0310 communicates with the user board using the Modbus RTU protocol over TTL-level UART.
Default communication parameters:
| Parameter | Default | Optional range |
|---|---|---|
| Slave address | 1 | 1-247 |
| Baud rate | 9600 | 1200, 2400, 4800, 9600, 19200, 35700, 38400, 57600 |
| Data bits | 8 | 7, 8 (only 8 valid for RTU) |
| Stop bits | 1 | 1, 2 |
| Parity | EVEN | ODD, EVEN, NONE |
| CRC byte order | Low-High | Low-High, High-Low |
Supported Modbus function codes:
| Code | Operation |
|---|---|
| 1 | Read coil status |
| 2 | Read discrete input status |
| 3 | Read holding registers |
| 4 | Read input registers |
| 5 | Write single coil |
| 16 | Write multiple registers |
Configuration Overview
The M0310 is configured using the HartMPT configuration software from Microcyber, or any HART master with DD file parsing capability.
Three configuration steps:
- Configure Modbus interface — Set slave address, baud rate, data bits, parity, stop bits, and CRC byte order to match the user board’s interface characteristics.
- Configure device variables — Map Modbus data registers to the module’s six device variables (0-5). Each variable requires: type, unit, sensor range limits, Modbus function code, register address, and data type.
- Configure dynamic variables — Map device variables to HART dynamic variables (PV, SV, TV, QV) based on the application requirements.
Operation modes:
| Mode | Description |
|---|---|
| Configuration Mode | HART module does not actively send Modbus requests. All settings can be modified. |
| Operation Mode | HART module cyclically sends Modbus requests to the user board and makes data available on the HART bus. |
Device Variable Configuration
The M0310 supports six device variables (0-5). Each variable requires the following parameters:
| Parameter | Description |
|---|---|
| Type | Data type (volume flow, temperature, pressure, density, etc.) |
| Unit | Engineering unit for HART device data (in PV) |
| Sensor range upper limit | Maximum limit value of the device variable |
| Sensor range lower limit | Minimum limit value of the device variable |
| Minimum span | Range span (typically sensor upper limit divided by 100) |
| Upper range limit | Between sensor upper and lower limits |
| Lower range limit | Between sensor upper and lower limits |
| Default units | Units of variable read from Modbus device |
| Modbus function code | Function code for reading the device variable |
| Register address | Data register address in Modbus device |
| Register data type | Byte order of data in Modbus registers |
Dynamic Variable Mapping
HART supports four dynamic variables: Primary Variable (PV), Secondary Variable (SV), Tertiary Variable (TV), and Quaternary Variable (QV).
Any of the six device variables can be mapped to any of the four dynamic variables with no restrictions. However, PV is the variable that drives the analog current output on the HART bus.
PV Range Configuration
Users can configure the source and read/write mode of the primary variable (PV) range limits.
PV Range Source:
- Local: Manually configured through configuration software
- Remote: Read from the user’s Modbus device
PV Range Operation Mode:
- Read and Write: HART module can both read from and write to the user’s Modbus device
- Read Only: HART module only reads range limits from the user’s Modbus device
Register Data Type: Format in which range limits are stored in Modbus registers.
Scaling Factor
Each device variable has a scaling factor parameter:
HART device variable n = Modbus device variable n × scaling factor
Factory default is 1.0. Modify only if scaling is required.
Device Status
The M0310 provides HART extended device status (3 bytes):
- Byte 1: Lower 6 bits indicate whether reading of the six device variables was successful (0: success, 1: fault or misconfigured)
- Byte 2-3: 16 states representing the user’s Modbus device status
Users can configure the status of Modbus devices to the HART extended device status. Each bit used is determined by the ‘Bit Pattern’ (1-16).
Data Save and Restore
| Function | Description |
|---|---|
| Restore to default factory | Restores all configuration data to system initial values (use with caution) |
| Save as factory | Saves current user configuration as factory values |
| Restore to factory | Restores previously saved user configuration |
Batch Download
A quick configuration function for manufacturers with multiple M0310 modules:
- Configure one module completely
- Click “Save to File” to save the configuration
- For other modules, click “Open File” to load the configuration
- Click “Batch Download Data” to apply to all modules
Manufacturer ID and Device Type Modification
As a general product, the M0310 allows users to modify the manufacturer ID and device type to create their own branded HART products. This is done through the ‘ManufactureInfoConf’ tab in the configuration software.
Important: Manufacturer ID and device type code are each 2 bytes, filled in hexadecimal format. Manufacturer ID must be obtained by applying for HART membership through HCF. Device type ID can then be applied for free.
Disclaimer: Unauthorized modification of manufacturer ID and device type may cause accidents and legal liability. Microcyber is not responsible for any issues arising from such modifications.
Technical Specifications
| Parameter | Specification |
|---|---|
| Measuring object | Modbus RTU slave device |
| Power supply | 6-42 VDC |
| Bus protocol | 2-wire HART |
| Load resistance | 0-1500Ω (normal) / 230-1100Ω (HART communication) |
| Isolation voltage | 500V AC between Modbus and HART |
| Temperature range | -40°C to 85°C |
| Humidity range | 5-95% RH |
| Startup time | ≤5s |
| Refresh time | 0.2s |
| Damping adjustment | Time constant 0-32 seconds |
| Output current accuracy | Maximum error ≤50µA |
Electrical interface:
| Pin | Name | Description |
|---|---|---|
| 1 | IVCC | 5V DC isolated power from user board |
| 2 | IGND | VCC reference ground |
| 3 | I/RST | Reset, low active |
| 5 | OTxD | MCU UART transmitter |
| 8 | IRxD | MCU UART receiver |
| 10 | OLED | LED cathode, HART communication indication |
| 11 | HART+ | HART bus positive |
| 12 | HART- | HART bus negative |
Troubleshooting
| Problem | Possible Cause | Solution |
|---|---|---|
| Current output is 0 | Power failure / Open circuit | Check power and wiring |
| Current fixed at 21.75mA or 3.70mA | Modbus communication failure | Check Modbus communication |
| Current fixed at 4mA | Device in multi-point mode | Set polling address to 0 |
| No communication | Connection failure / Multi-point mode | Check wiring / Check network |
| HART LED off | No HART communication / Power failure | Check HART master and modem / Check power |
| Modbus LED off | No Modbus communication / Slave failure | Check Modbus device and connections |
| Dynamic variable reading incorrect | Device variable configuration incorrect / Modbus parameter incorrect | Check register address and data type / Check baud rate and parity |
Need to add HART 7.0 and 4-20mA output to your Modbus instruments? Contact our OEM support team for integration assistance.
