Plantpal: Your Pal in Plant Care

Adorable device to monitor soil moisture and surrounding environments, ensuring your plants thrive in optimal conditions!

Similar projects worth following
Your pal in plant care! This adorable device uses capacitive sensing to measure soil moisture. Its low-power e-paper display keeps you updated without draining energy. Plus, with the BME688 sensor, it is able to monitor air quality and CO2 levels, ensuring your plants thrive in optimal conditions.

More details can be found in Plantpal Github.

Teapotlabs Plantpal is part of Teapotlabs open-hardware project.


Huge thanks to PCBWay to sponsored this project! All PCB and Assembly in this project is using their services.


The project won't be possible without the amazing work from people across the globe. The following are the reference to those awesome projects!


  • ESP32-C6FH4: ESP32-C6 with 4 MB in-package flash
  • AEM10941: Solar energy harvesting
  • USB-C for charging and programming
  • ~20uA Deep-Sleep
  • 1.54 Inch E-Paper Display
  • Sensor:
    • BME688 for Environmental Sensing
    • Built-in Soil Moisture sensor
    • Battery voltage sensing
  • 1A charge rate via USB
  • 3.7 Volts LiPo Battery


  • Revision 1: Initial public release
  • Revision 2: Remove via in pad
  • Revision 3:
    • Fix incorrect BOM component for D1
    • Fix D6 Polarity
    • Remove Power Gate
    • Change Soil Sensor SENSE_OUT pin
    • Add EPD power switch
    • Change to 4-layer board
    • Move BME688 to bottom layer
    • Improve antenna layout
  • Revision 4: Re-wire EPD remaining power to +3V3D



Built using KiCAD 7.0.5 A detailed schematic can be found here


Built using KiCAD, the board is design to be as small as possible with all components placed on the top side of the PCB.

⚠️ The following design are based on revision 3 but is similar to revision 4.

More images can be found here

Top BoardBottom Board





PCB Top and Bottom Layout


Assembled Front


Case and Showcase

Built using TinkerCAD. The case are 3D printable with any generic 3D printer with/without support. The STL files are available here

Case Open


BME688 sensor is available in the back, facing 3 small vents in the back of the case



Power consumption and solar charging current are measured using Nordic PPK2 and Joulescope. The following are the summary of the measurement:

  • Deep-sleep : 22uA
  • Read Sensor, Update Display, and Store Data to Flash: 31mA @ 2.5s
  • Read Sensor, Update Display, Store Data to Flash, and Publish to MQTT: 54mA @ 3.77s
  • Direct Sunlight Solar Charge: 7.5mA
  • Indirect Sunlight Solar Charge: 400uA
⚠️ Tested on Revision 4-equivalent board, but should be similar to Revision 4



Read Sensor, Update Display, and Store Data to Flash

Read Sensor, Update Display, Store Data to Flash, and Publish to MQTT

Solar Charge - Direct Sunlight

Solar Charge - Indirect Sunlight


More measurement can be found here

Bill Of Materials

Most of the components are generic and can be bought from any electornics/semi-conductor distributor. The bill of materials can be downloaded here. The EPD display used and tested is GDEY0154D67 from GoodDisplay. The following display should be compatible, but the example code would need to be adjusted:

  • GDEW0154T8
  • GDEW0154Z17
  • GDEW0154Z04
  • GDEW0154C39
  • GDEW0154I9F

Those displays are available from AliExpress


Programming the device can be done easily over the USB-C. Out of factory, the ESP32-C6 will be blank and need to be put in bootloader mode. The following is a step-by-step guide to initially program the device

  1. Plug-in the USB-C to host computer and check if the device is detected
  2. If not, check that you have the battery plug-in and try to shine the solar cell using any source of bright light ( phone flashlight, sun, lamp )
  3. Wait until the USB is detected in the host computer
  4. Press and Hold BOOT and RESET button
  5. Release RESET button
  6. Wait couple seconds
  7. Release BOOT button
  8. Plantpal should be in bootloader mode and you can flash it via ESP-IDF or Arduino

A more detailed information about USB behavior on ESP32-C6 can be here

How to...

Read more »

Standard Tesselated Geometry - 480.36 kB - 02/16/2024 at 08:24


Standard Tesselated Geometry - 439.63 kB - 02/16/2024 at 08:24


Standard Tesselated Geometry - 242.46 kB - 02/16/2024 at 08:24


x-zip-compressed - 1.87 MB - 02/16/2024 at 08:24


Comma-Separated Values - 15.27 kB - 02/16/2024 at 08:24


View all 7 files

  • Testing Resin-based 3D Printed Case

    Aldwin03/02/2024 at 04:55 0 comments

    Since owning a resin 3D printer need more space and proper ventilation, I opted to use a 3D Printer service to print the case. The resin-based 3D Printed case uses PCBWay's 3D Printed service ( this part of the project was not sponsored ). The material I use here is calle

    Resin Standard white material (UTR 8360), with use matte-white as colour. Total cost was 37.35 without shipping, detail cost as follow:
    • Top Case: 5 pieces @ $12.45
    • Display Support: 5 pieces @ $12.45
    • Bottom Case: 5 pieces @ $12.45

    This my first time having a Resin-based 3D prints and overall I like it.

    Top Case

    The top case looks really good, especially the rounded slope near the solar cell feels and looks really good. I did notice some printed bed artifacts around the screen area ( likely that's the area where it touches the build plate? ). I also notice sanding artifacts, which I think comes from the post-process in their 3D Print services. Compared to FDM case, I'll take this resin case anyday.

    Bottom Case

    Most likely because of the thinness of the case, it cause the resin-case to looks a little bit translucent, but the hole for the BME688 looks great and smooth. I also see a sanding artifacts here.

    Side View

    The USB port looks great! Definitely a 100% improvement compared to the FDM case


    In conclusion, I think resin-based case is awesome for small compact IoT project and it's definitely looks great compared to FDM. The fit those feels different and I would need to tweak the model so that it fits perfectly on the device

View project log

Enjoy this project?



Similar Projects

Does this project spark your interest?

Become a member to follow this project and never miss any updates