SproutSnap: a 3d Printable Seeder With Time-lapse Recording.

by Jon G Aguado in Living > Gardening

105 Views, 2 Favorites, 0 Comments

SproutSnap: a 3d Printable Seeder With Time-lapse Recording.

Mesa de trabajo 1@4x.png

Welcome to this Instructables guide where you'll learn how to create your very own SproutSnap— a 3D-printed, self-contained plant growing unit with time-lapse video functionality. Perfect for plant lovers, tech tinkerers, or STEM educators looking to blend gardening with some electronics.

Features:


  1. 3D-printable modular parts for easy construction
  2. Built-in water reservoir with float indicator
  3. Four removable soil pods with push-to-release mechanism
  4. Snap-on semi-transparent side panel with magnets
  5. ESP32-CAM module + battery + solar panel for autonomous time-lapse photography

Supplies

IMG_0013.PNG
IMG_0012.PNG

Materials:

  1. PLA or PETG filament spool for your 3D printer
  2. ESP32-CAM module (and a circuit to flash it)
  3. 3x 5x3M screws
  4. TP4056 Charging module
  5. 5V/2W solar panel
  6. 1000mAh LiPo battery
  7. 8x Neodymium magnets (10mm x 2mm)
  8. Wires
  9. Soil
  10. Seeds


Tools:

  1. 3D printer (or access to any makerspace having one).
  2. Solder iron and soldering material.
  3. Screwdrivers and/or Allen keys.
  4. Small shovel.
  5. Sand paper.


STL Files:

  1. Base bottom
  2. Base top
  3. 4x Pods
  4. 4x Pods drainers
  5. Greenhouse cover
  6. Camera top
  7. Camera bottom

Printing the Parts

Fusion.PNG
PETG_Red.PNG
PETG_White.PNG
Sliced.PNG

Regarding the material to print the parts, I chose for PETG so I can store it indoors or outdoor if I don't use it, where it needs to withstand a wide range of temperatures and weather conditions. If you plan to keep it indoors, PLA is also a suitable alternative.

Recommended Settings for 3d printing:

  1. Material: PLA or PETG
  2. Layer Height: 0.2 mm
  3. Infill: 30% (although there is barely needed)
  4. Supports: Not needed
  5. Brim: Not needed

Assembly Instructions

ezgif.com-animated-gif-maker.gif
vlcsnap-2025-05-23-12h18m58s735.png
vlcsnap-2025-05-23-12h20m01s035.png
IMG_9992.JPG

Snap-In Magnets:

  1. Insert 4 neodymium magnets into the designated pockets on the top part of the base
  2. Being aware of the magnets polarity, insert them in the holes from the greenhouse cover.


Assembly the base:

  1. Leave the float on the center of the bottom part of the base (the water reservoir).
  2. Place the top part of the base slightly rotated over the bottom part, centered as well so the floater goes through the center.
  3. Rotate the top part with respect to the bottom part of the base until the walls align and you hear a click.
  4. Check that the float moves freely to show water level, at this point you can even fill it with water until the floater reaches the surface


Assembly the pods:

  1. Place the pod drainers at the bottom of each pod.


Finishing:

  1. Fill the pods with soil.
  2. Introduce the desired seeds on each pod with soil.
  3. Place the pods on the gaps of the base.

Electronics & Wiring

IMG_9955.JPG
IMG_9956.JPG
IMG_9957.JPG
vlcsnap-2025-05-23-12h16m42s850.png


For the electronics, the connection is quite simple as long as you respect the polarity (Red -> positive, Black -> negative/GND):

  1. Place the solar panel on the "camera top" part.
  2. Solder battery terminals to TP4056 OUT terminals .
  3. Solder wires from the solar panel to the IN terminals of TP4056.
  4. Connect TP4056 OUT terminals (in parallel to the battery) to the to ESP32-CAM's 5V and GND.
  5. Insert all components into the camera cover aligning the camera module and the microSD card with the cover holes.
  6. Screw and secure both parts of the camera/solar panel assembly securing all the wires inside.


ESP32 Firmware

  1. Connect your ESP32-CAM module to your computer using a USB-to-Serial adapter.
  2. Put the board in flash mode:
  3. Connect GPIO 0 to GND and then press the RESET button (or power cycle the board).
  4. Using the Arduino IDE :
  5. Select the correct board (e.g., AI Thinker ESP32-CAM) and COM port.
  6. Open the provided main.cpp as an Arduino sketch.
  7. Click Upload.

What the firmware does:

  1. Initializes the camera and SD card.
  2. Loads configuration settings (like sleep_time and flash) from config.json on the SD card.
  3. If enabled, it turns on the flash LED.
  4. Takes a photo with the camera.
  5. Saves the image to the SD card with a filename like img_1.jpg, img_2.jpg, etc.
  6. Goes into deep sleep for the configured time (e.g., 60 seconds), then repeats the process.


Downloads

Making the Time-lapse

Prerequisites

  1. Python 3.x installed on your computer
  2. OpenCV Python package (pip install opencv-python)
  3. A folder named images/ containing all the .jpg photos from your ESP32-CAM

Script Overview

The provided Python script time-lapse-maker.py does the following:

  1. Lists and alphabetically sorts .jpg images from the images/ folder.
  2. Loads each image using OpenCV.
  3. Creates an MP4 video (timelapse.mp4) at 30 frames per second.
import os
import cv2

def generate_timelapse(image_folder, output_video):
images = sorted([img for img in os.listdir(image_folder) if img.endswith('.jpg')])
frame = cv2.imread(os.path.join(image_folder, images[0]))
height, width, _ = frame.shape
fourcc = cv2.VideoWriter_fourcc(*'mp4v')
video = cv2.VideoWriter(output_video, fourcc, 30, (width, height))
for img_name in images:
img = cv2.imread(os.path.join(image_folder, img_name))
video.write(img)
video.release()

if __name__ == '__main__':
generate_timelapse('images', 'timelapse.mp4')

Running the Script

  1. Place your ESP32-CAM images in a folder called images.
  2. Make sure time-lapse-maker.py is in the same directory.
  3. Open a terminal and run:
python time-lapse-maker.py
  1. After a few seconds, you'll get a file named timelapse.mp4 containing your full plant growth sequence.