License

CC-BY-SA 3.0

Recommend Projects

ATmega SolderingStation SMD v2

1 year ago 7821
  • Description
  • Documents
  • BOM
  • Attachments
  • Members
  • Comments

Description

1. Overview

T12 Quick Heating Soldering Station featuring

  • Temperature measurement of the tip
  • Temperature control via rotary encoder
  • Boost mode by short pressing rotary encoder switch
  • Setup menu by long pressing rotary encoder switch
  • Handle movement detection (by checking ball switch)
  • Iron unconnected detection (by idenfying invalid temperature readings)
  • Time driven sleep/power off mode if iron is unused (movement detection)
  • Measurement of input voltage, Vcc and ATmega's internal temperature
  • Information display on OLED
  • Buzzer
  • Calibrating and managing different soldering tips
  • Storing user settings into the EEPROM

Project Video: https://youtu.be/I9ATDxvQ1Bc

Video from John Glavinos (electronics4all): https://youtu.be/4YDcWfOQmz4

Video from LHW-createskyblue (UI-v1.6L): https://b23.tv/LiOe54

2. Versions, Upgrades and Notes

Soldering Station v2.0:

IMG_20190731_190146_x.jpgIMG_20190731_182904_x.jpg

Soldering Station v2.5:

IMG_20200621_132138_x2.jpgIMG_20200621_121350_x.jpg

Soldering Station v2.6:

IMG_20200816_141230_x.jpgIMG_20200816_130923_x.jpg

UI Upgrade by LHW-createskyblue

LHW-createskyblue created an awesome upgrade to the user interface which can be installed optionally. It features:

  • Beautify the detail page and increase the power bar
  • Menus have ICONS
  • Better scrolling animation
  • Get rid of the U8g graphics library and use the ArduBoy graphics Library (Lite) to improve the frame rate and reduce memory usage to make graphics possible
  • Add flip display Settings to adapt to the habits of different people
  • Screen saver
  • English, Chinese and Japanese language pack
  • System Password
  • Better numerical input experience
  • Chip overheating and low voltage alarm

Video from LHW-createskyblue (UI-v1.6L): https://b23.tv/LiOe54

Notes and Errors

  • In the board version 2.5 the diode D1 may overheat. To be on the safe side, the 18V zener diode D4 should be removed and the soldering station should be operated with a maximum of 20V. Alternatively, the diode D1 can be replaced with an SS54 schottky diode and the BJT Q1 with an FMMT619.

3. Power Supply Specification Requirements

Choose a power supply with an output voltage between 16V and 24V which can provide an output current according to the table below. The power supply must be well stabilized. The current and power is determined by the resistance (R = 8 Ohm) of the heater.

Voltage (U) Current (I) = U / R Power (P) = U² / R
16 V 2.00 A 32 W
17 V 2.13 A 36 W
18 V 2.25 A 41 W
19 V 2.38 A 45 W
20 V 2.50 A 50 W
21 V 2.63 A 55 W
22 V 2.75 A 61 W
23 V 2.88 A 66 W
24 V 3.00 A 72 W

4. Temperature Measurement and OpAmp Considerations

A thermocouple (temperature sensor) is located in the T12 soldering tip. It creates a very small voltage depending on the temperature difference between the hot end and the cold junction (about 40 microvolts per degree Celsius). To measure this, the heater must be switched off since both share the same connections. The low voltage is amplified by the OpAmp and measured by the ADC of the microcontroller. The LMV358 is a very cheap and versatile OpAmp, but not the ideal choice for this task because it has a fairly high input offset voltage and is quite noisy. Although the SolderingStation also works with this OpAmp thanks to the software's smoothing and calibration algorithms, I highly recommend spending a little more money in a better one. The OPA2330AIDR or OPA2333AIDR for instance have the same pinout and can also be used with this board. They provide significantly more accurate and stable temperature measurements.

SolderingStationV2_LMV358_Noise.pngSolderingStationV2_OPA2330_Noise.pngSolderingStationV2_LMV358_SettleTime_2.pngSolderingStationV2_OPA2330_SettleTime.png

5. Heater High Side Switch with N-Channel MOSFET and Charge Pump

The microcontroller switches the heater on and off via the MOSFET. Since the temperature measurement must be done over the same line and against ground, the MOSFET has to be placed between the supply voltage and the heater (high-side switch). A P-Channel MOSFET is normally used for this configuration. However, N-Channel MOSFETs usually have a lower resistance (RDS (on)), in the case of the IRLR7843 only 3 milliohms. A low resistance means a higher efficiency and a lower heat development of the MOSFET. For an N-channel MOSFET to function as a high-side switch, an additional circuit is required to maintain a positive GATE-TO-SOURCE voltage after the MOSFET is switched on. This is done using a so-called charge pump consisting of a capacitor and a diode.

SolderingStationV2_ChargePump.png

6. Building Instructions

In addition to the components for the PCB you will need the following:

  • 3D-printed case
  • Aviator Plug (4- or 5-pin depending on your iron handle)
  • DC Power Jack (5.5 * 2.1 mm)
  • Rocker Switch (KCD1 15 * 10 mm)
  • Some wires
  • 4 Self-tapping screws (2.3 * 5 mm)

parts.jpgIMG_20200621_130414_x.jpg

Make sure that all parts fit nicely into the case. Solder the wires to the connectors and protect them with heat shrinks. Use thick wires (AWG18) for the power connections. Make all connections according to the schematic down below. Solder the wires directly to the corresponding pads on the pcb. Upload the firmware and screw the pcb on top of the case.

connections.png

7. License

license.png

This work is licensed under Creative Commons Attribution-ShareAlike 3.0 Unported License. (http://creativecommons.org/licenses/by-sa/3.0/)

Documents

SolderingStation v2

SolderingStation_v2.7

BOM

ID Name Designator Footprint Quantity BOM_Manufacturer Part
1 1N4148W D2 DIODE-SOD-123 1 1N4148W-E3-08
2 LMV358IDR U3 SOP-8_150MIL 1 LMV358IDR
3 16MHZ X1 HC-49S 1 X49SD16MSD2SI
4 MLT-5030 BUZZER1 MLT-5030 1 MLT-5030
5 OLED OLED I2C - OLED 0.96" 128X64 1 SSD1306 I2C OLED
6 18V D4 ZENER-SOD-123 1 MM1Z18
7 5V1 D3 ZENER-SOD-123 1 MM1Z5V1
8 47k R12 0603 1 0603WAF4702T5E
9 1k5 R2 0603 1 0603WAF1501T5E
10 10k R11,R13,R3,R4,R6,R7,R14,R10,R1 0603 9 0603WAF1002T5E
11 1k R9 0603 1 0603WAF1001T5E
12 200k R8 0603 1 0603WAF2003T5E
13 IRLR7843TRPBF Q2 TO-252-2 1 IRLR7843TRPBF
14 KF350-3.5mm P3,P2,P1 KF350-2P 3 WJ2EDGVC-5.08-2P
15 ICSP-6 ICSP ICSP-6 1 ?
16 3x6x2.5 RESET KEY-3.0*6.0 1 3x6x2.5Red head high temperature
17 Rotary Enc SW1 BOURNS_PEC11R-4XXXF-SXXXX 1 PEC11R-4015F-S0024
18 100n C10,C1,C9,C3,C2 0603 5 CC0603KRX7R9BB104
19 1u C13 0603 1 CL10A105KB8NNNC
20 330n C11 0603 1 C1608X7R1H334KT000E
21 22p C5,C6 0603 2 CL10C220JB8NNNC
22 2n2 C8 0603 1 0603B222K500NT
23 1k R5 1206 1 1206W4F1001T5E
24 47u C4 1206 1 1206F476M100NT
25 22u C12 1206 1 C3216X5R1V226MTJ00E
26 10u C7 1206 1 GMK316BJ106KL-T
27 78M05 U2 TO-252-2 1 ME78M05K3G
28 PWR LED1 LED0603 1 19-217/BHC-ZL1M2RY/3T
29 FMMT619 Q1 SOT-23-3_L2.9-W1.6-P1.90-LS2.8-BR 1 FMMT619
30 SS54 D1 DIODE-SMA(DO-214AC) 1 SS54
31 ATMEGA328P-AU U1 TQFP-32_7X7X08P 1 ATMEGA328P-AU

Attachments

Filename Download
SolderingStation2_3dprint.zip
SolderingStation2_instructions_v1.1.pdf
SolderingStation2_firmware_v1.7.zip
SolderingStation2_firmware_UI_v1.7.zip
Success
The owner does not allow comments in this project now

Comments (69)

Dipak Kumar Maity Reply

Nice and working

Stefan Wagner Reply

@disha4care Thank you and have fun with it !

Dipak Kumar Maity Reply

@wagiminator I have made it and it working Very wel with 907 handle, You are welcome most Sir

Stefan Wagner Reply

@disha4care Interesting, I didn't think it would work with 907 handles as well. But the performance should be better with T12 handles.

johngr Reply

thanks for sharing this project..made it and it is working almost perfect.one question.when i change various tips calibration must be done again??is there a way to implement a menu that holds the settings from different tips we use so we dont have to calibrate every time we use different kind of tips??

Stefan Wagner Reply

@johngr Thanks for your comment. Adding a feature for storing different calibration values should be no problem. Maybe I will implement this in the near future, when I find the time to do it.

johngr Reply

thanks for your answer.i think that this is the only thing that is missing because you cant take advantage the t12 tips (quick exchange) if you have to recalibrate again.and this is the point of the t12 tips to quickly change them.if this is implemented the project will be perfect in my opinion..

Stefan Wagner Reply

@johngr Hi, I uploaded a beta-version of the new code with your requested features. As I only use one kind of tips I kindly ask you to be my beta-tester. I'm looking forward to your feedback

johngr Reply

@wagiminator wow..that was fast..of course.as soon as i get home cause im at work i will try it..thanks!!!

johngr Reply

after a few tests with the new firmware one thing i have to say... congratulations!!!it works perfect!!! now i can change tips quickly and load the settings of each tip..at first i was having some issues with oscilations the readings were jumpy but that wasnt firmwares fault because i tryied the old again and the new and did the same,after adding some decoupling capacitors and replaced the opamp worked again perfect (crapy -fake opamps from ali express) ..and the menu you added makes perfect sense...great job!!!thanks again..i will post again after few days of testing..

johngr Reply

oops..now i just saw that you released another beta2 firmware..i will try it a.s.a.p. what improvements you did??

Stefan Wagner Reply

@johngr Hi, thanks for your testing. I'm happy when you're happy;-) I just forgot to catch the situation when you exceed the maximum number of tips; version 2 fixes that.

johngr Reply

hello..i loaded the latest beta firmware you released.everything is perfect so far.i will keep you informed if i discover any bug.thanks..!!

johngr Reply

beta works perfect after many days of use..many thanks!!!few ideas if you like to consider..how about adding on the screen if it fits what tip we currently use and voltage measurement if somebody wants to use it with batteries to make it portable since the pcb is small and can be fitted in a small housing and last pid controll,maybe selectable if it will be used or not from menu, of course im not sure if the arduino has  the ability to handle all these at the same time..anyway..you made a great project..thanks again for sharing ..

Stefan Wagner Reply

@johngr Thanx a lot for your testing !!! I will see what I can do to add more information to the main screen. My first implementations of this station included a PID control. However the results were not as good as they are now with the more direct control (at least for me as I have no problems with overshoots or unstable readings, but this may depend on the power supply you use; or a cheap OpAmp;-). If you have such problems I can tweak the denoising routines a little bit, if you don't have such problems than the PID would be no improvement, only a waste of memory and processing power.

johngr Reply

i dont think i have major problems, rarelly i see some variation of temperature on screen about 3-5 degrees but this i believe is because of the on-off of the heating element when the mosfet applyies power to it. its normal to see this on the screen.thats why i suggested the pid control. i understand that with pid control there is going to be an overshoot until it settles to a stable temperature.however ''as is'' this project is much better than many other i have tryied even and commercial one's..if there was an easy way to implement pid controll that could be enabled or disabled from the menu it would be interesting to try..of course you know better..if you think that its going to affect the rest functionality..

Stefan Wagner Reply

@johngr Soooo, I had nothing else to do...;-) I uploaded a new beta with your requested features including a selectable PID-control. You still have to tweak the PID tuning parameters in line 86/87 of the code (maybe you have more luck than I do with the PID). You can select a different main screen in the setup menu as well. However, I highly recommend using a 19V power supply rather than a 24V one to get absolute stable temperature readings.

johngr Reply

wow..ok.i will try it today...thank you..i''ll keep you informed..

johngr Reply

 @wagiminator
been testing with the beta you released.it works just fine as the previous..the pid needs tweeking. i will have to experiment with it until i find satisfactory results.the additions are perfect..will this controller work with the 1.3 oled display that uses the same driver chip? i ordered some but didnt arrive yet to try.one more thing,if i lower the supply voltage below 24v i see variations of temperature on display every time the mosfet applies power to the heating element.(i can see that because i connected a led + resistor on the output to the soldering iron) to have a visual indicator when the power is applied to the iron..

Stefan Wagner Reply

@johngr Hi, thank you for testing. With the PID I never found good parameters, maybe you will. 1.3 inch display should work as well but maybe it won't fit directly on the board. That's interesting with your power supply. Of course I tweaked all the parameters to work with my supply and so I don't have any problems. Does the displayed temperature over- or undershoots or both? With how many degrees? Does it also jumps when you're measuring with a tip thermometer? Did you start with 24V and lowered the power while the station is on? So many questions ...

johngr Reply

@wagiminator the power supply  im using is a universal laptop power supply (MW brand - i think is a good one ) with selectable via switch output 15v - 16v - 18v - 19v - 20v - 22v - 24v. when i power it with 24v it is almost rock solid but when i power it with 19v i see variations +- 10c. for instance if i set temperature to 380c i see the led i added to monitor the heating process i told you before lits up until it reaches 380 then led stops the temperature overshoots untill 390 then temperature starts to lower until it reaches 370 then led lits again and so on. the procedure im lowering the voltage is while its working at 380c im changing voltage switch to something else 20v for instance and wait a little for the temperature to stabilize then im starting to see variations,its something like the circuit is more ''sensitive'' to display temperature variations.another thing i noticed is that if i move around the controller on the desk these variations may stop so it might be noise that the opamp receives,im always powering it with 24v so i dont have any problem. for the display dimensions it doesnt really matter because i built the controller  not with the pcb you provided but with an arduino nano and a pcb i designed to hold the rest circuit(opamp-mosfet-regulator) and smd components. at some time later i will order from jlc pcb the exact pcb you designed since it is much more compact and small. as long for the pid controll i think im in a good way. i've played a lot with the settings and found satisfactory results.
double aggKp=10, aggKi=0.5, aggKd=1;
double consKp=10, consKi=3, consKd=5;
but it needs some more tweeking..

johngr Reply

here's a photo of my controller https://photos.app.goo.gl/2TtWHCuhRAvYgygm7

Stefan Wagner Reply

@johngr Hi, this is looking great!!! The code checks the voltage on start-up and sets the settle time according to it. So maybe you try it again with 19V from the start. Or I change the code in the way that the settle time is permanantly changed according to the input voltage. I will try your PID parameters. For the noise of the OpAmp: this might be reduced a little bit on the pcb as the lines are shorter and not that much subject to interference.

johngr Reply

@wagiminator i just discovered that these pid settings dont work well with 19v supply(the temperature varies +-10). instead with 24v works very good.(very stable and sometimes +-3)

Stefan Wagner Reply

@johngr Hi, I tested the PID and it works much much better, almost perfect. The variation with my 19V power supply is not more than +/- 5 degrees and most of the time it's absolute stable now. Good job!!! I did some minor changes to the direct control and to the stabilization of the displayed temperature. I upload the changes as beta2.

johngr Reply

im still experimenting with the pid code to find even more accurate results,even so it is more accurate than another soldering iron project that i built and testing also.soon i will give you improved pid settings i hope..

johngr Reply

best results i could find are with these settings,almost rock solid. sometimes jumps 2-3 degrees  but i think its because of noise of opamp and not pid settings. try them and tell me what you think.
double aggKp=11, aggKi=0.5, aggKd=1;
double consKp=11, consKi=3, consKd=5;

johngr Reply

one thing i noticed is that when the controller enters sleep mode and temperature starts to drop it doesnt show correct temperature as it drops.for instance the temperature has droped to 50c but the display shows 190and responds very slowly..

johngr Reply

and the sleep temperature doesnt work either. it should keep it to 150c until it detects movement and start rising again but the iron has become cold.

Stefan Wagner Reply

@johngr Mmmmh, this is strange. It works perfect for me. It seems like a wrong temperature calculation. Maybe I have to add a fourth calibration point somewhere around the sleep temperature ...

johngr Reply

switched back to v1.2 to check if my hardware is working ok and works fine but without the new features you added of course..

Stefan Wagner Reply

@johngr OK, I didn't test the sleep function in v1.3, so I must have done a mistake somewhere. I will check it.

Stefan Wagner Reply

@johngr Just checked sleep function with v1.3 and it worked like a charm. Sleep function is working for you with v1.2 but not with v1.3 ?  Mmmh, I have to sleep over the problem ...

johngr Reply

@wagiminator exactly.thanks for your effort. to tell you the truth when you released the v1.3 when i tryied to send it to arduino it didnt compile and had to uninstall and reinstall arduino ide and then compiled ok.my libraries werent affected though,thats what the installer told me.maybe something is missing from the ide enviroment??

johngr Reply

 @wagiminator  it was arduino ide's fault after all..reinstalled all libraries again and everything works fine now..sorry for the trouble caused you..with the new pid settings i found it works almost perfect. and im powering it with 19v now..

Stefan Wagner Reply

@johngr Hi, I have tested the new PID settings: 100% stable with my 19V power supply, excellent!!! Maybe we can leave the beta-state of v1.3.

johngr Reply

@wagiminator i agree.maybe its time for v1.3 which has everything i think now.until i come up with something else..hehehe.(joking)..

Stefan Wagner Reply

@johngr There are a lot of version numbers left for your ideas ;-) By the way, can I mention your name in the disclaimer of the source code as you made a valuable contribution to the software by providing a working PID that I was unable to do.

johngr Reply

@wagiminator i dont mind of course,but i didnt do anything to deserve the honnor,you did all the job of course..

Stefan Wagner Reply

@johngr Of course you do, the whole project is much better now than it was before. John Glavinos, correct ? (saw it on the photo you provided)

johngr Reply

@wagiminator thats correct..

dinidudius Reply

THANK YOU .IT IS COOL

Stefan Wagner Reply

@dinidudius Thank you for your feedback ;-)

stephen.mcmxiv Reply

This a great project! By the way, does this have a calibration feature?

stephen.mcmxiv Reply

Sorry, I wasn't reading. This really does have calibration features. By the way, thank you for sharing this project. This is the best of all the soldering station controllers I found.

Stefan Wagner Reply

@stephen.mcmxiv Thank you, although this is just a simple soldering station with a few cheap components. I think there are more sophisticated ones.

stephen.mcmxiv Reply

@wagiminator Simple yet effective. I am wondering of I could use the following components as alternatives:


IRF4905PBF for the mosfet
LM358P for the op-amp
2SC3356 or any cheap NPN transistor.


Thanks again.

Stefan Wagner Reply

@stephen.mcmxiv Hi, I'll try to answer your question but keep in mind that I can't guarantee things that I haven't tested. Your MOSFET will not work because it's a p-channel type, you need an n-channel MOSFET. The LMV358 in my design is a rail-to-rail OpAmp, the LM358 is not. Apart from that, it could still work because the output voltage is below 3V. I would still advise against it because I do not know how the LM358 behaves in this circuit. You can use any NPN transistor which is rated for at least 24V, I think yours is only 12V.

Stefan Wagner Reply

@stephen.mcmxiv A small correction for the transistor: it should be rated for at least 50V!

Stefan Wagner Reply

@stephen.mcmxiv... just to be on the safe side, although the 3904 is only 40V.

stephen.mcmxiv Reply

@wagiminator Thank you so much for responding. You've been very helpful and I really appreciate it.

Stefan Wagner Reply

@stephen.mcmxiv You're always welcome!

Stefan Wagner Reply

@disha4care Hello, I hope you are healthy. Can you tell me how you connected the 907 handle to the board?

xxoops Reply

Dear Sir,


Could OPA2330 be replaced with OPA2333?


Regards,

Stefan Wagner Reply

@xxoops Hi, OPA2333AIDR should also work, actually it's an even better OpAmp.

xxoops Reply

@wagiminator Thank you.

Stefan Wagner Reply

@xxoops You're welcome ! ;-)

danielrev Reply

Nice Project Stefan !
Could you make a version with stm32 based micro ?

Stefan Wagner Reply

@danielrev Hi Daniel, unfortunately I'm not familiar with the STM32 microcontrollers. My brain is currently only working on 8 bits ;-) Maybe I'll dive into it in the future, but to be honest I can't see any advantage by now (at least for my simple projects). But as far as I know there are many stm32-based soldering station projects around. I'm sorry I couldn't help you much.

danielrev Reply

@wagiminator Ok not big deal ,the only reason i ask about that it just because i don't have arduino board on hand and the current situation made little bit hard to buy something . i have some atmega328 chip and ftdi programer but no usbisp to burn bootloader to the chip .

oleg.tchurilo Reply

Hello, I made one according to yours. There is a problem, that is, the diode 4148 of the booster circuit is very hot. Is this normal? If it is abnormal, where is the problem? Hope you can help, thank you very much.
54321.jpeg

Stefan Wagner Reply

@oleg.tchurilo Hi, does it came from here: https://oshwhub.com/Oleg533/soldering-station-v2-5? Next time you publish my projects elsewhere it would be fine if you stick to the license! Canceling out any attribution to the original designer is a bad way to support the open source community. However, I made some tests and I found the same problem for voltages above 20V in the current board revision (I didn't noticed it before because I'm using a 19V power supply). So there is a design error in the combination of the 4148 and the 18V zener. I will work on this problem for the next version, until now you have two possibilities: either you use only 19V or you have to desolder the zener (with a risk of damaging your MOSFET).

danielrev Reply

Hi , I have problem when connecting 1.3" oled screen ssh1106 .
It just displaying white all over the screen .
Is current firmware only support 0.96" or something ?
im on V1.6L+ firmware right now .

Stefan Wagner Reply

@danielrev In the v1.6 firmware you have to change line 171 to the following code:
U8GLIB_SH1106_128X64 u8g(U8G_I2C_OPT_FAST|U8G_I2C_OPT_NO_ACK);
(In the new UI versions of the firmware you have to find the corresponding line with U8GLIB_SSD1306 and change it to the line described above)
It might be necessary to change the i2c pullup resistors R3/R4 to 10k as in the latest board revision.

Stefan Wagner Reply

@danielrev Forget what I told you about the new UI version of the firmware, it uses a different OLED library. If you want to use this firmware version with your OLED you can ask the developer of this version who also developed the library.

mclj39 Reply
How much money would the complete kit cost?
Stefan Wagner Reply

@mclj39 Hi, that is hard to say. In particular, the costs for the components depend heavily on the order quantity. For example, I bought the ATmegas in a package of 20 for less than a dollar each, including shipping. If you were to buy them individually, you would have to pay twice as much. If I had to make a rough estimate I'd say under $ 15 for everything.

mclj39 Reply
Hi. nice job. Have you considered selling kits?
Stefan Wagner Reply

@mclj39 Hi, thank you. Unfortunately, I don't have the time to put kits together and sell them.

goToTop
你现在访问的是EasyEDA海外版,使用建立访问速度更快的国内版 https://lceda.cn(需要重新注册)
如果需要转移工程请在个人中心 - 工程 - 工程高级设置 - 下载工程,下载后在https://lceda.cn/editor 打开保存即可。
有问题联系QQ 3001956291 不再提醒
svg-battery svg-battery-wifi svg-books svg-more svg-paste svg-pencil svg-plant svg-ruler svg-share svg-user svg-logo-cn svg-double-arrow
We use cookies to offer you a better experience. Detailed information on the use of cookies on this website is provided in our Privacy Policy. By using this site, you consent to the use of our cookies.