ESP32-S3 pet feeder

A micro servo opens a flap under a kibble container for one second, then closes it, every 8 hours. The program is saved on the board and runs without the computer, on a USB charger or a power bank.

The program

Chip BASIC: every line is one instruction you can read and change. The compiler checks it at every release of the site.

10 SERVO 90
20 WAIT 1s
30 SERVO 0
40 WAIT 8h
50 GOTO 10

What you should see: the servo's arm goes to 90° for one second, back to 0°, and waits 8 hours before the next meal.

▶ Open it in the IDE

In the simulator you see the logic run right away, with no hardware. The simulator does not check the wires: you check those on the board, and the IDE's wiring check walks you through it.

The parts

The compiler finds the parts in the program. Each has its own page with a test program to run before you build the whole thing.

How to wire it to an ESP32-S3

  1. Signal → ESP32-S3: GPIO8
  2. VCC → ESP32-S3: 5VIts connector goes into the breadboard through a male pin header, or a male-to-male jumper per wire
  3. GND → ESP32-S3: GNDCommon ground: this link is mandatory.

If it does not work

The servo: the board restarts by itself
When it starts, the servo draws more current than the board gets from USB, and the voltage drops. Put a 100 µF capacitor between 5 V and GND close to the servo, or power it separately with a common GND.
The servo: the program runs but nothing happens
The servo gets no 5 V, or the signal is on the wrong pin. Brown wire to GND, red to 5 V, orange to the signal pin shown in the diagram.

What you can change

The 8 hours are line 40, the second it stays open line 20 (longer, more kibble). If the flap opens the wrong way, swap 90 and 0. Ask Chip for a button that gives an extra meal.

Which boards it works on

  • ESP32-S3 Freenove: yes
  • Nordic nRF54LM20 DK: yes
  • Arduino UNO R4 WiFi: yes