

Espresso controller firmware for an E61-grouphead style espresso machine
- Size
- 80 × 80 mm
- Copper layers
- 2
- Thickness
- 1.6 mm
- Parts
- 74
- Nets
- 67
- Pads
- 225
- Tracks, vias
- 601, 74
- Pours
- 1
- Routed
- Yes
- KiCad
- KiCad 9.0 (file 20241229)
- Created
- 26 May 2023
- Updated
- 27 Jan 2026
Overview
Lupa is an open-source printed circuit board by jorticus, from the jorticus/lupa-espresso repository on GitHub, published under the GPL-2.0 licence. It is a 2-layer board of 80 × 80 mm with 74 parts on 67 nets, routed with 601 tracks and 74 vias.
It is built around the ESP32-WROOM-32U, MAX31865AAP+ and AQH1213A. Its parts include 23 connectors, 21 resistors, 13 capacitors, 4 ICs and 2 inductors. It belongs with the ESP32 boards of this library.
Main components
3ESP32-WROOM-32U
SMD,19.2x18mm-40℃~+85℃ -97dBm 2.4GHz 20.5dBm 3V~3.6V Bluetooth4.2 ESP32-DOWD UART、SDIO、SPI、I2C、GPIO、PWM、ADC、DAC、CAN SMD,19.2x18mm WiFi Modules ROHSEspressif SystemsWiFi ModulesMAX31865AAP+
SSOP-20-40℃~+125℃ 1 1.5mA 15 1LSB 3V~3.6V Digital filtering SPI Sensor Conditioner Sigma-Delta SSOP-20 ADCs/DACs - Special Purpose ROHSMaxim Integrated (Analog Devices)Temperature SensorsAQH1213A
SMD-7P-30℃~+85℃ 0.2V/ns 0V~600V 1 Form A (SPST-NO) 1.3V 25mA 50mA 600V 600mA 6A AC Yes SMD-7P Solid State Relays (Triac Output) ROHSPanasonicSolid State Relays (Triac Output)
README
README.mdLUPA ESPRESSO
ESP32 firmware for controlling my modified Vibiemme Domobar Junior, which is an E61-grouphead Heat Exchanger (HX) espresso machine.
The main goal is to add some smarts, but retain the manual control and analog feel.
NOTE: This project is not intended to be re-used on other machines as it is highly specific to the particular modifications I have made.
Features
- PID control of heater boiler
- Automatic brew timer
- Digital pressure / temperature / flow readouts
- Graphing and gauges displayed on two round TFT displays
- Grouphead temperature approximation
- Preheat/sleep states
- Remote control
- HomeAssistant integration
Modifications
- Analog pressure dials replaced with round TFT displays
- Digital pressure transducer
- Water flow sensor
- Platinum PT100 thermocouple probe
- Boiler SSR controlled by ESP32
Parts
74| Qty | Value | Footprint | References |
|---|---|---|---|
| 6 | 10k | Resistor_SMD:R_0603_1608Metric | R5, R6, R7, R17, R18, R26 |
| 6 | 1k | Resistor_SMD:R_0603_1608Metric | R2, R3, R4, R13, R14, R15 |
| 5 | 100R | Resistor_SMD:R_0603_1608Metric | R8, R9, R10, R11, R12 |
| 5 | 10n | Capacitor_SMD:C_0603_1608Metric | C1, C2, C3, C4, C5 |
| 5 | Screw_Terminal_01x01 | Visclib:TAB_TERMINAL | J15, J20, J21, J22, J23 |
| 4 | DrillHoleE | MountingHole:MountingHole_3.2mm_M3_Pad | DRL1, DRL2, DRL3, DRL4 |
| 2 | 10nF | Resistor_SMD:R_0805_2012Metric | C6, C7 |
| 2 | 39 | Resistor_SMD:R_0805_2012Metric | R22, R23 |
| 2 | AQH1213A | Package_SO:SSO-7-8_6.4x9.78mm_P2.54mm | U3, U4 |
| 1 | 100nF X2 | Capacitor_THT:C_Disc_D4.7mm_W2.5mm_P5.00mm | C12 |
| 1 | 100uF | Capacitor_THT:CP_Radial_D5.0mm_P2.50mm | C13 |
| 1 | 10R | Resistor_SMD:R_0603_1608Metric | R1 |
| 1 | 10uF 450V | Capacitor_THT:CP_Radial_D10.0mm_P5.00mm | C14 |
| 1 | 12R 3W | Resistor_THT:R_Axial_DIN0516_L15.5mm_D5.0mm_P5.08mm_Vertical | R16 |
| 1 | 1A 250V | Fuse:Fuse_Schurter_UMZ250 | F1 |
| 1 | 1nF 400V Y | Capacitor_THT:C_Rect_L7.0mm_W2.5mm_P5.00mm | C10 |
| 1 | 1uF | Capacitor_SMD:C_0603_1608Metric | C9 |
| 1 | 2N7002 | Package_TO_SOT_SMD:SOT-23 | Q1 |
| 1 | 4.7mH | Inductor_THT:L_Radial_D6.0mm_P4.00mm | L1 |
| 1 | 4.7uH 2.2A | Inductor_SMD:L_6.3x6.3_H3 | L2 |
| 1 | 820uF 6.3V | Capacitor_THT:CP_Radial_D8.0mm_P3.50mm | C8 |
| 1 | BOILER_SSR | Connector_JST:JST_XH_S2B-XH-A_1x02_P2.50mm_Horizontal | J14 |
| 1 | ESP32-WROOM-32U | RF_Module:ESP32-WROOM-32U | U1 |
| 1 | FLOW1 | Connector_JST:JST_XH_B4B-XH-A_1x04_P2.50mm_Vertical | J4 |
| 1 | FLOW2 | Connector_JST:JST_XH_B4B-XH-A_1x04_P2.50mm_Vertical | J5 |
| 1 | Ferrite | Resistor_SMD:R_0603_1608Metric | FB1 |
| 1 | Fill Solenoid | TerminalBlock_Altech:Altech_AK300_1x02_P5.00mm_45-Degree | J17 |
| 1 | LCD_L | Connector_JST:JST_XH_B8B-XH-A_1x08_P2.50mm_Vertical | J8 |
| 1 | LCD_R | Connector_JST:JST_XH_B8B-XH-A_1x08_P2.50mm_Vertical | J9 |
| 1 | LED_PWR | Connector_JST:JST_XH_B2B-XH-A_1x02_P2.50mm_Vertical | J10 |
| 1 | LEVER | Connector_JST:JST_XH_B2B-XH-A_1x02_P2.50mm_Vertical | J1 |
| 1 | LOW_WATER | Connector_JST:JST_XH_B2B-XH-A_1x02_P2.50mm_Vertical | J3 |
| 1 | MAX31865 | Connector_PinHeader_2.54mm:PinHeader_1x08_P2.54mm_Vertical | J11 |
| 1 | MOV | Capacitor_THT:C_Disc_D4.7mm_W2.5mm_P5.00mm | RV1 |
| 1 | Mains | TerminalBlock_Altech:Altech_AK300_1x03_P5.00mm_45-Degree | J16 |
| 1 | NetTie_2 | NetTie:NetTie-2_SMD_Pad2.0mm | NT1 |
| 1 | POWER | Connector_JST:JST_XH_B2B-XH-A_1x02_P2.50mm_Vertical | J12 |
| 1 | POWER_BTN | Connector_JST:JST_XH_B2B-XH-A_1x02_P2.50mm_Vertical | J2 |
| 1 | PRESSURE1 | Connector_JST:JST_XH_B4B-XH-A_1x04_P2.50mm_Vertical | J6 |
| 1 | PRESSURE2 | Connector_JST:JST_XH_B4B-XH-A_1x04_P2.50mm_Vertical | J7 |
| 1 | PROG | Connector_PinHeader_2.54mm:PinHeader_1x06_P2.54mm_Vertical_SMD_Pin1Left | J13 |
| 1 | Pump | TerminalBlock_Altech:Altech_AK300_1x02_P5.00mm_45-Degree | J18 |
| 1 | SMBJ7A | Diode_SMD:D_SMB | D1 |
| 1 | VTX-215-005-003 | Visclib:SMPS-VTX-215-005-003 | U2 |
| 1 | Water Level | Connector_JST:JST_XH_B2B-XH-A_1x02_P2.50mm_Vertical | J19 |
| 1 | Wolf | Visclib:wolfpaw-0.3 | LOGO2 |
Questions
How big is the Lupa PCB?
It measures 80 × 80 mm and has 2 copper layers, 1.6 mm thick.
What parts does the Lupa use?
74 parts, built around the ESP32-WROOM-32U, MAX31865AAP+ and AQH1213A. 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 Lupa KiCad files?
From the jorticus/lupa-espresso repository on GitHub, at the commit this page was made from: the board is hardware/lupa.kicad_pcb and its schematic hardware/lupa.kicad_sch. PCBKit opens the board in the browser, with nothing to install.
Can I use the Lupa design in my own project?
Its repository publishes it under the GPL-2.0 licence: you may reuse it on that licence's terms (keep the author's notice, and for a copyleft licence share your changes alike).
Similar boards
- 4 layers161 × 100 mm

- 2 layers80 × 62 mm

- 4 layers100 × 100.1 mm

Master-4layers
DepBo/AquaCare
AquaCare là hệ thống theo dõi và quản lý nuôi trồng thủy sản, gồm ứng dụng web, ứng dụng di động và backend kết nối dữ liệu cảm biến với thiết bị trong ao/bể.
135 parts1 - 2 layers100 × 80 mm

Brewingstation3
Gr3yh0und/brewingstation
Automate your brew day: ESP32 + induction cooktop + PID control, talking MQTT to CraftBeerPi.
51 parts1MIT - 2 layers65 × 56 mm

TemperatureManagementRPiHat
KozaMateusz/TemperatureManagementGUI
Graphical user interface to controll the temperature in a chamber.
29 parts1 - 4 layers20 × 52 mm

IoT AIO
N5GEH/n5geh.devices.iot_wa_aio
IoT-AIO is a wireless adapter for developing IoT applications for Industrial and Building Automation Systems based on the Espressif chipset ESP32.
58 parts1MIT - 2 layers51 × 36.3 mm

- 2 layers100 × 50 mm

PTDriver
wallaceowen/PTDriver
Signal conditioning PT100 sensors for use with standard thermistor inputs on 3D printer control boards
67 parts1MIT