Introduction: Build a Web Enabled High Temperature Kiln Controller
Turns a Raspberry Pi into a cheap, universal & web-enabled kiln Controller.
I used this to add a firing schedule control to a little pottery kiln I picked up second hand. The kiln is 10A/240V rated to 1000 degrees C. It has a door switch and a basic thermostat which allows for 25%, 50%, 75% or 100% power but no timer, which means constant monitoring if you want to ramp the temperature up slowly or soak the wares at any point. With the kilnController I can now set it up for a bisque or low temperature glaze firing and leave it to its own devices, checking progress every now and then on my mobile phone or PC.
Step 1: Hardware
- Raspberry Pi Zero W running Raspbian. Any pi will do but the zeros are the cheapest at about $15 here in Australia
- MAX 31855 Cold-Junction K-Type Thermocouple (about $6 on eBay)
- K-Type Thermocouple Sensor -100°C to 1250°C ($3 on eBay)
- Solid State Relay Module SSR-25DA 25A /250V 3-32V DC Input 24-380VAC Output (again, about $6 on eBay)
- Half a dozen bits of wire
- A tupperware box to house it all
To put it all together you'll need a soldering iron, screw drivers and some wire cutters
Step 2: Wiring Up the Thermocouple
MAX31855 to Raspberry Pi
Vin not connected
3Vo to Pin 1 (3.3v DC)
GND to Pin 9 (Ground)
DO to Pin 11 (GPIO 17)
CS to Pin 13 (GPIO 27)
CLK to Pin 15 (GPIO 22)
DO (data out) is an output from the MAX31855 (input to the microcontroller) which carries each bit of data
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 microcontroller) which indicates when to present another bit of data
For this project I've used the MAX31855 python library from https://github.com/Tuckie/max31855.
Thermocouple sensor to MAX31855
The MAX31855's terminals are marked 'Yellow +' and 'Red -', but my thermocouple sensor came with red and black wires, each with a little tab on the end. If you have the same sort of sensor, you'll need to put the red wire into the 'Yellow +' terminal, and the black one into the 'Red -' terminal.
While you can cut the terminations off the ends of each wire, I don't recommend it, as the insulation will unravel, leading to possible short circuits. Connect the tabs as shown in the picture above and everything should be sweet.
For now we've done enough wiring up to be able to start testing. But first, we'll need to install the web interface on the Pi...
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:
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.
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.
Step 5: Wiring Up the Solid State Relay
So far no-one would be hurt if you got things wrong, but this step involves electricity at voltages and currents that could kill you if not handled properly, so please be careful. Make sure that nothing is plugged in while you work on the circuit and that there are no exposed wires or short circuits when you start using it on the kiln. I put my project inside a plastic box that I had sitting around (but I'm thinking that I might make a nice ceramic container now that I have the kiln running again :)
The solid state relay (SSR) turns the power to the kiln on and off. For my setup I wired in a short extension cord and plugged the kiln into that. I did this by carefully removing the outer insulator just behind the female socket on the power cord. Then I cut through the active wire and connected the ends to terminals 1 and 2 on the SSR. The Active wire (high potential) is coloured brown here in Australia (used to be red).
Connect pin 16 on the Pi (GPIO 23) to the '+' terminal on the SSR (terminal 3) and pin 6 on the Pi (Ground) to terminal 2 on the SSR.
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 box on a tin can when firing.
Danger image: public domain from Max Pixel
Step 6: Final Test
One last test before we can use our kiln controller in anger.
Plug a desk lamp into the controller. Plug the other end into a wall socket. Watch for any obvious signs of problems (the smoke getting out of components, funny smells etc.), if all is going well tun on the lamp and rest the thermocouple sensor on the lamp's bulb. At this stage the lamp should not be illuminated.
If it's not already running, start up the kiln controller software on the pi. Select a profile and click on 'Start' on the top right and then on the 'Start the firing' button on the Firing Overview modal.
Now, the bisque profile I've set up has a start temperature of 30 degrees Celsius. I live in Tasmania, where it's almost always cooler than that so the controller should immediately turn on the lamp to warm up the sensor. If you live in a warmer clime you might have to wait a while until the profile calls for something higher than your current ambient temperature. Either way, if everything's working to plan, you'll eventually see the light turn on and a 'kiln on' icon light up on the interface.
Leave it running for a while and you'll see the lamp turn on and off while the controller tracks the temperature profile.
Click on the 'Stop' button on the top left when you're done and go forth and fire up your kiln!
4 People Made This Project!
- Daveyboy made it!
- Tristan763434563636 made it!
- amahpour made it!
- sui_001 made it!
Question 1 year ago
Thanks for posting this up. I've got the controller running using a Raspberry Pi zero W but I can't get a stable sensor temperature despite trying two different K type thermocouples and two different max31855 boards. The sensor temperature it shows is way higher than the actual temperature - like 80C when to room is 25C and can then suddenly jump from 100C.. I've also tried a different USB power supply to the PI but no joy. The thermocouple boards are not physically identical to the one in this guide but do say MAX31855 on them..
Thx for any help....
Answer 1 year ago
I looked into this further and the problem is that the MAX31855 breakout boards I've been using only break the chip out, there are no other components such as capacitors etc on the board. Without these components, the thermocouple reading can drift substantially and be inaccurate... I sourced another another board which looks identical to the one used in this article with the same number of components etc and the temperature reading from the sensor is now steady and reacts to heat/cold as you'd expect. This is the board I used: https://shop.pimoroni.com/products/adafruit-thermo...
It's nearly 3 times the price of the other boards I got from eBay but solved the problem. Now onto testing the SSR etc...
Reply 4 months ago
I am currently having the same suspected problem except I bought mine off amazon. But yeah the one i got has about 10 less components on the board. So I am hoping this corrects my issues as well. In fact this post is what prompted me to check mine as mine was fluctuating a lot and giving me about 60-70 degree off the ambient temp. And the brand new thermocouple did the same thing
Reply 4 months ago
I can confirm that the breakout board from Pimoroni fixed the problem and I've done 20 or so firings in my Kiln with this controller, creating various programs with slow heat ramps and long hold times etc. It's a great way of bringing an old Kiln into the 21st century...
Question 9 months ago
I need help with the SSR. I have it wired into an extension cord and testing with a lamp. But it doesn't shut off when it reaches the temp. So basically I have a temp tracking raspberry pi instead of a temp controller. Any help would be greatly appreciated. I have terminal 1 and 2 connected to the extension cord, terminal 3 is connected to a ground pin on the pi and terminal 4 is the 5v pin2 on the pi. Thanks for any help anyone can provide.
Answer 6 months ago
The DC + input on the SSR goes to Pin 16 on the pi. You're just supplying the relay with power, so it's just staying on.
9 months ago
I just ordered all the parts. Hopefully I can get this up and running smoothly on my kiln. The old school Kiln Sitter isn't very accurate.
Reply 9 months ago
I've got this mostly built but I'm struggling with the wiring of the 240v a
Power supply from the breaker box to the kiln. I'm not sure how to go about doing this. Should my controller be between the wall and the outlet or the outlet and the kiln? I'm an IT guy. Not so much of an electrician dor wiring specialist. So any and all help will be greatly appreciated
Reply 9 months ago
I'm not sure what you mean by a breaker box but I'd guess that putting the pi between this and the 240v supply would be the way to go
Reply 9 months ago
So I just mean, I ran a dedicated 240v line from my electrical panel in the basement to my kiln. I am just trying to figure exactly where to wire the SSR so that it actually turns the power on and off at the kiln to control the temp. But I will do some more research and once I get it working just right I will post some pic's of what I did to work it out.
Reply 9 months ago
good luck. You might want to check out https://github.com/jbruce12000/kiln-controller too, as they've done a lot more work on the software since I wrote this instructable
Reply 9 months ago
Any idea how to get in touch with jbruce12000? I'm struggling with figuring out how to wire the ssr and my kiln.
Question 11 months ago
Im having some trouble with starting the server though. When I type the following lines in the terminal:
Copy config.py.EXAMPLE to config.py and adapt it for your setup.
Answer 11 months ago
Figured it out: Go to the kilnController folder within the File Manager and then change the name of the config.py.EXAMPLE file to config.py
Tip 2 years ago
Great project. I had a frustrating time with GEVENT. It installed OK but then when I ran the .py code it threw up 'gevent module not found'. The solution was to use
sudo apt install python-gevent
sudo apt install python-gevent-websocket
Question 2 years ago on Step 1
You suggested to use a soldering tool. Where do I need it? I don't have one at home, and I was not sure If I really need one. On the pictures, I can only see wires using connector like this:
or some "U" and "O" connectors but not solder.
Do you have pictures with solder?
Question 2 years ago on Step 3
Can this be ran with out web? just run it from pi itself I have a monitor and wireless keyboard & mouse. my Wi-Fi is not strong in the part of shop where the kiln is.
Answer 2 years ago
You sure can. You just need to install the full blown desktop version of Raspbian (Raspberry Pi operating system), open up a browser on that machine, and navigate to http://localhost:8081/
2 years ago
Is there a wiring diagram of this or do you have any pics of how all the wiring is connected. I am going to be building this and I wanna make sure I wire it correctly
Reply 2 years ago
I like referring back to Jason's diagram in his README:
I used this tutorial and Jason's as well to get my kiln controller up and running.