
ContainerLevelSensor
benjiao/ContainerLevelSensor
A DIY sensor for measuring the fill level of a container (e.g. our cat food bin), based on an ESP32-C3 and a VL53L0x time-of-flight distance sensor, reporting to Home Assistant over ESPHome.

A DIY sensor for measuring the fill level of a container (e.g. our cat food bin), based on an ESP32-C3 and a VL53L0x time-of-flight distance sensor, reporting to Home Assistant over ESPHome.
ContainerLevelSensor is an open-source printed circuit board by benjiao, from the benjiao/ContainerLevelSensor repository on GitHub, published under the CC-BY-SA-4.0 licence. It is a 2-layer board of 44 × 80 mm with 8 parts on 24 nets, routed with 36 tracks and 85 vias.
It belongs with the ESP32 and RISC-V boards of this library.
by Benjie Jiao
A DIY sensor for measuring the fill level of a container (e.g. our cat food bin), based on an ESP32-C3 and a VL53L0x time-of-flight distance sensor, reporting to Home Assistant over ESPHome.
For more info, check out the build writeup. If this project was useful to you, consider buying me a coffee.

This is meant to be mounted under a container's lid. Like this prototype mounted to monitor our laundry basket.

hardware/kicad/ContainerLevelSensor/ — KiCad project (schematic + PCB) for
the sensor board. Open ContainerLevelSensor.kicad_pro in KiCad to view or
edit the design.

hardware/kicad/Fabrication/ — Generated Gerber/drill files and a ready-to
order .zip, for sending straight to a PCB fab (e.g. PCBWay).
hardware/openscad/ContainerLevelSensor.scad — Parametric enclosure,
generated with YAPP_Box (included as a git
submodule — run git submodule update --init --recursive before opening
the .scad file in OpenSCAD). ContainerLevelSensor.stl is the pre-rendered
mesh, ready to send to a 3D slicer as-is.
hardware/old_revisions/ — Earlier hardware revisions, kept for reference.
software/esphome/container-level.yaml — ESPHome
firmware configuration for the ESP32-C3. See "Flashing the firmware" below.
software/esphome/container-level.yaml.secrets.yaml.api.encryption.key and ota.password values in
the config with your own (the dashboard can generate these for you when
creating the device).VL53L0x Distance reading and a computed
Level percentage.The Keep Awake Jumper pin (GPIO3) holds the board awake for
reflashing/debugging; otherwise the board deep-sleeps between readings to
save battery. Adjust bottom_distance in the Level sensor's lambda to
match the distance (in meters) from the sensor to the bottom of your
container.
This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License.
| Qty | Value | Footprint | References |
|---|---|---|---|
| 1 | Battery_Cell | Battery:BatteryHolder_MPD_BH-18650-PC | BT1 |
| 1 | ESP32-C3-SuperMini | benjiaomodular:ESP32-C3-SuperMini_Edge | U2 |
| 1 | HW-373 | benjiaomodular:Module_HW-373_Li-Ion_Charging | U1 |
| 1 | KEEP_AWAKE | Button_Switch_THT:SW_DIP_SPSTx01_Slide_6.7x4.1mm_W7.62mm_P2.54mm_LowProfile | JP1 |
| 1 | MountingHole_Pad | MountingHole:MountingHole_3.2mm_M3_DIN965_Pad | H1 |
| 1 | POWER | Button_Switch_THT:SW_DIP_SPSTx01_Slide_6.7x4.1mm_W7.62mm_P2.54mm_LowProfile | JP2 |
| 1 | S09 | benjiaomodular:Module_S09_DC_to_DC_Edge | U4 |
| 1 | VL53LDK | benjiaomodular:Module_VL53LDK_Distance_Sensor | U3 |
It measures 44 × 80 mm and has 2 copper layers, 1.6 mm thick.
8 parts. The full list of its parts is on this page, with links to each part's symbol and footprint where PCBKit's library has them.
From the benjiao/ContainerLevelSensor repository on GitHub, at the commit this page was made from: the board is hardware/kicad/ContainerLevelSensor/ContainerLevelSensor.kicad_pcb and its schematic hardware/kicad/ContainerLevelSensor/ContainerLevelSensor.kicad_sch. PCBKit opens the board in the browser, with nothing to install.
Its repository publishes it under the CC-BY-SA-4.0 licence: you may reuse it on that licence's terms (keep the author's notice, and for a copyleft licence share your changes alike).

benjiao/ContainerLevelSensor
A DIY sensor for measuring the fill level of a container (e.g. our cat food bin), based on an ESP32-C3 and a VL53L0x time-of-flight distance sensor, reporting to Home Assistant over ESPHome.


joeycastillo/Sensor-Watch
A board replacement for the classic Casio F-91W wristwatch

rusefi/rusefi
rusefi - GPL internal combustion engine control unit

hoglet67/RGBtoHDMI
Bare-metal Raspberry Pi project that provides pixel-perfect sampling of Retro Computer RGB/YUV video and conversion to HDMI

shanteacontrols/OpenDeck
A platform for building interactive control and sensing devices using MIDI and OSC built with Zephyr RTOS.

hackclub/OnBoard
💡 Join 1,000 teenagers and make your first PCB with a $100 grant!

dangiu/PicoMemcard
Emulating PSX Memory Card (or controller) using a Raspberry Pi Pico

OLIMEX/DIY-LAPTOP
Do It Yourself Open Source Hardware and Software Modular Hacker's Friendly Laptop