Prusa Mini Firmware compilieren - howto
Hallo Leute,
nachdem ich einen gebrauchten und defekten Mini günstig erworben habe, Garantieansprüche diesbzgl. kein Thema für mich ist, habe ich mich entschlossen vorerst einige mechanischen Änderungen und Reparaturen durchzuführen und anschl. die Firmware anzupassen.
Die Mechanik ist nicht das Problem, auch nicht das Anpassen der FW sondern vielmehr das Compilieren derselben.
Vorerst wurde an der FW nichts geändert und wie folgt vorgegangen:
Klonen: git clone --recurse https://github.com/prusa3d/Prusa-Firmware-Buddy.git
zum Verzeichnis Prusa-Firmware-Buddy gewechselt
git init (mit und ohne init versucht - Ergebnis dasselbe)
python3 utils/build.py --printer mini --build-type debug
Ergebnis:
(Nachdem Wordfence ansch. das veröffentlichen technischer Daten/Inhalte blockiert - hier zum Download:)
Nun meine Frage an die Programmier bzw. C/C++ Profis: Wodurch wird dieser Fehler verursacht? Hat jemand einen gute Idee wie man eine Spur zu einer Lösung finden könnte?
Getestet habe ich dies auf 4 Rechnern, jeweils W7 und Linux Ubuntu 18.04.02
Danke für Eure Bemühungen!!
Schöne Grüße,
Karl
Statt zu klagen, dass wir nicht alles haben, was wir wollen, sollten wir lieber dankbar sein, dass wir nicht alles bekommen, was wir verdienen.
RE: Prusa Mini Firmware compilieren - howto
Hallo Karl,
hatte gerade etwas lange Weile und hab's mal eben nach der Anleitung auf Github mit Win10-64pro ausprobiert.
Dabei bekomme ich folgenden Text auf die Power-Shell Konsole:
>python utils/build.py --printer mini --build-type release
Downloading ninja-1.9.0
Extracting ninja-1.9.0
Downloading cmake-3.15.5
Extracting cmake-3.15.5
Downloading gcc-arm-none-eabi-7.3.1
Extracting gcc-arm-none-eabi-7.3.1
Downloading clang-format-9.0.0-noext
Extracting clang-format-9.0.0-noext
Downloading bootloader-mini-1.0.0
Extracting bootloader-mini-1.0.0
fatal: not a git repository (or any of the parent directories): .git
WARNING: Failed to check submodules status
Building mini_release_noboot
Building mini_release_emptyboot
Building mini_release_boot
Building finished: 3 success, 0 failure(s).
mini_release_noboot SUCCESS
mini_release_emptyboot SUCCESS
mini_release_boot SUCCESS
Also nur eine normale Warning. Bist Du sicher, dass Du alle libs (submodules) korrekt installiert hast?
Kontrolliere im Unterordner libs/, ob dort noch leere Verzeichnisse existieren. Falls ja, installiere die nach.
Auch mit der STM32Cube IDE erhalte ich eine Firmware.bin (je nach Build, ca. 700 - 800KB groß).
Mit VSCode habe ich es jetzt nicht probiert, wird aber wohl auch funktionieren.
Vermutlich liegt bei Dir auf allen 4 Rechnern der selbe Fehler vor.
Ich besitze jedoch keinen Mini, um die erstellte Firmware zu Testen.
Viel Erfolg!
Grüße, Holger 🙂
2x Personal MK3IR-BMG09 (Full) BEAR + MMU3 mod., ...
RE: Prusa Mini Firmware compilieren - howto
p.s. Welche Python Version ist bei Dir installiert?
Requirements
- Python 3.6 or newer
- python3-pip
z. B.
$ python --version
Python 3.8.5
Grüße, Holger 🙂
2x Personal MK3IR-BMG09 (Full) BEAR + MMU3 mod., ...
RE: Prusa Mini Firmware compilieren - howto
@holger-s3
Servus Holger,
vielen Dank für die Rückmeldung! Du hast um 3 Uhr morgens Langeweile?
Ich habe Python 3.8.1 64-bit auf allen Rechnern installiert, auch pip und git. Grundsätzlich mache ich alle Firmwarearbeiten auf meinem kleinen HP Elitebook. Da ist mir aber gerade die Festplatte eingegangen. Wie gesagt, weder das clonen des repos. läuft, noch die Downloadvariante.
"Also nur eine normale Warning. Bist Du sicher, dass Du alle libs (submodules) korrekt installiert hast?
Kontrolliere im Unterordner libs/, ob dort noch leere Verzeichnisse existieren. Falls ja, installiere die nach."
Könntest Du dies etwas genauer ausführen? Welche Verzeichnisse bzw. Submodule sind im Ordner /libs/ zu installieren?
Danke und schöne Grüße aus Wien,
Karl
Statt zu klagen, dass wir nicht alles haben, was wir wollen, sollten wir lieber dankbar sein, dass wir nicht alles bekommen, was wir verdienen.
RE: Prusa Mini Firmware compilieren - howto
@karl-herbert
Langeweile um die Zeit kann vorkommen, besonders wenn es eine warme Nacht ist 😊 .
Endlich ist die alte Festplatte eingegangen 😋 jetzt wird's Zeit für eine SSD und der Turbo eingelegt 🤣 .
Wenn Du Git zum kompilieren benutzt kommt diese Warning auch nicht, das liegt in diesem Fall einfach am Windows, die "Submodule" können nicht überprüft werden. Wenn du hier und hier auf Github schaust, siehst Du einige Ordner die jeweils nur einen Link darstellen. Der Code hinter den Links muss dort heruntergeladen werden und in dem entsprechenden Ordner entpackt und kopiert werden. Das macht unter Git die Anweisung "git clone --recurse https://github.com/prusa3d/Prusa-Firmware-Buddy.gi t" von allein und muss nicht mehr manuell durchgeführt werden. Man sollte aber kontrollieren, ob es auch korrekt geklappt hat und sich alle Daten wie erwartet in den Ordnern befinden, Github ist leider nicht unfehlbar, besonders wenn es zu seltsamen Fehlern beim kompilieren kommt. Bei mir hat "Git clone" jedenfalls funktioniert.
Insgesamt konnte ich bisher keinen Fehler in der Beschreibung zum Kompilieren finden, funktioniert bei mir mit Windows, Git und der STM32CodeIDE. Es gibt bestimmt noch mehrere weitere Möglichkeiten zum Übersetzen, Prusa hat das nur angedeutet..... Dir wird es auch gelingen, alles kein Hexenwerk.
Grüße, Holger 🙂
2x Personal MK3IR-BMG09 (Full) BEAR + MMU3 mod., ...
RE: Prusa Mini Firmware compilieren - howto
@holger-s3
Vielen Dank für Deine Hilfe! Ich werde mir die Sache mal in Ruhe anschauen. Aber zuerst organisiere ich mir einen neuen Laptop. Der HP hat ausgedient und da möchte ich nichts mehr investieren. Wird lustig, wieder alles so einzurichten, dass alle meine tools rund ums Raspi und MK3 wieder laufen. Man hat ja sonst nichts zu tun 😋 ...
Der Mini läuft inzwischen. Einmal komplett zerlegt, einige Teile ausgetauscht und wieder zusammengebaut. Ich bin überrascht wie gut der "Kleine" druckt, aber man soll den Tag nicht vor dem Abend loben. Wenn er sich bewährt, werde ich den Mini wohl als Arbeitstier einsetzen und soweit nichts daran ändern (vielleicht eine Mini BMG Variante). Die Sache mit der Firmware ist halt doch interessant.
Schöne Grüße,
Karl
Statt zu klagen, dass wir nicht alles haben, was wir wollen, sollten wir lieber dankbar sein, dass wir nicht alles bekommen, was wir verdienen.
RE: Prusa Mini Firmware compilieren - howto
So, habe das Ganze mal erneut getestet.
Mit folgendem Kommando den Download durchgeführt:
git clone --recurse https://github.com/prusa3d/Prusa-Firmware-Buddy.git -b RELEASE-4.1.0
Ordner gewechselt:
cd Prusa-Firmware-Buddy
compiliert:
python utils/build.py
...hat funktioniert:
..einige Zeilen in "Configuration_A3ides_2209_MINI.h" geändert und folgendes Ergebnis:
Für mich sieht das so aus, als dass eine Checksumme nicht passt o.Ä.?
Habs auch hiermit versucht, aber keine Änderung -> failed:
Git status
Git add include/marlin/ Configuration_A3ides_2209_MINI.h
Git status
Git diff –-staged
Git config –global user.email „meine@emailadresse“
Git commit
Git checkout master
Git branch M500
???
Schöne Grüße,
Karl
Statt zu klagen, dass wir nicht alles haben, was wir wollen, sollten wir lieber dankbar sein, dass wir nicht alles bekommen, was wir verdienen.
RE: Prusa Mini Firmware compilieren - howto
Moin Karl,
ich hab mal wieder Langeweile gehabt 😊 .
Ich vermute Du wolltest dort villt. diese Zeile ändern? :
#define EEPROM_SETTINGS // Enable for M500 and M501 commands
Ich denke, Prusa will einfach nicht, dass es jemand so simpel in Betrieb nimmt und hat eine zus. Barriere eingebaut.
Der notwendige Source wird einfach nicht mit kompiliert und fehlt daher zum Erstellen der Firmware, was mit einem Fehler quittiert wird.
Ich habe die fehlenden Zeilen ergänzt und kompiliert. Ob es im Drucker funktioniert weis ich jedoch nicht, da ich keinen Mini besitze, um es zu probieren. Ich habe die 4.2.0 benutzt, bei der 4.1.0 ist es wohl ähnlich.
Rest per PN.
Grüße, Holger 🙂
>python utils/build.py --printer mini --build-type debug
Building mini_debug_noboot
Building mini_debug_emptyboot
Building mini_debug_boot
Building finished: 3 success, 0 failure(s).
mini_debug_noboot SUCCESS
mini_debug_emptyboot SUCCESS
mini_debug_boot SUCCESS
python utils/build.py --printer mini --build-type release
Building mini_release_noboot
Building mini_release_emptyboot
Building mini_release_boot
Building finished: 3 success, 0 failure(s).
mini_release_noboot SUCCESS
mini_release_emptyboot SUCCESS
mini_release_boot SUCCESS
2x Personal MK3IR-BMG09 (Full) BEAR + MMU3 mod., ...
RE: Prusa Mini Firmware compilieren - howto
Hallo Holger-s3,
ich habe exakt die gleichen Entwicklungsschritte durch wie Karl-Herbert.
Auf der Suche nach einer Lösung habe ich diesen vielversprechenden Beitrag gefunden.
Kannst Du auch mir eine Nachricht senden welche Zeilen ich ergänzen muss damit ich ins EEPROM schreiben kann?
Danke und Gruß
Thomas
RE: Prusa Mini Firmware compilieren - howto
@thomas-martini
Hallo Thomas,
auch willkommen im Prusa-Forum 🙂
Bevor ich nun jedem Interessiertem eine PM schreibe, hier eine kurze Zusammenfassung der Änderungen damit das Kompilieren funktioniert.
Natürlich ohne Gewähr, da ich keinen Mini zum Testen besitze. Auch muss damit gerechnet werden, dass es unter bestimmten Umständen etwas Einfluss auf die Druckqualität hat. Prusa wird Gründe haben den M500 derzeit abzuschalten.
1. Ergänze in die Datei (root Verzeichnis): ~$ CMakeLists.txt
(Kopiere die originale Datei vorher zur Sicherheit und benenne sie um, z. B. CMakeLists_ori.txt!)
folgende Anweisung:
src/common/print_utils.cpp <-- Zeile davor!
src/common/Marlin_eeprom.cpp <-- diese Zeile, an dieser Position ergänzen!
src/common/base64_stream_decoder.cpp <-- Zeile danach!
In der Datei "Marlin_eeprom.cpp" (~$ src/common/) ergänzt du in Zeile 7 des Files diese Anweisung:
#include "wdt.h"
Probiert es aus und teilt uns hier bitte Eure Erfahrungen mit.
Danke und viel Erfolg dabei!
Grüße, Holger 🙂
2x Personal MK3IR-BMG09 (Full) BEAR + MMU3 mod., ...
RE: Prusa Mini Firmware compilieren - howto
Danke Holger-s3
Ganz lieben Dank schon mal, ich probiere das aus und melde mich dann wieder obs klappt.
Gruß
Thomas
RE: Prusa Mini Firmware compilieren - howto
@thomas-martini
Soweit kann ich bestätigen, dass die Aktivierung von M500 etwas bewirkt. Jedenfalls lassen sich Pid, Estep, Speed, Längen, Microstepping Werte usw. dauerhaft in der FW verankern. Was ich inzwischen geändert bzw. getestet habe:
M500 aktivieren
Microsteps
Esteps
Homing Position
Extruder Drehrichtung
Filament Ladelänge
Filamentsensor invertieren
Thermistortables angepasst
Pidtuning bringt beim Mini nicht viel, da die Routinen nicht einwandfrei funktionieren und die von Prusa manuell eingestellten Werte recht gut abgestimmt sind. Das Bett Pid ist überhaupt deaktiviert, da dies lt. Prusa schlecht oder gar nicht funktioniert. Ich denke, da sind aber keine Änderungen notwendig solange Du die originalen Komponenten verwendest.
Viel Glück und gutes Gelingen!
Statt zu klagen, dass wir nicht alles haben, was wir wollen, sollten wir lieber dankbar sein, dass wir nicht alles bekommen, was wir verdienen.
RE: Prusa Mini Firmware compilieren - howto
Lieben Dank noch mal, es funktioniert.
Gruß
Thomas
RE: Prusa Mini Firmware compilieren - howto
Vielen Dank für die Rückmeldungen! Freut mich dass es soweit klappt.
Besonders auch an Karl als Beta-Tester, ich hätte hier nicht gerne etwas ungeprüftes geschrieben, was nicht funktioniert.
Grüße, Holger 🙂
2x Personal MK3IR-BMG09 (Full) BEAR + MMU3 mod., ...
RE: Prusa Mini Firmware compilieren - howto
Die Werte lassen sich im EEPROM speichern, aber sobald man den Drucker neu startet lädt er die Hardcoded settings rein. Über M501 kann man dann wieder die vorherigen settings laden und mit M500 speichern, aber, dass der Drucker wohl M502 beim Neustart ruft bzw. die eigenen settings überschreibt ist problematisch. Gibt es denn eine permanente Lösung dafür?