How to Use Modbus RS-485 Sensors with Zenseio LSMP and CSMP Devices
We're thrilled to announce the integration of Modbus RS-485 industrial sensor support with firmware version 23 for the LSMP-2103 and CSMP-4103 devices. This update opens up new possibilities for industrial applications by allowing these devices to connect with a wide range of Modbus-compatible sensors.
Limitations and Compatibility
- Device Compatibility: The update is applicable to LSMP-2103 and CSMP-4103 devices manufactured in 2023 (hardware revision 4.1), identifiable by the presence of SDI-12/A and B connectors.
- Firmware Requirements: Due to memory limitations, CSMP-4103 devices must use a specific firmware version that supports Modbus RS-485, distinct from the standard SDI-12 firmware. LSMP-2103 devices utilize a single firmware version for both SDI-12 and Modbus RS-485 interfaces.
- Supported Modbus Functions: The devices can only interpret Modbus RS-485 sensors using functions 1 (read coils), 2 (read discrete inputs), 3 (read holding registers), or 4 (read input registers).
- Command Limitations: A maximum of 10 read commands can be configured, with support for only a single Modbus slave address. It's important to note that SDI-12 sensors cannot be used simultaneously with Modbus RS-485 sensors.
Hardware Connections
- Switch Positioning: Set the R-S switch on the Zenseio device to the "R" position (refer to the picture below for the switch location).
- Wiring: Connect the sensor's Modbus interface wires (A, B, and GND) to the corresponding connectors on the LSMP/CSMP device, as per the sensor's instruction manual.
- Power Supply: While there's an option to power the sensor via the VAUX connector on the Zenseio device, we recommend using an external power source for sensors with high power consumption.
Configuration with ZenConfig Mobile App
- Activate Modbus Mode: Enabling Modbus mode will automatically deactivate SDI-12 mode in LSMP-2103 devices.
- Interface Parameters Configuration: Adjust the following settings based on the sensor's specifications:
- Settling Time: Time (in milliseconds) to wait between activating the VAUX power output and sending the first command. Set to 0 if using an external power source.
- Slave Address: The Modbus slave address assigned to the sensor.
- Timeout: The duration (in 100ms units) the device should wait for a sensor response.
- Number of Retries: The number of attempts to resend a command if the initial attempt fails.
- Delay Between Commands: The wait time (in 100ms units) after receiving a response before sending a new command.
- Baud Rate: The communication speed between the device and the sensor.
- Parity: Select none, even, or odd parity modes based on the sensor's configuration.
- Command Configuration: Set up to 10 commands with the following details:
- Register Address: Specified in decimal format.
- Modbus Function: Choose from 1 (read coils), 2 (read discrete inputs), 3 (read holding registers), or 4 (read input registers).
- Data Type: Select from signed/unsigned, 16/32-bit integers, or 32-bit floating-point variants.
- Use "Add New Command" to include additional commands and "Delete Last Command" to remove the last entry. Confirm your settings by pressing "Save".
- VAUX Voltage Setting: Set the VAUX voltage to the minimum level required by the sensor if powering the sensor from VAUX output.
Verifying Sensor Connectivity
After configuring the device, initiate a test using the Zenseio device's test button. Confirm successful sensor integration by reviewing the Status page in the ZenConfig app, where the Modbus register values read from the sensor will be displayed. This feature ensures accurate setup and provides immediate feedback on the sensor's operational status.
NOTE: If still having trouble with successfully reading the sensor after this configuration, please see this app note: