Wir haben kürzlich eine neue Firmware-Version 3.10 für alle Mitglieder unserer MK3-Flaggschiff-3D-Druckerfamilie veröffentlicht. Es gibt eine Menge Dinge, über die es sich zu sprechen lohnt, sowohl Fehlerbehebungen als auch interessante neue Funktionen. Bevor wir jedoch zu den Details kommen, lassen Sie uns zunächst etwas klarstellen. Wir würden uns gerne viele neue Dinge einfallen lassen, aber das EINSY-Board hat nicht mehr viel Speicher übrig. Bevor wir überhaupt dazu kommen, neue Features hinzuzufügen, müssen wir immer erst die vorhandenen optimieren. Dieses Mal haben wir es geschafft, satte 5 KB FLASH Speicher und fast 400 B RAM einzusparen! Das ist mehr als es scheint – tatsächlich reichte eine vergleichbare Speichergröße für die Programmierung der Apollo-Mondlandung! (btw, dieses Programm ist auch auf Github verfügbar). Das heißt, wir hatten dieses Mal genug Spielraum.

Wie kann man Platz sparen? Indem man zum Beispiel die TWI-Unterstützung umschreibt

Eine unserer Lieblingsmethoden, um Platz zu sparen, ist das Umschreiben eines älteren Codes in eine intelligentere, schlankere Form. Die beste Gelegenheit ist, wenn Software etwas nicht mehr tun muss, was stattdessen auf Hardware-Ebene erledigt wird – zum Beispiel die Kommunikation zwischen TWI (Two-Wire Interface) und dem optischen Filamentsensor MK3. Aus historischen Gründen hatten wir eine Software-Unterstützung für die Kommunikation des optischen Sensors implementiert. Jetzt aber kann das hardwarebasierte TWI das übernehmen. Auch wenn dies nur die ursprüngliche MK3 betrifft (da die späteren Modelle einen anderen Filamentsensor haben), ist der Code für alle Versionen kürzer und eröffnet Platz für neue Funktionen.

Das Umschreiben eines Features ist aber nicht die einzige Methode, um Platz zu sparen. Wir haben auch die ASM-Liste der kritischen Features gründlich überprüft und versucht, den Compiler zu einer besseren Übersetzung des Codes zu „motivieren“. Manchmal war das ein bisschen hart: Beim Thumbnail-Skipper-Feature zum Beispiel widersetzte sich der Compiler all unseren Optimierungsbemühungen, so dass wir stattdessen Brute-force Assembler verwenden mussten.

Was sind denn nun die neuen Features? Die erste davon ist schon seit geraumer Zeit eine populäre Anwenderforderung: Die Anzeige der verbleibenden Zeit bis zum nächsten Filamentwechsel – sowohl im manuellen Modus als auch mit dem MMU-Upgrade. Jetzt können Sie vorausplanen, statt sich auf das verzweifelte Piepsen Ihres Druckers zu verlassen. Jetzt warten wir auf die Updates für den PrusaSlicer (oder andere Slicer), um diese Funktion zu unterstützen. Es wird bald auch für den MINI-Drucker kommen.

Was kleinere Updates angeht, gibt es jetzt eine Vorheizoption für das PVB-Filament und eine 0,8 mm Düsenunterstützung.

Community-Übersetzungen

Ebenfalls neu: Die Firmware unterstützt jetzt Community-Übersetzungen. Unsere Drucker sprechen viele Sprachen, doch bisher mussten wir uns um jede Übersetzung selbst kümmern. Welche der mehr als 2000 Weltsprachen sollten wir angesichts des begrenzten Speicherplatzes priorisieren? Eine Sprache benötigt etwa 12 KB, daher können wir nur 16 Sprachen gleichzeitig unterstützen. Schließlich haben wir beschlossen, dass der Drucker mit einem vordefinierten Sprachset ausgeliefert wird und Community-Übersetzungen zulässt. Das erscheint uns fair: Solange es aktive Enthusiasten gibt, die diese Sprache sprechen, wird auch eine Übersetzung verfügbar sein. Dank 3d-gussner (auch der Autor des Übersetzungsmechanismus) gibt es nun eine Niederländische Version. In der Sprachauswahl finden Sie das Untermenü „Community made“, mit Nederlands als einzige Option (bisher). Wenn Sie diese Übersetzung auswählen, kopiert der Drucker sie in das CPU-FLASH und startet in dieser Sprache neu – genau wie bei jeder anderen „offiziellen“ Übersetzung. Seien Sie jedoch vorsichtig, wenn Sie kein Niederländisch sprechen, könnten Sie Schwierigkeiten haben, die Sprache wieder umzuschalten 🙂 Wir sind gerade dabei, einige Tools und Anleitungen für Community-Übersetzer zu entwickeln – bleiben Sie dran.

Der SD-Karten-Lesevorgang wurde stark überarbeitet, und ist jetzt zehnmal schneller! Das Erstellen der Dateiliste und das Arbeiten damit ist sehr schnell, egal ob es ein Dutzend oder hundert Einträge sind. Bisher war es ein Problem, lange Listen zu erstellen. Aus bestimmten Gründen verwenden wir den Bubble-Sort-Algorithmus, bei dem das Sortieren sogar 30 Sekunden dauern konnte. Der Shell-Sort-Algorithmus, der aus mehreren Optionen ausgewählt wurde, ist spürbar schneller, auch wenn er schwieriger zu implementieren ist. Sein einziger wesentlicher Nachteil ist, dass er die Ordner mitsortiert. Wir haben dies gelöst, indem wir den Algorithmus zweimal ausgeführt haben, für Ordner und Dateien getrennt. Im Moment läuft die Firmware noch mit dem Bubble Sort, der durch den neuen SD-Karten-Leseprozess nun viel schneller ist. Sobald wir aber alles richtig getestet haben, werden wir wahrscheinlich auf den Shell Sort umstellen.

Unterstützung von Print Hosts

Eine weitere Antwort auf die große Nachfrage: bessere Unterstützung verschiedener externer Software, die mit dem Drucker über eine serielle Leitung kommuniziert (Octoprint, Pronterface oder Repetier-Host), so dass die Anwender alles nach ihren Wünschen anpassen können. Auch in diesem Fall hatten wir die Idee schon länger, mussten aber auf den verfügbaren Speicherplatz warten.

Zum Beispiel das Thumbnail Skipper Feature, die Hauptquelle für die Erhöhung der SD-Karten-Lesegeschwindigkeit. Prusa Slicer generiert für den MINI Thumbnails, die Teil des GCODE sind. Auf dem MK3-Display würden diese natürlich nicht angezeigt werden. Sie wurden auch nicht generiert, um Probleme zu vermeiden (bis hin zur Ablehnung der Firmware durch den Watchdog) und den Start des Drucks zu verzögern. Allerdings könnte eine externe Software diese Thumbnails nutzen, da ein Bild immer einen besseren Eindruck vermittelt als nur ein Dateiname (oft recht kryptisch). In Octoprint gibt es bereits Plugins, die Thumbnails ermöglichen, daher hatten wir viele Anfragen aus der Community in dieser Hinsicht.

Wir haben den neuen SD-Karten-Leseprozess verwendet (Steigerung der Geschwindigkeit um fast das Zehnfache). Dieser Prozess kann auch Kommentarzeilen im GCODE überspringen, einschließlich der Thumbnails. Eine solche Änderung muss gründlich getestet werden. Es scheint trivial zu sein, aber eine erhebliche Überarbeitung des wichtigen Firmware-Abschnitts war nötig.

Ein weiteres Feature, das sich auf die Kommunikation mit externen Plattformen konzentriert, sind die Host Actions. Das bedeutet gleiche Priorität für lokale und entfernte Steuerung – die Möglichkeit, den Druck sowohl mit dem Drehknopf des Druckers als auch mit externer Software zu starten und in beiden Fällen die gleiche Antwort zu erhalten. Auch dies klingt trivial, ist aber etwas, das von Anfang an nicht vorgesehen war. Zum Beispiel gibt es eine Routine, die den Lüfter anhält, damit der Benutzer ihn im Falle einer Fehlfunktion reinigen kann. Das würde natürlich keinen Sinn machen, wenn man nicht am Drucker ist… Wir mussten vieles überdenken und nacharbeiten.

Dank Host Actions sind die für die Kommunikation verantwortlichen Codeteile nun aufgeräumt. Wir hoffen, dass die externe Software nun reibungsloser mit dem Drucker kommunizieren kann. Das bedeutet, dass weniger Benutzereingriffe nötig sind und mehr Möglichkeiten bestehen, alles für einen bestimmten Workflow anzupassen und zu verfeinern. Übrigens: Dies ist ein Vorzeigebeispiel für die Bedeutung von Open Source, was solche schnellen und einfachen Anpassungen möglich macht.

Das ist alles. Fast! Sie können alle weniger ausgefallenen (aber dennoch wichtigen) Details in den sehr gründlichen 3.10 Firmware Release Notes finden. Bei der Unterstützung der Entwickler-Community geht es nicht nur um das Verteilen von Werbegeschenken während der Messen und Maker Faire, sondern in erster Linie um eine perfekte Dokumentation. Wir werden weiter daran arbeiten!

Wir hoffen, dass die erweiterte Drucker-Hosts-Unterstützung dazu beitragen wird, alle externen Druckersteuerungsprogramme voranzubringen. Übrigens, lassen Sie uns wissen, was Ihre Lieblingssoftware ist und für welchen Zweck, damit wir uns besser auf die entscheidenden Dinge konzentrieren können.

Zu guter Letzt noch ein kleiner Teaser für zukünftige Firmware-Versionen: es wird einen „Kilometerzähler“ geben, der richtig „Wartungsmenü“ heißt. Er wird die Laufleistung der einzelnen Stepper verfolgen und den Anwender darauf hinweisen, die Lager zu schmieren, Teile zu überprüfen oder auszutauschen, etc. Dies ist sowohl für die Druckqualität als auch für die Langlebigkeit Ihres Druckers wichtig. Mehr dazu beim nächsten Mal! Wenn Sie in der Zwischenzeit Ideen zur Verbesserung des MK3 haben, lassen Sie es uns bitte im Diskussions-Thread in unserem Forum wissen!

Viel Spaß beim Drucken!