Yet Another Reflow Oven Controller - Page 1
Forum section: electronics / projects

author: JimmyM
author_rank: Regular Contributor
timestamp: March 21, 2013, 06:13:48 pm
content: Well, I'm building a reflow oven controller. Another in the long line of hobbyists building controllers.I'm currently using a TechFX (now defunct) Reflow2 controller for my 2600W/230V convection toaster oven. It works OK when it decides it wants to talk to the PC. So I figured I'd roll my own to deal with a few issues I don't like about the TechFX. Not the least of which is the horrific overshoot. Primarily it's an opportunity for me to dig into several microcontroller aspects all in one project.The controller will be an Atmel ATMega644P/324P @16MHz (644P for development right now)The LCD will be the SparkFun 128x64LCD (No serial backpack). I've used upgraded firmware for SparkFun's own serial backpack to drive the screen directly from the 644 (text, lines, etc all works very nicely now).PWM control of the backlight(possibly).PWM control of Heaters and cooling fan via SSR (0.5-1.0 HZ, maybe with min on-off, PFM to not switch the SSR too quickly at high or low duty cycles)On/Off control of the oven's convection fan.A MAX7315 8 port I2C I/O expander with PWM and an interrupt pin (indicator LEDs, buttons, etc)At least 2 MAX81355 Thermocouple cold-junction to SPI chips. (It's the 6675 successor, with error flags, etc)A rotary encoder for changing settings, etc.EEPROM storage of temperature profiles, maybe and FTDI-USB connection.Also going to have the temperature display as a rolling graph while running a profile.Soooo? What do you guys think? Any feedback? Gotcha's? good ideas for a UI?

author: JimmyM
author_rank: Regular Contributor
timestamp: March 21, 2013, 06:39:51 pm
content: I'll go into some design detail in the next few posts for those that are interested. I welcome feedback. I am a bit of a beginner in all of this.Mega644P: I chose this chip so I wouldn't have to use serial data from a 168/328 (fewer pins) to drive a "serial backpack" that uses a Mega168 and costs $20USD. I just upped the ante to a 40-pin chip to do everything. I suppose that If I really tried I could use a Mega328 and use a MAX7313 or 2 to do all input output duties. Heck I might try it any way. But a 644 is only ~$4USD more then the 328.MAX31855s: These are the successors to the venerable MAX6675 that is no longer recommended for new designs. I'll be building the Thermocouple stages based on the schematic from Maxim's MAX31855EVKIT. Caps, inductors, CANBus protection (basically TVS diodes). Oddly enough, the chip doesn't seem to like to be switched too slowly. 500kHz works nicely on the breadboard. Maybe in PCB I can do 1-2MHz. With a 3.3V supply I use voltage dividers on the clock and chip select lines (3.9k/8.2k IIRC). I'm also using a 1.2K resistor in series with the MISO line. I had forgotten to use the dividers at first and the chip was getting the full 5.0V but did survive. Just had TONS of noise. The 644P has no problems reading a 3.3V MISO line.MAX7315 is the 8 I/O version of the MAX7313. I may switch to that just for the heck of it. For I2C I'm using Peter Fleury's code. Nice and brief. I don't need the complexity of the TWI code based on AVR315. It works fine at 100, 250, & 400KHz on breadboard. The 32bit packet has 14-bit thermocouple temp, 12-bit internal temp, and error flags for Thermocouple shorts and opens. So the uC can monitor that stuff. It also has a nice !INT line to trigger the uC to read the port register when an input pin has changed. A 0.1uF cap at the interrupt pin on the uC works nicely to suppress noise and doesn't seem to slow down the performance at all. As fast as I can push 2 buttons it reads the register and sends back data to change the condition of LEDs on the 7315 to indicate button state. Quite nice. I'm just getting used to how fast a 16MHz chip is at reading/writing data at 400kHz.

author: JimmyM
author_rank: Regular Contributor
timestamp: March 21, 2013, 06:52:40 pm
content: The LCD: I picked the SparkFun 128x64 STN display because it was big enough, but not too big that it was too expensive to play around with. It's a parallel interface that requires 13 pins + 1 backlight control. SparkFun makes a serial to parallel "backpack" that has been panned for being glitchy. Someone (summoningdark) has built an "upgrade" firmware that I have read is faster, more functional, and far less glitchy. So I used that as the basis for the LCD control. I just chopped out all of the USART stuff since I'm sending data to the LCD that is generated within the uC itself. The went about reassigning all of the output pins to work with the 644. With the rat's nest of wires that is my breadboard setup, I really good performance. A few oddball pixels here and there caused by switching noise on the 644 generated by switching the 30mA backlight at 3900Hz. Once that was shut off, all works very nicely. A double line border around the screen, a circle, and 12 characters of text are drawn so quickly that it seems to "appear", not be "drawn" in. It also come with 2 font arrays and the ability to store "icons" or "sprites". I switched it from storing the sprites in RAM to Program Space (with more than a little help from summoningdark). The 644 has TONS of program memory.

author: Pat Pending
author_rank: Regular Contributor
timestamp: March 21, 2013, 09:35:46 pm
content: I'm about a week into a toaster conversion and getting ready for the controller part.Reading the posts on the Maxim site it seems some users report MAX31855 problems with phone interference, FYI.

author: JimmyM
author_rank: Regular Contributor
timestamp: March 21, 2013, 10:13:49 pm
content: Quote from: Pat Pending on March 21, 2013, 09:35:46 pmI'll have to head over there and see what they're talking about. Have you seen any I2C based thermocouple converters?

author: Pat Pending
author_rank: Regular Contributor
timestamp: March 21, 2013, 10:54:15 pm
content: Try this for an I2C thermocouple interfacehttps://forum.sparkfun.com/viewtopic.php?f=14&t=2572312bit conversions times are fast, the MAX31855 chip max's out at 220mS per sample.

author: Unknown
author_rank: Unknown
timestamp: March 21, 2013, 11:51:04 pm
content: I read your post and it reminded me of my almost finished project; except in reflow the profiles happen much quicker than firing pottery.https://www.eevblog.com/forum/projects/kiln-controller-project/msg146286/#msg146286

author: Unknown
author_rank: Unknown
timestamp: March 22, 2013, 09:36:26 am
content: Quote from: JimmyM on March 21, 2013, 06:52:40 pmThe goofs I made with my kiln controller project was I thought 8K was enough for my code, then I thought I could do a nice UI display with custom graphics using my 2x20 LCD - I was so wrong on both accounts!The 644 looks like a beast! - I bet you could do a reflow and my kiln controller and still have enough for code to land a Rover on Mars!! ;-)

author: JimmyM
author_rank: Regular Contributor
timestamp: March 23, 2013, 12:54:02 pm
content: Quote from: jucole on March 22, 2013, 09:36:26 amI'm at 8K with just testing code in my "main.c". I have "includes" for the lcd, spi/max31855, i2c, some max7315 macros, fonts. It all adds up to just a smidge over 8K. I haven't tried really squeezing things down though. Of course, as long as I stay below 32K I'm all set. I'll be using the 324 in "production". However. I was thinking. Contrary to what other might say, I do think.The 128x64 screen takes 13 pins to operate, so does the 160x128 screen. The code that summoning dark modified to make her 128x64 LCD upgrade shouldn't be all that hard to use as a roadmap to modify the existing 160x128 code. I've just placed an order for a mega645 and a mega2561 (64 pin devices). I thought I might play around with them a bit. Of course I regret now, not ordering a 100 pin device, just for the hell of it instead of the 2561.I had this sick idea that I could drive 2 LCDs. But I'll get this working before I drop $120 on a pair of big LCDs.Of course, it is nice to know that I can drive the LCDs with the 168/328 with just a few pins to spare.

author: JimmyM
author_rank: Regular Contributor
timestamp: April 06, 2013, 02:47:07 am
content: Quick update...Got the lcd, max31855s, max7315, rotary encoder, and ssr drivers working. I'll be using a 9-12v 40w laptop supply. I'm working out the menu system now while I'm designing the PCB.The buttons are read by the max7315 and I use pinchange interrupts to read the encoder without continually polling. The encoder and button work really nicely.

author: hutale
author_rank: Newbie
timestamp: April 21, 2013, 07:05:46 pm
content: I have programmed and made a Multi Function Temperature Controller, MultiTC from scratch with own C code. MultiTC is a precise PID Temperature and also Reflow Oven / Furnace Controller with programmable set-point, 8 different programmable profiles and parameters. Its functions are base on a further developed AVR ATMega88PA-AU SMD microprocessor. A MultiTC KIT controller set includes a thoroughly tested and calibrated controller assembled on double side, professional SMD PCB, an assembled and tested LCD display and a K-type thermocouple. MultiTC KIT controller sets are available. If you are interested in, you can find documentation, pictures, video onhttp://multitc.is-best.net/en/web page.

author: Dreso12
author_rank: Contributor
timestamp: June 02, 2013, 09:36:27 pm
content: I am using a controller with and AD8495 for the sensor, a dsPIC for the control and a MCP2210 for the USB connection to a computer. It is based on the controller inwww.nelectronics.org. It works quite well and it is easy to set.

author: miceuz
author_rank: Frequent Contributor
timestamp: June 03, 2013, 06:57:25 am
content: I've build my reflow oven controller tooATMega8 was enought for a task. What I would suggest you is to look into modular approach I took - temperature sensor conditioning is made on separate board and connects to MCU ADC pin, I've used PT100 platinium sensor because of price and components at hand restrictions, but another board can be swapped if someone wants to switch to thermocouple. I've used SPI port for LCD communication - just add 74hc595 to a 2x16 LCD and you have a serial LCD.In general, the design you are comming with is ok, but very expensiveOh, and BTW, make sure your oven is beefy enough, 800W one we used does not need a PID controller, because it's soo slow - it barely reaches the solder melting point when driven on full power. Actually all our controller can be replaced by single switch and illumination inside the oven to see when the solderpaste melts.

author: JimmyM
author_rank: Regular Contributor
timestamp: March 05, 2014, 08:15:07 pm
content: I've been away for some time. miceuz, you're right. It is a little on the expensive side. But it's also a design exercise, so I'm OK with the price. The PCB design is about as done as it needs to be. I've fiddled with it now and then, but it's pretty well done. The menu system is quite nice. So far 4 selections.Config, 2 profiles, and a bake setting.The config menu will allow you to change PID parameters (really just PD), profile parameters, and thermocouple config.The bake setting will allow you to select a temperature and duration in hours & minutes. The LCD also displays a graph updated every second with thermocouple temp.Now to buy the boards. Right now I use PCB Artist by Advanced circuits, but it requires that I use them to have the boards made. $33 each (minimum of 4). So I'm going to switch to a different PCB package that generates Gerbers. Don't get me wrong Advanced Circuits work has been impeccable in the past. Just a little pricey.hutale, The MultiTC looks nice and I'm sure it would work, but this is a design/coding exercise too. I'd like something I can fiddle with.Although I wouldn't mind having a peek at your PID code. ;-)