Skip to the content
PCBKitNew board
2 layers99 × 56.3 mmReflowOven controller, the printed circuit board in 3D

An open source controller for converting kitchen toaster oven to reflow oven

Size
99 × 56.3 mm
Copper layers
2
Thickness
1.6 mm
Parts
122
Nets
98
Pads
401
Tracks, vias
843, 180
Pours
10
Routed
Yes
KiCad
KiCad 8.0 (file 20240108)
Created
21 May 2024
Updated
25 Jul 2025

Overview

ReflowOven controller is an open-source printed circuit board by TilenTinta, from the TilenTinta/ReflowOven_controller repository on GitHub, published under the MIT licence. It is a 2-layer board of 99 × 56.3 mm with 122 parts on 98 nets, routed with 843 tracks and 180 vias.

It is built around the MAX31855KASA+T, CH340G and W25Q16JVSNIQ, with the MP2303ADN, BC817 and 1N4148W among its other parts. Its parts include 42 resistors, 33 capacitors, 12 connectors, 8 diodes and 6 ICs. It belongs with the STM32 boards of this library.

Main components

8

README

README.md

Reflow Oven Controller

An open-source controller for converting a kitchen toaster oven into a reflow oven.

Overview

This project consists of a PCB and firmware to convert a classic toaster oven into a temperature-controlled oven for PCB reflow.

Oven Modes

  • Reflow - Follows a predefined temperature curve for optimal PCB reflow.
  • Dry - Maintains a defined temperature for a set duration (useful for drying components, filaments, etc.).

The oven used in this build is a budget-friendly (40€) 9L toaster oven with two quartz heating elements (BROCK TO9001B). Despite initial concerns about heating speed, the small chamber allows it to reach the required temperatures quickly. The oven has been additionally insulated for improved performance.

A solid-state relay (SSR) is used for controlling the heating elements, and a 12V 5A power supply powers the entire electronics system.

Reflow Oven


PCB

The PCB is a two-layer board with components on only one side (except for the LCD connector, which is on the opposite side). The board has the same dimensions and mounting hole positions as the LCD, allowing them to be stacked using a 3D-printed spacer.

The LCD used in this build is a 3.5-inch TFT LCD Display Module (320x480) with SPI Interface and Touch Screen (ILI9488 v2).

PCB Features

  • Safety switch for 12V
  • Voltage measurement (input and buck output)
  • Overtemperature protection via NTC sensor
  • Input protection (fuse and reverse polarity protection)
  • Max input voltage: 23V
  • AUX1 and AUX2 (can handle up to 45V and 500mA, but limited by PCB input voltage)
  • Supports up to two solid-state relays (SSRs) (PWM amplitude matches input voltage)
  • Supports up to two K-type thermocouples (MAX31855)
  • Raw USART output & USB output (CH340G) for monitoring and calibration
  • USB OTG support (requires core clock adjustment, affecting timer parameters)
  • External 2MB flash (W25Q16JVSNIQ) for GUI and fonts
  • SWD port for programming
  • Buzzer
  • MCU: STM32F411CEU6

PCB 3D View

PCB 3D View


3D Models

All parts are printed from PC plastic using an FDM 3D printer. Alternative plastics can be used, but they must withstand high temperatures. There are two different options for electronics assembly mounting:

  • Inside the oven as is in my case. For that you only need to print Front_frame

  • On the side of the oven. For that you need to print three parts with external at the end of model names. Base that screws to the frame has teeth that allows preset angles. For rigit mount use only screw and nut, but you can add a spring under screw head. That will allow setting the angle later.

3D Model


External Loader

The External Loader is a necessary part of the program. It allows CubeIDE to upload data (GUI and fonts) to the external flash chip. If you use a different flash chip, modifications are required to meet the new chip's recommendations. The loader program must be included in the main firmware/IDE.


Firmware

The firmware is not fully compatible with the latest version of the PCB. This update addresses mistakes found in the initial version of the board.

Missing Features

  • Read input voltage
  • Read buck voltage
  • Read NTC sensor
  • Safety switch (implemented in code but not tested)

For the GUI, TouchGFX with standard elements is used. The only custom file is the background.

External Libraries Used

The libraries for LCD (with touch) and external flash (External Loader) are not originally written by me but include minor modifications to fit this build. The original work was done by maudeve-it:

LCD Library:
Flash Library:

License

This project is open-source and available under the MIT License.


Contributing

Contributions are welcome! Feel free to submit issues or pull requests to improve the project.


Parts

122
QtyValueFootprintReferences
1810kResistor_SMD:R_0603_1608MetricR3, R10, R11, R15, R17, R24, R25, R26, R27, R28, R34, R36, R37, R38, R40, R41 +2
71kResistor_SMD:R_0603_1608MetricR6, R7, R12, R13, R16, R33, R39
5100Resistor_SMD:R_0603_1608MetricR8, R18, R21, R22, R23
5100nFCapacitor_SMD:C_0402_1005MetricC11, C12, C15, C16, C18
510nFCapacitor_SMD:C_0603_1608MetricC2, C3, C8, C27, C31
5BC817Package_TO_SOT_SMD:SOT-23Q1, Q2, Q3, Q4, Q6
40Resistor_SMD:R_0603_1608MetricR29, R30, R31, R32
40.1uFCapacitor_SMD:C_0603_1608MetricC1, C4, C13, C17
41N4148WDiode_SMD:D_SOD-123D4, D5, D6, D8
422pFCapacitor_SMD:C_0402_1005MetricC10, C20, C22, C25
4MountingHole_PadMountingHole:MountingHole_3.2mm_M3_DIN965_PadH1, H2, H3, H4
310nFCapacitor_SMD:C_0402_1005MetricC26, C29, C30
2100nFCapacitor_SMD:C_0603_1608MetricC6, C23
212MHzCrystal:Resonator_SMD_Murata_CSTxExxV-3Pin_3.0x1.1mmY1, Y3
24.7uFCapacitor_SMD:C_0402_1005MetricC19, C24
24.7uFCapacitor_SMD:C_1206_3216MetricC9, C33
25k1Resistor_SMD:R_0603_1608MetricR19, R20
2B120-E3Diode_SMD:D_SMAD1, D2
2MAX31855KASAPackage_SO:SOIC-8_3.9x4.9mm_P1.27mmU1, U2
2RedLED_SMD:LED_0603_1608MetricD3, D7
2SolderJumper_2_OpenJumper:SolderJumper-2_P1.3mm_Open_TrianglePad1.0x1.5mmJP2, JP3
1100kResistor_SMD:R_0603_1608MetricR1
110uFCapacitor_Tantalum_SMD:CP_EIA-3216-10_Kemet-IC5
110uFCapacitor_SMD:C_0603_1608MetricC14
110uH 4AInductor_SMD:L_10.4x10.4_H4.8L1
114x1-2.54mmConnector_PinSocket_2.54mm:PinSocket_1x14_P2.54mm_VerticalJ13
11k5Resistor_SMD:R_0603_1608MetricR5
11k8Resistor_SMD:R_0603_1608MetricR35
11uFCapacitor_SMD:C_0603_1608MetricC28
11uFCapacitor_SMD:C_0402_1005MetricC21
126k1Resistor_SMD:R_0603_1608MetricR4
12x5_2.54mmConnector_IDC:IDC-Header_2x05_P2.54mm_VerticalJ10
13.9nFCapacitor_SMD:C_0603_1608MetricC7
14.7uFCapacitor_SMD:CP_Elec_4x5.4C32
14x1-2.54mmConnector_PinHeader_2.54mm:PinHeader_1x04_P2.54mm_VerticalJ4
15AFuse:Fuse_2010_5025Metric_Pad1.52x2.65mm_HandSolderF1
15k5Resistor_SMD:R_0603_1608MetricR14
16k8Resistor_SMD:R_0603_1608MetricR2
1AO3401APackage_TO_SOT_SMD:SOT-23Q7
1BuzzerBuzzer_Beeper:Buzzer_12x9.5RM7.6BZ1
1CH340GPackage_SO:SOIC-16_3.9x9.9mm_P1.27mmU6
1Conn_01x02_PinConnector_PinHeader_2.54mm:PinHeader_1x02_P2.54mm_VerticalJ3
1MP2303ADNPackage_SO:SOIC-8-1EP_3.9x4.9mm_P1.27mm_EP2.62x3.51mmU4
1OUT1TerminalBlock_MetzConnect:TerminalBlock_MetzConnect_Type055_RT01502HDWU_1x02_P5.00mm_HorizontalJ7
1OUT2TerminalBlock_MetzConnect:TerminalBlock_MetzConnect_Type055_RT01502HDWU_1x02_P5.00mm_HorizontalJ6
1PWR_INTerminalBlock_MetzConnect:TerminalBlock_MetzConnect_Type055_RT01502HDWU_1x02_P5.00mm_HorizontalJ2
1SSR1TerminalBlock_MetzConnect:TerminalBlock_MetzConnect_Type055_RT01502HDWU_1x02_P5.00mm_HorizontalJ8
1SSR2TerminalBlock_MetzConnect:TerminalBlock_MetzConnect_Type055_RT01502HDWU_1x02_P5.00mm_HorizontalJ12
1STM32F411CEUxPackage_DFN_QFN:QFN-48-1EP_7x7mm_P0.5mm_EP5.6x5.6mmU5
1SW_DPDTButton_Switch_SMD:SW_SPDT_PCM12SW1
1SW_SPSTButton_Switch_SMD:SW_Push_1P1T_NO_CK_KMR2SW2
1Termocouple_1TerminalBlock_MetzConnect:TerminalBlock_MetzConnect_Type055_RT01502HDWU_1x02_P5.00mm_HorizontalJ5
1Termocouple_2TerminalBlock_MetzConnect:TerminalBlock_MetzConnect_Type055_RT01502HDWU_1x02_P5.00mm_HorizontalJ1
1USB_C_Receptacle_USB2.0Connector_USB:USB_C_Receptacle_XKB_U262-16XN-4BVC11J14
1W25Q16JVSNIQPackage_SO:SOIC-8_5.23x5.23mm_P1.27mmU7

The 120 most common of 122 parts.

Questions

How big is the ReflowOven controller PCB?

It measures 99 × 56.3 mm and has 2 copper layers, 1.6 mm thick.

What parts does the ReflowOven controller use?

122 parts, built around the MAX31855KASA+T, CH340G, W25Q16JVSNIQ and MP2303ADN. 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 ReflowOven controller KiCad files?

From the TilenTinta/ReflowOven_controller repository on GitHub, at the commit this page was made from: the board is PCB/PCB.kicad_pcb and its schematic PCB/PCB.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the ReflowOven 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).

Similar boards

  • 4 layers144.2 × 82.8 mmSmartFuseBox, the printed circuit board in 3D

    SmartFuseBox

    k3ldar/PowerControlHub

    PowerControlHub is a flexible automation controller for 12V systems. It combines relay switching, sensor monitoring, and smart‑home connectivity (MQTT, Home Assistant, REST, BLE) into one device.

    93 parts5GPL-3.0
  • 4 layers60 × 56 mmSTM32F4 Breakout REV2, the printed circuit board in 3D

    STM32F4 Breakout REV2

    alphaseneca/pcb_design_repo

    A repository for storing and documenting the pcb design files.

    63 parts1MIT
  • 4 layers156.6 × 143.1 mmSTM32F4 Breakout, the printed circuit board in 3D

    STM32F4 Breakout

    DallasFormulaRacing/PneumaticPaddleShifting

    An embedded system for the driver to perform up and down shifts with pneumatic paddle shifters.

    56 parts
  • 4 layers59.7 × 45 mmBasic stm32 board, the printed circuit board in 3D

    Basic stm32 board

    MILOUDIAS/Basic_STM32_Dev_Board

    The Project is about an STM32 based development board used mainly for educative purposes and prototyping designed in Kicad 8

    61 partsLGPL-2.1
  • 2 layersWatch, the printed circuit board in 3D

    Watch

    KIIT-Robotic-Society/Dharma_RoboFest4.0

    Dharma Bot is a quadruped robotic dog featuring 12-DOF locomotion, real-time sensing, and a modular subsystem design.

    80 parts4MIT
  • 2 layers102.9 × 103.7 mmDrone ESP32, the printed circuit board in 3D

    Drone ESP32

    Asaf66/Drone_ESP32

    Rev 2 fixes the issues found while assembling the first board:

    80 parts
  • 6 layers300 × 200 mmNexrig, the printed circuit board in 3D

    Nexrig

    alanmimms/nexrig

    A ham oriented SSB exciter for 160m-10m that uses a PC or Raspberry Pi USB host as UI and DSP.

    664 parts3