Auto-Leveling und Firmware Update am CTC DIY i3 - GT2560 vs ATMEGA1280

  • Hallo alle zusammen,


    ich habe Weihnachten 2017 einen CTC DIY i3 erworben. Hab lange glücklich damit gedruckt, mich aber nie an ein Firmware Update getraut, da es damals hieß, man müsste erst einen Bootloader flashen usw. Ich hatte die Schrittweitenregelung für die Stepper-Motoren (inklusive der Änderung auf 400 bei Z durch ein Upgrade auf Trapez-Stangen) immer als Start-G-Code in meiner Slicer Software (anfangs Cura, dann kurz Slic3r, im Moment hauptsächlich MatterControl) geändert.


    Nun wollte ich es aber doch mal wagen, da ich den Drucker momenten am Raspberry-Pi hängen habe und über RepetierServer arbeite. Da gab es zuletzt einige Verbindungsabbrüche. Hier habe ich recherchiert dass man mal die Baud-Rate runtersetzen könnte.


    So jetzt gehts los: Habe ich das richtig verstanden? Das Problem beim Flashen neuer Firmware schien es zu sein, dass die Arduino Software beim Schreiben auf das Board ständig ein "connection timeout error" aufwirft. Einige Leute hatten da wohl Glück, wenn sie im richtigen Moment den Reset-Knopf auf dem Board gedrückt haben, aber das klang für mich etwas suspekt.

    Dann gab es also diese Lösung einen neuen Bootloader zu schreiben indem man einen anderen Arduino an den PC hängt und den mit dem Board verbindet... oder diese USB-Breakout-Sticks mit irgendwelchen Pin-Belegungen...

    Als ich mich da einlesen wollte bin ich dann auf dieses Video gestoßen:


    Hier heißt es also, das Problem liegt eigentlich darin, dass nur die falsche Baud-Rate in der Kommunikation ausgewählt ist. Vermutlich weil die Chinesen bei CTC nicht unbedingt immer die originalen GT2560 Boards verbauen sondern manchmal billigere Kopien nehmen, oder so? (korrigiert mich, wenn ich mich irre).

    Erfreut, dass es also mit einer Anpassung der boards.txt bei der Arduino Software auch getan ist, hab ich das bei mir gleich probiert, aber allerdings immer noch keine Kommunikation zustande gebracht. Als ich frustiert aufgeben wollte, habe ich folgenden Kommentar unter dem Video gelesen, von Juan Rodriguez:

    "The real problem is that the chips are NOT 2560 if you read the chip on the board it's a atmega 128...so you simply need to set ---》tools --》board to atmega 128 then you have full access."


    Bamm! Volltreffer. Die Einstellung geändert und schon ging alles wie am Schnürchen. (Kann mir einer erklären, was da los ist? Verbauen die Chinesen also den billigeren 1280 chip auf dem vermeintlichen GT2560 board? Weil er billiger ist?)


    Jedenfalls hab ich nun happy die Marlin Software für den CTC von dem netten Herren bei Thingiverse aufgespielt ( https://www.thingiverse.com/thing:2790744 ) und mich gefreut, dass alles so toll läuft.


    --


    Jetzt wurde ich etwas gierig... Ich wollte Autolevel nachrüsten und hab mir einen kapazitiven Sensor gekauft ( https://www.amazon.de/gp/produ…age_o03_s00?ie=UTF8&psc=1 )

    Nächste Frage: Ich hab gelesen dass Leute auch induktive Sensoren nehmen am CTC. Wie geht das denn bei einer Glasplatte? Müsste das nicht nur auf Metall funktionieren? Außerdem heißt es kapazitive Sensoren seien nicht so gut, warum das? Und schließlich was haltet ihr von den BLTouch Sensoren? Welche Sensoren nutzt ihr für Autoleveling?


    Jedenfalls, mein Sensor ist angekommen, hab eine Halterung gedruckt, Kabel-Endstücke angelötet, den Sensor gemountet, kurz getestet ob er auslöst (also LED leuchtet). Viel zu unempfindlich. Mir hatte noch niemand gesagt, dass es eine Empfindlichkeits-Stellschraube gibt :-D
    Also alles etwas empfindlicher gestellt, nochmal getestet, sieht gut aus. Habe ihn direkt an 5V ohne Zwischenwiderständen am Z-Stop-Pin.


    Nun wollte ich die angepasste Firmware flashen. Also alles auf Bedleveling geändert, kompiliert... ...und Fehler! Speicher zu klein... Bitte was? Na klar, der Atmega1280 Chip hat ja nur halb so viel Platz wie der 2560 und Autoleveling braucht da wohl einfach zu viele Bytes... Na wunderbar :-(


    Jetzt also die Frage: Muss ich mir ein neues Board kaufen für Autoleveling (wäre das dann dieses hier? https://www.amazon.de/3D-Druck…47&sr=8-1&keywords=GT2560 ) oder kann ich die Firmware so abspecken, dass sie auf den kleineren Chip passt? Welche Einstellungen kann man hier deaktivieren?


    Hat jemand von euch ähnliche Erfahrungen gemacht? Ich hab mal die ausführliche Geschichte geschrieben, falls Rückfragen kommen oder ich jemand anderem damit weiterhelfen kann.


    Grüße!

  • Hi,

    danke für deinen ausführlichen Bericht.

    Mit dem origi. Gt2560 sollte es weniger Probleme geben.

    Wie man die Firmware für den 1280 abspeckt weiß ich leider nicht.


    Ich hab auch noch einen 3dTouch Sensor fürs Autoleveling daliegen. Eben wegen dem ganzen Firmware-Kopfständen die dafür nötig wären aber noch nicht ausprobiert.

  • Anzeige:
  • polygoner : mein weißes Clone-2560 hat auch nen AT2560 und keinen 1284p. Auch wenn es evtl. n gefälschter Chip ist.. bin gerade auf Arbeit, sonst würd ich dir gern n Bild schicken..


    Also, Moral von der Geschichte : so viele Varianten unterwegs - am besten immer direkt die Aufschrift des Chips auf dem Board selbst prüfen..

    Klickibunti ? Nein Danke. Ich versteh lieber, was ich tu...

  • ... am besten immer direkt die Aufschrift des Chips auf dem Board selbst prüfen..

    Weise Worte! Ich habe das weiße Board mit dem "Fake" Chip... also GT2560-Clone (mit "2560" ohne "GT" Beschriftung und keiner Beschriftung auf dem Chip selbst). Das ist dann ein 1280Chip. [siehe Foto]


    Ich hab übrigens jetzt genug Einstellungen in Marlin ausgedünnt bzw. deaktiviert um die Firmware auf den Chip zu bekommen. Jetzt geht mein Drucker auch mit Autoleveling. Auf lange Sicht werde ich aber wohl doch mal ein anderes Board anschaffen... einen "echten" GT2560...


    Der kapazitive Sensor scheint gut zu funktionieren, allerdings hat er auch manchmal einige Schwankungen... Ich versuche das gerade noch zu optimieren, aber hier sehe ich schon mächtige Vorteile bei dem BLTouch Sensor mit tatsächlicher "Berührung"... Die Teile müssten deutlich stabiler sein gegenüber Temperatur- oder Luftfeuchtigkeits-Schwankungen...

    Hat jemand anderes im Forum erfahrung mit Autolevel?


    [edit:]

    herrderflammen87 also es gibt sowohl weiße boards mit 2560 chip als auch mit 1280 chip... am sichersten ist es wie Oliver schon meinte direkt auf dem chip zu schauen, dass da 2560 steht... Wenn gar nix drauf steht ist das wohl vermutlich eher ein 1280... (wie bei mir)

  • Anzeige:
  • Alles klar - vielen Dank für eure Antworten - ich werde das heute Abend zu Hause einmal prüfen. Bin erst seit 2 Tagen stolzer Besitzer des CTC DIY ;-) Erster Druck war so "naja" der zweite Testdruck war schon ganz ansehnlich (jeweils ein 20mm Calibration Cube).


    Nun wieder die Frage des Anfängers in mir:

    Fällt denn das manuelle Einstellen dann tatsächlich weg mit einem entsprechenden Sensor?


    Drucke nun seit gestern direkt auf die Glasplatte - nachdem ich alles vorher nochmal zerlegt hatte (Druckkopf-Einheit, Heatbed) und alle Schrauben an und um die beiden Dinge nochmal kontrolliert und nachgezogen hatte war ich schon recht zufrieden mit dem Ergebnis.

  • So - habe das Ganze einmal geprüft - es steht zumindest mal 2560 auf dem Chip - hoffe also dass das passt.

    Sensor ist auch bestellt und sollte heute oder morgen eintreffen - nun meine Frage an andregemeinhardt


    Kannst du mir ggf. sagen welche Einstellungen du an der Firmware vorgenommen hast und vielleicht deine STL von der Halterung zuschicken - in den Rest würde ich mich dann entsprechend einarbeiten =)

  • Hi, also zu deiner ersten Frage:


    Das Leveling wird schon wirklich einfacher, allerdings muss der Sensor gut kalibriert sein. Ich hatte die ersten paar Versuche immer Schwierigkeiten, weil der jedesmal mit der Nozzle bis aufs Glas aufgesetzt ist.

    Das Hauptproblem war hier wohl die Temperatur. Die kapazitiven Sensoren sind extrem Temperatur empfindlich und man muss unbedingt Druckbett und Nozzle auf Betriebstemperatur haben bevor man das Leveling startet. Seitdem druckt er aber eigentlich ganz solide. Die Drucke werden besser, weil er auch eine leichte Schräglage des Druckbetts ausgleicht.


    Allerdings funktioniert das mit einem sehr gut eingestellten Druckbett und einem stabilen z-Endstop ebenfalls so gut. Wenn der Drucker stabil steht dann muss man auch hier nur alle paar Wochen mal nachjustieren. Mich hat allerdings diese lange wackelige Schraube am Z-Endstop beim CTC DIY immer etwas gestört...


    Außerdem hab ich mich jetzt doch dazu entschieden, den Sensor bei mehr Spannung zu betreiben. Hab ein Video gesehen in dem es heißt dass die Sensoren bei 12V einfach zuverlässiger arbeiten. Das hab ich dann also gemacht und einen Spannungsteiler eingelötet (sind ja nur 2 Widerstände).


    ---


    Zum Halter: Ich hab dieses Lüfter-Design an meinem Drucker:

    https://www.thingiverse.com/thing:2833898

    Ich mochte die Idee, den Halter an den Lang-Hülsen vom Extruder zu befestigen und dass man den Lüfter einfach drauf steckt und leicht abnehmen kann. Den Halter hab ich einfach modifitiert für einen 18mm Sensor:

    https://www.thingiverse.com/thing:3167946

    Du kannst wenn du keinen Lüfter oder einen anderen Lüfter am Extruder hast natürlich auch nur den Halter drucken. Musst ja keinen Lüfter dran hängen.


    --


    Zum Marlin-Code:

    Also ich hab mal meine Version der "configuration.h" und "configuration_adv.h" angehängt. Als Basis diente die Marlin 1.1.9 (beta1) von hier: https://www.thingiverse.com/thing:2790744


    Dort ist Autoleveling aktiviert und dann halt gründlich abgespeckt, damit es auf meinen Chip passt. Das wirst du ja nicht brauchen wenn du den größeren Chip hast. Kannst dich also beispielsweise an diese Konfiguration halten:


    Oder du schaust mal hier rein, das ist Marlin 1.1.6 und das sind 2 Versionen, eine mit und eine ohne Auto-Bed-Leveling in der Config. Außerdem ist da auch gleich ein Halter mit dabei:

    https://www.thingiverse.com/thing:2691240


    Ich hab in meiner Version unter anderem folgende Sachen abgespeckt:

    - kein Boot Splash

    - kein EEPROM-Speicher-Zugriff (das hat weh getan, aber gab viel Platz)

    - kein print counter

    - slim LCD Menü

    - speaker deaktiviert (ich glaub ich hatte eh keinen)

    - und noch andere Kleinigkeiten...

  • Hallo @andregemeinhardt,


    habe mich auch schon daran versucht - die Halterung hab ich mittlerweile dran, den Sensor direkt an 12V auch.

    Die Einstellungen passen noch nicht, da werde ich mal die Marlin 1.1.6 nehmen und bisschen probieren. Ich hab meinen Sensor so kalibriert, dann die Nozzle erstmal ca. 1mm über dem Bett steht und dann per Z-offset nach unten gesetzt bis ich gerade noch die Fühlerlehre auf 0,05mm durch bekomme. Dann per M114 den Wert für Z ausgelesen und in der Firmware mit eingetragen. Das hat auch soweit gut funktioniert, leider habe ich das Gefühl, dass er zwar alle 9 Punkte anfährt aber die Schräglage des Betts (ca. 0,1-0,2mm in Richtung Y) nicht wirklich ausgleicht, sprich er druckt vorne wunderbar und hinten wird die erste Schicht dann zu dünn.


    Heute Abend gehts dann weiter mit probieren und einstellen. Wird schon werden. Was nutzt du als Slicer? Nutzer bisher noch Cura in Verbindung mit OctoPi und dem OctoPrint Plugin - vielleicht liegt auch hier im Zusammenspiel irgendwo die Ursache. Um dies auszuschließen werde ich heute Abend mal S3D testen und den Drucker direkt per USB verbinden =)


    Nachtrag: Das wichtigste vergessen!! Danke für deine Ausführungen - werde mir natürlich auch mal deine Einstellungen anschauen und ggf. mit den Dingen aus der 1.1.6 und meinen Versuchen zusammenführen!


    Nachtrag 2: Habe übrigens den gleichen Sensor gekauft wie du und + direkt an die 12 Volt vom Netzteil angeschlossen und die andern beiden Ausgänge an das Kabel des original Z-Stopps gehängt.


    Wichtig noch zu wissen war für mich, dass der Z-Stopp Endschalter das Signal unterbricht und nicht gibt.... Hat nen moment gedauert bis ich das verstanden hatte.....

  • Bitte beachtet, dass der Z-Offset immer den Abstand zwischen Düse und Sensor ist, nicht der Abstand zwischen Sensor und Bett oder Düse und Bett.
    Die kapazitiven Sensoren haben auch meist ne (winzige) Beschriftung mit dem optimalen Abstand/-sbereich, bei der die Messung am exaktesten ist .. diesen Wert als Ausgangspunkt für den Abstand zur Nozzle benutzen und im Zweifel eher nen Tick erhöhen als verringern.

    https://3dprinting.stackexchan…autoleveling-sensor-setupPS: die Voltage-Divider-Methode finde ich persönlich übrigens eher bisschen unsicher. Wer da auf Nummer sicher gehen will : einfach nen Optokoppler (zB. 4N35) dazwischenklemmen. Schaltdiagramm dazu gibts auf Google, ist aber eh trivial

    Klickibunti ? Nein Danke. Ich versteh lieber, was ich tu...

  • Anzeige:
  • Hey herrderflammen87 ,


    danke für die Lorbeeren, freu mich wenn ich helfen kann. Ich hab das jetzt in deinem Text nicht direkt heraus gelesen und wollte deshalb nochmal auf Nummer sicher gehen: Du hast einen Spannungsteiler eingelötet, oder? Nicht, dass du die 12 V Signal nun auf deinen Z-Endstop-Pin gibst. Das würde das Board wahrscheinlich nicht zu lange gut mitmachen...


    Das mit dem Dauer-An des Sensors und dem eigentlichen "Ausschalten" wenn er triggert ist tatsächlich wahr und nicht sofort intuitiv :-)


    Auslesen kann man den Offset übrigens mit dem Befehl "M851" und einen neuen Wert eintragen mit "M851 Z-3.9" für einen Abstand von 3.9mm in diesem Beispiel.


    Als Slicer Software nehme ich im Moment das irgendwie nicht so bekannte MatterControl. Das ist toll zu bedienen und hat bisher eigentlich immer gute Drucke erzeugt.

    Leider geht das Programm irgendwie in die Knie sobald das Modell zu komplex wird. Dann wechsel ich in der Regel auf Slic3r oder Cura.


    Oliver ,

    Also ich denke schon der z-Offset ist der Abstand der Düse zum Druckbett wenn der Sensor auslöst. Also sobald sich beim Annähern der Sensor meldet und der Druckkopf stehenbleibt, ist der z-Offset die Distanz, die jetzt noch zwischen Nozzle und Glas liegt.

  • Hallo @andregemeinhardt ich habe extra mehrmals gemessen - der Output des Sensors sind bei mir 5V - das sollte doch passen, oder nicht?


    Ansonsten hat mit der Marlin 1.1.6 nun alles gepasst - hier und da noch bisschen nachjustiert - aber scheint jetzt gut zu funktionieren.


    Nun habe ich noch ein kleines Problem: die erste Line wird immer unsauber und zieht Fäden... wenn ich glück habe hängt dann ein kleiner Batzen außen an der äußersten Linie (drucke mit Brim). Wenn ich aber Pech habe hängt sie innen und ruiniert mir meinen first layer. Tipps wie ich das besser einstellen


    Ergänzung: Das "kleckern" fängt aber quasi beim G28 / G29 schon an. Hier muss ich immer wieder tropfe von der Nozzle nehmen sonst hätte ich lauter Kleckse auf dem Bed...

  • Hi, interessant... Mein Sensor hat bei 12V Versorgungsspannung auch knapp 12V Signal ausgegeben. Mit einem 15 und 10 kOhm Widerstand hab ich das dann auf knapp 3.5V getrimmt...


    Deine Problembeschreibung klingt für mich nach einer zu hohen Drucktemperatur? Bei wie viel °C druckst du? Ich hab inzwischen typischerweise 195°C

  • Hallo Andre,


    wirklich interessant, habe extra mehrmals gemessen und Input sind saubere 12,xx V Output sind 5,1x V...


    Bin auch bei 195°C - Filament ist für 190 - 210 ausgelegt laut Hersteller (Janbex). Habe testweise schon auf 190 und 185 runtergefahren - der Unterschied ist fast nicht wahrnehmbar, außer dass der erste Layer dann nicht sauber aussieht. Werde mal mit dem mitgelieferten Filament testen. Ich halte euch auf dem Laufenden =)

  • Anzeige:
  • Ich habe mir für das ganze Autolevel-Spielchen extra ein par Optokoppler besorgt. Schaltungen sind fertig, hoffe ich finde heute abend mal die Zeit das anzuschließen und die Firmware fertig zu machen.

    Welchen Sensor habt ihr ? Ich hab nen 18mm Heschen-Sensor.. (NPN NC capacitive)

    Klickibunti ? Nein Danke. Ich versteh lieber, was ich tu...

  • Naja Spannungsregelung per Voltage-Divider ist immer sone Sache grundsätzlich. Bei der aktuellen Last fließt nicht genug Saft, dass es was ausmachen würde.. Aber man kann sich zB wenn mal eine Lötstelle an der falschen stelle aufgeht durchaus mal 12V aufs Board jagen. Mit nem Optokoppler ist man immer safe, weil beide Stromkreise komplett getrennt laufen.


    Ach ja.. Der endstop beim a8 funktioniert exakt gleich..

    Klickibunti ? Nein Danke. Ich versteh lieber, was ich tu...

  • Anzeige:
  • Naja Spannungsregelung per Voltage-Divider ist immer sone Sache grundsätzlich. Bei der aktuellen Last fließt nicht genug Saft, dass es was ausmachen würde.. Aber man kann sich zB wenn mal eine Lötstelle an der falschen stelle aufgeht durchaus mal 12V aufs Board jagen. Mit nem Optokoppler ist man immer safe, weil beide Stromkreise komplett getrennt laufen.


    Ach ja.. Der endstop beim a8 funktioniert exakt gleich..

    Naja, warum sollte sich eine Lötstelle verabschieden? Das passiert eigentlich nur, bei kalten Lötstellen die eigentlich nur bei absoluten Löt Anfängern vorkommen. Zur Sicherheit, kann man auch anstatt des unteren Widerstandes, des Spannungsteilers eine Z-Diode verwenden.

  • Anzeige:
  • ja dann solltest du wärmeleitpaste zwischen heizbett und glasplatte haben da sonst die Wärme nicht optimal Ankommt und verteilt wird.

    Lg

    LG:)




    -CTC bizer mit Sailfish 7.7 :)und ATmega1280

    -Anycubic Photon mit in SketchUp konstruierter und dem Bizer gedruckten Absaug-Anlage^^

    Der Photon druckt Ξx⊂ΞLLΞ∩T - könnt euch gerne mal in diesem Forum im Anycubic-Abteil die Druckergebnisse anschauen.

  • Hi also von meinem reinen Verständnis, wie ein kapazitiver Sensor misst, reagiert der Sensor schon auf das Glas, also alles was die Kapazität ändern kann (und damit alles außer Luft).

    Allerdings könnte es sein, dass er an unterschiedlichen Abständen zum Heizbett auslöst, wenn dieses unterschiedliche Temperaturen aufweist.


    Dann müsste der Sensor aber meiner Ansicht nach entweder echt extrem temperaturempfindlich sein, oder aber der Temperaturunterschied bei dir zwischen Rand und Bett-Mitte sehr stark.

    Wenn da wirklich ein nennenswerter Spalt zwischen Druckbett und Glas ist, würde ich auch empfehlen irgendwie die Wärmeleitung zu erhöhen, damit die Platte gleichmäßig heizt.

  • Es ist kein "GT" ?

    Nur 2560,

    dann haste grad mal Glück gehabt, daß da scheinbar tatsächlich ein 2580ATmega drauf ist.

    Das ist bei den nachgemachten Boards wirklich Glückssache, welcher Chip drau ist, nur beim Original Geetech, ist sicher der 2560 drauf.

  • Anzeige:
  • Ein kapazitiver Sensor, kann nur auf (auch schlecht) leitendes Material reagieren. Glas sist aber ein nichtleiter.

    Bist du dir da sicher? Meiner Ansicht nach ist ein kapazitiver Näherungsschalter ein Kondensator (genauer ein RC-Schwingkreis).

    Sobald sich die Kapazität des Kondensators ändert, was passiert sobald ein anderes Medium (Medium mit anderer Dielektrizitätskonstante) als die Luft ins Streufeld des Sensors kommt, ändert sich die Resonanzfrequenz und der Sensor löst aus.
    Das passiert also nicht nur bei Metallen sondern auch Isolatoren, und streng genommen auch schon "Luft bei anderer Temperatur".

  • Das Problem ist hier, dass zwei verschiedene Faktoren, das auslösen des kpazitiven Näherungsschalters beeinflussen. Ab einer bestimmten Kapzitätsänderung, schaltet er. Da hier aber die Glasplatte auf einer leitenden Metallplatte liegt, haben beide Einfluss und im allgemeinen, hat eine Metallplatte auch in 5 bis 6mm Abstand, höheren Einfluss auf die Kapazität hat, als die Dielelektrizität einer dazwischen liegenden Glasplatte.
    Ich kenne jetzt nicht genau den Aufbau, der benutzten Sensoren, aber es gibt auch Bauformen, mit einer dritten Erregerelektrode, durch die die Genauigkeit bei Nichtleitern deutlich erhöht wird, ich denke aber nicht, dass das bei den preiswerten hier benutzten Sensoren der Fall ist.

  • Hi, ja da stimme ich dir natürlich zu.


    Dennoch funktioniert der Sensor auf bei reinem Glas, selbst wenn keine Metallplatte drunter wäre. Die Änderung der Kapazität fällt natürlich schwächer aus und der Sensor müsste anders kalibriert werden.


    Bei mir ist der Sensor im Moment beim Auslösen gute 6mm über dem Glas, und das ist etwa 4mm dick.

    Man kann also argumentieren, dass eine Kombination aus Glass und Metall darunter das ist was den Sensor auslöst. Wenn jetzt an einer Stelle auf dem Bett das Glass einen größeren Abstand zum Metall darunter hat ist die "Kombination" anders und löst den Sensor vermutlich später aus. Dann fährt hier also die Nozzle ins Bett.


    herrderflammen87

    Wenn dein Bett in der Mitte durchhängt, kannst die Kalibrierung vlt. auf die 4 Randpunkte verringern anstelle von 9 Messpunkten auf dem Bett. Dann bekommt er von der Mitte keinen "falschen" Wert.

    • Gäste Informationen
    Hallo. Gefällt Dir dieses Thema im CTC-Forum und du möchtest etwas dazu schreiben? Dann melde dich bitte an. Hast du noch kein Benutzerkonto im CTC-Forum, dann registriere dich bitte. Nach der Freischaltung kannst Du dann das Forum uneingeschränkt benutzen.


Werde Teil des Forums.

Hallo. Gefällt Dir das CTC-Forum und du möchtest mitmachen? Dann melde dich bitte an. Hast du noch kein Benutzerkonto im CTC-Forum, dann registriere dich bitte. Nach der Freischaltung kannst Du dann das Forum uneingeschränkt benutzen.