ECE434 Project - Heat Treating Oven

Jump to: navigation, search

thumb‎ Embedded Linux Class by Mark A. Yoder

Team members: Geoffrey Tomlinson Joshua Giambattista

Grading Template

I'm using the following template to grade. Each slot is 10 points. 0 = Missing, 5=OK, 10=Wow!

09 Executive Summary
09 Packaging
09 Installation Instructions 
09 User Instructions
09 Highlights
09 Theory of Operation
09 Work Breakdown
09 Future Work/Conclusions
09 Demo/Poster
00 Not Late

Score:  90/100

Executive Summary

We will be making a heat treating oven for use in Geoffrey's bladesmithing forge. The oven will be controlled by the BeagleBone which in turn will be controlled by Blynk and will log data on a google sheet. There will be a Systemd service to automatically start the program aswell.

A PowerSwitch Tail 2 will be used to control the power to the project since it requires 120 volts. A MAX31855 Thermocouple sensor will be used with a type-K thermocouple to read temperatures up to 1200C in the oven.

What works:

What doesn't work:

We believe that this project will be good practice for creating IoT devices, systemd services, and logging data. It will also be a useful addition to Geoffrey's forge.


Our hardware includes a Powerswitch tail ii, MAX31855 type-K thermocouple breakout board, thermocouple, and the oven that you can learn to build here

Installation Instructions

Now we are at the point that we can actually run the code. Cd to your home directory and clone the attached repository.

git clone https:/

User Instructions

Before we run the python script, there is a setup script that will make sure that you have the correct libraries installed first

cd SheetsExample ./

From there it should be easy as changing to the new directory and executing the python script

cd .. ./


The main part of our code interfaces with a thermocouple through a MAX31855 breakout board over SPI. The information is sent to Blynk where the user can see the current temperature and set the max temperature of the oven. When the max temperature is set the Beagle will implement a PID controller with hysteresis to keep the oven temperature mostly constant. The user can also run a script to schedule a python script that logs the temperature to Google sheets every minute. Since each oven is different this is useful to plot the temperature over time to modify the hysteresis curve.

Theory of Operation

Give a high level overview of the structure of your software. Are you using GStreamer? Show a diagram of the pipeline. Are you running multiple tasks? Show what they do and how they interact.

Work Breakdown

Major tasks: Interface with MAX31855 board: Geoffery Send and receive information from Blynk: Geoffery Build oven: Geoffery and Joshua Record information to Google Sheets: Joshua Schedule sheets information with crontab: Joshua

Future Work

In the future this could be used to interface with more ovens. Our oven can only be turned on and off so the PID controller is very discrete. But if one could control the intensity of the heat a more accurate PID controller could be implemented to keep the heat of the oven more constant. Also once the new Blynk IoT app is more developed then the Blynk code could be ported over to that to reach a wider audience. Another thing we thought we could add is to be able to clear the Google sheets page through the python scripts so the user would not have to manually go through google sheets


Give some concluding thoughts about the project. Suggest some future additions that could make it even more interesting.

thumb‎ Embedded Linux Class by Mark A. Yoder