Skip to the content
2 layers40.6 × 49.8 mmReflow Project Kicad, the printed circuit board in 3D

Reflow Project Kicad

Sensei82013/Reflow-Oven

STM32F103 reflow oven controller: K-type thermocouple via MAX6675, 160 W element through a solid state relay, on-MCU PI loop, browser UI over SWD, and a 7in Nextion panel in progress.

Size
40.6 × 49.8 mm
Copper layers
2
Thickness
1.6 mm
Parts
51
Nets
55
Pads
165
Tracks, vias
227, 22
Pours
8
Routed
Yes
KiCad
KiCad 7 (file 20221018)
Created
26 Sep 2026
Updated
30 Sep 2026

Overview

Reflow Project Kicad is an open-source printed circuit board by Sensei82013, from the Sensei82013/Reflow-Oven repository on GitHub. It is a 2-layer board of 40.6 × 49.8 mm with 51 parts on 55 nets, routed with 227 tracks and 22 vias.

It is built around the STM32F103C8T6, MAX6675ISA+T and AMS1117-3.3, with the BSS138 among its other parts. Its parts include 11 capacitors, 10 resistors, 5 connectors, 4 diodes and 3 ICs. It belongs with the home automation and IoT boards and the STM32 boards of this library.

Main components

4

README

README.md

Reflow Oven Controller

A toaster oven converted into a PCB reflow oven, driven by a custom STM32F103 board with a K-type thermocouple, a solid state relay and a 7" Nextion touch panel.

The firmware runs a PI loop on the MCU. A host can steer it either from a small web app over SWD (working today) or from the Nextion panel (in progress).


System

mermaid
flowchart LR
    MAINS["120 V AC mains"] --> PSU["PSU<br/>120 VAC to 24 VDC"]
    PSU -->|24 V| SSR["SSR-25DD<br/>solid state relay<br/>3-32 V in, 25 A"]
    SSR -->|switched 24 V| HEAT["Heating element<br/>3.6 ohm, 160 W"]
    HEAT -.->|heat| TC["K-type thermocouple"]
    TC --> MAX["MAX6675<br/>cold-junction comp<br/>+ 12-bit ADC"]
    MAX -->|SPI| MCU["STM32F103C8T6<br/>custom PCB"]
    MCU -->|PA8 PWM<br/>TIM1_CH1| SSR
    MCU <-->|USART1<br/>PA9/PA10| NEX["Nextion NX8048P070-011C<br/>7in 800x480 capacitive"]
    MCU <-->|SWD| HOST["Host PC<br/>OpenOCD + web app"]
    PSU5["5 V supply, 1 A"] --> NEX

Bill of the major pieces

PartDetailNotes
MCUSTM32F103C8T6Custom PCB, OSHPark. 64 MHz from HSI - the 8 MHz crystal Y1 is not populated
TemperatureK-type thermocouple to MAX6675SPI, 0.25 °C resolution, 220 ms conversion. Terminal block J5
Heater switchSSR-25DDDC-DC, 3-32 V control, 5-200 V DC out, 25 A. Driven from PA8
Heating element3.6 Ω at 24 V6.7 A, 160 W. Hugely oversized for bench setpoints - see skill.md
Power120 VAC to 24 VDCFeeds the element through the SSR
DisplayNextion NX8048P070-011C7", 800x480, capacitive, Intelligent series. Needs its own 5 V at 1 A - no USB power
DebugST-Link V2 on J23V3 / SWDIO / SWCLK / GND only. No NRST

Pin map

SignalMCU pinNet / test point
MAX6675 ~CSPA4Thermo_CS, TP2, indicator D4
MAX6675 SCKPA5Thermo_SCK, TP3
MAX6675 SOPA6Thermo_SO, TP4
SSR controlPA8Relay, J6, TIM1_CH1, indicator D3
USART1 TX -> Nextion RXPA9TP6
USART1 RX <- Nextion TXPA10TP5 (5 V tolerant)
SWDPA13 / PA14J2

Two board quirks worth knowing before wiring anything:

  • J4 (the 5 V serial header) does not work. Its BSS138 level shifters are rotated one pin position, so a signal arriving there reaches only a MOSFET gate - there is no DC path to the MCU. Go directly to PA9 / PA10 (TP6 / TP5). No level shifting is needed in either direction.
  • SW1 selects BOOT0. In the +3.3 V position the part boots from SRAM and never runs your firmware. It belongs in the GND position.

Repository layout

text
Hardware/
  KiCad/            schematic, PCB, gerbers, BOM, 3D step
Software/
  webapp/           browser UI + Python bridge (bridge.py, index.html)
  run_webapp.ps1    build, flash, serve the web app
  run_profile.ps1   open-loop step tests, PI profiles, hardware probes
  run_monitor.ps1   plain thermocouple monitor
  Display/          Nextion HMI designs
  Embedded/
    Thermo_Monitor/ the live firmware (all current work)
    Reflow_Oven_STM32_SOURCE_V1_1/  original 2021 firmware, Nextion HMI
    Reflow_Oven_STM32_Source/       earlier revision
skill.md            project goal, architecture and the pitfalls found so far

Quick start

Everything is driven from Software/, with the ST-Link connected. The STM32CubeIDE toolchain is used in place, so nothing extra needs installing; make comes from Git Bash.

powershell
# live temperature only
.\run_monitor.ps1 -Seconds 30

# browser UI: setpoint + Kp/Ki in, temperature and duty out
.\run_webapp.ps1 -Kp 0.2 -Ki 0.002 -MaxDuty 1.5
# then open http://127.0.0.1:8770/

# open-loop step test, for characterising the plant
.\run_profile.ps1 -Mode step -PwmHz 1 -StepDuty 10 -BaseSeconds 180 -Seconds 500 -Csv step.csv

The firmware builds in several modes, selected at compile time:

MODE=What it does
(none)thermocouple monitor, no heating
pifixed 30/40/50 °C profile with dwells
stepopen-loop step at a fixed duty, for plant characterisation
holdpark the output at a duty so the driver can be probed
serverPI loop steered from the host over SWD - used by the web app
nextionPI loop driven from the Nextion panel - Start/Stop arm it, Apply sets setpoint and gains, telemetry goes back to the screen
hmiNextion first-contact probe - baud sweep, pin checks, frame dump
tx / rxcontinuous transmit / raw receive capture, for tracing wiring

Status

Working: thermocouple readings, SSR drive, PWM on TIM1_CH1, PI loop on the MCU, web app with live charts and a dead-man switch, all the safety cutoffs.

Working on the panel: wire it straight to PA9 / PA10 - not J4, whose level shifters are miswired. MODE=nextion is a full controller driven from the screen: Start and Stop arm and disarm the loop, Apply sets the setpoint and gains, and the firmware pushes temperature, setpoint, duty, error, state, the status LED, the P/I split and the trend waveform back to the panel. The object map is Software/Display/README.txt.

Remaining on the panel: a run on real hardware to confirm the arming path end to end. Note the trend waveform's add command takes a single byte, so the trace clips above about 91 °C - fine for bench work, not for a reflow profile.

Not started: reflow profiles proper (soak / ramp / peak / cool), enclosure, mains-side safety.

See skill.md for the detail, and especially for the things that cost real time to discover.

Parts

51
QtyValueFootprintReferences
6100nCapacitor_SMD:C_0402_1005MetricC1, C2, C3, C4, C5, C18
510kResistor_SMD:R_0603_1608MetricR1, R6, R7, R8, R9
51k5Resistor_SMD:R_0603_1608MetricR2, R3, R4, R5, R10
5GNDMountingHole:MountingHole_3.2mm_M3_DIN965_PadH1, H2, H3, H4, H5
215pCapacitor_SMD:C_0402_1005MetricC7, C8
21760510000footprints:CONN2_1760510000_WEDJ5, J6
21uCapacitor_SMD:C_0805_2012Metric_Pad1.18x1.45mm_HandSolderC16, C17
2BSS138Package_TO_SOT_SMD:SOT-23Q1, Q2
2Conn_01x04_PinConnector_PinHeader_2.54mm:PinHeader_1x04_P2.54mm_VerticalJ2, J4
2GREENLED_SMD:LED_0603_1608MetricD1, D2
2REDLED_SMD:LED_0603_1608MetricD3, D4
110uCapacitor_SMD:C_0805_2012MetricC6
1AMS1117-3.3Package_TO_SOT_SMD:SOT-223-3_TabPin2U3
1ATS08A-E (8MHz)ATS08A_E (1):ATS08A-EY1
1LOGOLOGO
1MAX6675ISA_MAX6675ISA_T (5):SOIC127P600X175-8NU4
1STM32F103C8T6Package_QFP:LQFP-48_7x7mm_P0.5mmU1
1SW_Nidec_CAS-120A1EG1271A:SW_EG1271ASW1
1SW_PushButton_Switch_THT:SW_PUSH_6mmSW2
1Thermo_CSTestPoint:TestPoint_THTPad_1.0x1.0mm_Drill0.5mmTP2
1Thermo_SCKTestPoint:TestPoint_THTPad_1.0x1.0mm_Drill0.5mmTP3
1Thermo_SOTestPoint:TestPoint_THTPad_1.0x1.0mm_Drill0.5mmTP4
1USART1_RXTestPoint:TestPoint_THTPad_1.0x1.0mm_Drill0.5mmTP14
1USART1_RX_v2TestPoint:TestPoint_THTPad_1.0x1.0mm_Drill0.5mmTP5
1USART1_TXTestPoint:TestPoint_THTPad_1.0x1.0mm_Drill0.5mmTP13
1USART1_TX_v2TestPoint:TestPoint_THTPad_1.0x1.0mm_Drill0.5mmTP6
1USB_B_MicroConnector_USB:USB_Micro-B_Molex-105017-0001J1

Similar boards

  • 4 layers89 × 38 mmHotPlate, the printed circuit board in 3D

    HotPlate

    Markuselectronics/DIY-USB-C-Reflow-Hotplate

    A compact, open-source DIY Reflow Hotplate powered by USB-C PD and STM32. Features a custom aluminum PCB heater, OLED display, and PID temperature control for portable SMD soldering.

    82 parts7
  • 4 layers150 × 50 mmEmber, the printed circuit board in 3D

    Ember

    notaroomba/ember

    A custom hot plate powered by USB-C Power Delivery.

    136 parts25
  • 2 layers90 × 75.9 mmJAS Warhead PCB, the printed circuit board in 3D

    JAS Warhead PCB

    JAS-UCF/Blast-Shield

    PCB Design for WARHEAD

    77 parts
  • 2 layers48.5 × 50.4 mmPortable temperature sensor, the printed circuit board in 3D

    Portable temperature sensor

    Mounith-H/Portable_temperature_sensor

    wireless IoT temperature monitoring device based on the ESP8266 NodeMCU platform. It uses a MAX6675 thermocouple interface to measure temperatures up to 1024°C with high precision, making it suitable for industrial…

    17 partsMIT
  • 2 layers150 × 120 mmHydrogelBioprinter, the printed circuit board in 3D

    HydrogelBioprinter

    SimonDaniel605/Hydrogel-3D-Printer

    Development of a custom hydrogel 3D printer for tissue engineering and research applications for Stellenbosch University.

    174 partsMIT
  • 4 layers144.8 × 83.8 mmPCB Health.V6, the printed circuit board in 3D

    PCB Health.V6

    uob-hep-cad/dune_timing_system_gib_slow_control_d001-25_dga

    Slow Control Interface Board for the DUNE Timing System GIB

    64 parts
  • 4 layers65.3 × 49.7 mmMobile robot, the printed circuit board in 3D

    Mobile robot

    zachlambert/pcb-mobile-robot

    PCBs for a mobile robot

    78 parts
  • 2 layers121.9 × 49.5 mmBarhack, the printed circuit board in 3D

    Barhack

    q3k/internet-of-booze

    Hardware task for CONFidence 2015 CTF

    89 parts3GPL-3.0

Questions

How big is the Reflow Project Kicad PCB?

It measures 40.6 × 49.8 mm and has 2 copper layers, 1.6 mm thick.

What parts does the Reflow Project Kicad use?

51 parts, built around the STM32F103C8T6, MAX6675ISA+T, AMS1117-3.3 and BSS138. 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 Reflow Project Kicad KiCad files?

From the Sensei82013/Reflow-Oven repository on GitHub, at the commit this page was made from: the board is Hardware/KiCad/Reflow Project Kicad.kicad_pcb and its schematic Hardware/KiCad/Reflow Project Kicad.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the Reflow Project Kicad design in my own project?

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