# unexpectedmaker/reflowmaster architecture

> Architecture diagram of the GitHub repository unexpectedmaker/reflowmaster, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-11-12). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/unexpectedmaker/reflowmaster
- Repository: https://github.com/unexpectedmaker/reflowmaster

## Overview

ReflowMaster is an open-source toaster-oven reflow controller comprising SAMD21 firmware, custom electronics, and printable enclosure parts. The principal workflow is selecting a programmed reflow profile and running the oven controller; the repository also provides profile data, temperature-sensor and curve-interpolation code, and persistent-flash support. Hardware design files and enclosure models are separate deliverables. The main sketch was not excerpted, so connections from it to sampled firmware helpers are shown as unverified rather than asserted.

Main entry points: [`Code/Reflow_Master_v2/Reflow_Master_v2.ino`](https://github.com/unexpectedmaker/reflowmaster/blob/master/Code/Reflow_Master_v2/Reflow_Master_v2.ino) (Reflow controller), [`EagleCAD/ReflowMaster.sch`](https://github.com/unexpectedmaker/reflowmaster/blob/master/EagleCAD/ReflowMaster.sch) (Circuit schematic), [`EagleCAD/ReflowMaster.brd`](https://github.com/unexpectedmaker/reflowmaster/blob/master/EagleCAD/ReflowMaster.brd) (PCB layout), [`Code/Reflow_Master_v2/ReflowMasterProfile.h`](https://github.com/unexpectedmaker/reflowmaster/blob/master/Code/Reflow_Master_v2/ReflowMasterProfile.h) (Profile definitions)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_firmware["Controller firmware"]
  node_controller["Reflow controller"]
  node_profiles["Profile definitions"]
  node_spline["Curve interpolation<br/>[spline.cpp]"]
  node_thermocouple["Thermocouple reader<br/>[MAX31855.cpp]"]
  node_flash["Flash storage<br/>[FlashStorage.cpp]"]
  node_legacy_profile["V1 profile structure"]
end

subgraph group_electronics["Electronics design"]
  node_schematic["Circuit schematic<br/>[ReflowMaster.sch]"]
  node_board["PCB layout<br/>[ReflowMaster.brd]"]
  node_gerbers["Fabrication outputs<br/>[ReflowMaster.GTL]"]
  node_bom["Bill of materials"]
end

subgraph group_enclosure["Printed enclosure"]
  node_case_v1["V1 case parts<br/>[Case_Back.stl]"]
  node_case_v2_254["V2 2.54mm case"]
  node_case_v2_508["V2 5.08mm case"]
  node_fan_adapter["Exhaust fan adapter<br/>[Fan_Exhaust.stl]"]
end

node_operator(("Operator"))

node_operator -->|"runs firmware"| node_controller
node_operator -->|"edits profiles"| node_profiles
node_operator -->|"builds from"| node_schematic
node_operator -->|"fabricates from"| node_gerbers
node_operator -->|"prints parts"| node_case_v1
node_operator -->|"prints parts"| node_case_v2_254
node_operator -->|"prints parts"| node_case_v2_508
node_operator -->|"prints adapter"| node_fan_adapter
node_controller -.->|"uses profiles"| node_profiles
node_controller -.->|"reads temperature"| node_thermocouple
node_controller -.->|"interpolates curve"| node_spline
node_controller -.->|"persists data"| node_flash
node_schematic -->|"design files"| node_board
node_board -->|"fabrication export"| node_gerbers

click node_controller "https://github.com/unexpectedmaker/reflowmaster/blob/master/Code/Reflow_Master_v2/Reflow_Master_v2.ino"
click node_profiles "https://github.com/unexpectedmaker/reflowmaster/blob/master/Code/Reflow_Master_v2/ReflowMasterProfile.h"
click node_spline "https://github.com/unexpectedmaker/reflowmaster/blob/master/Code/Reflow_Master_v2/spline.cpp"
click node_thermocouple "https://github.com/unexpectedmaker/reflowmaster/blob/master/Code/Reflow_Master_v2/MAX31855.cpp"
click node_flash "https://github.com/unexpectedmaker/reflowmaster/blob/master/Code/Reflow_Master_v2/FlashStorage.cpp"
click node_legacy_profile "https://github.com/unexpectedmaker/reflowmaster/blob/master/Code/Reflow_Master_v1/ReflowMasterProfile.h"
click node_schematic "https://github.com/unexpectedmaker/reflowmaster/blob/master/EagleCAD/ReflowMaster.sch"
click node_board "https://github.com/unexpectedmaker/reflowmaster/blob/master/EagleCAD/ReflowMaster.brd"
click node_gerbers "https://github.com/unexpectedmaker/reflowmaster/blob/master/Gerbers/ReflowMaster.GTL"
click node_bom "https://github.com/unexpectedmaker/reflowmaster/blob/master/ReflowMaster_BOM.csv"
click node_case_v1 "https://github.com/unexpectedmaker/reflowmaster/blob/master/STL/Rev1%20Case%202.54mm%20Screw%20Terminals/Case_Back.stl"
click node_case_v2_254 "https://github.com/unexpectedmaker/reflowmaster/blob/master/STL/Rev2%20Case%202.54mm%20Screw%20Terminals/Reflow_Master_Back_V2.stl"
click node_case_v2_508 "https://github.com/unexpectedmaker/reflowmaster/blob/master/STL/Rev2%20Case%205.08mm%20Screw%20Terminals/Reflow_Master_Back_V2_508mm.stl"
click node_fan_adapter "https://github.com/unexpectedmaker/reflowmaster/blob/master/STL/Fan_Exhaust.stl"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_controller,node_profiles,node_spline,node_thermocouple,node_flash,node_legacy_profile toneBlue
class node_schematic,node_board,node_gerbers,node_bom toneAmber
class node_case_v1,node_case_v2_254,node_case_v2_508,node_fan_adapter toneMint
class node_operator toneIndigo
```

## Components

### Controller firmware

- [Reflow controller](https://github.com/unexpectedmaker/reflowmaster/blob/master/Code/Reflow_Master_v2/Reflow_Master_v2.ino): `Code/Reflow_Master_v2/Reflow_Master_v2.ino`
- [Profile definitions](https://github.com/unexpectedmaker/reflowmaster/blob/master/Code/Reflow_Master_v2/ReflowMasterProfile.h): `Code/Reflow_Master_v2/ReflowMasterProfile.h`
- [Curve interpolation](https://github.com/unexpectedmaker/reflowmaster/blob/master/Code/Reflow_Master_v2/spline.cpp): `Code/Reflow_Master_v2/spline.cpp`
- [Thermocouple reader](https://github.com/unexpectedmaker/reflowmaster/blob/master/Code/Reflow_Master_v2/MAX31855.cpp): `Code/Reflow_Master_v2/MAX31855.cpp`
- [Flash storage](https://github.com/unexpectedmaker/reflowmaster/blob/master/Code/Reflow_Master_v2/FlashStorage.cpp): `Code/Reflow_Master_v2/FlashStorage.cpp`
- [V1 profile structure](https://github.com/unexpectedmaker/reflowmaster/blob/master/Code/Reflow_Master_v1/ReflowMasterProfile.h): `Code/Reflow_Master_v1/ReflowMasterProfile.h`

### Electronics design

- [Circuit schematic](https://github.com/unexpectedmaker/reflowmaster/blob/master/EagleCAD/ReflowMaster.sch): `EagleCAD/ReflowMaster.sch`
- [PCB layout](https://github.com/unexpectedmaker/reflowmaster/blob/master/EagleCAD/ReflowMaster.brd): `EagleCAD/ReflowMaster.brd`
- [Fabrication outputs](https://github.com/unexpectedmaker/reflowmaster/blob/master/Gerbers/ReflowMaster.GTL): `Gerbers/ReflowMaster.GTL`
- [Bill of materials](https://github.com/unexpectedmaker/reflowmaster/blob/master/ReflowMaster_BOM.csv): `ReflowMaster_BOM.csv`

### Printed enclosure

- [V1 case parts](https://github.com/unexpectedmaker/reflowmaster/blob/master/STL/Rev1%20Case%202.54mm%20Screw%20Terminals/Case_Back.stl): `STL/Rev1 Case 2.54mm Screw Terminals/Case_Back.stl`
- [V2 2.54mm case](https://github.com/unexpectedmaker/reflowmaster/blob/master/STL/Rev2%20Case%202.54mm%20Screw%20Terminals/Reflow_Master_Back_V2.stl): `STL/Rev2 Case 2.54mm Screw Terminals/Reflow_Master_Back_V2.stl`
- [V2 5.08mm case](https://github.com/unexpectedmaker/reflowmaster/blob/master/STL/Rev2%20Case%205.08mm%20Screw%20Terminals/Reflow_Master_Back_V2_508mm.stl): `STL/Rev2 Case 5.08mm Screw Terminals/Reflow_Master_Back_V2_508mm.stl`
- [Exhaust fan adapter](https://github.com/unexpectedmaker/reflowmaster/blob/master/STL/Fan_Exhaust.stl): `STL/Fan_Exhaust.stl`

### Other components

- **Operator**

## Connections

- Operator → Reflow controller: runs firmware (evidence: `README.md`)
- Operator → Profile definitions: edits profiles (evidence: `README.md`)
- Operator → Circuit schematic: builds from (evidence: `README.md`)
- Operator → Fabrication outputs: fabricates from (evidence: `README.md`)
- Operator → V1 case parts: prints parts (evidence: `README.md`)
- Operator → V2 2.54mm case: prints parts (evidence: `README.md`)
- Operator → V2 5.08mm case: prints parts (evidence: `README.md`)
- Operator → Exhaust fan adapter: prints adapter (evidence: `README.md`)
- Reflow controller → Profile definitions: uses profiles
- Reflow controller → Thermocouple reader: reads temperature
- Reflow controller → Curve interpolation: interpolates curve
- Reflow controller → Flash storage: persists data
- Circuit schematic → PCB layout: design files (evidence: `README.md`)
- PCB layout → Fabrication outputs: fabrication export (evidence: `README.md`)
