Skip to the content
2 layers160 × 100 mmCoffeeRoast Control RevA, the printed circuit board in 3D

CoffeeRoast Control RevA

smicbee/CoffeeRoast5

This is the generated RevA.1 hardware draft for moving the CoffeeRoast electronics onto a PCB. The current board has been updated with the agreed robustness optimizations and has zero KiCad error-level DRC violations…

Size
160 × 100 mm
Copper layers
2
Thickness
1.6 mm
Parts
129
Nets
53
Pads
272
Tracks, vias
556, 60
Pours
1
Routed
Yes
KiCad
KiCad 9.0 (file 20241229)
Created
18 May 2025
Updated
26 Oct 2026

Overview

CoffeeRoast Control RevA is an open-source printed circuit board by smicbee, from the smicbee/CoffeeRoast repository on GitHub. It is a 2-layer board of 160 × 100 mm with 129 parts on 53 nets, routed with 556 tracks and 60 vias.

It is built around the ESP32-S3-WROOM-1-N8. Its parts include 10 resistors, 7 capacitors, 4 ICs, 3 diodes and 3 connectors. It belongs with the ESP32 boards of this library.

Main components

1

README

KiCAD/CoffeeRoast-Control-RevA/README.md

CoffeeRoast-Control RevA.1 PCB Draft

This is the generated RevA.1 hardware draft for moving the CoffeeRoast electronics onto a PCB. The current board has been updated with the agreed robustness optimizations and has zero KiCad error-level DRC violations, but it still needs manual engineering review before fabrication.

Design decision captured from chat

  • Use one 230V appliance inlet for the whole roaster enclosure.
  • Inside the enclosure use a certified isolated 230VAC -> 24VDC / 3A PSU.
  • The controller PCB itself is low-voltage only and accepts the PSU's 24VDC output.
  • The PCB generates 5V via a buck module and 3.3V via a RevA.1 switching-regulator footprint/selection for the ESP32-S3 module.
  • The heater's 230V path is still switched by an external SSR module with heatsink; 230V is intentionally not routed on this PCB.
  • RevA.1 adds low-voltage robustness features: input bulk capacitor, 24V input TVS, fan TVS, USB ESD footprint, thermocouple filter footprint, and rail test pads.

Files

  • CoffeeRoast-Control-RevA.kicad_pcb — KiCad board draft with real on-board USB-C footprint and autorouted/manual-cleanup tracks.
  • CoffeeRoast-Control-RevA.kicad_sch — vollständiger, editierbarer KiCad-Schaltplan mit Funktionsblöcken für Versorgung, Lüfter/SSR, ESP32, MAX6675, USB und Testzugänge; die benannten Netze entsprechen dem gerouteten PCB.
  • tools/generate_full_schematic.py — reproduzierbarer Generator für den Schaltplanentwurf; die native .kicad_sch-Datei wurde mit KiCad 9 konvertiert und geprüft.
  • render/schematic/CoffeeRoast-Control-RevA.pdf und .svg — exportierte Schaltplanansichten; render/schematic/erc.json enthält den aktuellen ERC-Bericht.
  • docs/netlist.csv — tabellarische Referenz der beabsichtigten elektrischen Verbindungen.
  • docs/bom.csv — Stückliste des aktuellen PCB-Entwurfs.
  • docs/esp32_debug_pads.csv — ESP32-S3 TPESP1-40 tiny probe pad mapping.
  • docs/esp32_solder_pads.csv — larger labeled bottom-side PADESP1-40 solder pad mapping for attaching wires later.
  • docs/routing_notes.md — routing/DRC status and fabrication caveats.
  • docs/reva1_optimizations.md — RevA.1 robustness changes and what was deliberately left for RevB.
  • tools/apply_reva1_optimizations.py — idempotent pcbnew script that applies the RevA.1 PCB additions.
  • production/partial-smd-pcba/ — generated Gerber/drill + partial SMD assembly BOM/CPL package for first prototype ordering.
  • tools/prepare_partial_pcba_package.py — regenerates the partial-SMD PCBA handoff package.
  • symbols/ and footprints.pretty/ — local ESP32-S3-WROOM-1 and USB-C library files copied from KiCad upstream.

Firmware pin mapping preserved

FunctionESP32-S3-WROOM-1 pinGPIOFirmware variable
Heater/SSR PWM39GPIO1relayPin
Fan PWM38GPIO2fanPin
MAX6675 DO/SO19GPIO11thermoDO
MAX6675 CS20GPIO12thermoCS
MAX6675 CLK/SCK21GPIO13thermoCLK
USB D-13native USB D-serial/flash
USB D+14native USB D+serial/flash
BOOT27GPIO0flash mode
EN/RESET3ENreset

ESP32 debug pads

All ESP32-S3-WROOM-1 side pins 1-40 are exposed twice: tiny local probe pads named TPESP1 through TPESP40 around U1, and larger labeled bottom-side solder pads named PADESP1 through PADESP40 routed outward for attaching wires later. The mappings are in docs/esp32_debug_pads.csv and docs/esp32_solder_pads.csv. These include the spare GPIOs plus already-used signals such as USB D+/D-, MAX6675 SPI, BOOT/EN, fan PWM, heater/SSR PWM, 3V3, and GND.

Power tree

text
230VAC inlet in enclosure
  +--> certified 230VAC -> 24VDC / 3A PSU
          +--> J1 on this PCB
                +--> C4 input bulk + D2 24V TVS protection
                +--> F1 24V-side fuse placeholder
                +--> J2 24V fan via Q1 low-side MOSFET + D1/D3 fan clamp
                +--> U4 24V -> 5V buck module
                        +--> SSR input driver supply
                        +--> U3 3.3V switching regulator selection
                                +--> ESP32-S3-WROOM-1 + MAX6675

230VAC heater line: external SSR module only, not on this PCB.

Important limitations before fabrication

This board now loads in KiCad 9 and has been routed/checked headlessly. KiCad error-level DRC is clean, but before ordering boards:

  1. Open the project in KiCad.
  2. Replace remaining generic placeholders with exact sourced parts: fuse holder, U3 switching regulator footprint, U4 buck module, TVS packages, USB ESD package, MOSFET/regulator variants. J1-J4 are deliberately large hand-solder pads now, not PCBA connector placements.
  3. Re-run ERC/DRC after any mechanical/footprint changes.
  4. Confirm ESP32-S3-WROOM-1 antenna keepout has no copper and is at board edge.
  5. Confirm the fan path, D3 TVS choice, Q1 MOSFET, and hand-solder pad/wire strain-relief scheme are rated for the real 24V/2.5A fan current.
  6. Confirm J5 enclosure cutout/edge placement for the exact USB-C part and replace U5 with an exact USB2 ESD footprint.
  7. Review USB CC pulldowns: R10/R11 = 5.1k to GND, VBUS is sense-only.
  8. Decide whether C5 should be populated after thermocouple noise testing; leave DNP if it biases readings.
  9. Review mains wiring separately: fused IEC inlet, PE/strain relief, certified 24V PSU, external SSR heatsink, thermal cut-off.

RevB candidates

  • Replace the generic U4 buck module with an integrated switch-mode converter.
  • Add reverse-polarity ideal-diode/P-MOSFET input protection if final wiring risk justifies the extra footprint/reroute.
  • Add current/thermal sensing for fan/heater diagnostics.

Parts

129
QtyValueFootprintReferences
6FIDUCIAL_GLOBAL_1MMFID1, FID2, FID3, FID4, FID5, FID6
4GNDPADESP1, PADESP40, TPESP1, TPESP40
2100RR1, R3
2100kR2, R4
23V3PADESP2, TPESP2
2ENPADESP3, TPESP3
2IO10PADESP18, TPESP18
2IO14PADESP22, TPESP22
2IO15PADESP8, TPESP8
2IO16PADESP9, TPESP9
2IO17PADESP10, TPESP10
2IO18PADESP11, TPESP11
2IO21PADESP23, TPESP23
2IO3PADESP15, TPESP15
2IO35PADESP28, TPESP28
2IO36PADESP29, TPESP29
2IO37PADESP30, TPESP30
2IO38PADESP31, TPESP31
2IO39PADESP32, TPESP32
2IO4PADESP4, TPESP4
2IO40PADESP33, TPESP33
2IO41PADESP34, TPESP34
2IO42PADESP35, TPESP35
2IO45PADESP26, TPESP26
2IO46PADESP16, TPESP16
2IO47PADESP24, TPESP24
2IO48PADESP25, TPESP25
2IO5PADESP5, TPESP5
2IO6PADESP6, TPESP6
2IO7PADESP7, TPESP7
2IO8PADESP12, TPESP12
2IO9PADESP17, TPESP17
1+24V_FUSED_TESTTP24V
1+3V3_TESTTP3V3
1+5V_TESTTP5V
1100nF_MAX6675C3
1100nF_U1_DECOUPLING_0603C6
1100nF_U4_OUTPUT_DECOUPLING_0603C7
110k_BOOT_PULLUPR6
110k_EN_PULLUPR5
110uF_3V3C2
110uF_5VC1
11nF_C0G_THERMO_DIFF_FILTER_DNP_IF_NOISYC5
1220uF_35V_INPUT_BULKC4
124V_IN_FROM_230V_PSU_3AJ1
124V_TO_5V_BUCK_MODULE_>=1A_LOW_NOISEU4
127R_USB_DNR7
127R_USB_DPR8
12N7002_SSR_DRIVERQ2
13V3_SWITCHING_REGULATOR_>=600mA_5V_IN_REPLACES_AMS1117U3
15k1_CC1_RDR10
15k1_CC2_RDR11
1BOOTSW2
1BOOT_TWEEZER_PADSTPBOOT1
1ESP32-S3-WROOM-1ESP32-S3-WROOM-1U1
1ESP32_GPIO_BREAKOUT_ROWESP32_GPIO_BREAKOUT_ROWJGPIO1
1FAN_24V_PWM_3AJ2
1GND_TESTTPGND
1IO0PADESP27
1IO0/BOOTTPESP27
1IO1PADESP39
1IO1/SSRTPESP39
1IO11PADESP19
1IO11/MAXDOTPESP19
1IO12PADESP20
1IO12/MAXCSTPESP20
1IO13PADESP21
1IO13/MAXCLKTPESP21
1IO2PADESP38
1IO2/FANTPESP38
1IRLB8721_OR_3V3_LOGIC_NMOS_RDS_ON_LOWQ1
1K_TYPE_THERMOCOUPLEJ4
1MAX6675_SOIC8_3V3U2
1RESET_ENSW1
1RESET_TWEEZER_PADSTPRESET1
1RXD0PADESP36
1RXD0/IO44TPESP36
1SB560_FLYBACKD1
1SMBJ33A_24V_INPUT_TVSD2
1SMBJ33A_FAN_TVSD3

The 118 most common of 129 parts.

Similar boards

  • 2 layers85 × 115 mmOSO BOOK B1, the printed circuit board in 3D

    OSO BOOK B1

    joeycastillo/The-Open-Book

    For details on how to build, test and use Open Book, I've made documentation available here.

    76 parts8.1kCC-BY-SA-4.0
  • 2 layers299 × 82.5 mmPixelWave, the printed circuit board in 3D

    PixelWave

    hackclub/OnBoard

    💡 Join 1,000 teenagers and make your first PCB with a $100 grant!

    663 parts915
  • 4 layers56.5 × 99.8 mmBitaxeGamma, the printed circuit board in 3D

    BitaxeGamma

    bitaxeorg/bitaxeGamma

    Bitaxe based on the BM1370 from the S21 Pro

    147 parts432CERN-OHL-S-2.0
  • 2 layers129.5 × 50.8 mmLilka, the printed circuit board in 3D

    Lilka

    lilka-dev/lilka

    Схема та документація ігрової консолі Lilka

    39 parts234GPL-2.0
  • 4 layers84.5 × 129.5 mmBitaxeHex, the printed circuit board in 3D

    BitaxeHex

    bitaxeorg/ultraHex

    multi-ASIC Bitcoin miner

    369 parts190CERN-OHL-S-2.0
  • 2 layers110 × 115 mmEsp32 keyboard v0.1, the printed circuit board in 3D

    Esp32 keyboard v0.1

    hhuysqt/esp32s3-keyboard

    USB/BLE keyboard driver based on ESP32S3-WROOM-1

    230 parts168GPL-3.0
  • 2 layers35.1 × 36.6 mmBinNanoFOC, the printed circuit board in 3D

    BinNanoFOC

    katbinaris/nanofoc_devkit

    Compact All-In-One BLDC Controler featuiring ESP32-S3, TMC6300 and Magalpha sensors. Small 35x35mm footprint.

    76 parts146
  • 2 layers148 × 81 mmCommunicator pcb, the printed circuit board in 3D

    Communicator pcb

    Hack-a-Day/2025-Communicator_Badge

    The 2025 Hackaday Supercon RF Communicator Badge

    58 parts107MIT

Questions

How big is the CoffeeRoast Control RevA PCB?

It measures 160 × 100 mm and has 2 copper layers, 1.6 mm thick.

What parts does the CoffeeRoast Control RevA use?

129 parts, built around the ESP32-S3-WROOM-1-N8. 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 CoffeeRoast Control RevA KiCad files?

From the smicbee/CoffeeRoast repository on GitHub, at the commit this page was made from: the board is KiCAD/CoffeeRoast-Control-RevA/CoffeeRoast-Control-RevA.kicad_pcb and its schematic KiCAD/CoffeeRoast-Control-RevA/CoffeeRoast-Control-RevA.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the CoffeeRoast Control RevA design in my own project?

Its repository states no licence, so its author keeps all rights: ask smicbee before reusing the design.