You are on page 1of 10

instructables

Build a Web Enabled High Temperature Kiln Controller

by botheredbybees

Turns a Raspberry Pi into a cheap, universal & web- constant monitoring if you want to ramp the
enabled kiln Controller. temperature up slowly or soak the wares at any point.
With the kilnController I can now set it up for a bisque
I used this to add a firing schedule control to a little or low temperature glaze firing and leave it to its own
pottery kiln I picked up second hand. The kiln is devices, checking progress every now and then on
10A/240V rated to 1000 degrees C. It has a door my mobile phone or PC.
switch and a basic thermostat which allows for 25%,
50%, 75% or 100% power but no timer, which means

Build a Web Enabled High Temperature Kiln Controller: Page 1


Step 1: Hardware

1. Raspberry Pi Zero W running Raspbian. Any pi will do but the zeros are the cheapest at about $15
here in Australia
2. MAX 31855 Cold-Junction K-Type Thermocouple (about $6 on eBay)
3. K-Type Thermocouple Sensor -100°C to 1250°C ($3 on eBay)
4. Solid State Relay Module SSR-25DA 25A /250V 3-32V DC Input 24-380VAC Output (again, about
$6 on eBay)
5. Half a dozen bits of wire
6. A tupperware box to house it all

To put it all together you'll need a soldering iron, screw drivers and some wire cutters

Build a Web Enabled High Temperature Kiln Controller: Page 2


Step 2: Wiring Up the Thermocouple

MAX31855 to Raspberry Pi For this project I've used the MAX31855 python
library from https://github.com/Tuckie/max31855.
Vin not connected
Thermocouple sensor to MAX31855
3Vo to Pin 1 (3.3v DC)
The MAX31855's terminals are marked 'Yellow +' and
GND to Pin 9 (Ground) 'Red -', but my thermocouple sensor came with red
and black wires, each with a little tab on the end. If
DO to Pin 11 (GPIO 17) you have the same sort of sensor, you'll need to put
the red wire into the 'Yellow +' terminal, and the black
CS to Pin 13 (GPIO 27) one into the 'Red -' terminal.

CLK to Pin 15 (GPIO 22) While you can cut the terminations off the ends of
each wire, I don't recommend it, as the insulation will
DO (data out) is an output from the MAX31855 (input unravel, leading to possible short circuits. Connect
to the microcontroller) which carries each bit of data the tabs as shown in the picture above and
everything should be sweet.
CS (chip select) is an input to the MAX31855 (output
from the microcontroller) which tells the chip when its
time to read the thermocouple data.

CLK (clock) is an input to the MAX31855 (output from For now we've done enough wiring up to be able to
microcontroller) which indicates when to present start testing. But first, we'll need to install the web
another bit of data interface on the Pi...

Build a Web Enabled High Temperature Kiln Controller: Page 3


Build a Web Enabled High Temperature Kiln Controller: Page 4
Step 3: Installing the Web Interface Software on the Raspberry Pi

I built my controller on a 16GB SD card with raspbian installed but all the software would fit on an 8GB card if
that's what you've got (df -h is showing less than 5GB of files).

After getting raspbian installed and connecting to your wireless network, run the following commands in a terminal
on the pi:

sudo apt-get install python-pip python-dev libevent-dev git


sudo pip install ez-setup
sudo pip install greenlet bottle gevent gevent-websocket
git clone https://github.com/botheredbybees/kilnController

Just about ready to start, but first get the IP address of your Pi by typing the following command in your terminal
session:

ifconfig

Write down the IP address for your wlan0 connection. It should look something like: 192.168.1.91 (the last couple
of numbers might be different)

Note: kilnController is a forked and then modified version of the reflow oven project: picoReflow which I found out
about through a blog post on succulent ceramics. Because the original project was for a solder reflow oven, it had
quite a bit of code for for driving cooling fans and monitoring a door switch. I didn't need these for my project, but
the code's still there (commented out) if you feel the need for a cooling fan. I added more code so that it would
display nicely on my mobile phone.

Build a Web Enabled High Temperature Kiln Controller: Page 5


Step 4: Running the Web Server and Testing the Thermocouple

Time to start the web server. Type the following into your terminal window:

cd kilnController
python kilncontrollerd.py

You should see a couple of lines saying something like:

2019-01-10 21:49:20,006 INFO kilncontrollerd: Starting kilncontrollerd


2019-01-10 21:49:20,024 INFO oven: import MAX31855
2019-01-10 21:49:20,036 INFO oven: init MAX31855
2019-01-10 21:49:20,074 INFO kilncontrollerd: listening on 0.0.0.0:8081

Now, go to a mobile phone or computer that's using the same wireless network as the pi. Open a web browser and
enter the IP address you wrote down earlier, followed by a colon and the port number 8081. For example:
192.168.1.91:8081

After a short wait you should see the temperature displayed on the top left of the web page. Warm up the
thermocouple sensor by holding it in your hand or putting it on a lamp or a soldering iron. You should see the
temperature increasing at 1 second intervals.

Build a Web Enabled High Temperature Kiln Controller: Page 6


Step 5: Wiring Up the Solid State Relay

So far no-one would be hurt if you got things wrong, female socket on the power cord. Then I cut through
but this step involves electricity at voltages and the active wire and connected the ends to terminals 1
currents that could kill you if not handled properly, so and 2 on the SSR. The Active wire (high potential) is
please be careful. Make sure that nothing is plugged coloured brown here in Australia (used to be red).
in while you work on the circuit and that there are no
exposed wires or short circuits when you start using it Connect pin 16 on the Pi (GPIO 23) to the '+' terminal
on the kiln. I put my project inside a plastic box that I on the SSR (terminal 3) and pin 6 on the Pi (Ground)
had sitting around (but I'm thinking that I might make to terminal 2 on the SSR.
a nice ceramic container now that I have the kiln
running again :) Note: the SSR can get quite hot when in operation so
you might want to put it on a heat sink. I sit my plastic
The solid state relay (SSR) turns the power to the kiln box on a tin can when firing.
on and off. For my setup I wired in a short extension
cord and plugged the kiln into that. I did this by Danger image: public domain from Max Pixel
carefully removing the outer insulator just behind the

Build a Web Enabled High Temperature Kiln Controller: Page 7


Step 6: Final Test

One last test before we can use our kiln controller in Tasmania, where it's almost always cooler than that
anger. so the controller should immediately turn on the lamp
to warm up the sensor. If you live in a warmer clime
Plug a desk lamp into the controller. Plug the other you might have to wait a while until the profile calls
end into a wall socket. Watch for any obvious signs of for something higher than your current ambient
problems (the smoke getting out of components, temperature. Either way, if everything's working to
funny smells etc.), if all is going well tun on the lamp plan, you'll eventually see the light turn on and a 'kiln
and rest the thermocouple sensor on the lamp's bulb. on' icon light up on the interface.
At this stage the lamp should not be illuminated.
Leave it running for a while and you'll see the lamp
If it's not already running, start up the kiln controller turn on and off while the controller tracks the
software on the pi. Select a profile and click on 'Start' temperature profile.
on the top right and then on the 'Start the firing' button
on the Firing Overview modal. Click on the 'Stop' button on the top left when you're
done and go forth and fire up your kiln!
Now, the bisque profile I've set up has a start
temperature of 30 degrees Celsius. I live in

Build a Web Enabled High Temperature Kiln Controller: Page 8


Awesome Instructable. I had to modify some things for the U.S. I ended up using two SSR's (one
for each hot lead) and they cost about $13 USD on Amazon. I daisy chained the GPIO wires from
one SSR to the other and it works great. I was also getting a Python error related to
WebSocketError when I tried to create or update a firing schedule. I fixed it by adding the line `from
geventwebsocket import WebSocketError` under the other code related to imports. I also had to
create a directory called "storage" in the root of the kilnController folder and a directory under that
called "profiles". After that I could save and update profiles. Thanks again for the great work! I was
able to find a cheap kiln locally and this mod allows it to have the functionality of a much more
expensive kiln.
Could you specify the location where you added "from geventwebsocket import WebSocketError"?
I got that websocket error mid firing and now I can't continue my firing cause the profiles won't
show up or start if I make a new one.
I added it up near the top just above the line which says
"try:
sys.dont_write_bytecode = True"

I can't remember, but I think I added both of these lines:

from geventwebsocket.handler import WebSocketHandler


from geventwebsocket import WebSocketError

I also attached a screenshot of my code in case you want to compare yours with mine.

Thanks so much for the info! nice build!

Build a Web Enabled High Temperature Kiln Controller: Page 9


Thanks for the great feedback, glad to hear about the profiles fix. I've been thinking that the whole
profile editor needs a rebuild, but write profiles in a text editor while I work up enough enthusiasm
for the task. Currently looking around for a bigger electric kiln :)
Thanks so much!
I’ve been saying to friends ‘how do I have a Rpi 3D printer controller, and not a kiln controller!?!
- I have the basic understanding to put together something like this (with great instructable
instructions!) but not enough knowledge to start a project like this from scratch.
I found this pretty easy to achieve (4-6hrs total), and will be repeating across a number of kilns.
Thanks again!
(SSR not in image, but connected at time of writing)

Check that frayed looking lead on the kiln it may be friable Asbestos if so it needs to be removed
ad disposed of
Use PPE and wet it down check rest of kiln as well
Thanks B0ostland. It's actually a bit of fiberglass rope. I used it to make a seal around the kiln door.
Silicosis is my main worry in the pottery.
Thank you so much for this! I have an older Skutt kiln I inherited that has a kiln-sitter and infinite
temp knobs, and I have been thinking about ways to convert it to a digital controller. This looks
super fun and doable! I'll spend some time this weekend working on the project and report back on
how it goes! Thanks again
Hey, you're welcome Steve. I hope it all works out for you. Don't hesitate to drop a line if you're
stuck on anything
Update from this weekend: although I didn't hook it up to my kiln, I was able to put together all the
components and run the test using a lamp like you'd done above.

I made a fork of this project in github and changed a couple lines in the config file (cost per kWh,
currency to USD, and units from C to F). Pretty straightforward! Interestingly, I didn't run into the
websocketerror when making new profiles like quarter42 did in the comment below.

I have a project box with a clear lid coming tomorrow, so I am really excited to get this all buttoned
up and put into an enclosure this week. Hopefully I can really test it this weekend with a bisque
firing!

Thanks again for such a great instructable. This project has been so fun!

Build a Web Enabled High Temperature Kiln Controller: Page 10

You might also like