The Red Lion DA10D and DA30D are protocol converters programmed with Crimson 3.2. They poll serial and Ethernet devices, such as a Modbus RTU flow meter, and publish the readings to Ubidots with Crimson's built-in Ubidots MQTT connector. This guide reads four values from a Modbus RTU device over RS-485 and sends them to one Ubidots device, with one variable per tag.
DA10D or DA30D: what changes
The DA10D and DA30D run the same Crimson 3.2 database steps and the same Ubidots connector. The DA30D adds ports, a web server and a data logger, and its software group is fixed at Group 3; the DA10D's is fixed at Group 2. Both groups include the cloud connectors, so the DA10D publishes to Ubidots the same way.
DA10D | DA30D | |
Part number | DA10D0C000000000 | DA30D0F000000000 |
Ethernet | 1 × 10/100 | 1 × 10/100 |
Serial | 1 × RS-232, 1 × RS-232/RS-485 | 2 × RS-232 (one is the programming port), 1 × RS-485/422 |
USB | Type B | Type B and Type A |
Software group | Group 2 | Group 3 |
Ubidots MQTT connector | Yes | Yes |
Web server and data logger | No | Yes |
Sources: HMS Networks' DA10D and DA30D product pages and the Crimson 3.2 Unified Release FAQ.
Requirements
A Red Lion DA10D or DA30D.
Crimson 3.2, Gold Build 3.2.0064.0 or later, from the HMS Crimson 3.2 download page.
A USB A-to-B cable for the first download. The DA10D and DA30D have no default IP address, and their Ethernet port stays disabled until a database enables it (HMS Crimson FAQ).
A Modbus RTU device on RS-485, with its slave ID, serial settings and register map.
An Ubidots account and your Ubidots token, and a network that reaches industrial.api.ubidots.com on port 8883.
1. Create the Crimson database for the DA10D or DA30D
A Crimson database is the project file that Crimson builds on your PC and downloads to the DA10D or DA30D. In Crimson 3.2, click File → New and choose DA10 or DA30 under Models; the software group is fixed for both. With the unit connected, Auto-Detect in the same dialog picks the model for you.
Go to Device Configuration → System Configuration → Network → Interfaces → Ethernet 1. Set Port Mode to Configured via DHCP, or to Manual Configuration with an IP address, network mask, gateway and DNS servers. Without a gateway and DNS, the unit can't reach Ubidots.
Click Link → Options and select USB for the first download. Later downloads can use TCP/IP; Crimson then asks for the unit's user name and password, admin and password by default.
2. Read the Modbus RTU device over RS-485
Crimson reads Modbus RTU devices with its Modbus Universal Master driver, set on the serial port that the device is wired to. Each slave device on the port gets its own entry with a Drop Number, which is the device's Modbus slave ID. HMS's note on the RS-485 Modbus Universal Master driver describes the same settings.
Open Communications and select the RS-485 port: the RS-485/422 port on a DA30D, or the RS-232/RS-485 port on a DA10D.
Click Pick next to Driver and choose Modbus → Universal Master.
Set Baud Rate, Data Bits, Stop Bits and Parity to match the device. Crimson starts from the protocol's defaults.
Crimson adds a device named PLC1 under the port. Press F2 to rename it, for example to FlowMeter, and set Drop Number to the device's slave ID.
Crimson checks that the device is there by reading holding register 400001 (Ping Holding Register = 1). If the device has no holding registers, set Ping Holding Register to 0.
Map the Modbus registers to tags
Each value you send to Ubidots is a Crimson data tag mapped to a Modbus register. Crimson uses six-digit, one-based Modbus addresses, so holding register 1 is 400001. Map the tags as follows, using your device's register map in place of the example.
Open Data Tags, click New and create a numeric tag, for example FlowRate.
On the tag's Data tab, set Source to the device (FlowMeter). In Select Address, choose the Data Item, for example 4 Holding Registers, and the Element, for example 00001 for 400001.
Choose the data type: Word as Word for a 16-bit register, Word as Long for a 32-bit integer or Word as Real for a 32-bit float across two registers.
If the register holds raw counts, scale the tag with Data From/To and Display From/To.
Tag | Data Item | Element | Modbus address | Data type |
FlowRate | 4 Holding Registers | 00001 | 400001 | Word as Real |
Pressure | 4 Holding Registers | 00003 | 400003 | Word as Real |
Totalizer | 4 Holding Registers | 00005 | 400005 | Word as Long |
PumpRun | 0 Coils | 00001 | 000001 | Flag tag |
For a Modbus TCP device, create a protocol under Communications → Network, pick Modbus → TCP/IP Master and enter the device's IP address in its settings. The tags map the same way.
3. Configure the Ubidots MQTT connector
The DA10D and DA30D publish to Ubidots with the same Ubidots MQTT connector as the FlexEdge. Open Communications → Connectors → Ubidots MQTT and set the Service tab as follows. Create an internal numeric tag named Status first, for the connector's diagnostics.
Field | Value |
Enable Agent | Yes |
Update Mode | Send Changes |
Host Name 1 | industrial.api.ubidots.com |
Device Name | The Ubidots device label, for example da30d: lowercase letters, numbers, dashes or underscores |
Access Token | Your Ubidots token |
Status | The Status tag |
The screenshots show a FlexEdge database; the DA10D and DA30D show the same tabs. On the Network tab, set Transport Protocol to TLS and Connect via Port to 8883. On Tag Set 1, keep Transfer Mode on Periodic, set the Update Rate, for example 10 seconds, and drag the mapped tags into Contents.
Connect the USB cable and click Link → Send to download the whole database. After that, Link → Update (F9) sends only the changes.
4. Check the readings and the data in Ubidots
Crimson's Watch Window shows live tag values from the unit without a web server, so it works on the DA10D too. Press F7 or use the View menu to open it, add FlowRate, the other mapped tags and Status, and click View Online. The mapped tags show the device's readings, and Status reads 4 once the connector has published to Ubidots.
In Ubidots, go to Devices → Devices. The device with your device label shows one variable per tag in lowercase, such as flowrate, pressure, totalizer and pumprun, plus connected.
Troubleshooting: why are the Modbus values missing or wrong?
Tags show no value in the Watch Window. Check the serial settings, the Drop Number and the wiring. On RS-485, the port's red and green LEDs blink fast when the wiring is right; solid red with blinking green means the A and B wires are swapped.
Every value is one register off. Crimson counts from 1. If your device's map lists zero-based offsets, add 1 to the element.
A 32-bit value looks scrambled. The device sends its two words in the other order. Set the tag's Manipulation to Reverse Words.
Crimson can't download over Ethernet. The unit has no default IP address. Download over USB first, with Ethernet 1 configured in the database.
Status stays below 4. See the Status table in the FlexEdge setup guide; the values mean the same on every device.
FAQ
Does the DA10D support the Ubidots MQTT connector?
Yes. HMS lists Ubidots among the DA10D's cloud connectors, and its fixed Group 2 includes them. Group 2 has no runtime web server, so check the DA10D in Crimson's Watch Window or in Ubidots instead of Remote View.
Do the DA10D and DA30D work with Crimson 3.1?
Yes. Crimson 3.1 supports them from build 3.1.3108.002, and its Ubidots connector needs build 3.1.3119.001 or later. Crimson 3.2 supports them from Gold Build 3.2.0064.0, and HMS's Unified Release moves current hardware to Crimson 3.2.
Can one DA30D read several Modbus devices?
Yes. Add more devices under the same port with Add Additional Device, each with its own Drop Number, and map their registers to tags. One connector sends all the tags to one Ubidots device; in Crimson 3.2 you can add a connector per Ubidots device.
What happens to the readings while the connection is down?
With the connector's Data Buffering on, the unit keeps up to 14,400 values in memory, or more on the memory card, and sends them when the connection returns. With buffering off, Ubidots gets the latest values on reconnection.
Can I send text values, such as a device's serial number?
Not with the Ubidots MQTT connector, which sends numbers only. Use Crimson's Generic MQTT connector with a decoder function, described in Crimson Generic MQTT Setup Guide: Red Lion Tags to the Cloud.
Other Red Lion guides



