Appearance
Modbus Register Table
Complete register mapping for the iCartridge 2.0 Modbus RTU interface.
Slave ID: 0x66 (102 decimal) | Baud Rate: 115200 | Config: 8N1
Input Registers (Read-Only)
Reference 3xxxx - Function 0x04 Read Input Register
| Register | Description | Data Type | Unit |
|---|---|---|---|
| 30001 | Temperature | int16_t | deci °C |
| 30002 | Process Pressure | int16_t | centibar |
| 30003 | Barrier Fluid Pressure | int16_t | centibar |
| 30004 | Delta Pressure (Process - Barrier Fluid) | int16_t | centibar |
| 30005 | Pump Power | int16_t | centiwatts |
| 30006 | Current Year | int16_t | e.g. 2025 |
| 30007 | Current Month | int16_t | 1-12 |
| 30008 | Current Day | int16_t | 1-31 |
| 30009 | Current Hour | int16_t | 0-23 |
| 30010 | Current Minute | int16_t | 0-59 |
| 30011 | Current Second | int16_t | 0-59 |
| 30012 | External Accelerometer X-axis | int16_t | mg |
| 30013 | External Accelerometer Y-axis | int16_t | mg |
| 30014 | External Accelerometer Z-axis | int16_t | mg |
| 30015 | Onboard Accelerometer X-axis | int16_t | mg |
| 30016 | Onboard Accelerometer Y-axis | int16_t | mg |
| 30017 | Onboard Accelerometer Z-axis | int16_t | mg |
Holding Registers (Read/Write)
Reference 4xxxx - Function 0x03 Read / 0x06 Write Holding Register
| Register | Description | Data Type | Unit / Notes |
|---|---|---|---|
| 40001 | Temperature Setpoint | int16_t | deci °C |
| 40002 | Pressure Difference (dP) Setpoint | int16_t | centibar |
| 40003 | PID P parameter (temperature) | int16_t | ×100, typical 100-2000 (1.0-20.0) |
| 40004 | PID I parameter (temperature) | int16_t | ×1000/sec, typical 0-2000 (0.0-2.0) |
| 40005 | PID D parameter (temperature) | int16_t | ×1000 sec, typical 0-1000 (0.0-1.0) |
| 40006 | PID Output (temperature) | int16_t | deci % |
| 40007 | Deadband (dP) | int16_t | centibar, typical 10-50 (0.1-0.5 bar) |
| 40008 | Minimum Pulse Time (dP) | int16_t | centiseconds |
| 40009 | Set Year | int16_t | e.g. 2025, -1 to skip |
| 40010 | Set Month | int16_t | 1-12, -1 to skip |
| 40011 | Set Day | int16_t | 1-31, -1 to skip |
| 40012 | Set Hour | int16_t | 0-23, -1 to skip |
| 40013 | Set Minute | int16_t | 0-59, -1 to skip |
| 40014 | Set Second | int16_t | 0-59, -1 to skip |
| 40015 | Pressure Hysteresis (dP) | int16_t | centibar, typical 10-50 (0.1-0.5 bar) |
Coils (Read/Write)
Reference 0xxxx - Function 0x01 Read / 0x05 Write Single Coil
| Address | Description | Type |
|---|---|---|
| 00001 | Auto/Manual PID control for temperature (1=Auto, 0=Manual) | bool |
| 00002 | Auto/Manual ON/OFF control for dP (1=Auto, 0=Manual) | bool |
| 00003 | Output solenoid valve 1 (pressure increase) | bool |
| 00004 | Output solenoid valve 2 (pressure decrease) | bool |
Discrete Inputs (Read-Only)
Reference 1xxxx - Function 0x02 Read Discrete Inputs
| Address | Description | Type |
|---|---|---|
| 10001 | Status iCartridge 2.0 - Error | bool |
| 10002 | Status iCartridge 2.0 - State | bool |
| 10003 | Process Pressure sensor ready | bool |
| 10004 | Barrier Fluid Pressure sensor ready | bool |
| 10005 | Pump feedback ready | bool |
| 10006 | Temperature sensor ready | bool |
| 10007 | Pump Standby (true = standby/stop) | bool |
| 10008 | Pump Fault - Blocked (true = alarm, blocked pump) | bool |
| 10009 | Pump Fault - Electrical (true = alarm, electrical fault) | bool |
| 10010 | Pump Warning (true = warning condition) | bool |
| 10011 | External Accelerometer ready | bool |
| 10012 | Onboard Accelerometer ready | bool |
Unit Conversion Reference
| Stored Unit | Conversion | Example |
|---|---|---|
| deci °C | × 0.1 = °C | 250 → 25.0 °C |
| centibar | × 0.01 = bar | 150 → 1.50 bar |
| centiwatts | × 0.01 = W | 500 → 5.00 W |
| centiseconds | × 0.01 = s | 100 → 1.00 s |
| mg | × 0.001 = g | 1000 → 1.000 g |
PID Parameters
PID sample time is 1 second.
| Parameter | Conversion | Example |
|---|---|---|
| Kp | register value / 100 | 150 → Kp = 1.50 |
| Ki | register value / 1000 | 800 → Ki = 0.800 /s |
| Kd | register value / 1000 | 200 → Kd = 0.200 s |
Default PID values: P=300 (Kp=3.0), I=0, D=0
Setting the RTC
Write valid values to registers 40009-40014 to update the real-time clock. After a successful update, all fields are automatically reset to -1.
Example - Set time to 2025-03-15 14:30:45:
| Register | Value |
|---|---|
| 40009 (Year) | 2025 |
| 40010 (Month) | 3 |
| 40011 (Day) | 15 |
| 40012 (Hour) | 14 |
| 40013 (Minute) | 30 |
| 40014 (Second) | 45 |
INFO
All six time fields must contain valid (positive) values for the RTC update to trigger. Fields are reset to -1 after a successful update to prevent repeated writes.