One of the things I wanted to do was to modify my soldering iron so that it could be bolted, unobtrusively, to the underside of my bench top. On further examination, it wasn't really conducive to that type of modification due to the large transformer. So I rebuilt the station, basically from scratch, so that I could run it from my bench PSU.
I've been using it for a couple months, now, and have had no issues. It works basically the same as the original station, except the controls and display are a little nicer.
Step 1: Original Soldering Station
The kewl part about this particular station is that it's the "Bic pen" of soldering stations. I've seen the station sold under various brand names, and I've seen the same heater unit used on many different brands/models. This means the replacement heaters are readily available for CHEAP! You can buy just the heater unit, complete with a new tip, for only $7.00! Replacement tips are under $2.00. I've had very good luck with mine (I've used this particular station for maybe 3-4 years and worn out 1 heater and 1 tip!) If you have trouble finding it, just ask. I don't want to spam, but if enough people ask, I'll post a link.
Step 2: Heater Unit
So the first thing I needed was the right connector that could handle 2+ amps. I found it at Mouser, by looking for a 180 degree, female, 5 pin DIN. I also bought a spare male connector, so that I could make a temporary adapter for the next part of the problem.
Step 3: Boring Part
Step 4: So Now What?
The only trick I added was due to the way the heater works. I forget which kind of heater it has, but it's the kind where the resistance is not constant. When cold, the resistance of the heater is practically zero ohms. Then it increases to several ohms when hot. So I added PWM with a 50% duty cycle when the iron is under 150 degrees Celcius, so that I can run it from a 3A switch-mode supply without tripping the short circuit protection.
Step 5: Inside
The LCD and soldering iron are controlled by a PIC and some MOSFETs. There's a little opamp with 2 non-inverting amplifiers in series that bump up the thermocoupler's output by about 200x, so that the PIC can read it.
Step 6: Power Supply
Step 7: Perfect Holder
The only things I added were a couple of nylon washers (so it can swivel) and a screw to mount it, as well as a small bolt/nut to "lock" the holder so that it cannot accidentally fall below horizontal, no matter how loose you set the knob.
I don't know of a source for just the holder, so if you were to buy just the heater, you might have to build your own iron holder. If anyone knows a source for these holders, maybe they could share it with the rest of us.
Step 8: Schematic, PCB, Firmware
If anyone has a favorite file hosting site where I can post a HEX, feel free to share with me. I tested a couple and had so much spam and free offers before I even finished signing up that I wanted to strangle someone.
Step 9: Firmware
Here's the firmware. I hope this link works. There's a first time for everything.
This HEX may be programmed onto a PIC16F685 with a PIC programmer.
1. Vdd +5V
2. (RA5) N/C
3. (RA4) BACKLIGHT CONTROL, output pin. This goes high when the station is turned on. This is for LCD's with a backlight. Some LCD's have an LED backlight, as does mine. This means you can power the backlight directly from this pin with just a series resistor to limit current. In the "other" type of backlights, you may have to use this output to switch a transistor to power the backlight from the 5V rail.
4. (RA3) ON/OFF BUTTON, input pin. Connect a momentary press switch to turn the station on/off. Ground to activate. Internal pullup is set.
5. (RC5) to LCD D5
6. (RC4) to LCD D4
7. (RC3) to LCD D3
8. (RC6) to LCD D6
9. (RC7) to LCD D7
10. (RB7) HEATER SWITCHING, output pin: this pin goes LOW to activate the heater of the soldering iron. When the station is first turned on, this output pin switches on/off in the low kHz range at 50% duty cycle until temp reads at least 150C.* After that point, it simply outputs low when the read temperature is lower than the set temp. It outputs high when the read temperature is equal to or greater than the set temp. In my own design, I used this pin to switch the gate of a small P-FET whose source was set to 5V. The drain of the P-FET switched a bank of 3 (non-logic level but highly derated) N-FETs that ultimately switched the ground side of the heater unit.
*the iron can be set from 150c-460c (which conveniently is 16 steps in this 8-bit world :)). The min read temp is 150c. Until the heater reaches 150c, the read temp will be displayed as all dashes. For the hopelessly imperial-minded, I do 90% of my soldering between 230c-270c with lead solder, to give a reference point. I may temporarily turn the iron up to 300c for larger joints. After completely assemble, I calibrated my opamp resistors so that lead solder just starts to melt at around 200c, which jives with my prior experience.
11. (RB6) to LCD E
12. (RB5) to LCD R/W
13. (RB4) to LCD RS
14. (RA2) ADC pin: This pin receives voltage for temperature feedback. You need to connect the soldering iron's thermocouple to an opamp circuit to boost voltage approx 200x. By fine tuning your gain, you can get your temperature readings to be more accurate. (IIRC, I ended up using 220x gain on mine, and it seems pretty close.) Then connect that output to this pin. Bear in mind that the voltage on this pin should not exceed Vdd by very much. It is a good idea to put a clamping diode between this pin and Vdd if your opamp circuit is powered from more than 5V. Otherwise, you might damage the PIC. For instance, if you were to power on the station with the soldering iron unplugged, this would leave the opamp input floating. The PIC might receive anything up to the opamp's voltage supply.
While it might seem like a good idea to just power the opamp from your 5V rail in order to prevent this problem, I power mine from the 20V rail. This is because cheap opamps don't operate all the way from rail to rail. There is a bit of overhead, which could affect the temp reading on the high end of the scale.
15. (RC2) to LCD D2
16. (RC1) to LCD D1
17. (RC0) to LCD D0
18. (RA1) DOWN BUTTON, input pin. Ground to activate. Internal pullup is set.
19. (RA0) UP BUTTON, input pin. Ground to activate. Internal pullup is set.
20. Ground pin
Here is an ExpressPCB file. ExpressPCB can be downloaded for free. Even if you don't use their service, this file can be used for DIY toner transfer if your printer can flip the image. All the yellow lines are jumpers. There's a lot! But the traces are laid out so that all the itty bitty short jumps can be covered by a 1206 0R resistor. Also, note that it's designed so that a DIP PIC16F685 is to be soldered on the copper side. No holes. Yeah, that's weird, but it works. I bought the LCD from Sure Electronics. It's a fairly standard pinout for a 16x2 backlit LCD.
The opamp circuit that boosts the thermocouple is not included.
The MOSFET circuit I used to switch the heater on/off is not included.
Google should help you figure out the details. Actually, the opamp circuit is easily copied from the datasheet of the LM324. You want a noninverting amplifier. Remember, when you put 2 opamps in series you MULTIPLY their gain.
1. I changed the LCD readout just a tad. It should now fit on an 8x2 LCD (I use a 16x2). I moved the heater indicator asterisk so it's next to "set." So just the "c" at the end will be dropped. But I've never tried it on an 8x2 LCD, so I might be wrong! (The pinout is usually different on those, too!)
2. Caution: PCB shows a D2pak LM317. This size part is not sufficient to drop 20V to 5V at this load. But it works if you use a series resistor to drop some of the voltage. I calculated the optimal series resistor for a 20V input to be around 45-50 ohms and 3 watts, which is based on a guesstimated maximum load of 250mA. (So if my calculations are correct, this series resistor dissipates around 3W of heat that would otherwise be suffocating the regulator!) I personally used a bunch of 1206 SMD resistors in a grid to achieve the wattage. That's why there's a small prototyping area next to the input pin of the LM317 on my PCB.