So about a year ago I was looking at the Hakko FX-591 but didn't have well over 200 bucks to drop on a new station. Since the magic happens in the tip anyways, I decided to pick up a Hakko FX-591 handle and stand for about $40 bucks instead and homebrew the station.
This project was inspired by a similar project by Marco Reps. However unlike the JBC iron used in his video Hakko decided to put the thermocouple in series with the induction heating element which means the 24v AC signal that goes across the heating element would also go across the MAX 6675. So my solution was to use a DPDT relay instead of a TRIAC. The soldering iron goes to the two common pins and the normally closed contacts go to the MAX 6675 and the normally open contacts goes to the 24VAC making it impossible for the 24VAC signal to end up connected to the MAX 6675. A 5V zener diode is used to clamp the voltage spikes from the heating element to between 5V and -.06V and that 2n3904 driving the relay hasn't fried it's self yet :-+
BEHOLD MY TERRIBLE MS PAINT SKILLS.
(https://i.imgur.com/pCAlIpr.png)
#include <max6675.h>
#define DO 11
#define CS 12
#define CLK 13
#define relay 2
float temperature;
float setTemp = 200;
int count = 10000; //10 seconds
MAX6675 thermocouple(CLK, CS, DO);
void setup()
{
Serial.begin(9600);
pinMode(relay, OUTPUT);
digitalWrite(relay, LOW);
}
void loop()
{
delay(500); //chill out delay for MAX6675
temperature = thermocouple.readCelsius();
Serial.print(temperature);
Serial.print(",");
Serial.println(setTemp);
if (temperature == setTemp){} //if we're good do nothing
if (temperature < setTemp) //if not do something
{
Serial.println("less than");
digitalWrite(relay, HIGH);
if (temperature > setTemp - 10){delay(1000);} //if we're within 10 degrees of the set temperature leave the iron on for 1 second
else {delay(10000);} //if we're a long ways off leave the iron on for 10 seconds
digitalWrite(relay, LOW);
}
}
The mess
(https://i.imgur.com/DiqaMSL.jpg)