DIY SMD - Lötstation Ersatz für (WELLER)

#43
Hallo zusammen,

bin heute erst auf diesen Thread gestossen nachdem Butcher mir davon erzählt hat. Ich bin der Entwickler der Lötstation. Danke für das Lob der Leute die die Lötstation über Butcher bekommen haben!

Klasse dass das Board schon in Richtung OLED Display erweitert wurde. Würde das Ergebnis gerne mal sehen, also bitte mehr davon Posten ;-)

Ansonsten war es mein Ziel die Kosten gering zu halten weshalb ich mich für billige 7-Segment Anzeigen entschieden habe. Daher bin ich gerade nach Butchers Anregung daran eine Platinenversion zu bauen welche ein Arduino nano beinhaltet, so dass dann nur noch eine Platine nötig ist. Natürlich ist ab diesem Zeitpunkt für den ersten Start ein Programmer notwendig was bisher nicht der Fall war. Außerdem werde ich eine 3.5mm Klinkenbuchse vorsehen, so dass eine Standard-Verlängerung verwendet werden kann. Dafür werden jedoch noch ein paar Tage vergehen bis die geroutet und getestet ist.

Wer sonst noch Anregungen hat, nur her damit!

Ich habe noch 5 Platinen der Version 1.1 übrig die ich Montag Butcher mitgebe (die hat noch einen kleinen Bug und benötigt eine kleine Drahtbrücke).

Ich probiere gerade die Station bei elektor-labs zu promoten:
http://www.elektor-labs.com/project/smd-soldering-station-for-weller-soldering-tips.13817.html
Hoffe das die was darüber schreiben. Wem die Station also gefällt darf gerne voten, liken oder was auch immer ;-)

Viele Grüße

Martin
Hallo Martin, Willkommen im Forum, sehr schönes Projekt was du da gemacht hast! Werde es bei Elektor voten!

Momentan ist das bei mir alles nur Theorie ;-)
Also, das Oled das ich verwenden werde kostet bei Hobbyking unter $8, ist also kaum teurer als die 3 /-Seg Anzeigen. Zudem vereinfacht es die Verkabelung und auch den Code deutlich da das Multiplexing entfällt.
Momentan bin ich dran deinen Sketch für das Oled anzupassen - wobei glaube ich außer der getTemperature() Methode und dem EEprom lesen/schreiben nicht mehr viel übrig ist, da eben das Multiplexing und Timing fürs Display entfällt. Zusätzlich hab ich mal noch nen Standby Taster vorgesehen der eben in die Ablage soll, dieser schaltet dann auf eine 2. Einstellbare Temp runter. Zusätzlich wird nach x Minuten Standby eben das Heizen ganz abgeschaltet zur Sicherheit.

Ich bekomme von Butcher eine der alten Platinen und werde dann damit mal alles aufbauen und testen, Weller Lötspize hab ich neu für 20€ bei Ebay geschossen, der Rest an Teilen liegt eh hier.

Wenn es funktioniert stelle ich auch gerne den Sketch zur Verfügung. Würde nur erst selbst testen ob es tut, sonst gibt das nur Verwirrung, also gebt mir noch ne Woche.

Magst du uns noch erzählen wie du auf die Werte der Temperatur Berechnung kommst? Hattest du die Daten vom Sensor oder hast du das gemessen? Würde meine gerne später kontrollieren ob sie richtig tut.

Bevor ihr anfangt einen eigenen Proz auf die Platine zu packen, warum nicht nen Pro Mini nehmen, die gibts bei Ebay fertig für unter $3: http://www.ebay.com/itm/Pro-Mini-at...958?pt=LH_DefaultDomain_0&hash=item1e83668d0e
Den werde ich auch statt dem Uno einfach auf die Platine Tapen und die paar Pins frei verkabeln.

Wenn ich eine neue Platine machen würde dann einfach eine kleines Huckepack Board für Pro Mini oder Nano das den Op-Amp und den FET enthält. Taster und Oled kann man genau so gut direkt am Arduino anlöten und man ist dann je nach Gehäuse flexibel. Aber wie gesagt, ich baue einfach fliegend mit einer der alten Platinen.


Klasse Projekt, so mag ich das hier im Forum.
 

Butcher

Bill the Butcher
#44
hatte auch schon nen pro micro dran. frickler denk bitte an die led an pin13 beim pro micro! die hab ich raus gemacjt wegen dem taster an 13. standby war doch in der software und hardware bereits drinnen:)
 
#45
Ich hab einfach andere Pins genommen aktuell, da ich auf nem Pro Micro getestet hab, der hat D11/12/13 garnicht rausgeführt ;_)
Pins sind ja frei belegbar, es braucht ja nur nen Analog fürs Temp einlesen und nen PWM fähigen fürs Heizen.
Standby hab ich im Code von der Website nicht gefunden.
Wie gesagt, von der orig Software blieb nicht viel das die ganzen Timer Routinen und Einstellungen so ja mit dem Oled nicht nötig sind - oder übersehe ich hier was. Läuft jetzt alles in der Main loop in der die Taster gepollt, Temp geholt und PWM mit analogWrite() gesetzt wird.
Danach noch Display Updaten und wieder von vorne.
 
Zuletzt bearbeitet:

pluto

Neuer Benutzer
#46
Danke für die vielen Rückmeldungen!

@zerosight:
Gute Ideen.
> - 1-3 Tasten für vorprogrammierte Temperaturen.
Lässt sich leicht realisieren solange genügend Pins frei sind. Im Moment könnte ich die ISP pins hierzu verwenden. In der Software ist es vermutlich ein Dreizeiler.

> - Eingang für Stand-by Taster (kann in die Ablage integriert werden)
Ist schon drin. Einfach zwischen STDBY und GND anschließen ;-)

> - automatisches Stand-By (
Wäre als Software-Option machbar, nur wie weckt man den Lötkolben wieder auf? Per Gyro ;-) ?

> - Master-Slave-Fähigkeit für zwei Kanäle für SMD Pinzetten bzw. zwei normale Lötspitzen
Interessanter Punkt. Da müsste man mal herausfinden wie man die SMD Pinzette ansteuert. Es sind ja praktisch zwei Lötkolben so dass mir im Moment noch nicht klar ist ob diese gemeinsam oder getrennt geregelt werden (vermutlich letzteres). Dann bräuchte man insgesamt drei Kanäle.

> - genügend Power für die 85 Watt Lötspitzen
Der Power MOSFET sollte das prinzipiell hergeben. Welche Lötspitzen meinst du konkret?

> - direkte Anschlussmöglichkeit für Akkus mit Entladeschutz
Der Akku lässt sich natürlich direkt anschließen, allerdings *ohne* Entladeschutz. Was macht dieser? Einfach nur die Akkuspannung überwachen? Das lässt sich sicher über einen freien ADC Pin + Spannungsteiler realisieren (dann wäre auch eine Kapazitätsanzeige möglich).

> Das nur mal so eben aus der Hüfte, mir fällt sicher noch mehr ein wenn ich da mal eine Nacht drüber schlafe :)
Dann schlaf mal ;-)
 

pluto

Neuer Benutzer
#48
@Frickler:

> Also, das Oled das ich verwenden werde kostet bei Hobbyking unter $8, ist also kaum teurer als die 3 /-Seg Anzeigen.
Das ist allerdings günstig. Und deutlich schicker ;-)

> Zudem vereinfacht es die Verkabelung und auch den Code deutlich da das Multiplexing entfällt.
> Momentan bin ich dran deinen Sketch für das Oled anzupassen - wobei glaube ich außer der getTemperature() Methode und dem
> EEprom lesen/schreiben nicht mehr viel übrig ist, da eben das Multiplexing und Timing fürs Display entfällt.
Vergess die Timer-Loop fürs Regeln nicht ;-)

> Zusätzlich hab ich mal noch nen Standby Taster vorgesehen der eben in die Ablage soll, dieser schaltet dann auf eine 2.
> Einstellbare Temp runter. Zusätzlich wird nach x Minuten Standby eben das Heizen ganz abgeschaltet zur Sicherheit.

Genau das gibt es schon (hängt an Pin A2):
//get state of sandby switch:
bool sw_stdby = !digitalRead(PIN_STDBY_SW);
int target_temperature_tmp;
if(sw_stdby)
{
target_temperature_tmp = STDBY_TEMP_IN_DEGREES; //override target temperature
}
else
{
target_temperature_tmp = target_temperature;
}


> Wenn es funktioniert stelle ich auch gerne den Sketch zur Verfügung. Würde nur erst selbst testen ob es tut, sonst gibt das nur Verwirrung, also gebt mir noch ne Woche.

Gerne

> Magst du uns noch erzählen wie du auf die Werte der Temperatur Berechnung kommst? Hattest du die Daten vom Sensor oder hast du das gemessen? Würde meine gerne später kontrollieren ob sie richtig tut.

Die Daten habe ich selbst ermittelt indem ich auf konstante ADC-Werte geregelt und dabei mit dem Multimeter gemessen habe. Daraus habe ich Verstärkung und Offset ermittelt. Du kannst es selbst kallibrieren wenn du folgendes machst:
* Gain (ADC_TO_TEMP_GAIN) auf 1 und Offset (ADC_TO_TEMP_OFFSET) auf 0 setzen
* Dann bei zwei Temperaturen messen. Möglichst eine niedrige und eine hohe, z.B. Vorgabe 100 und 800 was etwa 60°C und 350°C entspricht
* Das Gain ermittelt sich nun aus der Differenz der beiden Temperaturen geteilt durch 800-100=700 (ADC_TO_TEMP_GAIN =(T_HIGH-T_LOW)/700). Der Offset errechnet sich aus ADC_TO_TEMP_OFFSET =T_HIGH-800*g.

Hoffe das war halbwegs verständlich.

> Bevor ihr anfangt einen eigenen Proz auf die Platine zu packen, warum nicht nen Pro Mini nehmen, die gibts bei Ebay fertig für unter $3: http://www.ebay.com/itm/Pro-Mini-atm...item1e83668d0e
Das ist weniger als die Einzelteile bei Reichelt kosten... Ist keine schlechte Idee aber im Moment gefällt mir die Ein-Platinen Lösung einfach besser.


Viele Grüße

Martin
 

zerosight

Erfahrener Benutzer
#51
*gähn* ;-)

Wenn ich das richtig verstanden habe, erkennt ja so ein Kolben an der geringen Regelung, dass er nicht in Gebrauch ist und reduziert dann die Temperatur auf z.B. 200 Grad. Um jetzt wieder löten zu können, kann man natürlich einfach einen Taster betätigen, z.B. ein Öffner, der in der Ablage integriert ist. Alternativ könnte ich mir vorstellen, dass man den Lötkolben kurz an etwas Kaltes, mit sehr guter Wärmeleitfähigkeit, hält, z.B. die Ablage. Die Regelung muss nun wieder voll loslegen um den Abfluss der Wärme zu kompensieren, stellt somit fest, dass es wieder Zeit wird, die Löttemperatur zu erreichen. Das ist aber aus meiner Sicht alles eine Frage der Software.

Eine IMU zur Überwachung des Lötkolbens klingt neckisch, aber dafür bräuchte man sicher gleich wieder ein paar mehr Adern zusätzlich. Stand-By könnte man dann an der Lage feststellen (10 sek nicht bewegt, Spitze zeigt nach oben) und bei höheren G-Kräften oder zu schneller Bewegung Ausschalten da das ein unabsichtliches Herabfallen bedeuten könnte.

So eine improvisierte SMD-Pinzette lässt sich natürlich auch im einfachsten Fall aus zwei getrennten Lötstationen aufbauen die man manuell auf die gleiche Temperatur einstellt. Schicker wäre aber ein Master/ Slave Modus bei dem der Master die Temperatur und den Stand-By steuert. Das könnte man vllt. per I²C realisieren.

Mit dem stärkeren Lötpencil meinte ich den WP80, allerdings sehe ich gerade auf den 2. Blick, dass er anders angeschlossen wird.

Entladeschutz bedeutet die Überwachung des Akkus, bzw. noch besser der Einzelzellen mit Zwangstrennung, falls eine der(LiPo) Zellen unter z.B. 3.3 Volt sinkt. Die Spannungsüberwachung bringen viele LiPowarner mit, die Funktion der Zwangstrennung ist ziemlich selten. Ich arbeite gerade an sowas für ein anderes tragbares Gerät. Ich orientiere mich dabei an der Schaltung von Jreise (http://jreise.de/LipoBlitzer/) wobei bei mir eine Einzelzellenüberwachung und eine verbesserte Schaltleistung in Planung ist.
 

DerCamperHB

Erfahrener Benutzer
#52
Zellenüberwachung ist aber in den Meisten Fällen, wenn man den Lipo nicht bis zur letzten Grenze entlädt aber übertrieben, ausser eine Zelle stirbt, dann Recht Sinnvoll

Der Anschluß vom WP80 wäre wohl nicht so das Problem, müsste man nur Entsprechend die Hardware anpassen, das eben auch mehrere Typen nutzbar sind, nur ist das ein 24V Kolben,
 

Arkonid

Erfahrener Benutzer
#53
Die IMU Geschichte würde sein lassen. Das ist Spielerei und man handelt sich nur Komplexität und eine zusätzliche potentielle Fehlerquelle ein.
"Standby ein" bei fehlenden Temperatur Schwankungen ist super, das kann man dann bei Bedarf über Software abschalten oder Toleranzen definieren.
Das aufwecken könnte man ja an die Temperatur Vorwahl Buttons koppeln.
 
#54
Zunächst einmal ein Lob an den Entwickler Martin, geniale Sache! Ich überlege ernsthaft, mich jetzt doch mal mit diesen Weller Lötspitzen zu befassen. Ansonsten Finde ich die Idee von Martin wichtig, das Ganze so einfach, kompakt und preiswert wie möglich zu halten. Zusätzliche Taster für weitere Optionen sind ok., zumal sie optional auch weggelassen werden können. Weitere SW-Ergänzungen sind ebenfalls ok., wenn sie keine zusätzliche Hardware benötigen.

Eine Spannungsüberwachung wäre kein großer Aufwand (zwei Widerstände). Eine Einzelzellenüberwachung ist jedoch komplexer und wirklich nicht nötig. Bei üblichen Lipowarnern ist diese oft nur aus Marketinggründen implementiert, um sich von der Konkurrenz abzugrenzen. In der Praxis reicht eine Überwachung der Gesamtspannung aus, denn die Zelldrift hält sich bei intakten Lipos in Grenzen. Und wenn der Lipo defekt ist (oder wird), merkt man das eh beim Laden.

Die Zwangstrennung sollte man wegen dem hier erforderlichen Aufwand auch besser lassen. Zumal der Betrieb der Lötstation mit Lipo ja eher die Ausnahme darstellt. Man kann ja einfach bei Unterspannung die Heizungsregelung aus lassen.

Gruß Jörg
 
Zuletzt bearbeitet:

d3frost

bsst jetzt nix mehr Licht
#55
Ich denke das mit dem Lipo ist ein netter Gimmick . Die meisten werden die Station sowieso an einem Netzgerät betreiben.
Baut das Dingen so einfach wie nur möglich
 
#56
@Frickler:
> Zudem vereinfacht es die Verkabelung und auch den Code deutlich da das Multiplexing entfällt.
> Momentan bin ich dran deinen Sketch für das Oled anzupassen - wobei glaube ich außer der getTemperature() Methode und dem
> EEprom lesen/schreiben nicht mehr viel übrig ist, da eben das Multiplexing und Timing fürs Display entfällt.
Vergess die Timer-Loop fürs Regeln nicht ;-)

> Magst du uns noch erzählen wie du auf die Werte der Temperatur Berechnung kommst? Hattest du die Daten vom Sensor oder hast du das gemessen? Würde meine gerne später kontrollieren ob sie richtig tut.

Die Daten habe ich selbst ermittelt indem ich auf konstante ADC-Werte geregelt und dabei mit dem Multimeter gemessen habe. Daraus habe ich Verstärkung und Offset ermittelt. Du kannst es selbst kallibrieren wenn du folgendes machst:
* Gain (ADC_TO_TEMP_GAIN) auf 1 und Offset (ADC_TO_TEMP_OFFSET) auf 0 setzen
* Dann bei zwei Temperaturen messen. Möglichst eine niedrige und eine hohe, z.B. Vorgabe 100 und 800 was etwa 60°C und 350°C entspricht
* Das Gain ermittelt sich nun aus der Differenz der beiden Temperaturen geteilt durch 800-100=700 (ADC_TO_TEMP_GAIN =(T_HIGH-T_LOW)/700). Der Offset errechnet sich aus ADC_TO_TEMP_OFFSET =T_HIGH-800*g.

Hoffe das war halbwegs verständlich.

Viele Grüße

Martin
Hallo Martin,

Danke für die Antworten.
Ich hab das Regeln jetzt in der Main Loop mit drin, denke das sollte auch reichen, ist ja keine Koptersteuerung hier die das 1000x pro sec machen muss. Habe momentan ne Loopzeit von 200ms mit Ausgabe in jedem Durchlauf, ohne Anzeige ca 20ms.
Könnte also auch nur bei jedem 20. mal oder so das Oled Updaten. Bei dir waren es 10ms wenn ich das richtig sehe oder?


Ja, war verständlich so, wolllte nur wissen ob du die Temp gemessen oder anhand vom Datenblatt berechnet hast. Umrechnen mit 2 bekannten ADC Werten und den zugehörigen Temperaturen ist ja dann einfach, hab ich beim anderen Projekt für den Strom auch gemacht:

Code:
// Current Stuff 
float currentA = 0.0; // Ampere
int analogCurrentA = 123; // analog reading current
float currentB = 15.2; // Ampere
int analogCurrentB = 767; // analog reading current

float analogToAmperes(float analogval){
  float load = mapfloat(analogval, analogCurrentA, analogCurrentB, currentA, currentB);
  return load;
}

float mapfloat(float x, float in_min, float in_max, float out_min, float out_max)
{
  return (x - in_min) * (out_max - out_min) / (in_max - in_min) + out_min;
}
Gruß
Johannes.

P.S. Lötspitze is heute angekommen, liegt gut in der Hand, Gehäuse hab ich auch noch n schickes gefunden, jetzt brauche ich nur noch Platine und Op-Amp.
 
Zuletzt bearbeitet:

zerosight

Erfahrener Benutzer
#57
Ich wäre -trotz aller meiner Vorschläge- auch für eine möglichst einfach aufzubauende Station. Man könnte ja auf der Platine Bereiche frei lassen, auf die man einfach simple Platinen im Format der kleinen Arduino Platinen aufstecken kann. Dafür sind erstmal nur jeweils zwei Reihen für Stiftleisten zu platzieren. Da könnte man dann die wichtigsten Pins des zentralen Atmels, vor allem die noch freien GPIOs, hinlegen. Von mir aus auch mehrere dieser freien Flächen. Nur so als Idee.
 

pluto

Neuer Benutzer
#58
Werde die zwei übrigen Pins herausführen, so dass sich Taster/Schalter für was auch immer anschließen lassen ;-)
Von einer Lipo-Überwachung werde ich erst mal absehen (zumal auch kein ADC-Port mehr frei ist).

Die Sache mit dem Auto-Standby klingt verlockend und ist sicher leicht zu implementieren. Darstellen könnte man den Standby durch ein Blinken visualisieren und durch Drücken irgendeines Tasters wieder verlassen.

Was sicher noch nützlich wäre ist eine Sicherheitsabschaltung: Bei einer Lötstation war der Sensoranschluss nicht richtig angeschlossen wobei die Lötspitze bis zur Rotglut (das ist wortwörtlch zu verstehen) gebracht wurde da die Regelung immer weiter geheizt hat. Dies ließe sich abfangen in dem man die Heizung abschaltet wenn sich innerhalb einer gewissen Zeit keine nennenswerte Temparaturänderung ergeben hat.

> So eine improvisierte SMD-Pinzette lässt sich natürlich auch im einfachsten Fall aus zwei getrennten Lötstationen aufbauen die man manuell auf die gleiche Temperatur einstellt. Schicker wäre aber ein Master/ Slave Modus bei dem der Master die Temperatur und den Stand-By steuert. Das könnte man vllt. per I²C realisieren.

Gute Idee! Oder man macht eine Variante mit zwei oder sogar drei Kanälen und größerem uC.

> Mit dem stärkeren Lötpencil meinte ich den WP80, allerdings sehe ich gerade auf den 2. Blick, dass er anders angeschlossen wird.

Wenn du etwas dazu herausfindest wie die funktionieren nur her damit! Zu den RT-Lötspitzen gab es natürlich kein Datenblatt und es hat mich einen ganzen Tag gekostet herauszufinden das der Sensor ein Thermoelement und kein widerstandsbasierter Sensor ist.

Hier ein kleiner Zwischenstand:


;-)

PS: Weiss jemand ob es außer dem Flash-Speicher zwischen ATMega168 und ATMega328 einen Unterschied gibt den die beiden inkompatibel zueinander machen? Bisher habe ich den nicht gefunden.
 
#59
Hallo Martin
vielen dank für deine tolle Arbeit!! :)

und danke Timo fürs anfixen ;) und besorgen der Teile.
von der 2.ten Version nehm ich auchn platinchen !! :D
 
#60
Weiss jemand ob es außer dem Flash-Speicher zwischen ATMega168 und ATMega328 einen Unterschied gibt den die beiden inkompatibel zueinander machen? Bisher habe ich den nicht gefunden.
Ich hatte dazu mal die Datenblätter durchsucht und habe außer den Speicherunterschieden keine Inkompatibilitäten gefunden. Die Eigenschaften, Ressourcen, Register usw. sind gleich.

Gruß Jörg
 
FPV1

Banggood

Oben Unten