Tuesday, December 21, 2010

Kilns part 1: OpenKilnController

Last Christmas I got a small, almost new 8 liter kiln from my uncle who owns a large dental lab. He got it when he bought a whole lot of material in a liquidation and it was to big for them. Small for us is large for their industry, they use tiny desktop kilns, maybe 250 cc that fit a few tooth in them. The only problem was that it was only the kiln with the heating elements and no controller, thermocouple or relays. Buying all the necessary gear through our local pottery supplier would have made us ± 600€ lighter! So having a little tinker ethos I figured that it would be easy to build something yourself using an Arduino as a controller and a Solid State Relay to switch the 2 Kw elements. Not being such a great programmer or electro-engineer I dived into google thinking that this must have been done before considering the prices of commercial controllers,  some code would probably be available to get you started. Well, google turned op close to 0 hits so apparently there are not enough potters with programming/engineering background or hackers that like clay? After doing lots of research, driving to holland to pickup some old analog industrial temperature controllers, thermocouples and relays, requesting manuals for gear from the 80s from japanese companies I finally threw in the towel and bought a 300€ controller kit that was a perfect fit for small kilns like ours. I found this kit through all the googling (so never a waste of time) and figured that it was not worth it to continue my search for a DIY solution since I really lack the skills to pull it off from scratch. The ST222 kit I bought included a controller, thermocouple and relays and was made buy the UK company Stafford Instruments. So here's our inferno in a box.





I still love the idea of a DIY kit controller, I calculated the costs of a DIY solution to be around 150€ (Thermocouple 60€, Arduino 30€, SSR 30€, Display for Arduino, buttons etc 20€) which was a quarter of the initial commercial solutions and would allow you to preprogram all curves from a computer instead of using the awkward interfaces of commercial solutions and even monitor the kiln with plotted curves on the computer. The solutions on the market are really basic in functionality. While the 300€ controller was a sweet enough deal for our small kiln I still think a DIY controller would be very interesting for larger kilns. So I hope someone wants to pick up my mission for the OpenKilnController.

Here is what I have found so far, kiln controllers are PID controllers (I never heard of them, remember my lack of skills) and they appear to be very common in industrial control systems.  There is already a pretty decent PID library for Arduino. (http://www.arduino.cc/playground/Code/PIDLibrary) that could be used as a starter. The hardware is straight forward as mentioned above, you need a thermocouple as analog sensor, the Arduino with PID library as controller and a SSR as switching mechanism for the kiln. The tricky part looks to be the 'tuning' of the P, I and D parameters.
I also found some rforum posts over at arduino about 
DIY Arduino PID controllers so at least some people tried like PWillard.


UPDATE: While typing this post I revisited the forum thread I mentioned above and apparently GlennD did build a kiln controller for a glass fusing Kiln. Unfortunately only after I bought the ST222.

10 comments:

  1. These off-the-shelf PID's are also a cheap alternative:
    http://cgi.ebay.co.uk/new-Dual-Digital-F-C-PID-Temperature-Controller-Control-/320588360757?pt=UK_BOI_Industrial_Automation_Control_ET&hash=item4aa48e2c35#ht_5450wt_907

    I was amazed myself: I got one for 15 euro's including shipping, even with thermocouple included. The component costs are much higher...

    ReplyDelete
  2. Hi Erik, thanks for the link! I can only guess why you need a PID but something tells me it is a heated bed. The thermocouples for kiln firing are a bit more expensive because they need to withstand higher temperatures, above 1000C you need R or S types, below you can use K which uses cheaper metals.
    Did you do any tuning for the PID? What I am a bit afraid of is the high temps, you can't afford to make mistakes do you?

    ReplyDelete
  3. At the most basic you can use a food preparation hot plate controller knob just to get a small kiln to switch on and off in a graduated manner. All manual but a cheap option. I have known this to be used with a timer switch to over ride the cooker switch to turn to full at a given time for firing on cheaper electricity through the night. Turn up gradually, manually starting early evening, 1 hour @ 10%, next hour @ 25%, next hour @ 55%, then go to bed on 80% and the timer switch can turn to full ready to reach firing temperature when he got up in the morning. You'll need a temperature cone that bends over at the temperature you want to know when to switch off - actually a much better indicator than a thermocouple.

    ReplyDelete
  4. Hi Unfold and others!

    I'm also looking to build an Arduino kilnn controller, but most of the schemes use the MAX6675 K Thermocouple to digital converter, which ranges upto 1024DegC !
    My ceramics kilnn needs to go to 1300DegC...The K-Thermocouple can handle it, but what to use as converter to digital???

    Fritzzy

    ReplyDelete
  5. Proportional–Integral–Derivative controller (PID) control is a very large topic. I would call it the foundation of control theory, which is a study of how to control kind of system, ranging from single input / single output to multi-input / multi-output. I have spent the last 3 years doing my masters work on this topic, and still feel overwhelmed with it. So don't feel bad that you find this topic difficult.

    If I remember correctly, a temperature control system like a kiln is actually one of the simpler systems to control. It has been a while since I looked at one, but I believe it should be a SISO (single input / single output) system, and linear as well. This makes the math much easier. A traditional PID controller should work fine for this.

    However, PID controllers only work well when tuned correctly. Many simple controllers will have 3 gains, one for each proportional, integral and differential parts of the controller. Also by setting one or two of these gains to zero you can create Proportional only controller, PI, or PD controllers. For some systems you don't really need all three.

    Sorry, this is getting long. Anyway, if you google PID tuning there are many great resources on how to do this. http://www.omega.com/temperature/z/pdf/z115-117.pdf

    The last thing I will mention, is while there might not be many people making DIY kiln controllers, there are very similar systems such as sous vide (temperature controlled crock pot) http://hackaday.com/2010/11/06/hacking-together-a-sous-vide-cooker/

    I would love to build a awesome DIY kiln controller. But that will have to wait until after grad school, and when I find a kiln with a broken controller.

    Sorry again for the long post,
    josh

    ReplyDelete
  6. Hi, I'm working on kiln controller and it's true there isn't much in the way of DIY controller info around when I started to make it but making good progress though.
    http://www.craftbanter.com/showthread.php?t=114824

    ReplyDelete
  7. Hi, I was working on implementing the same thing for a an LPG based Kiln for Pottery (up to 1200°C). My system is based on an MSP430 microcontroler from TI, I succeeded in capturing the temperature from a K-type thermocouple. But I have some difficulty with the PID controller and mainly with auto-tuning feature. I have seen that you are trying the PIDLibrary, is it able to implement auto-tuning?

    ReplyDelete
  8. Hi, I managed to get my diy kiln controller working. h**p://www.tinypixels.co.uk/projects/kiln/index.htm

    ReplyDelete
  9. Hey Ju, super cool! I somehow missed these comments, ...last year :(

    ReplyDelete
    Replies
    1. hehe, no probs!, yeah but no way as cool as 3d printing ceramics like you guys are doing! just superb!!! I so want to try that!! ;-)

      Delete