rs


(for English version please click on UK flag in top right of this post)

Контролер за лемилицу је најзад готов тј. “Soldering Iron Driver” пројекат је најзад стигао у фазу “мени ради”, па да на брзину резимирамо шта се и како дешавало везано за овај пројекат.

Генерација 1 овог пројекта је био PIC16F690 микроконтролер залемљен на прото плочицу са рупама, на њега је био жичкама везан један 1602 карактер дисплеј, 2 дугмета (плус и минус, ако стиснете оба истовремено то је био “ок”) и један операциони појачивач који је појачавао напон који је стизао са делитеља напона који су чинили сензор гордак лемилице (купљене на бувљаку у Панчеву) и 10 килоома отпорник. Идеја је била да имам још једну лемилицу уз моју главну лемилицу када ми затреба да радим са два различита врха па је у гордак дршци био обичан шрафцигер врх док је у главној лемној станици чучао БЦ врх. Програм у микроконтролеру је био врло прост, на дисплеју су писале вредности у релативним јединицама, тј. писала је вредност између 0 и 1023 што су могуће вредности на аналогно дигиталном конвертору. Није постојала конверзија те вредности у степене Целзијуса што лемилицу уопште није чинило мање употребљивом; ја сам знао да за нормалан рад са 1206 и 0805 компонентама треба да држим лемилицу на 620 “јединица” и нисам имао појма која је то температура али је лемилица радила супер. Такође управљање грејачем није користило никакву напредну ПИД контролу већ сам користио најједноставнији систем термостата са хистерезисом, те се грејач гасио када достигне задату вредност а палио када се охлади за хистерезис више од задате вредности.

Generation 1

Generation 1


У некој причи са неким људима, неки “геније” ми је рекао да ове дршке (HAKKO клонови)за сензор имају термопар и да сам ја требао то да читам као термопар а не да правим разделник напона и ја сам, без икакве провере (комплетна будала) у то поверовао и кренуо да правим нови пројекат са читачем термопара. Тако настаје генерација 2 овог пројекта.

Генерација 2 овог пројекта је започела са једном лошом претпоставком (да HAKKO клонови имају термопар за сензор) али и са једном добром одлуком. Решио сам да логујем пројекат како дотични расте и развија се. Форум “опасни прототипови” се у том тренутку чинио као одлично место за тако нешто. Интернационална посета, људи са искуством који за разлику од људи на домаћим форумима не прежу од тога да знање поделе са другима, и отвореност “опасних” је деловала много боље него да сам пројекат кренуо да логујем овде на блогу или на неком локалном форуму. Имао сам идеју да то можда урадим на једном другом форуму који такође посећујем али сам се ипак одлучио за “опасне прототипове”.


Generation 2

SID Generation 2


Шема и плочица за генерацију 2 су биле врло брзо готове, а ја сам гербер фајлове послао на израду још пре него сам испробао да ли то све ради “на столу”. То ми је први пут да сам тако нешто урадио слепо верујући да ће то да ради. Неке делове те шеме сам ја испробао “на столу”, тј. испробао сам како ми ради аналогни део са правим термопаром, али ми није пало на памет да окачим на њега праву лемилицу… Када су плочице стигле из фабрике, и када сам их саставио, полемио, окачио ову гордак лемилицу … десило се чудо … ништа није радило … после 10мин дебагирања схватио сам да сам у старту када сам правио генерацију 1 био потпуно у праву и да је сензор на гордаку као и на осталим HAKKO клоновима РТД односно ПТЦ (отпорник са позитивним температурним коефицијентом). Набуџио сам на улазу у аналогни део уместо термопара напонски делиоц између 10 килооома и гордак сензора и то је “некако радило” али је на жалост сензор имао “много шума”.


PTC garbage when reading with voltage divider and amplifier

PTC garbage when reading with voltage divider and amplifier


Ја сам пробао да исфилтрирам то у апликацији и то је донекле успело али ипак није било решење којим сам ја хтео да се задовољим.


PTC garbage with software filtering

PTC garbage with software filtering

PTC garbage with software filtering

PTC garbage with software filtering


Квалитетно читање овог сензора захтева извор константне струје а не напонски делитељ.


PTC raw data reading with 1mA constant current

PTC raw data reading with 1mA constant current


Да би спасао пропали пројекат (имао сам 10 плочица), решио сам да погледам и неке друге јефтине дршке које су ми доступне и дошао до Соломон дршки. Соломон има термопар типа К сензор и идеалан је за генерацију 2. Брзо сам добавио једну Соломон дршку и закачио је на СИД Генерација 2 и све је прорадило савршено.


SID Generation 2

SID Generation 2


Генерација 2 је у старту користила исти PIC16F690 са истим системом који симулира механички термостат. Како је у флешу било још места решио сам да пробам да угурам некако ПИД контролу у овог малца. Реорганизација апликације, пребацивање табела и стрингова из флеша у еепром и још пар трикова су ми омогућиле да имплементирам комплетну ПИД контролу грејања лемилице.


PID on SID generation 2 (solomon iron)

PID on SID generation 2 (solomon iron)

PID on SID generation 2 (solomon iron)

PID on SID generation 2 (solomon iron)


Генерација 2 је имала још један озбиљан проблем у дизајну. 7805 које је планиран да обезбеди 5 волти за рад микроконтролера и околине није био у стању да се избори (ни са огромним активним хладњаком) са улазних 35 волти и после пар секунди се гасио од прегрејавања. Решење је било екстерни ДЦ:ДЦ претварач на засебној плочици који је онда везиван уместо 7805. Ово је иначе био мој први сусрет са самоградњом ДЦДЦ претварача и ту су ми доста помогли колеге са форума као и колега из Београда који ми је и направио један ДЦДЦ да забодем директ у плочку уместо 7805.

Како ми се HAKKO дршке ипак више свиђају од Соломон дршки, и како за HAKKO дршке имам много више врхова ја сам и даље хтео да имам добру лемну станицу која ради ок са HAKKO лемилицама тако да сам се решио да ипак направим нову шему која ће да реши све ове проблеме.

Генерација 3 настаје као наставак генерације 2 и логује се у истом треду на “опасним прототиповима”. Овај пут сам, уместо да трчим пред руду мало више размислио о свему и консултовао се са колегама. Иан Леснет, власник “опасних” је имао идеју да нова генерација буде на чипу који има УСБ како би било олакшано дебагирање и како се лакше на плочу може послати нова верзија програма. Ја сам погледао шта имам по фиокама и одлучио сам се за PIC18F2550. Овај, врло популаран микроконтролер, постоји у DIP кућишту што је згодно за тестирање, релативно је јефтин, има одличан аналогно дигитални конвертер (постоји и 18f2553 верзија са још бољим конвертером а која је пин компатибилна), има усб, има УАРТ порт и има довољно пинова за све додатне функције које сам хтео да додам. Генерација 3 је испробана на столу пре него је послата на израду али при самом дизајнирању плочице се није превише водило рачуна о изгледу.


SID-3.1.4 - 3dfront

SID-3.1.4 - 3dfront

sid-3.1.4 - 3dback

sid-3.1.4 - 3dback

SID Generation 3

SID Generation 3


Ја сам плочицу издизајнирао “за себе” тј неки делови су стављени у 0805 или SOIC паковању зато што сам то имао по фиокама, неки су “PTH/DIP” зато што сам опет то имао по фиокама. Већи део плочице је изрутиран “ногом” а остатак ауто рутером… Све то наравно ради али “није идеално” што ме и није претерано тангирало када су плочице стигле и када је све прорадило из прве. И HAKKO 907ESD и Gordak 907 и Solomon HQ30 и Weller PES51.. све шљака из прве. Не изгледа лепо, ал шљака :D


SID Generation 3, HAKKO iron, monitoring of temperatures during soldering

SID Generation 3, HAKKO iron, monitoring of temperatures during soldering


DangerousPrototypes верзија је настајала паралелно са генерацијом 3. Иану се од старта свидела идеја те је Филипу Дулићу (Arakis), младом студенту из Београда, запосленом у DangerousPrototypes, дао да ради на DangerousPrototypes верзији СИД-а који би био у верзији лакој за састављање почетницима са лошим лемилицама. Једна од идеја је, ако имаш лошу лемилицу, узмеш СИД и да можеш да га саставиш том лошом лемилицом да би направио бољу. Филип је одрадио то све у Eagle програму за цртање шема и плочица и успео да смести цео пројекат на 8*8цм плочицу и нема ниједну SMD компоненту. Плоча је изрутирана перфектно, одлично су раздвојене 3 целине (снага, аналогни и дигитални део), изгледа одлично. Шема је 90% иста као Генерација 3 осим што је избачен део са Генерације 3 који је давао могућност да се грејач вози DC сигналом преко FET-а. Ова верзија је такође доступна на истом форуму. Ја очекујем да ће се ускоро ове плочице наћи у продаји код “опасних” (ја немам ништа са тим / од тога тако да ће те уређаје подржавати “опасни” а не ја, ја ћу наравно увек помоћи колико год имам времена и знања).


SID - DP (trough hole) Version

SID - DP (trough hole) Version

SID - DP (trough hole) Version

SID - DP (trough hole) Version

gb


(за верзију на српском језику, кликните на српску заставу десно у врху поста)

Soldering Iron Driver (SID) is finally in the “works for me” phase so I think it is time to write a short resume of what happened during the design / short history of the project.

Generation 1 of this project was based on PIC16F690 soldered on a stripboard (pertinax with holes) and a 1602 lcd was attached to it with some flat cable. 2 buttons (plus, minus and “both” were “ok”) and one op-amp amplifying the output of a voltage divider between Gordak soldering iron sensor and 10 K resistor. The idea was to have second soldering station parallel to my main soldering station so that when I need to work with 2 different tips I do not need to pause for iron to cool down in order to change them. I ended up with classic chisel tip in the Gordak while my main soldering station had BC tip that is great for drag soldering. Firmware was super simple, display was showing raw ADC values for sensor input and same for the target value. There was no conversion from ADC values to degrees Celsius but that actually didn’t make the station any less useful. I knew for e.g. that for SMD soldering perfect value of ADC was 620, I had no clue what temperature that was but I didn’t really care as it worked flawlessly. Generation 1 used simple hysteresis based on/off temperature control mimicking mechanical thermostat. No fancy PID control was used nor it seamed necessary.

Generation 1

Generation 1


While talking to some people some “genius” told me (and me, moron, believed without testing it) that HAKKO clones use thermocouple as sensor. Since it’s fairly simple to read thermocouple (as it is documented compared to actual HAKKO sensor) I decided to go and make generation 2 so that I can have “accurate” display of the temperature.

Generation 2 of this project started with a very bad theory – I believed that HAKKO clones use thermocouple type sensor. On the other hand, this project started with a very good decision, and that was to create a project log hence I have a history of how project grows and why some decisions are made. Forum DangerousPrototypes.com at the time seamed like a best place to do so (I still believe that was a great decision). International membership, ppl with experience not being afraid to share knowledge … convinced me to do it there instead of logging it on my own blog or some local, Serbian, forum. I was considering also ElectroTechOnline.com but I finally decided to go with DangerousPrototypes.com for reasons I’ll keep for myself :D


Generation 2

SID Generation 2


Schematic and PCB for generation 2 were done very fast and I sent gerber’s to be manufactured before I actually tested it at home. It is first time in my life that I believed something “works” without testing it first. I did make some tests at home, for e.g. I tested the analog part, but I tested it by attaching external Ktype thermocouple, I never tested it with real HAKKO sensor. When PCB’s arrived from SEEEDSTUDIO, after I assembled them, I connected the Gordak soldering iron and – puf, nothing happened, it didn’t work. The signal on the ADC input was going crazy and made no sense at all. After 10 minutes of debugging I figured out that my initial design with generation 1 was more/less correct and that HAKKO clones use RTD/PTC and not thermocouple. I was freaking out but it was too late. In order to try to save the day I created a small voltage divider on the input to the thermocouple amplifier and it partially worked. The signal made sense but it was incredibly noisy.


PTC garbage when reading with voltage divider and amplifier

PTC garbage when reading with voltage divider and amplifier


I managed to clear up the noise in software implementing a simple low pass filter in firmware but it’s not really what I hoped to accomplish.


PTC garbage with software filtering

PTC garbage with software filtering

PTC garbage with software filtering

PTC garbage with software filtering


In order to properly read RTD/PTC you have to push some constant current trough it. I found that 1mA works like a charm and when I did that the signal was as clear as I hoped for.


PTC raw data reading with 1mA constant current

PTC raw data reading with 1mA constant current


In order to at least partially solved the doomed project (I had 10 PCB’s) I decided to check out if there are some soldering irons with TC sensor and I found that local store sells Solomon HQ30 soldering iron that is exactly what I need, 50W iron with TC sensor. I purchased it and tested it with generation 2 electronics and it worked like a charm.


SID Generation 2

SID Generation 2


Generation 2 used same PIC16F690 as generation 1 with same temperature control simulating mechanical thermostat. Since I had some free space in flash I decided to try to fit PID implementation inside. Reorganizing the firmware and moving some tables and strings from flash to eeprom I managed to squeeze PID implementation in firmware.


PID on SID generation 2 (solomon iron)

PID on SID generation 2 (solomon iron)

PID on SID generation 2 (solomon iron)

PID on SID generation 2 (solomon iron)


Generation 2 had another serious design flaw; 7805 was supposed to secure 5V required for the mcu, op-amp and lcd but it was unable to do so. 35V on the input was just too much for it to handle even with huge actively cooled heat sink. After few seconds the 7805 would shutdown because it overheats. The solution – DCDC converter on a separate board converting that 35V to 5V connected instead of 7805. This was my first DCDC circuit design so I needed a lot of help, and a lot of ppl on forum jumped in to help. A friend also made one DCDC for me so I can continue testing the SID.

As I like HAKKO irons way better then Solomon ones and since I have bunch of tips for HAKKO irons I wanted to have soldering station that support HAKKO soldering irons. This made me go forward and fix all this problems by designing generation 3 soldering iron driver.

Generation 3 of the soldering iron driver is continuation of the development of the same project leaning on the generation 2 design. It is logged on the same thread on the DangerousPrototypes forum. This time I decided to do it smart and think before I order and consult more with colleagues. Ian Lesnet, owner of DangerousPrototypes, had the idea that new generation be USB enabled (easier debugging, easier firmware upgrades..). I checked my drawers and I found PIC18F2550, great little USB enabled microcontroller with proper hardware to run generation 3 driver. It has USB, UART and enough pins for all functionality I wanted to implement. Before the PCB’s are made generation 3 schematic was tested on breadboard so this time I expected no surprises. PCB design on the other hand was not something I payed too much attention to.


SID-3.1.4 - 3dfront

SID-3.1.4 - 3dfront

sid-3.1.4 - 3dback

sid-3.1.4 - 3dback

SID Generation 3

SID Generation 3


I designed the PCB “for myself”, so you can find some parts to be SMD, because I had them as SMD, some other parts are PTH/DIP, again because that’s what I had in my “drawers”. Most of the PCB I routed blindfolded and the rest of it is done by auto router. It works, it’s not ideal, but works so I didn’t care much, especially after everything worked from the first try when the pcb’s arrived from manufacturer (ITead this time). Everything worked from first go, HAKKO 907ESD, Gordak 907, Solomon HQ30, Weller PES51… it does not look good, but it works great :)


SID Generation 3, HAKKO iron, monitoring of temperatures during soldering

SID Generation 3, HAKKO iron, monitoring of temperatures during soldering


DangerousPrototypes version of the SID was designed in parallel with the generation 3. Ian liked the idea from day one so he gave Filip Dulić (Arakis), young student from Belgrade, DP employee, to work on a DP version of SID. His idea was to produce a 100% trough hole version of the SID that anyone with el cheapo soldering iron can assemble and provide himself with a good and cheap soldering station.

Filip made the PCB in Eagle and he managed to put the whole darn thing on a 8x8cm PCB without a single SMD component. That is a huge success as I was sure there’s no way to put this many parts on a board that small :D (original generation 3 uses bunch of SMD and is on 10x10cm board). Schematic of the DP version of the SID is 90% same as generation 3. Basically they only removed the part of the schematic that allow you to drive heater with DC input trough a FET.

This version is available on the DangerousPrototypes forum. I expect DP to soon start selling the pcb’s so if you want one check out the DP site. Note that the “support” for the project will be provided by the persons selling you the boards (or maybe KIT if someone decide to make it) and not by me; I will of course always try to help as much as I can but I do not need any obligations wrt this, I brought it to “Works for me” stage :)


SID - DP (trough hole) Version

SID - DP (trough hole) Version

SID - DP (trough hole) Version

SID - DP (trough hole) Version