Skip to the content
PCBKitNew board
2 layers76.7 × 51.1 mmMain controller, the printed circuit board in 3D

Main controller

cjlawson02/Rumtime

Compile recipes, then execute cocktails at rumtime.

Size
76.7 × 51.1 mm
Copper layers
2
Thickness
1.6 mm
Parts
28
Nets
54
Pads
144
Tracks, vias
156, 0
Pours
1
Routed
Yes
KiCad
KiCad 10.0 (file 20260206)
Created
18 Jun 2026
Updated
7 Nov 2026

Overview

Main controller is an open-source printed circuit board by cjlawson02, from the cjlawson02/Rumtime repository on GitHub, published under the MIT licence. It is a 2-layer board of 76.7 × 51.1 mm with 28 parts on 54 nets, routed with 156 tracks and 0 vias.

It is built around the SS14. Its parts include 13 connectors, 7 resistors, 3 diodes and 1 switch.

Main components

1

README

README.md

Rumtime

Rumtime is a modular cocktail execution engine: ingredients are registered as services, recipes are resolved at runtime, and beverages are dispensed through a scalable ESP32-powered pump architecture.

This repo holds Rumtime documentation, Phase 0 bench-rig firmware, and KiCad PCB specifications. CAD and full product firmware are still in progress. The v1 hardware design uses food-safe tubing, Kamoer KPHM100-class reversible peristaltic pumps, modular 4-pump cartridges, and an ESP32-S3 controller. Software stack direction (Cloudflare kiosk UI, ESP32 dispense engine) and locked firmware runtime model (ControlTask + command queue on FreeRTOS) are in docs/16-firmware-and-software-architecture.md. Kiosk UX and React + shadcn stack in docs/17-kiosk-ui-plan.md; production app at ui/kiosk/. Provisional device HTTP contract in docs/18-kiosk-device-api.md.

Current design snapshot

  • Version 1 pump count: 8 installed pumps.
  • Expansion target: 12 total pumps via one additional 4-pump module.
  • Control platform: ESP32-S3 or similar ESP32 board, Wi-Fi only.
  • Pump strategy: One reversible peristaltic pump per ingredient.
  • Measurement strategy: Timed dispensing after calibration; load cell required for glass/ice detection, flow-gated pour start, and sanity checks.
  • Carbonation: Do not pump carbonated mixers in v1. Software should instruct the user to top off manually.
  • Cleaning: Moderate-effort cleaning with warm-water flush and Star San/session sanitizer workflow.
  • Budget target: About $500 max for v1, excluding liquor and ingredients.
  • Build style: Finished-looking countertop dispenser, with external bottles and replaceable tubing.

Document map

FilePurpose
AGENTS.mdCoding-agent and contributor behavior rules based on the requested Karpathy-style guidelines.
docs/00-project-brief.mdScope, goals, assumptions, and non-goals.
docs/01-decisions.mdAll captured design decisions from the planning conversation.
docs/02-system-architecture.mdHardware architecture and module layout.
docs/03-parts-list-bom.mdInitial parts list with budget notes and sourcing guidance.
docs/04-plumbing-and-fluid-path.mdTubing, fittings, bottles, nozzles, and ingredient compatibility.
docs/05-electronics-and-pcb.mdElectrical design and 4-pump PCB guidance.
docs/06-flow-calibration-and-inventory.mdTimed flow calibration, flow-gated dispense, load cell, and inventory tracking.
docs/07-cleaning-and-food-safety.mdCleaning workflow, sanitizer handling, and maintenance assumptions.
docs/08-mechanical-design.mdEnclosure, pump cartridges, drip tray, nozzle cluster, and fridge notes.
docs/09-build-plan-and-verification.mdStaged build plan with success criteria and test checks.
docs/10-open-questions-and-v2.mdDeferred decisions, v2 ideas, and risks.
docs/11-sourcing-notes.mdSourcing notes and search terms for pumps, tubing, fittings, electronics, and enclosure parts.
docs/12-phase-0-decisions.mdResearch-backed Phase 0 part decisions (pump, PSU, KiCad).
docs/13-phase-0-mini-bom.mdPhase 0 shopping list (~2-pump bench rig).
docs/14-bench-test-protocol.mdBench tests, pass criteria, and session log template.
docs/15-project-timeline.mdGantt chart, milestones, and procurement log (order/receive dates).
docs/16-firmware-and-software-architecture.mdSoftware stack decisions, firmware layers, sequence runner, NVS ownership, migration from bench rig.
docs/17-kiosk-ui-plan.mdLocked kiosk UX, connectivity, and guest/setup flows.
ui/kiosk/Production kiosk PWA — see ui/kiosk/README.md.
firmware/bench-rig/ESP32-S3 + TB6612 bring-up firmware (PlatformIO).
firmware/controller/ESP32-S3 product firmware scaffold (ControlTask runtime; pump subsystem implemented).
hardware/kicad/KiCad 4-pump module project, schematic spec, and kicad-cli scripts.
hardware/cad/build123d parametric CAD (src/), dimension refs (refs/), export scripts; Onshape for assembly review only.

Design philosophy

Build the simplest version of Rumtime that can make repeatable drinks, clean up reasonably, and expand without rewiring everything. Avoid premature complexity such as inline flow meters, shared manifolds, fridge drilling, carbonated pumping, or fully custom embedded module networks until the basic 8-pump machine has been validated.

Current status

Next action: Fit-check/measure the assembled load-cell cantilever, then solder the bar to HX711 (E+/E−/A+/A−) and run Tests 7–9. Parallel: finish 4-pump PCB layout (silkscreen/placement). Schematic v1 is ERC-clean. Bar 75 mm, holes 5 / 15 / 59 / 69, M4 tapped — hardware/cad/refs/estardyn-load-cell.md. HX711↔MCU already wired (GPIO 8/9). Sessions: 06 (measure + print) · 07 (assembled, not measured).

Done so far: 8× correct 12 V HB pumps are on hand and the 2 wrong 24 V units were returned. P1 + P2 are bench-validated @ 1.75 ml/s; dual-pump ~0.4 A; anti-drip 100 ms; P2 sequential 50 ml target → ~45 ml (anti-drip); host CLI benchctl.py + proto=2 serial parser. The other 6 pumps still need incoming inspection and variance testing.

Decisions are locked in docs/12-phase-0-decisions.md (KPHM100-HBB10 pump, TB6612 breakout, ESP32-S3-DevKitC-1, KiCad for Phase 2 PCB).

First prototype goal

Validate the core liquid path with 2–4 pumps. Module schematic v1 is done (ERC clean). Layout/silkscreen in progress. Fab waits on DRC (I2C bring-up is Test 10 on the first board).

  1. Dispense 15 ml, 30 ml, and 60 ml targets by time after calibration.
  2. Validate flow-gated dispense vs timed-only on de-primed and post–anti-drip lines (Test 9) — v1 pour default, not a PCB gate.
  3. Reverse briefly after pours to reduce drips; document sequential pour drift (Test 4b).
  4. Flush simple syrup and grenadine adequately with warm water.
  5. Confirm tubing and nozzles do not retain obvious flavor or clog during a normal session.
  6. Confirm load cell detects glass, ice tare, flow onset, and no-flow conditions (Tests 7–9) — v1 pour, not a PCB gate.
  7. I2C pump control is proven on the first assembled module (Test 10), not a pre-fab MCP23017 breakout.

After DRC, fabricate the 4-pump module (hardware/kicad/) and proceed to the finished enclosure.

Parts

28
QtyValueFootprintReferences
410kResistor_SMD:R_0805_2012MetricR1, R4, R5, R6
22.2kResistor_SMD:R_0805_2012MetricR2, R3
2MountingHoleMountingHole:MountingHole_3.2mm_M3H1, H2
2MountingHole_PadMountingHole:MountingHole_3.2mm_M3_PadH3, H4
112V FUSEDTerminalBlock_Phoenix:TerminalBlock_Phoenix_MKDS-1,5-2-5.08_1x02_P5.08mm_HorizontalJ1
1330Resistor_SMD:R_0805_2012MetricR7
1BUCK_ESP Mini560 5VRumtime:Mini560J3
1BUCK_USB Mini560 5VRumtime:Mini560J4
1BUS1Connector_Molex:Molex_Micro-Fit_3.0_43045-0612_2x03_P3.00mm_VerticalJ7
1BUS2Connector_Molex:Molex_Micro-Fit_3.0_43045-0612_2x03_P3.00mm_VerticalJ8
1BUS3Connector_Molex:Molex_Micro-Fit_3.0_43045-0612_2x03_P3.00mm_VerticalJ13
1BUS4Connector_Molex:Molex_Micro-Fit_3.0_43045-0612_2x03_P3.00mm_VerticalJ14
1CELL XHConnector_JST:JST_XH_B4B-XH-A_1x04_P2.50mm_VerticalJ10
1DevKit J1 leftConnector_PinSocket_2.54mm:PinSocket_1x22_P2.54mm_VerticalJ5
1DevKit J3 rightConnector_PinSocket_2.54mm:PinSocket_1x22_P2.54mm_VerticalJ6
1HX711 analogConnector_PinSocket_2.54mm:PinSocket_1x06_P2.54mm_VerticalJ9
1HX711 digitalConnector_PinSocket_2.54mm:PinSocket_1x04_P2.54mm_VerticalJ12
1KINDLE CHARGEConnector_USB:USB_C_Receptacle_GCT_USB4125-xx-x-0190_6P_TopMnt_HorizontalJ11
1MAIN 10A DCTerminalBlock_Phoenix:TerminalBlock_Phoenix_MKDS-1,5-2-5.08_1x02_P5.08mm_HorizontalSW1
1PWRLED_THT:LED_D3.0mmD2
1SS14Diode_SMD:D_SMAD1
1STATUSLED_THT:LED_D3.0mmD3

Questions

How big is the Main controller PCB?

It measures 76.7 × 51.1 mm and has 2 copper layers, 1.6 mm thick.

What parts does the Main controller use?

28 parts, built around the SS14. 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.

Where can I download the Main controller KiCad files?

From the cjlawson02/Rumtime repository on GitHub, at the commit this page was made from: the board is hardware/kicad/main-controller/main-controller.kicad_pcb and its schematic hardware/kicad/4-pump-module/4-pump-module.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the Main controller design in my own project?

Its repository publishes it under the MIT licence: you may reuse it on that licence's terms (keep the author's notice, and for a copyleft licence share your changes alike).

More from cjlawson02/Rumtime

1
  • 2 layers84.7 × 20.9 mm4-pump module, the printed circuit board in 3D

    4-pump module

    cjlawson02/Rumtime

    Compile recipes, then execute cocktails at rumtime.

    30 partsMIT

Similar boards

  • 2 layers80 × 129.1 mmSmart Plant, the printed circuit board in 3D

    Smart Plant

    JGAguado/Smart_Plant

    The Smart Plant is a board that can be plugged directly on the soil, close to the plant, that allows the measurement of the environment (soil moisture, environment temperature & illuminance), and presents the…

    75 parts303
  • 2 layers128 × 88 mmFireball revD, the printed circuit board in 3D

    Fireball revD

    ugcs/ddc

    Drone Show Software is software designed for drone shows, allowing flight path planning as well as control of dozens of drones simultaneously in a synchronized manner.

    64 parts223
  • 4 layers113.5 × 105.5 mmMultistepper, the printed circuit board in 3D

    Multistepper

    eddyem/stm32samples

    Code samples and ready projects based on bare-metal STM32

    243 parts208
  • 2 layers66.8 × 34 mmESP8266, the printed circuit board in 3D

    ESP8266

    MaloufSleep/ME-ESP8266

    Malouf Electronics - ESP8266 Dev Board

    127 parts204MIT
  • 2 layers40 × 53.6 mmCanLite, the printed circuit board in 3D

    CanLite

    voltlog/CanLite

    ESP32 based CAN development board

    42 parts192GPL-3.0
  • 2 layers99.1 × 76.2 mmPico dev, the printed circuit board in 3D

    Pico dev

    execuc/u2if

    USB to interfaces implementing MicroPython "machine" module functionalities on a computer.

    36 parts182
  • 2 layers40 × 100 mmBack pcb, the printed circuit board in 3D

    Back pcb

    ZeroPhone/ZeroPhone-PCBs

    PCB files for ZeroPhone - for gerbers and schematics, go to "Releases" tab!

    118 parts148GPL-3.0
  • 2 layers100 × 85 mmVNA, the printed circuit board in 3D

    VNA

    profdc9/VNA

    Vector Network Analyzer based on the STM32F103C8T6 bluepill

    178 parts93