Skip to the content
PCBKitNew board
2 layers49.8 × 54.9 mmReflow toaster mainboard, the printed circuit board in 3D

Reflow toaster mainboard

canardos/bake-n-flow

Hardware and firmware files for an STM32 based toaster reflow oven

Size
49.8 × 54.9 mm
Copper layers
2
Thickness
1.6 mm
Parts
46
Nets
106
Pads
254
Tracks, vias
455, 66
Pours
2
Routed
Yes
KiCad
KiCad 7 (file 20221018)
Created
2 Apr 2024
Updated
9 Oct 2026

Overview

Reflow toaster mainboard is an open-source printed circuit board by canardos, from the canardos/bake-n-flow repository on GitHub, published under the MIT licence. It is a 2-layer board of 49.8 × 54.9 mm with 46 parts on 106 nets, routed with 455 tracks and 66 vias.

It is built around the MAX31856, TLV75533PDBV and SI1308EDL. Its parts include 19 capacitors, 7 connectors, 6 resistors, 4 ICs and 2 transistors. It belongs with the computers and single-board computers boards and the STM32 boards of this library.

Main components

3

README

README.md

Bake-n-Flow

Reflow toaster oven controller

Yet another (STM32F1-based) toaster reflow oven controller - PCB design and firmware

[!Warning] This is personal project. It was built and works without issue for my purposes. It is made public here in case some part of it is useful to others, but neither the hardware nor firmware have been rigorously tested.

Features:

  • Customizable profiles
  • Reflow / baking operations
  • Manual override controls
  • Touch screen control

This repo contains the firmware and PCB design.

See custom electronics projects at DuckToast.com for full project details.

https://github.com/canardos/bake-n-flow/assets/14832310/401d4c1e-f360-4829-90d8-4b5ea61bf341

Build

The project uses the PlatformIO dependency management/build system. If you have PlatformIO installed, executing the run command in the root folder should 🙏 be all that is required for a successful build. The platformio.ini file contains the required configuration and PlatformIO will download the required dependencies and toolchain.

1. Clone repo and download submodules

shell
> git clone https://github.com/canardos/bake-n-flow.git
> cd bake-n-flow
> git submodule update --init

2. Build firmware (PlatformIO must be installed)

shell
> pio run

Processing release (platform: ststm32; board: genericSTM32F103VD; framework: cmsis)
-----------------------------------------------------------------------------------
Verbose mode can be enabled via `-v, --verbose` option
CONFIGURATION: https://docs.platformio.org/page/boards/ststm32/genericSTM32F103VD.html
PLATFORM: ST STM32 (19.7.0) > STM32F103VD (64k RAM. 384k Flash)
HARDWARE: STM32F103VDT6 72MHz, 64KB RAM, 384KB Flash
DEBUG: Current (stlink) External (blackmagic, cmsis-dap, jlink, stlink)
PACKAGES:
 - framework-cmsis @ 2.50501.200527 (5.5.1)
 - framework-cmsis-stm32f1 @ 4.3.5
 - tool-ldscripts-ststm32 @ 0.2.0
 - toolchain-gccarmnoneeabi @ 1.120301.0 (12.3.1)
LDF: Library Dependency Finder -> https://bit.ly/configure-pio-ldf
LDF Modes: Finder ~ chain, Compatibility ~ soft
Found 4 compatible libraries
Scanning dependencies...
Dependency Graph
|-- libpekin @ 0.2.1
|-- libpekin_stm32
Building in release mode
Compiling piobuild/build/release/FrameworkCMSIS/gcc/startup_stm32f103xe.o
...

3. Upload to device

Similarly, use pio run --target upload to upload the firmware to the device. You'll likely need to update the upload settings in platformio.ini to reflect your settings, or use your own upload tool.

shell
> pio run --target upload

Configuring upload protocol...
AVAILABLE: blackmagic, dfu, jlink, serial, stlink
CURRENT: upload_protocol = stlink
Uploading piobuild/build/release/firmware.elf
xPack OpenOCD, x86_64 Open On-Chip Debugger 0.10.0+dev-00378-ge5be992df (2020-06-26-09:27)
Licensed under GNU GPL v2
For bug reports, read
        http://openocd.org/doc/doxygen/bugs.html
debug_level: 1

hla_swd
target halted due to debug-request, current mode: Thread
xPSR: 0x01000000 pc: 0x0800108c msp: 0x20010000
** Programming Started **
** Programming Finished **
** Verify Started **
** Verified OK **
** Resetting Target **
shutdown command invoked
======================== [SUCCESS] Took 12.58 seconds =================================

4. [optional] Create project files for IDE

If you want to view/edit the project in your favorite IDE, use PlatformIO to generate the appropriate setup/workspace files and then import the project in the IDE:

shell
> pio project init --ide [atom|clion|codeblocks|eclipse|emacs|netbeans|qtcreator|sublimetext|vim|visualstudio|vscode]

See the PlatformIO documentation for further details.

Using an alternate build system

Platform dependencies

If you wish to use a different build system, you will need:

ST STM32 CMSIS headersPeripheral/register definitions
CMSIS headers/sourceCMSIS HAL functionality - SysTick_Config, NVIC_xxx etc.
CMSIS Cortex-M3 system sourceSystemInit()/SystemCoreClockUpdate() implementation and SystemCoreClock
Startup source fileASM file containing the startup code and vector table
Linker scriptTells the linker how to setup everything in flash/SRAM

All of these are available in the STM32 SDK available from ST Micro.

Compiling / linking

platformio.ini lists the required compiler flags. Be sure to use --specs=nano.specs and --specs=nosys.specs when linking using your own tools, as the standard lib is be too large and is not used.

Compiler

The project was compiled and tested with gcc-arm-none-eabi 9.2.1 gcc-arm-none-eabi 12.3.1. It should work with any later GCC version and possibly with other compilers. The code contains some GCC flags and some C99 VLAs.

Target requirements

MCUSTM32F103 with FSMC
Flash>195kb
SRAM>61kb

It may be possible to get by with less SRAM by using a smaller drawing buffer (currently 40 lines - 38.4 kb)

Dependencies

CMSIS

PlatformIO should automatically include/link the correct headers/sources from the STM32 SDK.

LVGL

LVGL v5.3 (git commit 9f216a55be65ec05c477ac55f73a6efad50f7680) is used. It is included as a Git submodule in thesrc/lvgl folder.

Libpekin

Libpekin is a collection of shared MCU-related code resulting from this and other projects. It's included as a Git submodule in the lib folder. PlatformIO will include the lib subfolders automatically.

Hardware - PCB

The PCB was designed with KiCad v.5, but the files have been upgraded to v.7 and are located in /hardware/pcb. Gerber output for the first and only revision is located in /hardware/pcb/plots.

The design contains minor errors that should be fixed if it is (re)produced. See the blog post here for details.

Folder structure

text
BakeNFlow
|
+--hardware          | KiCad schematic and board design files
|
+--lib
|  |
|  +--libpekin       | Libpekin platform independent code
|  +--libpekin_stm32 | Libpekin STM32 specific code
|
+--src
|  |
|  +--audio_samples  | Audio sample data
|  +--devices        | Hardware device drivers
|  +--lvgl           | LVGL project
|  +--lvgl_driver    | Display/touch driver for LVGL
|  +--oven           | Oven hardware interface and state management
|  +--reflow         | Reflow data structures and state management
|  +--hal            | (exception handlers etc.)
|  +--ui             | UI code for LVGL
|
|--test              | No tests in use

License

This software is available under the MIT license.

Parts

46
QtyValueFootprintReferences
90.1uFCapacitor_SMD:C_0402_1005MetricC4, C5, C8, C9, C14, C15, C16, C17, C18
4MountingHole_2.2mm_M2MountingHole:MountingHole_2.2mm_M2, , ,
30.01uFCapacitor_SMD:C_0402_1005MetricC3, C11, C13
2100RResistor_SMD:R_0603_1608MetricR1, R2
21uFCapacitor_SMD:C_0402_1005MetricC7, C10
220kResistor_SMD:R_0603_1608MetricR4, R6
224pFCapacitor_SMD:C_0402_1005MetricC1, C2
2Si1308EDLPackage_TO_SOT_SMD:SOT-323_SC-70Q1, Q2
10.47uFCapacitor_SMD:C_0402_1005MetricC6
110uFCapacitor_SMD:C_0805_2012MetricC19
120ktrimmer_panasonic:Trimmer_Potentiometer_Panasonic_EVM3WRV1
127kResistor_SMD:R_0603_1608MetricR3
1330Resistor_SMD:R_0603_1608MetricR5
18MHzCrystal:Crystal_SMD_7050-2Pin_7.0x5.0mm_HandSolderingY1
1CCapacitor_SMD:C_0402_1005MetricC12
1Door servoConnector_PinHeader_2.54mm:PinHeader_1x03_P2.54mm_HorizontalJ5
1Ext.Connector_PinHeader_2.54mm:PinHeader_1x04_P2.54mm_HorizontalJ2
1JTAGConnector_PinHeader_2.54mm:PinHeader_1x05_P2.54mm_HorizontalJ3
1LED(PE5)Diode_SMD:D_0603_1608MetricD1
1LOGOreflow-toaster-mainboard:duk-20mmG***
1MAX31856Package_SO:TSSOP-14_4.4x5mm_P0.65mmU3
1NCS2211DR2GPackage_SO:SOIC-8_3.9x4.9mm_P1.27mmU4
1STM32F103VDTxPackage_QFP:LQFP-100_14x14mm_P0.5mmU1
1SerialConnector_PinHeader_1.27mm:PinHeader_1x02_P1.27mm_HorizontalJ7
1SpeakerConnector_JST:JST_PH_S2B-PH-K_1x02_P2.00mm_HorizontalJ4
1TLV75533PDBVPackage_TO_SOT_SMD:SOT-23-5U2
1ThermocoupleConnector_PinHeader_2.54mm:PinHeader_1x02_P2.54mm_HorizontalJ6
1ili9481_tft_lcdConnector_FFC-FPC:Hirose_FH12-40S-0.5SH_1x40-1MP_P0.50mm_HorizontalJ1

Questions

How big is the Reflow toaster mainboard PCB?

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

What parts does the Reflow toaster mainboard use?

46 parts, built around the MAX31856, TLV75533PDBV and SI1308EDL. 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 toaster mainboard KiCad files?

From the canardos/bake-n-flow repository on GitHub, at the commit this page was made from: the board is hardware/reflow-toaster-mainboard/reflow-toaster-mainboard.kicad_pcb and its schematic hardware/reflow-toaster-mainboard/reflow-toaster-mainboard.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the Reflow toaster mainboard 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 layers90 × 90 mmKICAD reflow oven, the printed circuit board in 3D

    KICAD reflow oven

    leodk27/Reflow-oven-Custom

    Reflow oven project based on custom PCB and programming

    125 partsMIT
  • 4 layers50 × 50 mmAHAQ-1, the printed circuit board in 3D

    AHAQ-1

    vactomas/AHAQ-1

    # Air Quality Station

    61 parts
  • 2 layers21.7 × 29.3 mmMAXTempTC, the printed circuit board in 3D

    MAXTempTC

    Duet3D/TempDaughterboards

    Temperature Measurement Daughterboards for the DuetWifi

    30 parts7
  • 4 layers78 × 78 mmBEEIRON v0.0, the printed circuit board in 3D

    BEEIRON v0.0

    Krishnawa/BEEIRON

    A JBC soldering station

    136 parts7CC0-1.0
  • 2 layers65 × 49 mmKilnHat, the printed circuit board in 3D

    KilnHat

    tanaes/KilnHat

    PCB for running a kiln from a Raspberry Pi

    48 parts7MIT
  • 2 layers58.4 × 101.6 mmReflow, the printed circuit board in 3D

    Reflow

    hjf/ReflowOven

    Hardware and Firmware for an ESP8266-based reflow oven controller

    53 parts4MIT
  • 4 layers13.4 × 4.5 mmLre avio daq2, the printed circuit board in 3D

    Lre avio daq2

    IITB-Rocket-Team-Avionics/Ember

    Experimental Flight Computer with potential mitigations of previous issues faced by FLYTE and a testbed for new systems.

    172 parts4MIT
  • 2 layers115 × 65 mmPhoenix v2, the printed circuit board in 3D

    Phoenix v2

    hacker-fab/phoenix

    tube furnace

    41 parts3MIT