Soldering Station Controller - Questions/Feedback  - Page 1
Forum section: electronics / projects

author: timsu
author_rank: Contributor
timestamp: September 19, 2016, 06:22:55 pm
content: I'm trying to build a controller for an soldering iron tip made by wellerhttp://www.weller-toolsus.com/weller-t0054460199-rt-1-soldering-tip-conical-0-2-mm.htmlThis has been done before for example:https://github.com/CSchlipp/SolderingStation/blob/master/eagle/solderstation_v1_6.pdfwhere I took some inspiration.My circuit is attached as pdf.Circuit ExplanationHeater Element and Thermocouple are integrated into the tipThermocouple signal gets amplified though the OP AmpTemperature gets set with a potentiometerATtiny drives heater with PWM (around 50 to 100 Hz) to reach the desired temperatureWhen reading the temperature the heater is turnt offMultiplexed 7 segment display is used to show the current temperatureQuestionsThe ICSP pins from the ATtiny have to be reused: Is a shared pin with a MOSFET-Gate a problem? (added capacitance)Or should pin sharing with LED display (current drawn while programming) be prefered?Is a ferrite bead for analog supply required?Should a RC snubbber accross the main switching transitor Q2 be added?Is 10k too large for resistor R6 near transistor Q2?The original circuit uses a two stage RC Filter around the thermocouple amplifier. Is the sharper cutoff required?Should the digital and analog ground be seperated? Where would be the common point?General feedback is also appreciated.

author: timsu
author_rank: Contributor
timestamp: September 20, 2016, 06:58:26 pm
content: Quote from: blueskull on September 19, 2016, 10:14:17 pmThis diode can be really small, right? It is just the inductance of the cable creating a spikeQuote from: blueskull on September 19, 2016, 10:14:17 pmCould a too fast switching time become a problem? This driver would gain me less heat in the MOSFET and save me one resistor.Edit: Do I need two add a collector resistor to prevent a short circuit while transitioning?Quote from: blueskull on September 19, 2016, 10:14:17 pmIn the linked circuit one filter is before and one after the Op-amp. Should I do the same? Or a Sallen-Key-Lowpass? Or both before/after the Op-amp?Quote from: blueskull on September 19, 2016, 10:14:17 pmIt will be a two layer board. But it looks like the GND plane will not have many interruptions.

author: KL27x
author_rank: Super Contributor
timestamp: September 20, 2016, 09:11:03 pm
content: Why pwm? If temp is 0.5 degrees low, how would the controller know if the iron is in the stand or on a huge heatsink? (When would you ever want to apply less than 100% duty cycle?)I'm curious how you implement that fancy PID where you never accidentally "gimp" the iron when it really needs the full power.

author: timsu
author_rank: Contributor
timestamp: September 20, 2016, 09:16:06 pm
content: The duty cycle can be limited in software.Lower duty cycles is used for lower temperatures. A PID Controller is not required, P can be enough.I built already a prototype. The soldering works fine, heats in less than 10 seconds to 350 °C. But it has no enclosure, fuse and is a wiring mess.

author: dannyf
author_rank: Super Contributor
timestamp: September 20, 2016, 10:39:57 pm
content: I have done this a few times. So so e quick suggestions.1. Pick a chip with built in gain in the ADC module. You can potentially get away with no opamp.2. Go simple. No need for led display. No pid, no pwm. . . get the basic logic to work first. You will find limited benefits for pud or pwm, given the systems thermal mass.3. Use a laptop power supply.

author: timsu
author_rank: Contributor
timestamp: September 20, 2016, 10:53:36 pm
content: I don't think there is an AVR Chip with an integrated gain with the very low required offset. An external amp actually simplifies the layout.It is already working, a similar circuit is already in use.I think it would be kind of pointless without temperature control/display.An external 12V DC supply will be used.

author: dom0
author_rank: Super Contributor
timestamp: September 21, 2016, 05:56:51 pm
content: Quote from: timsu on September 20, 2016, 09:16:06 pmThat seems rather long to me, considering that it's a tiny tip with a 40 W heater.

author: timsu
author_rank: Contributor
timestamp: September 21, 2016, 08:08:18 pm
content: The original Weller Modell heats up in around 4 seconds.I thin the software that I currently use is not really optimmized, the delay for the RC settle time is really long and the measurment function is called often which results in effectively lower duty cycle.But in the end it does not really matter if four or ten seconds.

author: timsu
author_rank: Contributor
timestamp: September 26, 2016, 07:28:01 pm
content: So i tried myself on the layout.You can see the results here:http://gerblook.org/pcb/MffTknCwJyTpfeqfsnCSQZ#frontI still have some questions. The default settings for GND plane fill leaves quite some space, is this ok? (See Q4, top left corner, currently not connected)How should the stitching vias be placed? Do I need more than now?Are thermal vias required for the voltage regulator U2?Somehow the oval holes don't get rendered right.

author: timsu
author_rank: Contributor
timestamp: October 15, 2016, 05:14:12 pm
content: So I built up the board now, but I have trouble programming it.I'm using an Arduino Uno as programmer with a capacitor to disable the auto-reset.I can programm other devices with this setup fine.But when programming my board i always get a avrdude verification error.Code:avrdude: Version 6.3, compiled on Sep 12 2016 at 17:24:16Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/Copyright (c) 2007-2014 Joerg WunschSystem wide configuration file is "C:\Program Files (x86)\Arduino\hardware\tools\avr/etc/avrdude.conf"Using Port : COM4Using Programmer : stk500v1Overriding Baud Rate : 19200AVR Part : ATtiny167Chip Erase delay : 1000 usPAGEL : P00BS2 : P00RESET disposition : possible i/oRETRY pulse : SCKserial program mode : yesparallel program mode : yesTimeout : 200StabDelay : 100CmdexeDelay : 25SyncLoops : 32ByteDelay : 0PollIndex : 3PollValue : 0x53Memory Detail :Block Poll Page PolledMemory Type Mode Delay Size Indx Paged Size Size #Pages MinW MaxW ReadBack----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- ---------eeprom 65 10 4 0 no 512 4 0 4000 4500 0xff 0xffflash 65 10 64 0 yes 16384 128 128 4500 4500 0xff 0xffsignature 0 0 0 0 no 3 0 0 0 0 0x00 0x00lock 0 0 0 0 no 1 0 0 9000 9000 0x00 0x00lfuse 0 0 0 0 no 1 0 0 9000 9000 0x00 0x00hfuse 0 0 0 0 no 1 0 0 9000 9000 0x00 0x00efuse 0 0 0 0 no 1 0 0 9000 9000 0x00 0x00calibration 0 0 0 0 no 1 0 0 0 0 0x00 0x00Programmer Type : STK500Description : Atmel STK500 Version 1.x firmwareHardware Version: 2Firmware Version: 1.18Topcard : UnknownVtarget : 0.0 VVaref : 0.0 VOscillator : OffSCK period : 0.1 usavrdude: AVR device initialized and ready to accept instructionsReading | ################################################## | 100% 0.02savrdude: Device signature = 0x1e9487 (probably t167)avrdude: NOTE: "flash" memory has been specified, an erase cycle will be performedTo disable this feature, specify the -D option.avrdude: erasing chipavrdude: reading input file "C:\Users\Tim\AppData\Local\Temp\arduino_build_637450/v1.ino.hex"avrdude: writing flash (1114 bytes):Writing | ################################################## | 100% 2.07savrdude: 1114 bytes of flash writtenavrdude: verifying flash memory against C:\Users\Tim\AppData\Local\Temp\arduino_build_637450/v1.ino.hex:avrdude: load data flash data from input file C:\Users\Tim\AppData\Local\Temp\arduino_build_637450/v1.ino.hex:avrdude: input file C:\Users\Tim\AppData\Local\Temp\arduino_build_637450/v1.ino.hex contains 1114 bytesavrdude: reading on-chip flash data:Reading | ################################################## | 100% 12.82savrdude: verifying ...avrdude: verification error, first mismatch at byte 0x007b0x3d != 0x02avrdude: verification error; content mismatchThe mismatched byte is always at a different position.I suspected the solder joints, but they seem fine to me.Did I fry my ATtiny due to the shared programming pin?When the programm gets uploaded, the pin gets set as output and driven low or high but still has the shared connection to the programmer, could this cause a problem?