Introduction
This is a high-precision millimeter-wave radar module operating in the 80GHz frequency band, specifically developed for liquid level monitoring scenarios. Utilizing Frequency Modulated Continuous Wave (FMCW) technology, it offers a long-distance measurement range of 0.15–40m, with 1mm resolution and ±5mm accuracy. Pre-installed with a lens, it achieves a ±3° beam angle for enhanced directivity and reduced environmental interference.
The module supports non-contact installation, avoiding exposure to corrosive liquids and extending service life. Equipped with anti-interference algorithms, it operates stably in complex environments with strong reflections or multiple targets. Suitable for lakes, rivers, mountain torrent warning systems, reservoirs, and corrosive sewage pipeline networks.
Note: The radar operating frequency band is 80GHz, and the maximum range of 40m is the range of measurement. Depending on the size of the object's RCS, the maximum detection distance will have deviations. The measurement zero point of the millimeter wave module has been calibrated from the antenna surface to the lens end at the factory, and the measurement distance value will be calculated from the top of the lens.
Features
- Long-range measurement: 40m liquid level detection
- High-precision ranging: ±5mm accuracy, 1mm resolution
- Anti-interference capability: FMCW technology mitigates ambient light, mist, and temperature drift
- Lens-enhanced: Standard ±3° narrow-beam lens antenna for focused detection energy
Applications
- Smart water management: Real-time river/reservoir/groundwater level monitoring
- Urban infrastructure: Sewage pipeline overflow warning, rainwater collection system management
- Disaster prevention: Liquid level alarms for mountain torrent/debris flow monitoring stations
- Industrial monitoring: Non-contact liquid level measurement for chemical storage tanks & wastewater treatment pools
Specifications
- Transmit frequency: 77–81GHz, 4GHz bandwidth
- Output power (EIRP): 13–20dBm
- Beamwidth (-3dB): Horizontal ±25°, Vertical ±25°
- Beamwidth (-3dB) with external lens: Horizontal ±3°, Vertical ±3°
- Modulation mode: FMCW
- Ranging range: 0.15–40m
- Accuracy: ±5mm
- Resolution: 1mm
- Startup time: 100ms (fastest)
- Operating voltage: 3.5–5V
- Operating current: 30mA
- Output: UART (Modbus protocol)
- Operating temperature: -45°C to +85°C
- Module dimensions: 35×35×1.2mm
- Module weight: 5g
- Weight with installed lens: 46g
Board Overview


1.25-6Pin terminal interface
Pin | Function description |
---|---|
1 | VCC 3.7~5V |
2 | GND |
3 | NC |
4 | NC |
5 | UART_TX |
6 | UART_RX |
Right side pad interface
Pin | Function description |
---|---|
1 | VCC 3.7~5V |
2 | GND |
3 | NC |
4 | UART_RX |
5 | UART_TX |
Module Dimensional Drawing

Lens Dimensional Drawing

Tutorial
Requirements
- Hardware
- DFRduino UNO R3 x 1
- Gravity: IO Expansion Shield for Arduino V7.1 x1
- 80GHz High-Precision Liquid Level Detection Millimeter Wave Sensor (40m) x1
- 1.25mm to 2.54mm Dupont connector cable (20cm) x1


- Software
- Arduino IDE
- Download the LiquidLevelDetection libraries
Connection Diagram

Sample Code
Before burning the code, you need to modify the installation height value "200" cm in the code according to the actual installation height.
#include <LiquidLevelDetection.h>
// Define RX and TX pins
#define RX_PIN 2
#define TX_PIN 3
// Define baud rate
#define BAUD_RATE 115200
// Create sensor object
LiquidLevelDetection sensor(RX_PIN, TX_PIN);
void setup() {
// Initialize serial communication with 115200 baud rate
Serial.begin(BAUD_RATE);
Serial.println("Millimeter-wave Liquid Level Sensor Test");
// Initialize sensor with 115200 baud rate
if (!sensor.begin(BAUD_RATE)) {
Serial.println("Sensor initialization failed!");
while (1);
}
char buffer[10]; // Buffer for formatting float numbers
// Set installation height (unit: centimeter)
if (sensor.setInstallationHeight(200)) { // 2 meters = 200 centimeters
Serial.println("Installation height set successfully");
// Wait a moment for the device to update the range
delay(1000);
// Read current range
float range = sensor.getRange();
Serial.print("Current range: ");
dtostrf(range, 1, 3, buffer);
Serial.print(buffer);
Serial.println(" m");
Serial.println("------------------------");
} else {
Serial.println("Failed to set installation height");
}
}
void loop() {
char buffer[10]; // Buffer for formatting float numbers
// Read installation height
float installHeight = sensor.getInstallationHeight();
Serial.print("Installation height: ");
dtostrf(installHeight, 1, 3, buffer);
Serial.print(buffer);
Serial.println(" m");
// Read empty height (distance from sensor to liquid surface)
float emptyHeight = sensor.getEmptyHeight();
Serial.print("Empty height: ");
dtostrf(emptyHeight, 1, 3, buffer);
Serial.print(buffer);
Serial.println(" m");
// Read water level height
float waterLevel = sensor.getWaterLevel();
Serial.print("Water level height: ");
dtostrf(waterLevel, 1, 3, buffer);
Serial.print(buffer);
Serial.println(" m");
Serial.println("------------------------");
delay(3000); // Update every 3 seconds
}
Expected Results
After the installation height is set successfully, the installation height, empty height and liquid level height of the liquid level sensor will be printed.
Installation Diagram

FAQ
- If the data is abnormal, press the reset button on the development board to ensure that the installation height is set successfully
- The range does not need to be set, the range will change automatically according to the installation height, and the maximum range is 40m
- The measurement zero point of the millimeter wave module has been calibrated from the antenna surface to the lens end at the factory