The SemLab Contactless Liquid Level Sense Module is an open-source, liquid level sensor designed for non-invasive fluid detection. By utilizing capacitive sensing, the sensor detects the presence of liquid inside a container or pipeline without making direct contact with the fluid. This non-contact design prevents sensor corrosion, contamination, and degradation caused by harsh chemical agents, strong acids, or alkalis, making it ideal for chemical, agricultural, and consumer IoT applications.
The module is shipped in a bare PCB style with pin headers attached, making it highly accessible for hobbyists to integrate into their own projects. Although it does not ship with physical waterproofing, the underlying electronics are capable of matching industrial-grade performance when paired with a protective physical enclosure, and the sensor can interface directly with downstream devices such as PLCs, relays, and microcontrollers (such as Arduino or ESP32).
This repository contains all the design files for the SemLab CLS-24BP: schematics, Gerbers, BOM, firmware source, and 3D-printable enclosure CAD files.
Full documentation, working principle, calibration guide, and troubleshooting: CircuitDigest Wiki – SemLab Contactless Liquid Level Sensor Module
The module uses capacitive (charge-transfer) sensing to detect liquid through a container wall, making it ideal for chemical, agricultural, and consumer IoT applications where contact-based sensors would corrode, foul, or degrade. It ships as a bare PCB with pin headers and can drive relays, PLCs, or microcontrollers (Arduino, ESP32, etc.) directly.
| Parameter | Details |
|---|---|
| Product Model | SemLab CLS-24BP |
| Core Microcontroller | WCH CH32V003F4U6 (32-bit RISC-V @ 48 MHz, 16 KB Flash, 2 KB SRAM, QFN20) |
| Operating Voltage | DC 5V – 24V (wide range) |
| Current Consumption | ~5 mA (standby) |
| Sensing Interface | Two-pin charge-transfer (PC3 Excite / PC4 Sense) |
| Output Mode | Open-collector, NPN or PNP selectable via MODE pin |
| Output Drive Capacity | Up to 100 mA |
| Response Time | ≤ 800 ms |
| Sensitivity Range | ≤ 20 mm container wall thickness |
| Liquid Level Accuracy | ± 1.5 mm |
| Waterproof Rating | Bare PCB (IP00) / enclosure dependent |
| Terminal Interface | 4-pin header |
For the full explanation of the capacitive sensing principle, RC charge-transfer measurement, and firmware filtering (oversampling, EMA, hysteresis), see the wiki.
| Pin | Silk Screen | Function |
|---|---|---|
| 1 | VIN | Power supply positive, 5–24 V |
| 2 | MODE | Tie to GND for PNP mode; leave floating for NPN mode |
| 3 | OUT | Transistor signal output (connect to PLC input, relay, or MCU) |
| 4 | GND | Power supply negative / system ground |
| Mode | Liquid Detected | OUT Level | Behavior |
|---|---|---|---|
| NPN (MODE floating) | Yes | Low (GND) | Sinks current (active-low) |
| NPN (MODE floating) | No | High (Vin) | Open-collector, inactive |
| PNP (MODE → GND) | Yes | High (Vin) | Sources current (active-high) |
| PNP (MODE → GND) | No | Low (GND) | Pulled to ground, inactive |
.
├── Firmware/ # C firmware source code for WCH CH32V003
│ └── SemLab CLS-24BP.c
├── Hardware/ # Complete hardware design files
│ ├── BOM/ # Bill of Materials (.xls)
│ ├── CAD/ # 3D CAD enclosure files (.step, .obj, .mtl)
│ ├── Gerber/ # Fabrication Gerbers, drill files, and Pick & Place CSV
│ └── PCB/ # Altium schematic (.SchDoc), PCB layout (.PcbDoc), project, and PDF
├── LICENSE # GNU General Public License v3.0
└── README.md # Project overview and documentation
This project is licensed under the GNU General Public License v3.0 (GPL-3.0).
Designed and maintained by CircuitDigest under the SemiconLab initiative.
For questions, issues, or contributions, please open an issue in this repository, or refer to the full wiki documentation.
