Skip to content

ElectronicSpaceCat/diy-reflow-oven

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

81 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

DIY-Reflow-Oven

Firmware for running a PID controlled reflow oven

The toaster oven used in this project was the Black & Decker TO1785SG.

I was inpsired to make this project when I came across the https://www.rocketscream.com/blog/product/tiny-reflow-controller-v2/ controller while looking for a simple solution to building an oven myself.

Unfortunately the controllers were out of stock at the time so I ordered some of the parts like the OLED screen and SSRs to design my own implementation.

I chose to use an Arduino Mega 2560 Rev3 that I had laying around (finally had a use for it) and I wrote the firmware in C/C++ in Eclipse. I used a makefile from a Nordic nRF52 project to build it (to be independent of any IDE used). Note: The makefile will need to be modified depending on where your source files are located.

This reflow oven design has a single button for accessing/selecting reflow profiles and returning to the main screen.

A few toaster build guides:
https://www.rocketscream.com/blog/forums/topic/reflow-oven-builds/
https://www.whizoo.com/reflowoven

Tools Needed

  • Dremel or something to cut holes in the toaster
  • 3d printer for the face plates

Parts Used

Arduino Pinout

Refere to: ./src/reflow_system.h

How to use

  • A short press at the main screen will start the reflow cycle. The temperature will be graphed over time and a vertical marker will indicated when it's in the next zone.
  • Long press the button at the main screen to access the profile selecton screen. Once there, quick presses will cycle 1 of 5 hardcoded profiles. Profiles can be modified in: ./src/reflow_common.cpp
  • Long press again to return to the main screen.
  • Short press anytime during a cycle will abort it

Screen Legend

`

From top left to top right (first line)

LF1       -  Lead Free Profile 1 (can modify but should keep it to 3 characters)  
Preheat   -  One of the states in: */src/reflow_state_machine.h >> state_t  
--.--C    -  Temperature read by the thermocouple  

From bottom left to bottom right (second line)

R:--      -  Reflow time in seconds  
Z:--      -  Zone time in seconds  
S:---.--C -  Temperature setpoint for current zone

Compiling

Windows/Linux

Flashing Firmware

Windows

  • Run ./usb_flash.bat and make sure to replace COM4 with the correct port at the line COMM_PORT := COM4
  • The executable location in ./usb_flash.bat can be modified at the line:
    $(PROJ_DIR)\arduino-flash-tools\tools_windows\bossac\bin
    

Linux

  • Make sure the script is executable with sudo chmod +x usb_flash.sh
  • Run ./usb_flash.sh and make sure to replace ttyACM1 with the correct port at the line COMM_PORT=ttyACM1
  • Typically the port should be on ttyACM0 or ttyACM1
  • The executable location in ./usb_flash.sh can be modified at the line:
    $(PROJ_DIR)\arduino-flash-tools\tools_linux_64\bossac\bin
    

Notes

  • Precompiled binaries are also available at ./build
  • If the Adruino binary drag and drop flash method isn't broken like mine was then you may try that option instead.

Debug/Testing

  • Use a program like Putty to connect to the Arduino over USB at 115200 baud rate.
  • Type "help" to get a list of available commands.
  • PID Tuning: Replace reflow_main.cpp with pid_tuner.cpp and recompile. Type "help" for available commands.
  • The PID tuner is separate because it wasn't meant for reflow purposes. It was for recording the temperature ramp rates from room temp to the setpoint. Sadly, I lost spreadsheet with some of my test data. However, one can set Putty to record the output window and save it as a csv file, which the debug output is already formatted for it.

TODO

  • schematic
  • more images

Releases

No releases published

Packages

No packages published