All projects

Custom vending machine controller

VMCU v4 Control Board

A custom ESP32-S3 control board connecting vending motors, sensors, and a browser-based test interface.

ESP32-S3C++ArduinoPlatformIOKiCad
VMCU v4 Control Board
Custom vending machine controller
A connected workflow.
01Select slot
02Address matrix
03Drive motor
04Read sensors
WORKFLOW ILLUSTRATIONNO LIVE DATA
Project type

Custom hardware & firmware

Built for

Vending machine builders and technicians testing the controller.

01 / Context

The problem

A vending machine needs a controller that connects product-selection commands with physical motors and sensor feedback. Bringing up custom hardware also needs a practical way to test individual outputs.

02 / My contribution

What I built

I designed a custom vending machine control board and developed its ESP32-S3 firmware, including motor-matrix control, sensor inputs, and a Wi-Fi web interface for board testing.

  • 10 × 6 motor matrix addressed through two daisy-chained 74HC595 shift registers
  • Browser-based slot selection and motor on/off testing
  • Door and product-drop sensor inputs
  • Firmware motor timeout and explicit motor-off control
  • KiCad schematic and PCB design files

03 / Under the surface

Technical decisions

Address motors as a matrix

The firmware selects one of ten rows and six columns through a 16-bit shift-register output. This maps 60 logical slots onto shared row and column controls.

Make board testing accessible from a browser

The ESP32-S3 runs an Arduino-based Wi-Fi web interface with slot selection, motor testing, and sensor status. PlatformIO defines the firmware build environment.

Separate motor bring-up from payment integration

The inspected v4 entrypoint initializes hardware and the web motor-test interface with MDB disabled. A firmware timeout turns off an active motor instead of relying only on a browser stop command.

Project notes

This case study covers custom board design and the motor-test firmware. Payment integration is disabled in the inspected test build; the workflow illustration represents the control flow, not a production vending transaction.

Have a similar challenge?

Let’s talk