Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Engage is the ultimate solution for versatile and powerful IoT dashboard applications. It's not just a one-size-fits-all solution. Engage boasts a sleek touchscreen interface enhanced by an advanced vector graphics accelerator, ensuring seamless and dynamic visual interactions. With extensive connectivity options and large RAM and ROM, Engage is ready to handle diverse IoT scenarios, from smart home dashboards and facility monitoring to custom smart devices. Whether integrating into existing systems or pioneering new innovative environments, Engage delivers robust performance and flexibility to meet your needs, adapting to your unique smart dashboard requirements.
Welcome! You can find hardware information, installation guidelines, library manuals, examples, and troubleshooting documentation here.
Evolve 'R, a highly customizable module carrier, is designed with energy efficiency in mind, providing reassurance. It features sensor and extension ports for flexible device configuration. With 802.15.4 connectivity, it supports BLE, Zigbee, Thread, and Matter. An M.2 port is also available, offering connectivity options like LoRa, cellular, WiFi, and more. The device can run on any lithium battery or a solar panel, with battery charging available through USB-C and an on-board MPPT solar power harvester. This energy efficiency makes Evolve 'R a powerful choice for your remote sensing applications.
Energy Analyzer is a comprehensive solution designed for precise monitoring and analysis of three-phase voltage and current. Equipped with high-accuracy components, it delivers accurate real-time readings and in-depth analysis to optimize energy usage and efficiency. The Energy Analyzer supports wired and wireless telemetry, providing flexible and convenient data transmission for various monitoring environments. Ideal for industrial facilities, commercial buildings, and energy management systems, this device ensures reliable performance and insightful energy metrics to empower better decision-making and enhance operational efficiency.
The Bioacoustics Module is designed to capture, analyze, and interpret biological sounds from natural environments. It provides high-fidelity acoustic monitoring for research and environmental applications. By precisely recording bioacoustic events, this module supports wildlife conservation, habitat monitoring, and ecological research studies.
This sensor module carries ST ISM330BX, a high-performance 6-axis Inertial Measurement Unit combining a 3-axis accelerometer and a 3-axis gyroscope. It offers wide bandwidth and low noise for precise motion tracking and vibration measurement. Additionally, it features embedded AI and sensor fusion capabilities, enhancing its application in industrial environments. The ISM330BX supports Qvar sensing across three separate channels, with configurable processing and filtering options, making it an ideal choice for advanced motion & vibration detection and analysis.
The M.2 BLE 802.15.4 Module is a multi-protocol communication add-on that supports numerous wireless standards, including Bluetooth Low Energy (BLE), Zigbee, Thread, and Matter. This module seamlessly integrates with the M.2 interface, offering a compact and efficient solution for modern IoT and smart home applications. It empowers the next generation of intelligent and connected solutions.
The M.2 LEO Satellite Module uses LoRa technology to enable communication with Low Earth Orbit (LEO) satellites. This compact M.2 module is ideal for global asset tracking, remote monitoring, and environmental sensing applications.
The M.2 Wi-Fi Module is an advanced connectivity solution featuring the latest Wi-Fi 7 technology. This module operates across 2.4 GHz, 5 GHz, and 6 GHz frequency bands, delivering ultra-fast, low-latency wireless communication. Designed to integrate seamlessly into devices via the M.2 interface, it offers unparalleled performance with higher data rates, enhanced efficiency, and low power consumption.
The Wheeled Robot Controller is a powerful all-in-one solution that handles motor control, sensor integration, and connectivity for wheeled robotic systems. This universal board precisely drives robot motors, ensuring smooth and responsive movement. It reads data from multiple sensors, empowering real-time environmental awareness and instant decision-making. The controller also enables network connectivity, allowing for remote operation, and provides internal wired communication for integration within the robot’s computer. Suitable for small autonomous vehicles, delivery robots, or educational robotics projects.
This Value-Line Sensor Carrier Board is a cost-effective solution that delivers essential sensor functionalities without compromising quality. Tailored for projects requiring reliable telemetry at a reduced cost, this board integrates essential features, including optional temperature, humidity, light, hall effect, and motion detection, making it ideal for various applications such as smart home systems, industrial monitoring, and research projects. Despite its streamlined design, it maintains the same quality as our flagship devices. A minimum order quantity applies, and the device configuration can be customized on manufacturing for the deployment's needs.
The M.2 Developer Module is an essential tool for developers and engineers working with M.2 interfaces. This module simplifies access to typically hard-to-reach M.2 data pins by exposing them to user-friendly headers. It is designed to streamline the development and testing process and provides easy connectivity for signal probing, debugging, and peripheral integration.
This Value-Line Sensor Carrier Board is a cost-effective solution that delivers essential sensor functionalities without compromising quality. Tailored for projects requiring reliable telemetry at a reduced cost, this board integrates essential features, including optional temperature, humidity, light, hall effect, and motion detection, making it ideal for various applications such as smart home systems, industrial monitoring, and research projects. Despite its streamlined design, it maintains the same quality as our flagship devices. A minimum order quantity applies, and the device configuration can be customized on manufacturing for the deployment's needs.
This page includes BME280 Arduino/ESP32 C/C++ library installation guidelines and documentation for Arduino IDE.
The I²C Adapter Module is a reliable solution for seamlessly integrating 5V I/O devices with your systems. This adapter has a high-speed voltage translator and 5V Voltage booster, ensuring robust communication between our 1.8V carrier boards and high-voltage external sensors, such as advanced air quality monitors. This module enhances interoperability in custom IoT applications and is ideal for expanding your system’s capabilities with diverse sensor types.
Some of our devices come with firmware that automatically utilizes the module without requiring any coding. For development kits or further customization, you may choose to use the following libraries and samples to create a custom application.
The Positioning Module is a compact and powerful solution featuring an integrated miniature GPS antenna for precise geolocation capabilities. This module provides accurate real-time positioning, making it ideal for applications where space constraints and location accuracy are critical. The onboard GPS antenna ensures reliable satellite communication, enabling seamless navigation and tracking for devices in diverse environments. Whether used in asset tracking, autonomous robotics, intelligent transportation systems, or portable navigation devices, the Positioning Module offers robust and efficient geospatial data, significantly enhancing the functionality and effectiveness of your positioning solutions.
Some of our devices come with firmware that automatically utilizes the module without requiring any coding. For development kits or further customization, you may choose to use the following libraries and samples to create a custom application.
The Presence Module is a cutting-edge solution utilizing miniature radar technology to detect human presence and even the slightest movements with exceptional accuracy. This module excels in various applications, including energy optimization in workspaces, enhancing security systems, ensuring elderly safety at home, and detecting trespassing. Its advanced radar technology provides reliable presence detection and motion sensing, making it ideal for optimizing energy use by activating systems only when needed, securing environments against unauthorized access, and monitoring the well-being of individuals. Moreover, its compact design and high sensitivity make it a versatile choice for transportation security, where it plays a crucial role in enhancing safety by detecting unauthorized movement within vehicles or transport facilities.
Some of our devices come with firmware that automatically utilizes the module without requiring any coding. For development kits or further customization, you may choose to use the following libraries and samples to create a custom application.
The RTD Module is a precise solution for temperature measurement using RTD (Resistance Temperature Detector) probes. Equipped with an advanced RTD converter, this module seamlessly reads and interprets data from 2-pin, 3-pin, or 4-pin RTD probes, ensuring accurate temperature monitoring across various applications. Whether used in industrial process control, HVAC systems, or scientific research, the RTD Module provides reliable and detailed temperature readings, supporting various RTD configurations.
Some of our devices come with firmware that automatically utilizes the module without requiring any coding. For development kits or further customization, you may choose to use the following libraries and samples to create a custom application.
The NFC Broker Module is a versatile solution that functions as an NFC reader, writer, and emulator. This adaptability allows seamless interactions with various NFC tags and devices. Its adaptive frequency tuning circuit ensures precise and error-free operations, even in challenging environments like under displays, maintaining optimal performance. Whether for use in contactless payment systems, secure access control, data exchange applications, or smart devices, the NFC Broker Module delivers unmatched reliability and efficiency, enhancing the capabilities of your NFC-enabled solutions.
Some of our devices come with firmware that automatically utilizes the module without requiring any coding. For development kits or further customization, you may choose to use the following libraries and samples to create a custom application.
The M.2 CAT-M NB-IoT Module is a cutting-edge communication solution in a compact M.2 form factor, supporting CAT-M and NB-IoT connectivity plus GNSS positioning. This module offers reliable cellular connectivity and precise geolocation capabilities, making it ideal for many IoT applications, including smart metering, asset tracking, and remote monitoring. The module's support for CAT-M and NB-IoT ensures efficient wide-area network communication, while the integrated GNSS provides accurate positioning.
Some of our devices come with firmware that automatically utilizes the module without requiring any coding. For development kits or further customization, you may choose to use the following libraries and samples to create a custom application.
Even though Evolve comes pre-programmed, reprogramming it with custom firmware is possible. This document describes reprogramming the microcontroller in three steps.
If the user overwrites the flash memory, the only way to restore it is by sending the device to an authorized service center.
This versatile Hall-effect sensor, designed to enhance security and environmental analysis capabilities, integrates multiple sensing functionalities. These include temperature, humidity, pressure, ambient light, and infrared light readings. Primarily engineered to detect door or window openings, this module plays a critical role in security applications by instantly identifying unauthorized access. Furthermore, in pair with temperature and humidity measurements, the onboard pressure sensor accurately detects window breaks, providing an added layer of security and environmental monitoring. Most importantly, when integrated into intelligent security systems, this sensor add-on ensures comprehensive situational awareness, instilling a sense of security and enhancing the safety of your premises.






This page includes BME280 Python library installation guidelines and documentation for Raspberry Pi OS.
Some of our devices come with firmware that automatically utilizes the module without requiring any coding. For development kits or further customization, you may choose to use the following libraries and samples to create a custom application.

This page includes BME280 Go library installation guidelines and documentation for Raspberry Pi OS.
ST-Link V2 or V3 Programmer
STM32 Cube Programmer Application
A custom 5-pin programming cable
STM32CubeProgrammer is software for flashing STM32 microcontrollers with ST-Link. Use the following link to download and install STM32CubeProgrammer from ST's website. The application supports Linux, Mac, and Windows operating systems.
Then connect the programmer to your computer to automatically install device drivers.
Evolve exposes SWD programming pins for programmer and debugger connectivity. The following table reveals the connectivity between ST-Link and Evolve.
Reset (Active-low)
15
1 (Marked on the rear)
SWDIO
7
2
SWCLK
9
3
Please note that Evolve's programming pads are 2mm pitched. You may use a single-row 5-pin PCB clamp to connect with the debugger.
Connect the ST-Link with Evolve and start the STM32CubeProgrammer application to begin flashing. From the STM32CubeProgrammer,
Select the connected ST-Link device from the serial number drop-down.
Set the port to SWD.
Set the frequency to auto.
Set mode to under reset.
Set the access port to 0.
Set reset mode to hardware reset.
Set speed to reliable.
Set shared to disabled.
Tick debug on low power mode.
Use the connect button to establish a link and the open file button to load the firmware file (.elf).
If the device is readout protected, you must full-chip erase before downloading a new image to the microcontroller. After zeroing all the memory content, a full-chip erase will also clear the memory protection feature.
To enable flash readout protection, go to the OB tab, open the readout protection section, set RDP to BB or CC, then save the settings.
Selecting level 2 protection (CC) is permanent as it freezes the option bytes.
Finally, use the download button to flash the microcontroller. To disconnect from the microcontroller, use the disconnect button.
This sensor module measures highly accurate CO2, relative humidity, and temperature. CO2 is a crucial indicator of indoor air quality (IAQ), as high levels compromise humans' cognitive performance and well-being. This module is compatible with relevant IAQ standards and has a high-accuracy measurement range of 400 – 5.000 ppm.
SCD41 is Sensirion's next-generation miniature CO2 sensor. It builds on the photoacoustic NDIR sensing principle and Sensirion's patented PASens® and CMOSens® technology to offer high-accuracy CO2 readings and relative humidity and temperature measurements.
Some of our devices come with firmware that automatically utilizes the module without requiring any coding. For development kits or further customization, you may choose to use the following libraries and samples to create a custom application.
Most sensors came with factory calibration data embedded. Evolve's firmware reads the factory calibration data to provide accurate sensor readings. Some sensors, due to their nature, need to be calibrated periodically. This document describes entering calibration mode and resetting the calibration data to the factory settings.
Evolve with all the sensors attached.
The Irradiance Module is a precision tool designed to optimize solar panel performance through detailed efficiency analysis. This module reads the current generated by a small reference solar panel and calculates the efficiency of a larger panel by extrapolating the data. Additionally, it measures the temperature of the reference solar panel to accurately calculate the power output in watts and determine the solar radiance. Ideal for applications in solar energy research, photovoltaic system monitoring, and renewable energy optimization, the Irradiance Module empowers users to fine-tune their solar installations, ensuring maximum energy harvest and efficiency.
Access to Evolve's on-board "SET" button.
A fully charged battery.
Two kinds of calibration data exist. The first one, factory calibration data, is recorded to the sensor and not to be modified. The second one, the correction factor, is recorded in Evolve's configuration.
The correction factor is like fine-tuning a sensor reading and helps to eliminate real-world deviations.
It is the user's responsibility to ensure the calibration steps are applied correctly. Incorrect calibration affects sensor reading and event triggers. There is no way for the device to detect calibration process mistakes.
The following procedure will put Evolve into calibration mode.
Disconnect the batteries and other power sources. Ensure the device is in a stable environmental state for at least one hour to stabilize. (Temperature and humidity)
Prepare an environment appropriate for the calibration concerning the sensor(s) being calibrated. Refer to the sensors' calibration requirements.
While pressing the "SET" button, connect a fully charged battery.
After five seconds, the status LED will blink five times, indicating calibration mode entry. Release the button.
Quickly click the "SET" button to calibrate the first sensor. The status LED will blink for one long time.
Calibration will be made according to the current sensor's calibration requirement. After it finishes, the status LED will blink two times.
If your configuration has multiple sensors that support calibration, clicking the "SET" button will proceed with the next sensor. The status LED will blink to indicate the sensor index. e.g., three long blinks mean calibrating the third sensor.
When the last sensor calibration is done, the status LED continuously blinks.
Disconnect the battery.
You may now use the device with the applied correction factor(s).
The following procedure will reset the correction factor.
It is impossible to retrieve the correction factor after a configuration reset.
Disconnect the batteries and power sources.
While pressing the "SET" button, connect a fully charged battery.
After five seconds, the status LED will blink five times, indicating calibration mode entry.
Release the button. Sensor calibration data will be erased.
Disconnect the battery.
You may now use the device with the factory settings.
This page includes BME280 MicroPython library installation guidelines and documentation.
400 ppm
5.000 ppm
Dew Point
N/A
-40°C
40°C
Temperature
± 0.8°C @ 15...35°C ± 1.5°C @ -10...60°C
-10°C
60°C
Relative Humidity
± 6% rH @ 15 °C – 35 °C, 20 %RH – 65 %RH ± 9% rH @ -10 °C – 60 °C, 0 %RH – 100 %RH
0% rH
100% rH
CO2

400 ppm ... 1000 ppm ±(50 ppm + 2.5% of reading) 1001 ppm ... 2000 ppm ±(50 ppm + 3% of reading) 2001 ppm ... 5000 ppm ±(40 ppm + 5% of reading)
Some of our devices come with firmware that automatically utilizes the module without requiring any coding. For development kits or further customization, you may choose to use the following libraries and samples to create a custom application.

GND
20
4
VDD
19
5 (Do not connect if board is powered)
Evolve is a highly customizable, compact, energy-efficient data collection solution. It features modular sensor ports for customizing the device to specific measurement needs and an M.2 connectivity port for flexible connectivity options. In addition, the device can be powered by various sources, such as industrial batteries or a solar panel, making it a versatile choice for remote sensing applications.
The following table outlines the capabilities of the device.
Evolve is compatible with the following sensor modules.
The following connectivity options work with Evolve.
Evolve's stock firmware supports the following communication protocols. You can develop custom firmware to add more.
This table shows the mechanical properties of the device.
Environmental Conditions refer to the physical and atmospheric conditions surrounding the device.
This table indicates the electrical specifications of the device.
This table lists the communication options of the device.
This table explains the function and electrical characteristics of each pin or terminal on the device.
Some of our devices come with firmware that automatically utilizes the module without requiring any coding. For development kits or further customization, you may choose to use the following libraries and samples to create a custom application.
This device measures the depth or distance of an object, liquid, or snow. It transmits data using Modbus RTU communication protocol over the RS-485 standard.
The following table outlines the capabilities of the device.
The following table shows sensor characteristics.
This table shows the mechanical properties of the device.
Environmental Conditions refer to the physical and atmospheric conditions surrounding the device.
This table indicates the electrical specifications of the device.
Absolute maximum ratings indicate the maximum electrical or environmental parameters this device can withstand without damage.
Stresses above the absolute maximum ratings listed in the table may cause permanent damage to the device. These are stress ratings only, and the functional operation of the device under these conditions is not implied. Exposure to maximum rating conditions for extended periods may affect device reliability.
This table lists the communication options of the device.
This device supports the following communication protocols.
This device measures the precipitating rain using the tipping bucket mechanism. It transmits data using Modbus RTU communication protocol over the RS-485 standard.
The following table outlines the capabilities of the device.
The following table shows sensor characteristics.
This table shows the mechanical properties of the device.
Environmental Conditions refer to the physical and atmospheric conditions surrounding the device.
This table indicates the electrical specifications of the device.
Absolute maximum ratings indicate the maximum electrical or environmental parameters this device can withstand without damage.
Stresses above the absolute maximum ratings listed in the table may cause permanent damage to the device. These are stress ratings only, and the functional operation of the device under these conditions is not implied. Exposure to maximum rating conditions for extended periods may affect device reliability.
This table lists the communication options of the device.
This device supports the following communication protocols.
This device communicates using the Modbus RTU protocol over the RS-485 standard.
This device's preconfigured user-definable address is 0x13. Users can change the address using the holding registers.
The following Modbus function codes are functional with this device.
The following registers are available with this device.
The host device can read one or more sensor data by calling the starting register address.
Request from the host: Device address [1 Byte] + Function code (0x04) [1 Byte] + Input register start address [2 Bytes MSB first] + Requested register length [2 Bytes MSB first] + CRC [2 Bytes MSB first]
Response from the device: Device address [1 Byte] + Function code (0x04) [1 Byte] + Response register length in Bytes [1 Byte] + Register 1 [2 Bytes MSB first] + Register N [2 Bytes MSB first] + CRC [2 Bytes MSB first]
The host device can read one or more configuration registers by calling the starting register address.
Request from the host: Device address [1 Byte] + Function code (0x03) [1 Byte] + Holding register start address [2 Bytes MSB first] + Requested register length [2 Bytes MSB first] + CRC [2 Bytes MSB first]
Response from the device: Device address [1 Byte] + Function code (0x03) [1 Byte] + Response register length in Bytes [1 Byte], Register 1 [2 Bytes MSB first] + Register N [2 Bytes MSB first] + CRC [2 Bytes MSB first]
The host device can write one configuration register.
Command from the host: Device address [1 Byte] + Function code (0x06) [1 Byte] + Holding register address [2 Bytes MSB first] + Value to be set [2 Bytes MSB first] + CRC [2 Bytes MSB first]
Response from the device: Device address [1 Byte] + Function code (0x06) [1 Byte] + Holding register address [1 Byte] + Value set [2 Bytes MSB first] + CRC [2 Bytes MSB first]
The host device can write multiple configuration registers.
Command from the host: Device address [1 Byte] + Function code (0x10) [1 Byte] + Holding register start address [2 Bytes MSB first] + Requested register length [2 Bytes] + Configuration values length in Bytes [1 Byte] + Value to be set 1 [2 Bytes MSB first] + Value to be set N [2 Bytes MSB first] + CRC [2 Bytes MSB first]
Response from the device: Device address [1 Byte] + Function code (0x10) [1 Byte] + Holding register start address [1 Byte], Value set [2 Bytes MSB first], CRC [2 Bytes MSB first]
The sensor array can measure different environmental factors like climate, noise, ambient light, and even different smells using AI on the edge. It can also control IR devices such as air-conditioners. This combination offers flexibility and cost-effectiveness for monitoring multiple environmental conditions in various applications, including intelligent buildings, agriculture, and industrial process control.
Onboard sensors
Ultrasonic transceivers Optional temperature sensor Optional accelerometer for 2-axis angle detection
Memory
Historical data for internal statistics Configuration and calibration storage
Microcontroller
STM32 C0 Series MCU, 32-bit ARM Cortex-M0+
Distance
0.5 m
10 m
Temperature
± 1°C @ 0...65°C
-40°C
85°C
Mounting Style
Screw Mount Optional arm with wall and Sigma profile mount
Dimensions
70d x 50h mm
Base Material
ASA (Acrylonitrile Styrene Acrylate) Impact, wear, and UV resistant
Weight
< 200g
Operating Ambient Temperature
-20°C…+60°C
Relative Humidity
0°C…+30°C: 80% +30°C…+60°C: 50%
Storage
-20°C…+60°C
10%…90% rH
Main Supply
DC 5…24V
RS-485
-7…+12V (No internal termination)
Internal Fuse
DC 60V 6A 1206 Case Slow-burning
Main Supply
DC 30V
RS-485
-7…+12V
RS-485
4-Pin connectivity (Power, GND, RS-485 A, RS-485 B)



Onboard sensors
Rain bucket (Pulse) Optional accelerometer for 2-axis angle detection
Memory
Historical data for internal statistics Configuration and calibration storage
Microcontroller
STM32 C0 Series MCU, 32-bit ARM Cortex-M0+
Rainfall
±0.25mm
0.25mm
25mm
Mounting Style
Screw Mount Optional arm with wall and Sigma profile mount
Dimensions
Main unit: 70d x 70h mm Optional rain gauge: 203mm (8-inch) standard
Base Material
ASA (Acrylonitrile Styrene Acrylate) Impact, wear, and UV resistant
Weight
< 200g
Operating Ambient Temperature
-20°C…+60°C
Relative Humidity
0°C…+30°C: 80% +30°C…+60°C: 50%
Storage
-20°C…+60°C
10%…90% rH
Main Supply
DC 5…24V
RS-485
-7…+12V (No internal termination)
Internal Fuse
DC 60V 6A 1206 Case Slow-burning
Main Supply
DC 30V
RS-485
-7…+12V
RS-485
4-Pin connectivity (Power, GND, RS-485 A, RS-485 B)



This page includes BME280 MicroPython library installation guidelines and documentation for Arduino/ESP32.
STM32 L4 Series ultra-low-power MCU 32-bit ARM Cortex-M4 80MHz, 256KB ROM, 64KB RAM
Power options
DC 3.3V-4.5V Battery input
1-Cell Li-Ion, Li-Po, Li-FePO4, and LiSoCl2 compatible Optional Solar panel input with MPPT power harvester
Optional USB-C Power input with battery charging
Antenna
On-board multiband antenna (698 - 8000 MHz) (Requires matching network adjustment according to the application)
LEDs
Status and optional battery charge LEDs
User input
Shared on-board button and expansion port button input Optional tap and double-tap detection
0,5 g acceleration sinus 1,0 g acceleration random
Storage
-20°C…+60°C
10%…90% rH
SPI CS
SPI active-low chip select output (1.8V)
M-04
Input
IRQ Input
Active-low interrupt input (1.8V)
M-05
Input
Analog Input
Analog Input (0-1.8V)
M-06
Input
GPIO
GPIO (1.8V)
M-07
Power
+3.3V
Supply voltage output (3.3V)
M-08
Power
+1.8V
Supply voltage output (1.8V)
M-09
Power
GND
Ground
M-10
Com
SPI SCLK
SPI Data clock output (1.8V)
M-11
Power
SPI MOSI
SPI Data output (1.8V)
M-12
Com
SPI MISO
SPI Data input (1.8V)
P-01
Output
PWM
PWM Output (1.8V) / Indicator LED shared
P-02
Input
IRQ Input
Active low Interrupt Input (1.8V) / Onboard button shared
P-03
Com
I2C SDA
I2C Serial data line (1.8V)
P-04
Com
I2C SCL
I2C Serial clock output (1.8V)
P-05
Power
GND
Ground / RFU
P-06
Input
Analog Input
Analog Input (0 - 1.8V)
P-07
Power
GND
Ground
P-08
Power
+1.8V
Supply voltage output (1.8V)
P-09
Power
+3.3V
Supply voltage output (3.3V)
P-10
Power
+BAT
Battery Input / Output (3.3V - 5.5V)
SW-1
SWD
RESET
Programmer SWD nRESET
SW-2
SWD
SWDIO
Programmer SWD SWDIO
SW-3
SWD
SWCLK
Programmer SWD SWCLK
SW-4
SWD
GND
Programmer GND
SW-5
SWD
VBAT
Programmer VCC, shared with VBAT (3.3V - 5.5V)
PW-1
Power
GND
Solar panel ground
PW-2
Power
+SLR
Solar panel input (+18V Max)
PW-3
Power
+BAT
Battery input (3.3V - 5.5V)
PW-4
Power
GND
Battery ground
Sensor port
12P Modular sensor port with I2C, SPI, analog, and digital pins
Expansion port
10P Flat cable port with I2C, analog, and digital lines
Wireless connectivity
M.2 Key-E Socket for type 2230-XX-E modules
Onboard sensors
Optional on-board accelerometer 3-Axis angle detection, vibration measurement Free-fall, tap, and double-tap detection Internal temperature measurement
Memory
Encrypted system configuration 2.000 point telemetry history with timestamp
Mounting Style
Screw-mount (PCB model) Magnetic (Enclosured model)
Dimensions
∅66 x 22.5d mm
Weight
< 50g excluding enclosure and batteries
Operating Ambient Temperature
0°C…+60°C
Relative Humidity
0°C…+30°C: 80% +30°C…+60°C: 50%
Pollution Degree
PD2
Altitude
< 2000m AMSL
Vibration (5 ≤ f ≤ 9 Hz)
1,75 mm amplitude sinus 3,5 mm amplitude random
Power Input
DC 3.3V - 5.5V
Sleep Current
< 1uA
Operating Current
< 30 mA + Sensor and wireless module consumptions
Low Voltage Shutdown
Configurable from 2.5V to 3.0V
Sensor Connector
12P Sensor Connector: 1.8V / 3.3V Power Domain, SPI, I2C, Int, Analog In, PWM
Expansion Port
10P FPC Port: Battery power, 1.8V / 3.3V Power domain, I2C, Analog In, PWM (shared with on-board LED), Int (shared with onboard button)
Connectivity Socket
PCIe M.2 Key E Socket: 3.3V Power domain, 1.8V I/O, USART, SPI
M-01
Com
I2C SDA
I2C Serial data line (1.8V)
M-02
Com
I2C SCL
I2C Serial clock output (1.8V)
M-03

Microcontroller
Vibration (9 ≤ f ≤ 150 Hz)
Com
Writes a single configuration parameter
2
0x10
Write multiple registers
Writes multiple configuration parameters
2 x N
Rainfall (10 mins)
Input Register (R)
0x0004
Rainfall (15 mins)
Input Register (R)
0x0005
Rainfall (30 mins)
Input Register (R)
0x0006
Rainfall (1 hr)
Input Register (R)
0x0007
Rainfall (24 hrs)
Input Register (R)
0x0008
Device Pitch (Actual)
Input Register (R)
0x0009
Device Roll (Actual)
Input Register (R)
0x000A
Device Temperature
Holding Register (R/W)
0x0101
Device Address
Holding Register (R/W)
0x0102
Baud Rate
Holding Register (R/W)
0x0103
IMU Correction (Pitch)
Holding Register (R/W)
0x0104
IMU Correction (Roll)
Holding Register (R/W)
0x0105
Rainfall Correction
0x03
Read holding registers
Returns configuration parameters
2
0x04
Read input registers
Returns measured readings and statistics
2
0x06
Input Register (R)
0x0001
Rainfall (1 mins)
Input Register (R)
0x0002
Rainfall (5 mins)
Input Register (R)
Write single register
0x0003
The following table outlines the capabilities of the device.
Onboard sensors
Solar panel Temperature sensor Optional accelerometer for 2-axis angle detection
Memory
Historical data for internal statistics Configuration and calibration storage
Microcontroller
STM32 C0 Series MCU, 32-bit ARM Cortex-M0+
The following table shows sensor characteristics.
Light Level
Panel Temperature
± 1°C @ 0...65°C
-40°C
85°C
This table shows the mechanical properties of the device.
Mounting Style
Screw Mount Optional arm with wall and Sigma profile mount
Dimensions
70w x 70d x 20h mm
Base Material
ASA (Acrylonitrile Styrene Acrylate) Impact, wear, and UV resistant
Weight
< 200g
Environmental Conditions refer to the physical and atmospheric conditions surrounding the device.
Operating Ambient Temperature
-20°C…+60°C
Relative Humidity
0°C…+30°C: 80% +30°C…+60°C: 50%
Storage
-20°C…+60°C
10%…90% rH
This table indicates the electrical specifications of the device.
Main Supply
DC 5…24V
RS-485
-7…+12V (No internal termination)
Internal Fuse
DC 60V 6A 1206 Case Slow-burning
Absolute maximum ratings indicate the maximum electrical or environmental parameters this device can withstand without damage.
Stresses above the absolute maximum ratings listed in the table may cause permanent damage to the device. These are stress ratings only, and the functional operation of the device under these conditions is not implied. Exposure to maximum rating conditions for extended periods may affect device reliability.
Main Supply
DC 30V
RS-485
-7…+12V
This table lists the communication options of the device.
RS-485
4-Pin connectivity (Power, GND, RS-485 A, RS-485 B)
This device supports the following communication protocols.



The following table outlines the capabilities of the device.
Onboard sensors
Anemometer (Pulse) Wind arrow (Hall effect) Optional temperature sensor Optional accelerometer for 2-axis angle detection
Memory
Historical data for internal statistics Configuration and calibration storage
Microcontroller
STM32 C0 Series MCU, 32-bit ARM Cortex-M0+
The following table shows sensor characteristics.
Wind Speed
±1 m/s
0.5 m/s
30 m/s
Wind Direction
±1°
0°
359.99°
This table shows the mechanical properties of the device.
Mounting Style
Screw Mount Optional arm with wall and Sigma profile mount
Dimensions
100w x 100h x 100d mm
Base Material
ASA (Acrylonitrile Styrene Acrylate) Impact, wear, and UV resistant
Weight
< 200g
Environmental Conditions refer to the physical and atmospheric conditions surrounding the device.
Operating Ambient Temperature
-20°C…+60°C
Relative Humidity
0°C…+30°C: 80% +30°C…+60°C: 50%
Storage
-20°C…+60°C
10%…90% rH
This table indicates the electrical specifications of the device.
Main Supply
DC 5…24V
RS-485
-7…+12V (No internal termination)
Internal Fuse
DC 60V 6A 1206 Case Slow-burning
Absolute maximum ratings indicate the maximum electrical or environmental parameters this device can withstand without damage.
Stresses above the absolute maximum ratings listed in the table may cause permanent damage to the device. These are stress ratings only, and the functional operation of the device under these conditions is not implied. Exposure to maximum rating conditions for extended periods may affect device reliability.
Main Supply
DC 30V
RS-485
-7…+12V
This table lists the communication options of the device.
RS-485
4-Pin connectivity (Power, GND, RS-485 A, RS-485 B)
This device supports the following communication protocols.
The following table outlines the capabilities of the device.
Onboard sensors
Ultrasonic transceivers Optional temperature sensor Optional accelerometer for 2-axis angle detection
Memory
Historical data for internal statistics Configuration and calibration storage
Microcontroller
STM32 C0 Series MCU, 32-bit ARM Cortex-M0+ with TCXO (Temperature Compensated Crystal Oscillator)
The following table shows sensor characteristics.
Wind speed
±1% @ 15m/s
0.1 m/s
60 m/s
Wind direction
±2° @ 15m/s
0°
359.99°
This table shows the mechanical properties of the device.
Mounting Style
Screw Mount Optional arm with wall and Sigma profile mount
Dimensions
155d x 100h mm
Base Material
ASA (Acrylonitrile Styrene Acrylate) Impact, wear, and UV resistant
Weight
< 200g
Environmental Conditions refer to the physical and atmospheric conditions surrounding the device.
Operating Ambient Temperature
-20°C…+60°C
Relative Humidity
0°C…+30°C: 80% +30°C…+60°C: 50%
Storage
-20°C…+60°C
10%…90% rH
This table indicates the electrical specifications of the device.
Main Supply
DC 5…24V
RS-485
-7…+12V (No internal termination)
Internal Fuse
DC 60V 6A 1206 Case Slow-burning
Absolute maximum ratings indicate the maximum electrical or environmental parameters this device can withstand without damage.
Stresses above the absolute maximum ratings listed in the table may cause permanent damage to the device. These are stress ratings only, and the functional operation of the device under these conditions is not implied. Exposure to maximum rating conditions for extended periods may affect device reliability.
Main Supply
DC 30V
RS-485
-7…+12V
This table lists the communication options of the device.
RS-485
4-Pin connectivity (Power, GND, RS-485 A, RS-485 B)
This device supports the following communication protocols.



Defines sensor readout variables.
Initializes the BME280 sensor.
Parameters
_i2c: I2C Handle
_i2cAddress: I2C Address
Returns
None
Configures the BME280 sensor.
Parameters
_temperatureSensorOversampling: Oversampling setting for the temperature sensor.
_humiditySensorOversampling: Oversampling setting for the humidity sensor.
_pressureSensorOversampling: Oversampling setting for the pressure sensor.
_iirFilter: IIR filter setting.
_standbyTime: Standby time setting.
_measurementMode: Measurement mode setting.
Returns
ErrorStatus: Error status.
Sets measurement mode of the BME280 sensor.
Parameters
_measurementMode: Measurement mode setting.
Returns
ErrorStatus: Error status.
Measures temperature, pressure, and humidity using the BME280 sensor.
Parameters
_forceRead (bool): Force sensor to measure one sample.
*tphdvData (TPHDVData): Pointer to the TPHDVData struct
Returns
ErrorStatus: Error status.
Measures temperature, pressure, and relative humidity using the BME280 sensor & calculates dew point and vapor pressure deficit.
Parameters
_forceRead (bool): Force sensor to measure one sample.
*tphdvData (TPHDVData): Pointer to the TPHDVData struct
Returns
ErrorStatus: Error status.
Reads temperature using the BME280 sensor.
Parameters
_forceRead (bool): Force sensor to measure one sample.
*tphdvData (TPHDVData): Pointer to the TPHDVData struct
Returns
ErrorStatus: Error status.
Reads pressure using the BME280 sensor.
Parameters
_forceRead (bool): Force sensor to measure one sample.
*tphdvData (TPHDVData): Pointer to the TPHDVData struct
Returns
ErrorStatus: Error status.
Reads humidity using the BME280 sensor.
Parameters
_forceRead (bool): Force sensor to measure one sample.
*tphdvData (TPHDVData): Pointer to the TPHDVData struct
Returns
ErrorStatus: Error status.
Calculates altitude using sea level pressure and measured pressure data.
Parameters
pressure (float): Measured pressure in hectoPascals (hPa)
meanSeaLevelPressure (float): Mean sea level pressure in bar
Returns
float: Altitude in meters
A complete code sample is coming soon.
typedef struct
{
float temperature;
float humidity;
float pressure;
float dewPoint;
float vpd;
} TPHDVData;void BME280_Init(
I2C_HandleTypeDef *_i2c,
bme280_i2c_address_types_t _i2cAddress)// Sample code is coming soon.ErrorStatus BME280_Config(
bme280_ctrl_meas_osrs_t_types_t _temperatureSensorOversampling,
bme280_ctrl_hum_osrs_h_types_t _humiditySensorOversampling,
bme280_ctrl_meas_osrs_p_types_t _pressureSensorOversampling,
bme280_config_filter_iir_types_t _iirFilter,
bme280_config_standby_time_types_t _standbyTime,
bme280_ctrl_meas_mode_types_t _measurementMode)// Sample code is coming soon.ErrorStatus BME280_SetMeasurementMode(
bme280_ctrl_meas_mode_types_t _measurementMode)// Sample code is coming soon.ErrorStatus BME280_ReadTPH(
bool _forceRead,
TPHDVData *tphdvData)// Sample code is coming soon.ErrorStatus BME280_ReadTPHDV(
bool _forceRead,
TPHDVData *tphdvData)// Sample code is coming soon.ErrorStatus BME280_ReadTemperature(
bool _forceRead,
TPHDVData *tphdvData)// Sample code is coming soon.ErrorStatus BME280_ReadPressure(
bool _forceRead,
TPHDVData *tphdvData)// Sample code is coming soon.ErrorStatus BME280_ReadHumidity(
bool _forceRead,
TPHDVData *tphdvData)// Sample code is coming soon.float BME280_CalculateAltitude(
float pressure,
float meanSeaLevelPressure)// Sample code is coming soon.BME688 is an integrated environmental sensor that combines multiple measurements, including temperature, humidity, pressure, and volatile organic compounds (VOCs), in a single package. BME688 also has a gas scanner function, distinguishing pre-trained gasses with AI.
Temperature
± 0.5°C @ 0...65°C
-40°C
85°C
Relative Humidity
± 3% rH @ 20-80% rH 25°C
0% rH
100% rH
Air Pressure
BME280 is a high-accuracy combined temperature, humidity, and pressure sensor.
Temperature
± 1°C @ 0...65°C
-40°C
85°C
Relative Humidity
± 3% rH @ 20-80% rH 25°C
0% rH
100% rH
Air Pressure
TSL2540 is a high-sensitivity light intensity sensor that measures visible and infrared lights. In addition, this sensor features a trigger function that wakes the system up in case of a threshold hit.
Visible Light
363 counts / μW/cm2
White LED, 2700K
Infrared Light
352 counts / μW/cm2
950 nm LED
This sensor array has an infrared transmitter, which can control air conditioners or multimedia systems.
Peak wavelength
940 nm
Angle of half intensity
φ = ± 60°
Power dissipation
190 mW
The microphone on this sensor array can measure average sound pressure.
Sensitivity
-42 dBV/Pa
94 dB SPL @ 1 kHz
Signal to Noise Ratio
59 dB(A)
94dB SPL @ 1 kHz, A-weighted (20-10kHz)
Total Harmonic Distortion
0.1 %
94 dB SPL @ 1 kHz
Some of our devices come with firmware that automatically utilizes the module without requiring any coding. For development kits or further customization, you may choose to use the following libraries and samples to create a custom application.

The following table outlines the capabilities of the device.
Onboard sensors
Bosch BME280 Environmental sensor Optional accelerometer for 2-axis angle detection
Memory
Historical data for internal statistics Configuration and calibration storage
Microcontroller
STM32 C0 Series MCU, 32-bit ARM Cortex-M0+
The following table shows sensor characteristics.
Temperature
± 1°C @ 0...65°C
-40°C
85°C
Relative Humidity
± 3% rH @ 20-80% rH 25°C
0% rH
100% rH
Air Pressure
This table shows the mechanical properties of the device.
Mounting Style
Screw Mount Optional arm with wall and Sigma profile mount
Dimensions
70d x 120h mm
Base Material
ASA (Acrylonitrile Styrene Acrylate) Impact, wear, and UV resistant
Weight
< 200g
Environmental Conditions refer to the physical and atmospheric conditions surrounding the device.
Operating Ambient Temperature
-20°C…+60°C
Relative Humidity
0°C…+30°C: 80% +30°C…+60°C: 50%
Storage
-20°C…+60°C
10%…90% rH
This table indicates the electrical specifications of the device.
Main Supply
DC 5…24V
RS-485
-7…+12V (No internal termination)
Internal Fuse
DC 60V 6A 1206 Case Slow-burning
Absolute maximum ratings indicate the maximum electrical or environmental parameters this device can withstand without damage.
Stresses above the absolute maximum ratings listed in the table may cause permanent damage to the device. These are stress ratings only, and the functional operation of the device under these conditions is not implied. Exposure to maximum rating conditions for extended periods may affect device reliability.
Main Supply
DC 30V
RS-485
-7…+12V
This table lists the communication options of the device.
RS-485
4-Pin connectivity (Power, GND, RS-485 A, RS-485 B)
This device supports the following communication protocols.



This device communicates using the Modbus RTU protocol over the RS-485 standard.
This device's preconfigured user-definable address is 0x14. Users can change the address using the holding registers.
The following Modbus function codes are functional with this device.
The following registers are available with this device.
The host device can read one or more sensor data by calling the starting register address.
Request from the host: Device address [1 Byte] + Function code (0x04) [1 Byte] + Input register start address [2 Bytes MSB first] + Requested register length [2 Bytes MSB first] + CRC [2 Bytes MSB first]
Response from the device: Device address [1 Byte] + Function code (0x04) [1 Byte] + Response register length in Bytes [1 Byte] + Register 1 [2 Bytes MSB first] + Register N [2 Bytes MSB first] + CRC [2 Bytes MSB first]
The host device can read one or more configuration registers by calling the starting register address.
Request from the host: Device address [1 Byte] + Function code (0x03) [1 Byte] + Holding register start address [2 Bytes MSB first] + Requested register length [2 Bytes MSB first] + CRC [2 Bytes MSB first]
Response from the device: Device address [1 Byte] + Function code (0x03) [1 Byte] + Response register length in Bytes [1 Byte], Register 1 [2 Bytes MSB first] + Register N [2 Bytes MSB first] + CRC [2 Bytes MSB first]
The host device can write one configuration register.
Command from the host: Device address [1 Byte] + Function code (0x06) [1 Byte] + Holding register address [2 Bytes MSB first] + Value to be set [2 Bytes MSB first] + CRC [2 Bytes MSB first]
Response from the device: Device address [1 Byte] + Function code (0x06) [1 Byte] + Holding register address [1 Byte] + Value set [2 Bytes MSB first] + CRC [2 Bytes MSB first]
The host device can write multiple configuration registers.
Command from the host: Device address [1 Byte] + Function code (0x10) [1 Byte] + Holding register start address [2 Bytes MSB first] + Requested register length [2 Bytes] + Configuration values length in Bytes [1 Byte] + Value to be set 1 [2 Bytes MSB first] + Value to be set N [2 Bytes MSB first] + CRC [2 Bytes MSB first]
Response from the device: Device address [1 Byte] + Function code (0x10) [1 Byte] + Holding register start address [1 Byte], Value set [2 Bytes MSB first], CRC [2 Bytes MSB first]
This device communicates using the Modbus RTU protocol over the RS-485 standard.
This device's preconfigured user-definable address is 0x11. Users can change the address using the holding registers.
The following Modbus function codes are functional with this device.
The following registers are available with this device.
The host device can read one or more sensor data by calling the starting register address.
Request from the host: Device address [1 Byte] + Function code (0x04) [1 Byte] + Input register start address [2 Bytes MSB first] + Requested register length [2 Bytes MSB first] + CRC [2 Bytes MSB first]
Response from the device: Device address [1 Byte] + Function code (0x04) [1 Byte] + Response register length in Bytes [1 Byte] + Register 1 [2 Bytes MSB first] + Register N [2 Bytes MSB first] + CRC [2 Bytes MSB first]
The host device can read one or more configuration registers by calling the starting register address.
Request from the host: Device address [1 Byte] + Function code (0x03) [1 Byte] + Holding register start address [2 Bytes MSB first] + Requested register length [2 Bytes MSB first] + CRC [2 Bytes MSB first]
Response from the device: Device address [1 Byte] + Function code (0x03) [1 Byte] + Response register length in Bytes [1 Byte], Register 1 [2 Bytes MSB first] + Register N [2 Bytes MSB first] + CRC [2 Bytes MSB first]
The host device can write one configuration register.
Command from the host: Device address [1 Byte] + Function code (0x06) [1 Byte] + Holding register address [2 Bytes MSB first] + Value to be set [2 Bytes MSB first] + CRC [2 Bytes MSB first]
Response from the device: Device address [1 Byte] + Function code (0x06) [1 Byte] + Holding register address [1 Byte] + Value set [2 Bytes MSB first] + CRC [2 Bytes MSB first]
The host device can write multiple configuration registers.
Command from the host: Device address [1 Byte] + Function code (0x10) [1 Byte] + Holding register start address [2 Bytes MSB first] + Requested register length [2 Bytes] + Configuration values length in Bytes [1 Byte] + Value to be set 1 [2 Bytes MSB first] + Value to be set N [2 Bytes MSB first] + CRC [2 Bytes MSB first]
Response from the device: Device address [1 Byte] + Function code (0x10) [1 Byte] + Holding register start address [1 Byte], Value set [2 Bytes MSB first], CRC [2 Bytes MSB first]
This device measures soil temperature, EC (Electrical Conductivity), and moisture. It transmits data using Modbus RTU communication protocol over the RS-485 standard.
The following table outlines the capabilities of the device.
The following table shows sensor characteristics.
This table shows the mechanical properties of the device.
Environmental Conditions refer to the physical and atmospheric conditions surrounding the device.
This table indicates the electrical specifications of the device.
Absolute maximum ratings indicate the maximum electrical or environmental parameters this device can withstand without damage.
Stresses above the absolute maximum ratings listed in the table may cause permanent damage to the device. These are stress ratings only, and the functional operation of the device under these conditions is not implied. Exposure to maximum rating conditions for extended periods may affect device reliability.
This table lists the communication options of the device.
This device supports the following communication protocols.
This device communicates using the Modbus RTU protocol over the RS-485 standard.
This device's preconfigured user-definable address is 0x12. Users can change the address using the holding registers.
The following Modbus function codes are functional with this device.
The following registers are available with this device.
The host device can read one or more sensor data by calling the starting register address.
Request from the host: Device address [1 Byte] + Function code (0x04) [1 Byte] + Input register start address [2 Bytes MSB first] + Requested register length [2 Bytes MSB first] + CRC [2 Bytes MSB first]
Response from the device: Device address [1 Byte] + Function code (0x04) [1 Byte] + Response register length in Bytes [1 Byte] + Register 1 [2 Bytes MSB first] + Register N [2 Bytes MSB first] + CRC [2 Bytes MSB first]
The host device can read one or more configuration registers by calling the starting register address.
Request from the host: Device address [1 Byte] + Function code (0x03) [1 Byte] + Holding register start address [2 Bytes MSB first] + Requested register length [2 Bytes MSB first] + CRC [2 Bytes MSB first]
Response from the device: Device address [1 Byte] + Function code (0x03) [1 Byte] + Response register length in Bytes [1 Byte], Register 1 [2 Bytes MSB first] + Register N [2 Bytes MSB first] + CRC [2 Bytes MSB first]
The host device can write one configuration register.
Command from the host: Device address [1 Byte] + Function code (0x06) [1 Byte] + Holding register address [2 Bytes MSB first] + Value to be set [2 Bytes MSB first] + CRC [2 Bytes MSB first]
Response from the device: Device address [1 Byte] + Function code (0x06) [1 Byte] + Holding register address [1 Byte] + Value set [2 Bytes MSB first] + CRC [2 Bytes MSB first]
The host device can write multiple configuration registers.
Command from the host: Device address [1 Byte] + Function code (0x10) [1 Byte] + Holding register start address [2 Bytes MSB first] + Requested register length [2 Bytes] + Configuration values length in Bytes [1 Byte] + Value to be set 1 [2 Bytes MSB first] + Value to be set N [2 Bytes MSB first] + CRC [2 Bytes MSB first]
Response from the device: Device address [1 Byte] + Function code (0x10) [1 Byte] + Holding register start address [1 Byte], Value set [2 Bytes MSB first], CRC [2 Bytes MSB first]
± 0.6 hPa @ 0-65°C
300 hPa
1100 hPa
Indoor Air Quality
N/A
0 IAQ Index
500 IAQ Index
tVOC
N/A
N/A
N/A
CO2 Equivalent
N/A
N/A
N/A
Gas Classification
N/A
2 Classes
4 Classes
Dew Point
N/A
-40°C
40°C
± 1 hPa @ 0-65°C
300 hPa
1100 hPa
Dew Point
N/A
-40°C
40°C
Acoustic Overload Point
129 dB SPL
0% THD @ 1 kHz
± 1 hPa @ 0-65°C
300 hPa
1100 hPa
Writes a single configuration parameter
2
0x10
Write multiple registers
Writes multiple configuration parameters
2 x N
Distance (Min)
Input Register (R)
0x0004
Distance (Max)
Input Register (R)
0x0005
Distance (Std. Dev.)
Input Register (R)
0x0006
Temperature (Actual)
Input Register (R)
0x0007
Temperature (Average)
Input Register (R)
0x0008
Temperature (Min)
Input Register (R)
0x0009
Temperature (Max)
Input Register (R)
0x000A
Temperature (Std. Dev.)
Input Register (R)
0x000B
Device Pitch (Actual)
Input Register (R)
0x000C
Device Roll (Actual)
Input Register (R)
0x000D
Device Temperature
Holding Register (R/W)
0x0101
Device Address
Holding Register (R/W)
0x0102
Baud Rate
Holding Register (R/W)
0x0103
Statistics Period (Secs)
Holding Register (R/W)
0x0104
Distance Correction
Holding Register (R/W)
0x0105
IMU Correction (Pitch)
Holding Register (R/W)
0x0106
IMU Correction (Roll)
Holding Register (R/W)
0x0107
Temperature Correction
0x03
Read holding registers
Returns configuration parameters
2
0x04
Read input registers
Returns measured readings and statistics
2
0x06
Input Register (R)
0x0001
Distance (Actual)
Input Register (R)
0x0002
Distance (Average)
Input Register (R)
Write single register
0x0003
Writes a single configuration parameter
2
0x10
Write multiple registers
Writes multiple configuration parameters
2 x N
Wind Speed (Max)
Input Register (R)
0x0004
Wind Speed (Average)
Input Register (R)
0x0005
Wind Speed (Std. Dev.)
Input Register (R)
0x0006
Wind Direction (Actual)
Input Register (R)
0x0007
Device Direction (Actual)
Input Register (R)
0x0008
Device Pitch (Actual)
Input Register (R)
0x0009
Device Roll (Actual)
Input Register (R)
0x000A
Device Temperature
Holding Register (R/W)
0x0101
Device Address
Holding Register (R/W)
0x0102
Baud Rate
Holding Register (R/W)
0x0103
Statistics Period (Secs)
Holding Register (R/W)
0x0104
IMU Correction (Dir)
Holding Register (R/W)
0x0105
IMU Correction (Pitch)
Holding Register (R/W)
0x0106
IMU Correction (Roll)
Holding Register (R/W)
0x0107
Heater Config
0x03
Read holding registers
Returns configuration parameters
2
0x04
Read input registers
Returns measured readings and statistics
2
0x06
Input Register (R)
0x0001
Wind Speed (Actual)
Input Register (R)
0x0002
Wind Speed (Min)
Input Register (R)
Write single register
0x0003
Onboard sensors
Temperature sensor EC Probe Moisture probe Optional accelerometer for 2-axis angle detection
Memory
Historical data for internal statistics Configuration and calibration storage
Microcontroller
STM32 C0 Series MCU, 32-bit ARM Cortex-M0+
Soil Temperature
EC
Soil Moisture
Mounting Style
Manual insertion
Dimensions
60w x 20h x 120d mm
Base Material
ASA (Acrylonitrile Styrene Acrylate) Impact, wear, and UV resistant
Weight
< 200g
Operating Ambient Temperature
-20°C…+60°C
Relative Humidity
0°C…+30°C: 80% +30°C…+60°C: 50%
Storage
-20°C…+60°C
10%…90% rH
Main Supply
DC 5…24V
RS-485
-7…+12V (No internal termination)
Internal Fuse
DC 60V 6A 1206 Case Slow-burning
Main Supply
DC 30V
RS-485
-7…+12V
RS-485
4-Pin connectivity (Power, GND, RS-485 A, RS-485 B)
Writes a single configuration parameter
2
0x10
Write multiple registers
Writes multiple configuration parameters
2 x N
Wind Speed (Max)
Input Register (R)
0x0004
Wind Speed (Average)
Input Register (R)
0x0005
Wind Speed (Std. Dev.)
Input Register (R)
0x0006
Wind Direction (Actual)
Input Register (R)
0x0007
Device Direction (Actual)
Input Register (R)
0x0008
Device Pitch (Actual)
Input Register (R)
0x0009
Device Roll (Actual)
Input Register (R)
0x000A
Device Temperature
Holding Register (R/W)
0x0101
Device Address
Holding Register (R/W)
0x0102
Baud Rate
Holding Register (R/W)
0x0103
Statistics Period (Secs)
Holding Register (R/W)
0x0104
IMU Correction (Dir)
Holding Register (R/W)
0x0105
IMU Correction (Pitch)
Holding Register (R/W)
0x0106
IMU Correction (Roll)
Holding Register (R/W)
0x0107
Heater Config
0x03
Read holding registers
Returns configuration parameters
2
0x04
Read input registers
Returns measured readings and statistics
2
0x06
Input Register (R)
0x0001
Wind Speed (Actual)
Input Register (R)
0x0002
Wind Speed (Min)
Input Register (R)
Write single register
0x0003
The following table outlines the capabilities of the device.
Onboard sensors
Sensirion SEN55 Environmental Sensor Sensirion SCD41 CO2 Sensor Optional accelerometer for 2-axis angle detection
Memory
Historical data for internal statistics Configuration and calibration storage
Microcontroller
STM32 C0 Series MCU, 32-bit ARM Cortex-M0+
The following table shows sensor characteristics.
VOC Index
<±15 VOC Index points or % VOC Index m.v. (the larger)
1
500
NOx Index
<±15 NOx Index points or % NOx Index m.v. (the larger)
1
500
Relative Humidity
This table shows the mechanical properties of the device.
Mounting Style
Screw Mount
Dimensions
80w x 60h x 35d mm
Base Material
ASA (Acrylonitrile Styrene Acrylate) Impact, wear, and UV resistant
Weight
< 200g
Environmental Conditions refer to the physical and atmospheric conditions surrounding the device.
Operating Ambient Temperature
10°C…+40°C
Relative Humidity
20%...80% RH
Storage
-20°C…+60°C
10%…90% RH (non-condensing)
This table indicates the electrical specifications of the device.
Main Supply
DC 5…24V
RS-485
-7…+12V (No internal termination)
Internal Fuse
DC 60V 6A 1206 Case Slow-burning
Absolute maximum ratings indicate the maximum electrical or environmental parameters this device can withstand without damage.
Stresses above the absolute maximum ratings listed in the table may cause permanent damage to the device. These are stress ratings only, and the functional operation of the device under these conditions is not implied. Exposure to maximum rating conditions for extended periods may affect device reliability.
Operating Ambient Temperature
-10°C…+50°C
Relative Humidity
0%...90% RH (non-condensing)
Main Supply
DC 30V
RS-485
-7…+12V
This table lists the communication options of the device.
RS-485
4-Pin connectivity (Power, GND, RS-485 A, RS-485 B)
This device supports the following communication protocols.


The following Modbus function codes are functional with this device.
0x03
Read holding registers
Returns configuration parameters
2
0x04
Read input registers
Returns measured readings and statistics
2
0x06
The following registers are available with this device.
Input Register (R)
0x0001
Irradiance (Actual)
Input Register (R)
0x0002
Irradiance (Average)
Input Register (R)
The host device can read one or more sensor data by calling the starting register address.
Request from the host: Device address [1 Byte] + Function code (0x04) [1 Byte] + Input register start address [2 Bytes MSB first] + Requested register length [2 Bytes MSB first] + CRC [2 Bytes MSB first]
Response from the device: Device address [1 Byte] + Function code (0x04) [1 Byte] + Response register length in Bytes [1 Byte] + Register 1 [2 Bytes MSB first] + Register N [2 Bytes MSB first] + CRC [2 Bytes MSB first]
The host device can read one or more configuration registers by calling the starting register address.
Request from the host: Device address [1 Byte] + Function code (0x03) [1 Byte] + Holding register start address [2 Bytes MSB first] + Requested register length [2 Bytes MSB first] + CRC [2 Bytes MSB first]
Response from the device: Device address [1 Byte] + Function code (0x03) [1 Byte] + Response register length in Bytes [1 Byte], Register 1 [2 Bytes MSB first] + Register N [2 Bytes MSB first] + CRC [2 Bytes MSB first]
The host device can write one configuration register.
Command from the host: Device address [1 Byte] + Function code (0x06) [1 Byte] + Holding register address [2 Bytes MSB first] + Value to be set [2 Bytes MSB first] + CRC [2 Bytes MSB first]
Response from the device: Device address [1 Byte] + Function code (0x06) [1 Byte] + Holding register address [1 Byte] + Value set [2 Bytes MSB first] + CRC [2 Bytes MSB first]
The host device can write multiple configuration registers.
Command from the host: Device address [1 Byte] + Function code (0x10) [1 Byte] + Holding register start address [2 Bytes MSB first] + Requested register length [2 Bytes] + Configuration values length in Bytes [1 Byte] + Value to be set 1 [2 Bytes MSB first] + Value to be set N [2 Bytes MSB first] + CRC [2 Bytes MSB first]
Response from the device: Device address [1 Byte] + Function code (0x10) [1 Byte] + Holding register start address [1 Byte], Value set [2 Bytes MSB first], CRC [2 Bytes MSB first]
@ 25 °C, 30-70 %RH: ±4.5% rH (typical), ±6% rH (maximum)
Temperature
@ 15-30 °C, 50 %RH: ±0.45°C (typical), ±0.7°C (maximum)
PM 1.0
0 to 100 μg/m3: ±[5 μg/m3 + 5 % m.v.] 100 to 1000 μg/m3: ±10 % m.v.
N/A
N/A
PM 2.5
0 to 100 μg/m3: ±[5 μg/m3 + 5 % m.v.] 100 to 1000 μg/m3: ±10 % m.v.
N/A
N/A
PM 4.0
0 to 100 μg/m3: ±25 μg/m3 100 to 1000 μg/m3: ±25 % m.v.
N/A
N/A
PM 10
0 to 100 μg/m3: ±25 μg/m3 100 to 1000 μg/m3: ±25 % m.v.
N/A
N/A
CO2
400 ppm ... 1000 ppm ±(50 ppm + 2.5% of reading) 1001 ppm ... 2000 ppm ±(50 ppm + 3% of reading) 2001 ppm ... 5000 ppm ±(40 ppm + 5% of reading)
400 ppm
5000 ppm
Write single register
Writes a single configuration parameter
2
0x10
Write multiple registers
Writes multiple configuration parameters
2 x N
0x0003
Irradiance (Min)
Input Register (R)
0x0004
Irradiance (Max)
Input Register (R)
0x0005
Irradiance (Std. Dev.)
Input Register (R)
0x0006
Panel Temperature (Actual)
Input Register (R)
0x0007
Panel Temperature (Average)
Input Register (R)
0x0008
Panel Temperature (Min)
Input Register (R)
0x0009
Panel Temperature (Max)
Input Register (R)
0x000A
Panel Temperature (Std. Dev.)
Input Register (R)
0x000B
Device Pitch (Actual)
Input Register (R)
0x000C
Device Roll (Actual)
Input Register (R)
0x000D
Device Temperature
Holding Register (R/W)
0x0101
Device Address
Holding Register (R/W)
0x0102
Baud Rate
Holding Register (R/W)
0x0103
Statistics Period (Secs)
Holding Register (R/W)
0x0104
IMU Correction (Pitch)
Holding Register (R/W)
0x0105
IMU Correction (Roll)
Holding Register (R/W)
0x0106
Irradiance Correction 1
Holding Register (R/W)
0x0107
Irradiance Correction 2
Holding Register (R/W)
0x0108
Irradiance Correction 3
Holding Register (R/W)
0x0109
Temperature Correction
This device communicates using the Modbus RTU protocol over the RS-485 standard.
This device's preconfigured user-definable address is 0x18. Users can change the address using the holding registers.
The following Modbus function codes are functional with this device.
The following registers are available with this device.
The host device can read one or more sensor data by calling the starting register address.
Request from the host: Device address [1 Byte] + Function code (0x04) [1 Byte] + Input register start address [2 Bytes MSB first] + Requested register length [2 Bytes MSB first] + CRC [2 Bytes MSB first]
Response from the device: Device address [1 Byte] + Function code (0x04) [1 Byte] + Response register length in Bytes [1 Byte] + Register 1 [2 Bytes MSB first] + Register N [2 Bytes MSB first] + CRC [2 Bytes MSB first]
The host device can read one or more configuration registers by calling the starting register address.
Request from the host: Device address [1 Byte] + Function code (0x03) [1 Byte] + Holding register start address [2 Bytes MSB first] + Requested register length [2 Bytes MSB first] + CRC [2 Bytes MSB first]
Response from the device: Device address [1 Byte] + Function code (0x03) [1 Byte] + Response register length in Bytes [1 Byte], Register 1 [2 Bytes MSB first] + Register N [2 Bytes MSB first] + CRC [2 Bytes MSB first]
The host device can write one configuration register.
Command from the host: Device address [1 Byte] + Function code (0x06) [1 Byte] + Holding register address [2 Bytes MSB first] + Value to be set [2 Bytes MSB first] + CRC [2 Bytes MSB first]
Response from the device: Device address [1 Byte] + Function code (0x06) [1 Byte] + Holding register address [1 Byte] + Value set [2 Bytes MSB first] + CRC [2 Bytes MSB first]
The host device can write multiple configuration registers.
Command from the host: Device address [1 Byte] + Function code (0x10) [1 Byte] + Holding register start address [2 Bytes MSB first] + Requested register length [2 Bytes] + Configuration values length in Bytes [1 Byte] + Value to be set 1 [2 Bytes MSB first] + Value to be set N [2 Bytes MSB first] + CRC [2 Bytes MSB first]
Response from the device: Device address [1 Byte] + Function code (0x10) [1 Byte] + Holding register start address [1 Byte], Value set [2 Bytes MSB first], CRC [2 Bytes MSB first]
This device communicates using the Modbus RTU protocol over the RS-485 standard.
This device's preconfigured user-definable address is 0x16. Users can change the address using the holding registers.
The following Modbus function codes are functional with this device.
The following registers are available with this device.
The host device can read one or more sensor data by calling the starting register address.
Request from the host: Device address [1 Byte] + Function code (0x04) [1 Byte] + Input register start address [2 Bytes MSB first] + Requested register length [2 Bytes MSB first] + CRC [2 Bytes MSB first]
Response from the device: Device address [1 Byte] + Function code (0x04) [1 Byte] + Response register length in Bytes [1 Byte] + Register 1 [2 Bytes MSB first] + Register N [2 Bytes MSB first] + CRC [2 Bytes MSB first]
The host device can read one or more configuration registers by calling the starting register address.
Request from the host: Device address [1 Byte] + Function code (0x03) [1 Byte] + Holding register start address [2 Bytes MSB first] + Requested register length [2 Bytes MSB first] + CRC [2 Bytes MSB first]
Response from the device: Device address [1 Byte] + Function code (0x03) [1 Byte] + Response register length in Bytes [1 Byte], Register 1 [2 Bytes MSB first] + Register N [2 Bytes MSB first] + CRC [2 Bytes MSB first]
The host device can write one configuration register.
Command from the host: Device address [1 Byte] + Function code (0x06) [1 Byte] + Holding register address [2 Bytes MSB first] + Value to be set [2 Bytes MSB first] + CRC [2 Bytes MSB first]
Response from the device: Device address [1 Byte] + Function code (0x06) [1 Byte] + Holding register address [1 Byte] + Value set [2 Bytes MSB first] + CRC [2 Bytes MSB first]
The host device can write multiple configuration registers.
Command from the host: Device address [1 Byte] + Function code (0x10) [1 Byte] + Holding register start address [2 Bytes MSB first] + Requested register length [2 Bytes] + Configuration values length in Bytes [1 Byte] + Value to be set 1 [2 Bytes MSB first] + Value to be set N [2 Bytes MSB first] + CRC [2 Bytes MSB first]
Response from the device: Device address [1 Byte] + Function code (0x10) [1 Byte] + Holding register start address [1 Byte], Value set [2 Bytes MSB first], CRC [2 Bytes MSB first]
The M.2 form factor LoRa transceiver module is a compact and low-power device that enables long-range wireless data communication using LoRa (Long Range) technology. It is suitable for various IoT and industrial applications.
The following table outlines the capabilities of the device.
Writes a single configuration parameter
2
0x10
Write multiple registers
Writes multiple configuration parameters
2 x N
Temperature (Min)
Input Register (R)
0x0004
Temperature (Max)
Input Register (R)
0x0005
Temperature (Std. Dev.)
Input Register (R)
0x0006
Relative Humidity (Actual)
Input Register (R)
0x0007
Relative Humidity (Average)
Input Register (R)
0x0008
Relative Humidity (Min)
Input Register (R)
0x0009
Relative Humidity (Max)
Input Register (R)
0x000A
Relative Humidity (Std. Dev.)
Input Register (R)
0x000B
Pressure (Actual)
Input Register (R)
0x000C
Pressure (Average)
Input Register (R)
0x000D
Pressure (Min)
Input Register (R)
0x000E
Pressure (Max)
Input Register (R)
0x000F
Pressure (Std. Dev.)
Input Register (R)
0x0010
Device Pitch (Actual)
Input Register (R)
0x0011
Device Roll (Actual)
Input Register (R)
0x0012
Device Temperature
Holding Register (R/W)
0x0101
Device Address
Holding Register (R/W)
0x0102
Baud Rate
Holding Register (R/W)
0x0103
Statistics Period (Secs)
Holding Register (R/W)
0x0104
IMU Correction (Pitch)
Holding Register (R/W)
0x0105
IMU Correction (Roll)
Holding Register (R/W)
0x0106
Temperature Correction 1
Holding Register (R/W)
0x0107
Temperature Correction 2
Holding Register (R/W)
0x0108
Temperature Correction 3
Holding Register (R/W)
0x0109
RH Correction 1
Holding Register (R/W)
0x010A
RH Correction 2
Holding Register (R/W)
0x010B
RH Correction 3
Holding Register (R/W)
0x010C
Pressure Correction 1
Holding Register (R/W)
0x010D
Pressure Correction 2
Holding Register (R/W)
0x010E
Pressure Correction 3
0x03
Read holding registers
Returns configuration parameters
2
0x04
Read input registers
Returns measured readings and statistics
2
0x06
Input Register (R)
0x0001
Temperature (Actual)
Input Register (R)
0x0002
Temperature (Average)
Input Register (R)
Write single register
0x0003
Writes a single configuration parameter
2
0x10
Write multiple registers
Writes multiple configuration parameters
2 x N
Temperature (Min)
Input Register (R)
0x0004
Temperature (Max)
Input Register (R)
0x0005
Temperature (Std. Dev.)
Input Register (R)
0x0006
EC (Actual)
Input Register (R)
0x0007
EC (Average)
Input Register (R)
0x0008
EC (Min)
Input Register (R)
0x0009
EC (Max)
Input Register (R)
0x000A
EC (Std. Dev.)
Input Register (R)
0x000B
Moisture (Actual)
Input Register (R)
0x000C
Moisture (Average)
Input Register (R)
0x000D
Moisture (Min)
Input Register (R)
0x000E
Moisture (Max)
Input Register (R)
0x000F
Moisture (Std. Dev.)
Input Register (R)
0x0010
Device Pitch (Actual)
Input Register (R)
0x0011
Device Roll (Actual)
Input Register (R)
0x0012
Device Temperature
Holding Register (R/W)
0x0101
Device Address
Holding Register (R/W)
0x0102
Baud Rate
Holding Register (R/W)
0x0103
Statistics Period (Secs)
Holding Register (R/W)
0x0104
IMU Correction (Pitch)
Holding Register (R/W)
0x0105
IMU Correction (Roll)
Holding Register (R/W)
0x0106
Heater Config
Holding Register (R/W)
0x0107
Temperature Correction 1
Holding Register (R/W)
0x0108
Temperature Correction 2
Holding Register (R/W)
0x0109
Temperature Correction 3
Holding Register (R/W)
0x010A
EC Correction 1
Holding Register (R/W)
0x010B
EC Correction 2
Holding Register (R/W)
0x010C
EC Correction 3
Holding Register (R/W)
0x010D
Moisture Correction 1
Holding Register (R/W)
0x010E
Moisture Correction 2
Holding Register (R/W)
0x010F
Moisture Correction 3
0x03
Read holding registers
Returns configuration parameters
2
0x04
Read input registers
Returns measured readings and statistics
2
0x06
Input Register (R)
0x0001
Temperature (Actual)
Input Register (R)
0x0002
Temperature (Average)
Input Register (R)
Write single register
0x0003
Chipset
SX1262 RF Transceiver
Modulations
LoRa and (G)FSK
Maximum RF Output
+22dBm
Frequency Coverge
150MHz to 960MHz continuous
EEPROM
Module identification, TCXO Voltage and SN (Optional)
This table shows the mechanical properties of the device.
Form Factor
M.2 Type 2230-S3-E Socket
Antenna Connector
1x uFL
Dimensions
22 x 30 mm
Weight
1.7 g (without shield)
Environmental Conditions refer to the physical and atmospheric conditions surrounding the device.
Operating Ambient Temperature
0°C…+60°C
Relative Humidity
0°C…+30°C: 80% +30°C…+60°C: 50%
Pollution Degree
PD2
Altitude
< 2000m AMSL
Vibration (5 ≤ f ≤ 9 Hz)
1,75 mm amplitude sinus 3,5 mm amplitude random
This table indicates the electrical specifications of the device.
Power Input
3.3V
I/O Voltage Level
1.8V
Clock Source
25MHz TCXO (Temperature Compensated Crystal Oscillator)
Power Consumption
160 nA in sleep mode with a cold start 4.6 mA max in LoRa receive mode 5.3 mA max in LoRa Rx boosted receive mode 45 mA in LoRa transmit mode (868/915 MHz, +14 dBm) 120 mA in LoRa transmit mode (868/915 MHz, +22 dBm)
Regulator Mode
DC-DC mode
This table explains the function and electrical characteristics of each pin or terminal on the device.
1
Power
GND
Digital ground
2
Power
+3.3V
Digital supply voltage input (3.3V)
4
Some of our devices come with firmware that automatically utilizes the module without requiring any coding. For development kits or further customization, you may choose to use the following libraries and samples to create a custom application.

Vibration (9 ≤ f ≤ 150 Hz)
0,5 g acceleration sinus 1,0 g acceleration random
Storage
-20°C…+60°C
10%…90% rH
Power
+3.3V
Digital supply voltage input (3.3V)
7
Power
GND
Digital ground
9
Com
SPI SCLK
SPI Data clock input (1.8V)
11
Com
SPI MOSI
SPI Data input (1.8V)
13
Com
SPI MISO
SPI Data output (1.8V)
15
Output
nIRQ
Active-low interrupt output (1.8V)
18
Power
GND
Digital ground
19
Input
SPI nCS
SPI active-low chip select input (1.8V)
21
Output
nWAKE
Active-low wake output (1.8V)
23
Input
nRESET
Active-low reset input (1.8V)
33
Power
GND
Digital ground
39
Power
GND
Digital ground
45
Power
GND
Digital ground
51
Power
GND
Digital ground
57
Power
GND
Digital ground
58
Com
I2C SDA
I2C Serial data line (1.8V)
60
Com
I2C SCL
I2C Serial clock input (1.8V)
63
Power
GND
Digital ground
69
Power
GND
Digital ground
72
Power
+3.3V
Digital supply voltage input (3.3V)
74
Power
+3.3V
Digital supply voltage input (3.3V)
75
Power
GND
Digital ground
This device communicates using the Modbus RTU protocol over the RS-485 standard.
This device's preconfigured user-definable address is 0x15. Users can change the address using the holding registers.
The following Modbus function codes are functional with this device.
The following registers are available with this device.
The host device can read one or more sensor data by calling the starting register address.
Request from the host: Device address [1 Byte] + Function code (0x04) [1 Byte] + Input register start address [2 Bytes MSB first] + Requested register length [2 Bytes MSB first] + CRC [2 Bytes MSB first]
Response from the device: Device address [1 Byte] + Function code (0x04) [1 Byte] + Response register length in Bytes [1 Byte] + Register 1 [2 Bytes MSB first] + Register N [2 Bytes MSB first] + CRC [2 Bytes MSB first]
The host device can read one or more configuration registers by calling the starting register address.
Request from the host: Device address [1 Byte] + Function code (0x03) [1 Byte] + Holding register start address [2 Bytes MSB first] + Requested register length [2 Bytes MSB first] + CRC [2 Bytes MSB first]
Response from the device: Device address [1 Byte] + Function code (0x03) [1 Byte] + Response register length in Bytes [1 Byte], Register 1 [2 Bytes MSB first] + Register N [2 Bytes MSB first] + CRC [2 Bytes MSB first]
The host device can write one configuration register.
Command from the host: Device address [1 Byte] + Function code (0x06) [1 Byte] + Holding register address [2 Bytes MSB first] + Value to be set [2 Bytes MSB first] + CRC [2 Bytes MSB first]
Response from the device: Device address [1 Byte] + Function code (0x06) [1 Byte] + Holding register address [1 Byte] + Value set [2 Bytes MSB first] + CRC [2 Bytes MSB first]
The host device can write multiple configuration registers.
Command from the host: Device address [1 Byte] + Function code (0x10) [1 Byte] + Holding register start address [2 Bytes MSB first] + Requested register length [2 Bytes] + Configuration values length in Bytes [1 Byte] + Value to be set 1 [2 Bytes MSB first] + Value to be set N [2 Bytes MSB first] + CRC [2 Bytes MSB first]
Response from the device: Device address [1 Byte] + Function code (0x10) [1 Byte] + Holding register start address [1 Byte], Value set [2 Bytes MSB first], CRC [2 Bytes MSB first]
Writes a single configuration parameter
2
0x10
Write multiple registers
Writes multiple configuration parameters
2 x N
Air Quality Index (Min)
Input Register (R)
0x0004
Air Quality Index (Max)
Input Register (R)
0x0005
Air Quality Index (Std. Dev.)
Input Register (R)
0x0006
VOC Index (Actual)
Input Register (R)
0x0007
VOC Index (Average)
Input Register (R)
0x0008
VOC Index (Min)
Input Register (R)
0x0009
VOC Index (Max)
Input Register (R)
0x000A
VOC Index (Std. Dev.)
Input Register (R)
0x000B
NOx Index (Actual)
Input Register (R)
0x000C
NOx Index (Average)
Input Register (R)
0x000D
NOx Index (Min)
Input Register (R)
0x000E
NOx Index (Max)
Input Register (R)
0x000F
NOx Index (Std. Dev.)
Input Register (R)
0x0010
PM 1.0 (Actual)
Input Register (R)
0x0011
PM 1.0 (Average)
Input Register (R)
0x0012
PM 1.0 (Min)
Input Register (R)
0x0013
PM 1.0 (Max)
Input Register (R)
0x0014
PM 1.0 (Std. Dev.)
Input Register (R)
0x0015
PM 2.5 (Actual)
Input Register (R)
0x0016
PM 2.5 (Average)
Input Register (R)
0x0017
PM 2.5 (Min)
Input Register (R)
0x0018
PM 2.5 (Max)
Input Register (R)
0x0019
PM 2.5 (Std. Dev.)
Input Register (R)
0x001A
PM 4.0 (Actual)
Input Register (R)
0x001B
PM 4.0 (Average)
Input Register (R)
0x001C
PM 4.0 (Min)
Input Register (R)
0x001D
PM 4.0 (Max)
Input Register (R)
0x001E
PM 4.0 (Std. Dev.)
Input Register (R)
0x001F
PM 10 (Actual)
Input Register (R)
0x0020
PM 10 (Average)
Input Register (R)
0x0021
PM 10 (Min)
Input Register (R)
0x0022
PM 10 (Max)
Input Register (R)
0x0023
PM 10 (Std. Dev.)
Input Register (R)
0x0024
CO2 (Actual)
Input Register (R)
0x0025
CO2 (Average)
Input Register (R)
0x0026
CO2 (Min)
Input Register (R)
0x0027
CO2 (Max)
Input Register (R)
0x0028
CO2 (Std. Dev.)
Input Register (R)
0x0029
Device Pitch (Actual)
Input Register (R)
0x002A
Device Roll (Actual)
Input Register (R)
0x002B
Device Temperature
Holding Register (R/W)
0x0101
Device Address
Holding Register (R/W)
0x0102
Baud Rate
Holding Register (R/W)
0x0103
Statistics Period (Secs)
Holding Register (R/W)
0x0104
IMU Correction (Pitch)
Holding Register (R/W)
0x0105
IMU Correction (Roll)
0x03
Read holding registers
Returns configuration parameters
2
0x04
Read input registers
Returns measured readings and statistics
2
0x06
Input Register (R)
0x0001
Air Quality Index (Actual)
Input Register (R)
0x0002
Air Quality Index (Average)
Input Register (R)
Write single register
0x0003
Mini PLC is a compact and affordable solution for non-real-time input monitoring applications. It features analog & digital inputs, relays, and RS-485 connectivity. In addition, this device supports flexible wireless networking options such as LoRa, WiFi, or cellular connectivity, making it suitable for remote monitoring and control applications.
The following table outlines the capabilities of the device.
Inputs
8x 5…24V Isolated digital inputs with common ground
4x 0…10V Filtered analog inputs with common ground
Outputs
2x AC 240V / DC 30V 10A SPST relays with COM & NO connections
Wireless connectivity
M.2 Key-E Socket for type 2230-XX-E modules
Wired connectivity
Half-Duplex RS-485 Transceiver
Onboard sensors
Internal temperature measurement
The following connectivity options work with R'IO.
R'IO's stock firmware supports the following communication protocols. You can develop custom firmware to add more.
This table shows the mechanical properties of the device.
Mounting Style
DIN 35mm Top Hat Rail: EN 50022 Screw Mount
Dimensions
70w x 90h x 60d mm
Weight
< 200g
The unit has two mounting options: the DIN rail and the screw mount.
Environmental Conditions refer to the physical and atmospheric conditions surrounding the device.
Operating Ambient Temperature
0°C…+60°C
Relative Humidity
0°C…+30°C: 80% +30°C…+60°C: 50%
Pollution Degree
PD2
Altitude
< 2000m AMSL
Vibration (5 ≤ f ≤ 9 Hz)
1,75 mm amplitude sinus 3,5 mm amplitude random
This table indicates the electrical specifications of the device.
Main Supply
DC 24V w/ relays
DC 5…24V w/o relays
Digital Inputs
DC 12…24V (Isolation Voltage: 3,750Vrms)
Analog Inputs
DC 0…10V
Relays
AC 240V 10A
DC 30V 10A
RS-485
-7…+12V (No internal termination)
Absolute maximum ratings indicate the maximum electrical or environmental parameters this device can withstand without damage.
Stresses above the absolute maximum ratings listed in the table may cause permanent damage to the device. These are stress ratings only, and the functional operation of the device under these conditions is not implied. Exposure to maximum rating conditions for extended periods may affect device reliability.
Main Supply
DC 26V w/ relays DC 30V w/o relays
Digital Inputs
DC 30V
Analog Inputs
DC 15V
Relays
AC 240V 10A
DC 30V 10A
RS-485
-7…+12V
This table lists the communication options of the device.
Connectivity Socket
PCIe M.2 Key E Socket: 3.3V Power domain, 1.8V I/O, USART, SPI
This diagram visualizes how the PLC connects with the surrounding.
This table explains the function and electrical characteristics of each pin or terminal on the device.
T-01
Power
DC +24V Supply
Supply voltage input (+24V)
T-02
Power
System GND
Supply ground
T-03
Some of our devices come with firmware that automatically utilizes the module without requiring any coding. For development kits or further customization, you may choose to use the following libraries and samples to create a custom application.

Memory
Encrypted system configuration 2.000 point telemetry history with timestamp
Microcontroller
STM32 L4 Series ultra-low power MCU 32-bit ARM Cortex-M4 80MHz, 256KB ROM, 64KB RAM
Power options
DC 24V w/ relays
DC 5…24V w/o relays
Antenna
Internal or external (SMA) options
LEDs
On-board status and power LEDs
User input
On-board configuration button
Vibration (9 ≤ f ≤ 150 Hz)
0,5 g acceleration sinus 1,0 g acceleration random
Storage
-20°C…+60°C
10%…90% rH
RTC Battery
DC 3V Super-capacitor (optional)
M.2 Port
PCIe M.2 Key-E
DC 3.3V Supply, 1.8V SPI I/O
Internal Fuse
DC 60V 6A 1206 Case Slow-burning
RTC Battery
DC 3.3V
Digital Input
Common GND
Digital inputs shared ground (isolated from the system)
T-04
Digital Input
Channel 1
Isolated digital input channel 1 (+5…24V)
T-05
Digital Input
Channel 2
Isolated digital input channel 2 (+5…24V)
T-06
Digital Input
Channel 3
Isolated digital input channel 3 (+5…24V)
T-07
Digital Input
Channel 4
Isolated digital input channel 4 (+5…24V)
T-08
Digital Input
Channel 5
Isolated digital input channel 5 (+5…24V)
T-09
Digital Input
Channel 6
Isolated digital input channel 6 (+5…24V)
T-10
Digital Input
Channel 7
Isolated digital input channel 7 (+5…24V)
T-11
Digital Input
Channel 8
Isolated digital input channel 8 (+5…24V)
B-01
Relay
Channel 1 COM
Relay 1 common connection
B-02
Relay
Channel 1 NO
Relay 1 normally open connection
B-03
Relay
Channel 2 COM
Relay 2 common connection
B-04
Relay
Channel 2 NO
Relay 2 normally open connection
B-05
Com
RS-485 Terminal A
RS-485 Terminal A connection
B-06
Com
RS-485 Terminal B
RS-485 Terminal A connection
B-07
Analog Input
Common GND
Analog input ground (Shared with system ground)
B-08
Analog Input
Channel 1
Analog input channel 1 (0…+10V)
B-09
Analog Input
Channel 2
Analog input channel 2 (0…+10V)
B-10
Analog Input
Channel 3
Analog input channel 3 (0…+10V)
B-11
Analog Input
Channel 4
Analog input channel 4 (0…+10V)



LoRaWAN, which stands for Long Range Wide Area Network, is a wireless communication protocol designed for low-power IoT devices. It enables secure and scalable data transmission over long distances while consuming minimal power. This makes it well-suited for widespread use in smart cities, industrial IoT, and agricultural applications.
This document describes LoRaWAN protocol support and payload structure for data transmission.
The latest firmware complies with the following LoRaWAN specifications.
The frame port is a data frame field specifying the application-specific commands or data payload type. For instance, Device firmware uses the frame port field to tell the payload formatter how to decode the transmitted message.
The firmware may dynamically change the telemetry payload according to its sensor configuration. Each sensor reading data, e.g., vibration, contains 4 bytes. This structure includes sensor type, statistics mode, and 24-bit sensor reading.
For example, the firmware encodes an average of 100 Hz vibration on the x-axis as 00111001 00000001 10000110 10100000 where; - Bits [31:26] indicate the sensor data type (x-axis vibration), - Bits [25:24] indicate the statistics type (average), - And bits [23:0] indicate sensor reading (100,000 Hz).
When the device reads more than one sensor data, it adds another 4-byte structure with the same logic for each reading. The illustrated sensor data structure is as follows.
Position: Bits [31:26]
Position: Bits [25:24]
Position: Bits [23:0]
The value field carries the actual sensor readout. The payload formatter encodes the value according to the "signed" and "fraction" specifications of the data type.
Use the following Javascript code as the custom payload formatter script.
Telemetry Log
Periodic historical sensor readouts
Yes
4
C
Ambient temperature
2
Relative Humidity
No
4
%
Ambient relative humidity
3
Pressure
No
4
hPa
Air pressure
4
Gas Estimation
No
4
%
Classified gas estimation
5
IAQ
No
4
AQI
Indoor air quality index
6
VOC
No
4
ppm
Volatile organic compounds
7
NOx
No
2
ppb
Nitrogen oxides index
8
CO2
No
2
ppm
CO2
9
Particulate Matter
No
2
μm
Particles in the air
10
Dew Point
Yes
4
C
Dew Point
11
VPD
No
4
kPa
Vapor Pressure Deficit
12
Visible Light
No
0
Human visible light
13
IR Light
No
0
Infrared light
14
UV Index
No
4
UV Index
Ultraviolet index
15
Light Custom
No
0
N/A
Application specific data
16
Angle
Yes
4
deg
Device angle
17
Vibration
No
4
Hz
Vibration of the device
18
RPM
No
2
Ticks
Revolutions per minute
19
Speed
No
4
Km/h
Current speed
20
Latitude
Yes
4
deg
Current latitude
21
Longitude
Yes
4
deg
Current longitude
22
Altitude
Yes
2
m
Current altitude
23
Heading
Yes
4
deg
Current heading
24
Weight
No
0
g
Measured weight
25
Distance
No
0
mm
Distance to an object
26
Contact
No
0
bits
Contact sensor state
27
Movement Detect
No
0
bits
PIR sensor state
28
Wind Speed
No
4
Km/h
Current wind speed
29
Wind Direction
Yes
4
deg
Current wind degree
30
Precipitation
No
2
mm
Current rainfall
31
Soil Moisture
No
4
%
Soil moisture level
32
Water Flow
No
0
Ticks
Amount of water flow
33
Water Conductivity
No
0
µmhos/cm
Water EC
34
pH
No
4
pH
Water pH
35
Salinity
No
4
ppt
Concentration of salt in water
36
TDS
No
4
ppm
Total dissolved solids
37
Water Custom 1
No
0
N/A
Application specific data
38
Water Custom 2
No
0
N/A
Application specific data
39
Water Custom 3
No
0
N/A
Application specific data
40
Voltage
No
4
V
Voltage reading
41
Current
No
2
A
Current passing
42
Frequency
No
4
Hz
Mains frequency
43
Real Power
No
2
W
Energy consumption
44
Apparent Power
No
2
VA
Voltage Current
45
Reactive Power
No
2
VAR
Voltage-Current phase shift
46
Power Factor
No
4
%
Real power ratio
47
Phase Angle
No
4
deg
Angular time-shift
48
Custom 1
No
0
N/A
Application specific data
49
Custom 2
No
0
N/A
Application specific data
50
Custom 3
No
0
N/A
Application specific data
51
Custom 4
No
0
N/A
Application specific data
52
Sound Pressure
Yes
4
dB
Sound pressure
53
Solar Radiation
No
2
W/m²
Solar power to panel area ratio
54
Probe Temperature
Yes
3
C
Probe temperature
55
Probe Pressure
No
2
hPa
Probe pressure input
56
UID
No
0
Bytes
Unique Id
57
Time
No
0
N/A
Event timestamp
58
Battery Voltage
No
4
V
Battery input Voltage
59
Solar Voltage
No
4
V
Solar panel input Voltage
60
Counter
No
0
Ticks
Digital input change counter
61
Duty Cycle
No
4
%
Digital input duty cycle
62
Analog Input
No
4
V
Analog input reading
63
Digital Input
No
0
Bits
Digital input port state
Maximum
Maximum of the historical data
LoRaWAN Version
1.0.4
Regional Parameters Version
RP002 Regional Parameters 1.0.4
Available Frequency Plans
EU868 (Europe) US902-928 (USA, Canada, and South America)
1
System
Device state
2
Telemetry
Periodic sensor readouts
3
Telemetry Alert
Alarm state
[31:26]
Data Type
Sensor readout type, e.g., temperature or light intensity
[25:24]
Statistics Type
Statistical type of the readout, e.g., actual, average, min, or max
[23:0]
Value
Sensor readout
0
Null / Terminator
N/A
N/A
N/A
Indicates no reading
1
0
Actual
Latest sensor reading
1
Average
Average of the historical data
2
Minimum
Minimum of the historical data

4
Temperature
3
// Enginique Uplink Payload Formatter Version 1.3.4
function decodeUplink(input) {
let addFraction = (n, d) => n / (10 ** d);
let decodeReadingId = (d) => d >> 2;
let decodeStatisticsId = (d) => d & 0x03;
let data = {};
// Events
const events = {
2: "telemetry",
3: "telemetry alert",
4: "telemetry log"
};
// Reading structures (type, signed, fraction)
const readingStructures = {
0: ["null", false, 0],
1: ["temperature", true, 4],
2: ["relative_humidity", false, 4],
3: ["pressure", false, 4],
4: ["gas_estimation", false, 4],
5: ["iaq_index", false, 4],
6: ["voc", false, 4],
7: ["nox_index", false, 2],
8: ["co2_concentration", false, 2],
9: ["particulate_matter", false, 2],
10: ["dew_point", true, 4],
11: ["vpd", false, 4],
12: ["visible_light", false, 0],
13: ["ir_light", false, 0],
14: ["uv_index", false, 4],
15: ["light_custom", false, 0],
16: ["angle", true, 4],
17: ["vibration", false, 4],
18: ["rpm", false, 2],
19: ["speed", false, 4],
20: ["latitude", true, 4],
21: ["longitude", true, 4],
22: ["altitude", true, 2],
23: ["heading", true, 4],
24: ["weight", false, 0],
25: ["distance", false, 0],
26: ["contact", false, 0],
27: ["movement_detection", false, 0],
28: ["wind_speed", false, 4],
29: ["wind_direction", true, 4],
30: ["precipitation", false, 2],
31: ["soil_moisture", false, 4],
32: ["water_flow", false, 0],
33: ["water_conductivity", false, 0],
34: ["ph", false, 4],
35: ["salinity", false, 4],
36: ["tds", false, 4],
37: ["water_custom_1", false, 0],
38: ["water_custom_2", false, 0],
39: ["water_custom_3", false, 0],
40: ["voltage", false, 4],
41: ["current", false, 2],
42: ["frequency", false, 4],
43: ["real_power", false, 2],
44: ["apparent_power", false, 2],
45: ["reactive_power", false, 2],
46: ["power_factor", false, 4],
47: ["phase_angle", true, 4],
48: ["custom_1", false, 0],
49: ["custom_2", false, 0],
50: ["custom_3", false, 0],
51: ["custom_4", false, 0],
52: ["sound_pressure", true, 4],
53: ["solar_radiation", false, 2],
54: ["probe_temperature", true, 3],
55: ["probe_pressure", false, 2],
56: ["uid", false, 0],
57: ["time", false, 0],
58: ["battery_voltage", false, 4],
59: ["solar_voltage", false, 4],
60: ["counter", false, 0],
61: ["duty_cycle", false, 4],
62: ["analog_input", false, 4],
63: ["digital_input", false, 0]
};
// Three-letter statistics type abbreviations
const statistics = {
0: "",
1: "_avr",
2: "_min",
3: "_max"
};
// Decode frame port
data.event = events[input.fPort];
// Sensor data decoding for "telemetry" and "telemetry alert" frame ports
if (input.fPort == 2 || input.fPort == 3) {
for (let i = 0; i < input.bytes.length; i += 4) {
const readingId = decodeReadingId(input.bytes[i]);
// Stop decoding if data type is null
if (readingId == 0)
break;
// Decode digital input channels
else if (readingId == 63) {
for (let j = 0; j < 8; j++) {
const prop = (input.bytes[i + 3] >> j) & 1;
data[`di${j + 1}`] = prop == 1 ? true : false;
}
}
// Decode other data types
else {
// Decode data type
let prop;
// If multiple-read data type, e.g., vlt_1, vlt_2
if ([4,9,16,17,18,40,41,42,43,44,45,46,47,54,55,60,61,62].includes(readingId))
{
for (let j = 1; j <= 64; j++) {
let tempProp = `${readingStructures[readingId][0]}_${j}${statistics[decodeStatisticsId(input.bytes[i])]}`;
if (data[tempProp] == null) {
prop = tempProp;
break;
}
}
}
// If single-read data type, e.g., tmp, pre
else {
prop = `${readingStructures[readingId][0]}${statistics[decodeStatisticsId(input.bytes[i])]}`;
}
// Decode value
const value = (input.bytes[i + 1] << 16) + (input.bytes[i + 2] << 8) + (input.bytes[i + 3]);
// Get the fraction
const fraction = readingStructures[readingId][2];
// Check if the data type is signed
if (readingStructures[readingId][1]) {
// Decode signed data
const negative = ((value >> 23) & 1) == 1 ? true : false;
data[prop] = addFraction(negative ? -((~(value - 1)) & 0xFFFFFF) : value, fraction);
}
else {
// Decode unsigned data
data[prop] = addFraction(value, fraction);
}
}
}
}
return {
data: data
};
}