
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 57 × 80.5 mm with 12 parts on 24 nets, routed with 36 tracks and 0 vias.
Its parts include 4 ICs and 1 capacitor. 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 |
|---|---|---|---|
| 4 | MountingHole_Pad | MountingHole:MountingHole_3.2mm_M3_DIN965_Pad | H1, H2, H3, H4 |
| 1 | 100uF | benjiaomodular:Capacitor_Radial_D5.0mm_P2.5mm | C1 |
| 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 | 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 57 × 80.5 mm and has 2 copper layers, 1.6 mm thick.
12 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/old_revisions/ContainerLevelSensor v1.0/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.

github-linguist/linguist
Language Savant. If your repository's language is being reported incorrectly, send us a pull request!


google/mozc-devices
Circuit diagrams and firmware source code for Gboard DIY keyboards



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

VoronDesign/Voron-Tap
Tap is a nozzle-based z-probe for the V2 and Trident printer designs. The entire toolhead moves to trigger an optical switch. Tap offers many advantages:

stacksmashing/pico-tpmsniffer
A simple, very experimental TPM sniffer for LPC bus