Hallo,
ich bestitze eine Digitale Lötstation von der Firma JBC die ich mir vor kurzem gekauft habe.
Jetzt möchte ich sie mit meiner Absaugung verknüpfen bzw soll die Absaugung durch die Lötsation geregelt werden. Ziel soll es sein dass die Absaugung aus geht wenn der Lötkolben in die Halterung gesteckt wurde, was die Lötstation sowiso erkennt. An der Lötsation ist dazu auch ein Ausgang angebracht der für die jbc eigenen Absaugungen vorgesehen ist. Habe allerdings zu diesen Ausgang keinerlei Informationen im Internet gefunden.
Weis jemand bescheid über das Pinout dieses Steckers bzw wie man das Problem anderweitig lösen kann?
Das ist mal wieder ein typischer Facepalm Thread. Hat eine JBC Lötstation aber anscheinend kein DVM um den Port auszumessen.
DE geht wirklich den Bach runter...
Meinst du nicht, dass es hilfreich wäre, den genauen Typ deiner JBC
Station zu erwähnen?
Muss er nicht, ist bei allen JBC-Stationen der gleiche RJ-12-Stecker. Dafür existiert genau ein Typ Absaugung.
Evtl wäre es interessant zu wissen, ob am Originalverbindungskabel wirklich alle Adern beschaltet sind.
Danke für deine Hilfreichen Beitrag aber auf die Idee bin ich auch schon gekommen. Ergebnis dabei war dass nur an einem Pin Spannung anliegt und dort war eine Art Rechteck Signal (höchstwarscheinlich ein Protokoll). Hab die Lötstation mal aufgeschraubt und an diesen Port war ein Chip verbaut der wohl für eine RS232 Schnittstelle gedach ist. Könnte aber auch sein dass dies eine JBC eigene Schnittstelle ist was ich nicht weis und deswegen auch diesen Post erstellt habe.
Kann man da nicht einfach die Abschaltung, wenn der Kolben in den Halter gesteckt wird, dazu missbrauchen? Da liegt wohl irgend ne Kleinspannung an, die wenn der Kolben in der Ablage ist, kurzgeschlossen wird.
Ich würde aber auf das Protokoll scheißen und einfach mal die Flanken alle mitschneiden, mehrmals. Irgendein Rohmuster ergibt sich dann. Das einfach dann erkennen.
Entgegen der anderen finde ich deine Frage legitim, hätte ja sein können, dass das Protokoll dokumentiert ist, und du es nicht einfach findest. Ein Teilen des Gerätenames, ebenso des ICs, hätte für dich keine Nachteile gehabt.
Die JBC taktet nicht sondern läuft mit PWM. Das Modul hat intern einen kleinen Filter, da es funktionsbedingt mindestens über eine Periode messen muss.
Wie wärs, wenn man da ein kleines z.B. 5V NT parallel zur Kolbenregelung anschliessen würde, oder auch nur ne Batterie, die sobald der Kontakt unterbrochen wird über ein Relais, Fet oder was einem sonst noch einfällt, die Absaugung einschaltet. Es gibt ja Kolben mit Absaugung, da ist dann oberhalb der Spitze ein Rohr ähnlich dem von nem Saugstauber.
Ich habs jetzt mal nachgemessen, am Halter liegen knapp 5V (4,73 gemessen) an. Damit könnte man nen 2803 Schalter, nen Schmittrigger oder ähnliches betätigen, der wiederum den Absauglüfter schaltet.
Thread ist zwar schon älter, aber wie ist denn die Geschichte ausgegangen?
Das mit der RS232-Schnittstelle, die vermutlich mit 19200Baud laufen soll, scheint zumindest bei meiner Station so nicht zu sein. Da sieht es eher nach 230400 (Standard) aus, wobei ich 250000 gemessen habe - was schon irrwitzig flott wäre.
Bildchen anbei (TX gelb, RX grün), gemessen an einer CD-2BQF. Der Decoder meines Oszis (Siglent SDS1104X-E) lässt als maximale Baudrate aus den voreingestellten Werten nur die Eingabe von 115200Baud zu - was möglicherweise die angezeigten Fehler erklärt.
Theoretisch könnte(!) ich auch die manuell 230400 einstellen, allerdings ist das Oszi da nicht sooooo komfortabel. Es kann nur von in 1er-Schritten von irgendwas 1000 an einem Poti hochgekurbelt werden :-(
Soweit ich zudem sehen konnte, verändern sich die Nachrichten (-Muster) nicht, wenn der Lötkolben aus der Halterung genommen wird.
Achso, das ganze, weil ich mit dem gleichen Gedanken spiele wie der TO.
Ich teile euch mal mit, was ich schon rausgefunden habe.
Die Kommunikationparameter sind 250000baud 8E1
DDE: [DLE] [STX] [NUL] [CAN] [253] [NUL] [SOH] [CAN] [253] [DLE] [ETX]
JTSE:[DLE] [STX] [NUL] [DC2] [253] [NUL] [SOH] [DC2] [253] [DLE] [ETX]
Man sieht auf jeden Fall, dass die Absender Adresse was mit dem 4. Byte zu tun haben muss. Was ein bisschen komisch ist, das die Adresse zwei mal vorkommt.
Wir brauchen Jemaden der eine Lötstion mit Fae hat, um das Protokoll zu entschlüsseln. Ansonsten gibt es noch das Projekt auf Github von Springuin. Er hat einen Arduino Sketch geschrieben für ein USB Host 2.0 Shield in Verbindung mit einem Arduino Uno. Damit soll es möglich sein, den Status der Lötstation über den USB Port an der Rückseite auszulesen.
Was ein bisschen komisch ist, das die Adresse zwei mal vorkommt
Ich muss zugeben, dass ich noch nicht einmal die Adresse erkenne - welche soll das sein? Auch "übersetzt" mein Scope auch nur in hex, dezimal, ... aber nicht in sowas wie STX oder DC2.
Wie auch immer, inzwischen herausbekommen, wie ich an meinem Scope per Konfig-Datei die Baudrate auf 250KBaud verändern kann, und dann mir die Nachricht angeschaut.
Zunächst kann ich die Einstellungen von Tim bestätigen, aber, leider, leider, die JBC-Lötstation sendet immer das gleiche. Also, mit/ohne Tool. Im Ständer oder draußen. Daher nur ein Oszi-Bild
Ich hatte Kontakt zum JBC-Support, weil ich mich über die 250kBaud gewundert hatte (soll das so, oder ist die Station defekt?). Antwort: soll so, und das Protokoll sei nicht das gleiche wie das der Control Units, sondern propritär und vor allem geheim.
Es hat hier nicht zufällig jemanden, der einen Fume Extractor von JBC hat und das Protokoll mitschneiden kann?
Hey Sebastian, hast du ein Arduino Uno und ein Arduino Host Schield 2.0 zu hand? Bei mir dauert es noch bis es eintrifft. Ich möchte das Projekt von Springuin umsetzen: https://github.com/Springuin/jbc-fume-extraction-arduino . Damit kannst du über USB den jede JBC Station hat, den Status des Lötkolben auslesen und der Arduino steuert dir im Standart schon eine LED auf dem Microcontroller an. Ich denke nicht das JBC ihr Protokoll rausrücken wird, hatte letztes Jahr bei den auch schon angefragt und hab auch diese Antwort bekommen. Man wird sich auch nicht zum Protokoll schnüffeln eine FAE1 im Wert von 1699 Euro anschaffen. :D Wenn du mal in die Anleitung der FAE guckst, wirst du feststellen, dass die CDE Station mit einem USB zu Seriell Wandler an die FAE Angeschlossen wird. Entweder Stellt die CDE Station ihr USB protokoll um auf die FAE Kommunikation oder es ist das gleiche Protokoll was Springuin aus der JBC Connect.ddl extrahiert hat von der JBC Station Updater Windows Anwendung.
Das sieht in der Tat interessant aus. Auch wenn ich - zugegebenermaßen - bei einer (nicht so super intensiven) Durchsicht des Codes so manches nicht verstanden habe. Es sieht irgendwie so aus, als ob über den USB der in der Lötstation verbaute USB-to-Serial Converter direkt angesprochen wird. Hm ...
Weiteres zu klärende Detail wäre, wer hier wen mit Strom versorgt. Der Text von Springuin lässt einen glauben, dass der USB-Anschluss der Lötstation eine externe Spannungsversorgung braucht (also dann über den Shield). Ich kenne mich damit nicht aus. Um USB habe ich, was dessen Verwendung in selbst geschriebenen Programmen angeht, bisher einen weiten Bogen gemacht.
Andrerseits, ein Versuch ist es Wert. Ich besorge mir mal einen USB - Shield, aber das wird frühestens erst Ende September wieder was. Arbeit, verplante Wochenenden, und: Urlaub :-)
Eigenen Lötrauch absaugen mit dem JBC FAE Emulator
Mahlzeit! Nach langem Reverse Engineering habe ich endlich das JBC FAE Protokoll verstanden und in Software umgesetzt. Mit meinem Projekt könnt ihr eure Lötstationen über den FAE-Port (maximal 2 JBC Stationen) mit einem ESP32 oder Arduino Mega verbinden und am Ausgang des Microcontrollers ein Relais ansteuern, das eure Absaugung ein- und ausschaltet.
Zusätzlich zeigt der Emulator den Status jeder Station über 2 LEDs an (SK6812 GRBW).
Ausschaltverzögerung einstellen
Die Ausschaltverzögerung für den Lüfter kann direkt über die CLI konfiguriert werden:
set tstop_work <Sekunden>
save
<Sekunden>: Zeit, wie lange der Lüfter nach dem Abschalten der Station noch läuft
save: Speichert die Einstellung im EEPROM, damit sie bei Neustart erhalten bleibt
Hinweis: Wenn ihr eine DDE-Station habt, könnt ihr die Nachlaufzeit des Relais auch direkt in der Station einstellen – dann wird der Lüfter automatisch nach der gewünschten Zeit abgeschaltet.
Getestet
Ich habe das Setup mit der DDE- und JTSE-Stationen getestet – es läuft einwandfrei.
Mahlzeit! Nach langem Reverse Engineering habe ich endlich das JBC FAE
Protokoll verstanden und in Software umgesetzt. Mit meinem Projekt könnt
ihr eure Lötstationen über den FAE-Port (maximal 2 JBC Stationen) mit
einem ESP32 oder Arduino Mega verbinden und am Ausgang des
Microcontrollers ein Relais ansteuern, das eure Absaugung ein- und
ausschaltet.
Interessant!
Weißt Du zufällig welche Generationen von Basisstationen über dieses Protokoll ein FAE-System (oder eben Deinen Emulator) ansprechen können?
Z.B. bei der DDE-Station gibt es verschiedene Generationen. Die haben alle Peripherie-Anschlüsse auf der Rückseite aber ich hab da nicht so den Überblick was es genau für die FAE braucht.
so weit ich das verstanden habe, geht das mit allen Stationen die einen FAE/Robot RJ12 Anschluss auf der Rückseite der Geräte haben. Wichtig, Aktuelle Firmware muss installiert sein.
Ich freue mich über euer Feedback – schreibt gerne, ob es bei euch
reibungslos funktioniert.
Hi Tim,
ich habe das auf dem ATMega implementiert, und leider funktioniert es wenig bis gar nicht. D.h. manchmal wird das Relais zwar geschaltet, aber meistens nicht.
Kannst du hier antworten, mit welchem ESP32 unter den vielen verfügbaren (ich kenne mich da leider gar nicht aus) du es getestet hast? Dann würde ich es einmal damit probieren bzw. mir erst so ein Board mir bestellen.
Danke und Gruß
Sebastian
P.S.: Wenn ich die UART-Signale mit dem Oszi dekodiere werden mir sowohl 12 als auch 13 Byte lange Nachrichten angezeigt. Soll das so sein?
PPS: LEDs habe ich deaktiviert, der Relais-Ausgang reicht zum Testen. Aber auch, weil ich die noch nicht auf einer Platine habe.
Du kannst einen ganz normalen Esp32 benutzen bitte keinen Esp32 c6, s3 usw.
Welche Lötstation benutzt du? In einem anderen Forum habe ich von einem gehört, das die JBC CD-2BQF wohl ein anderes Protokoll spricht und mit meinem Projekt nicht richtig funktioniert. Wenn du die gleiche hast, kannst du gerne mal bitte den DBG Mode über die CLI einschalten und mal das log hier postest. Dann können wir mal gucken wo das Problem sein könnte. Der andere berichtete auch, dass das Relais nicht zuverlässig angesteuert wird.
Achso und bevor ich das vergesse, was steht bei dir an dem Port dran? Robot/FAE oder steht dort AUX drauf?
Liebe Grüße Tim
Du kannst einen ganz normalen Esp32 benutzen bitte keinen Esp32 c6, s3
usw.
Welche Lötstation benutzt du? In einem anderen Forum habe ich von einem
gehört, das die JBC CD-2BQF wohl ein anderes Protokoll spricht und mit
meinem Projekt nicht richtig funktioniert. Wenn du die gleiche hast,
kannst du gerne mal bitte den DBG Mode über die CLI einschalten und mal
das log hier postest. Dann können wir mal gucken wo das Problem sein
könnte. Der andere berichtete auch, dass das Relais nicht zuverlässig
angesteuert wird.
Achso und bevor ich das vergesse, was steht bei dir an dem Port dran?
Robot/FAE oder steht dort AUX drauf?
Liebe Grüße Tim
Um den Debugmode für RX und TX einzuschalten muss man bei DBG_SHOW_RX 0 und DBG_SHOW_TX 0 jeweils eine 1 reinschreiben und das Programm einmal neu flashen.
So sieht das bei meiner DDE aus:
Software frisch von Github heruntergeladen (ich hatte bei meinen Untersuchungen selbst hier und da etwas hinzugefügt, daher "neu" aufgesetzt, um irgendwelche Seiteneffekte ausschliessen zu können)
#defines:
1
#define DBG_SHOW_RX 1
2
#define DBG_SHOW_TX 1
3
#define DBG_SHOW_PROTO 1
4
#define LED_ENABLE 0
Note: DBG_SHOW_PROTO ist im Original auf 0 gesetzt, vermute aber dass 1 eher hilft als es schadet.
Die Station befindet sich im Sleep-Modus (also reduzierte Temperatur (150°C)), aber noch nicht Hibernation (Heizung komplett aus))
Im Serial Monitor (Arduino IDE, 1.8.19) gibt es dann folgendes:
fröhlich gefüllt wird, wobei der Zeitabstand zwischen den einzelnen M_SYN-Zeilen größer ist (~500ms), als zwischen den M_HS-Zeilen (~100ms).
Während der M_SYN-Phasen werden keine Nachrichten an die JBC gesendet.
Da stand mal was anderes, ist aber nachhaltig verloren gegangen.
Zudem gab es mal (am Anfang, nun nicht mehr sichtbar) irgendwas der Art DLE und "unknown command (ID?)" oder dergleichen. Sorry, aber ich hatte es nicht notiert, d.h. ich kann es leider nicht näher/besser beschreiben.
Zum Schluss habe ich noch folgendes hinbekommen (beim Rausnehmen des Lötkolbens, also wo dann das Relais anziehen sollte)
M_HS in der ersten Zeile, M_SYN ist in der zweiten Zeile, dritte Zeile habe ich noch so recht rausbekommen. Vermutlich wenn eine Entnahme des Lötkolbens erkannt wird.
Damit sind, hoffe ich jedenfalls, alle Fragen beantwortet (und noch ein paar mehr ;-)), oder? Wenn ich noch was machen soll, so lass es mich wissen.
Meine Frage nach dem ESP32 kam übrigens daher, dass im Code steht, dass es beim ATMega zu Schwierigkeiten kommen kann. Auch wenn du es wohl mit der Ansteuerung der LEDs beobachtet hast; daher LEDs via #define aus.
Ich sehe das Problem, du nutzt den Aux Port. Es muss aber explizit ein FAE/Robot Port sein. Wenn du mal hier in die Anleitung von JBC guckst steht dort auch, das du ein Adapterkabel brauchst das von USB auf RJ12: https://www.jbctools.com/pdf/manual-fae1-fume-extractor-0027634_ID-212597.pdf?srsltid=AfmBOookgY9vVBanJUgwPe1-zi5qMFwqUZnZwqQNtK1_H-r7S4aQL-Hz
Das mit dem M_HS und M_SYN ist normal, die Station sendet und einen Handshake den wir mit ACK bestätigen (siehst du an TX len 1 und das M_SYN ist ein keepalive)
anscheinend akzeptiert die Station unsere Antwort nicht. Ich weiß aber auch ehrlich gesagt nicht was der AUX Port sonst macht, den gibt an meiner DDE nicht. Bei mir steht da FAE/Robot. Das muss ein Grund haben das JBC extra ein USB auf RJ12 Kabel für die CD Stationen hat. Komisch ist aber das die Station schon M_W_INTAKEAKTIVATION sendet ohne den Handshake anzunehmen (das geht bei mir erst wenn der Handshake geklappt hat) dann sendet er alle anderen Befehle die du oben in meinem LOG siehst.
Habe ich mir angeschaut, wobei es hier wohl um einen USB - RS232 converter geht. Da es aber letztendlich mit einem UART verbunden wird, kann man sich doch den Umweg über die RS232 sparen, oder? D.h eigentlich brauche ich einen USB - UART converter, was schwer nach einen Programmier-Adapter klingt. So einen habe ich hier rumliegen, auch wenn ich den erstmal wegen der vielen USB Stecker Varianten nicht an die Lötstation anschließen kann. Und ich noch gucken müsste, wo der Converter seine Spannung herbekommen kann.
Ergebnis ist aber, dass ich das vermutlich alles hätte nicht machen müssen ;-) ... es passiert nämlich gar nichts.
Wenn ich deine SW richtig verstanden habe, fängt das ATMega Board erst mit dem Senden an, wenn eine Nachricht empfangen wurde. Gleichzeitig ist die Lötstation auf dem USB-Port stumm ist wie ein Fisch. Und so bleiben RX und TX Leitungen beide bei 3V3 liegen.
Ich denke du hast dein USB zu Uart Wandler jetzt zerstört. RS232 arbeitet mit +-12 Volt und der Uart Wandler nur mit maximal 5volt. Du könntest es höchstens noch mit dem esp32 probieren, da dieser Leistungsfähiger ist als ein Mega 2560.
Die Station spamt ja die ganze Zeit mit dem Handshake.
Ich denke du hast dein USB zu Uart Wandler jetzt zerstört. RS232
arbeitet mit +-12 Volt und der Uart Wandler nur mit maximal 5volt
Äh, nein .. oder vermutlich nein. RS232 war im Testaufbau gar nicht mit dabei (erstes Bild).
Der USB-Port scheint noch zu funktionieren. Jedenfalls wird im JBC Stations Updater die Lötstation noch erkannt.
Gleichzeitig messe ich bei einer USB-Breakout-Box nix (D+, D-) ... wobei ich mich nicht getraut habe, VCC mit einem Netzteil zu verbinden. Bin mir eben nicht sicher, ob das eine gute Idee ist. Falls doch, mit 3V3 oder?
Ich vermute die Station wird per USB nicht mit jedem beliebigen USB-UART-Wandler kommunizieren, sondern nur wenn sie einen ganz bestimmten, nämlich den von JBC, anhand der USB-Deskriptoren erkennt.
Auch zu klären wäre ob die JBC Station hier überhaupt als USB-Host arbeitet und nicht nur als USB-Device. Dass ein USB Female-Female-Adapter benötigt wird, deutet für mich schon ein wenig darauf hin dass die Station nur USB-Device ist. Die speziellen Adapterkabel von JBC könnten dann als Host fungieren. Das ist jetzt aber rein spekulativ.
Dass ein USB
Female-Female-Adapter benötigt wird, deutet für mich schon ein wenig
darauf hin dass die Station nur USB-Device ist.
Das mit dem Female-Female-Adapter ist, so zumindest meine Vermutung, dass hier alles möglichen Anbieter vom großen Fluß alle den gleichen falschen(?) USB-Anschluss anbieten. Jedenfalls haben alle mit einem USB-A-Anschluss einen Stecker, wobei bei denen mit einem USB-B Micro Anschluss eine Buchse zu finden ist.
Den USB-A Anschluss hatte ich gewählt, da ich hierfür ein Kabel hatte. Dachte ich jedenfalls zunächst, um dann festzustellen, dass der USB-UART-Konverter mit einem Stecker daher kam (Und ja, ist auch so im Angebot abgebildet, hatte ich trotzdem nicht gesehen). Daher noch nachträglich den Female-Female-Adapter besorgt.
Es riecht allerdings in der Tat danach, dass der JBC-Adapter noch irgendwas spezielles hat.
wenn es garnicht mit dem JBC FAE Emulator klappen sollte, könntest du es noch mit meinem anderen Tool probieren: https://github.com/IceCube20/JBC-Link-Arduino-ADK .Hier brauchst du aber einen Arduino MEGA ADK. Dieser wird über die USB Schnittstelle der Station direkt mit dem MEGA verbunden. An dem Arduino hast du am Pin D7 einen Ausgang für das Relais. Mit (#define RELAY_STICKY_MS 1000 // Ausschaltverzögerung) kannst du deinen gewünschten Relaisnachlauf einstellen.