gibt es große Vor oder Nachteile des einen oder anderen Formates?
Ich finde die Marlin Firmware (für meinen Artillery Genius Pro) seltener in hex als in bin.
Warum ist das so?
gibt es große Vor oder Nachteile des einen oder anderen Formates?
Ich finde die Marlin Firmware (für meinen Artillery Genius Pro) seltener in hex als in bin.
Warum ist das so?
wenn ich das richtig erinnere, wird .hex immer per USB geflasht mit Hilfe von Cura etc, während .bin immer via SD Card geflasht wird, je nachdem wie der Drucker es sich wünscht.
War immer der Meinung hex=8/16 Bit Prozessor, bin=32Bit Prozessor auf dem Board. Wäre da auch mal an ein einer Aufklärung interessiert.
"bin" steht für binär und "hex" steht für hexadezimal. Beide Arten von Dateien speichern vereinfacht gesagt Programmcode, der an einer bestimmten Stelle im Speicher eines Rechners z.B. einem Flashspeicher geschrieben werden soll. Bei einer "bin" Datei geschieht das dadurch, dass Programmcode und Adressinformation (wo der Programmcode gespeichert werden soll) binär in einer Folge von Bytes dargestellt werden.
Im Gegensatz zu den binären bin-Dateien sind die hex-Dateien Text basiert. D.h. die Binärinformation (Programmcode und Adressinformation) werden zunächst in Hexadezimalzahlen umgewandelt und die Ziffern der Hexadezimalzahlen (0..9 und A..F) in ASCII-Code ('0'..'9' u. 'A'..'F'). Dazu kommen dann noch Trennzeichen (Spaces, Doppelpunkte usw.) und Zeilentrenner (Zeichen für Carriage Return).
Eine Hex-Datei kann demzufolge mit einem Texteditor geöffnet werden und man sieht dann klar strukturierte Blöcke von Zahlen und den Buchstaben A bis F. Versucht man mittels Texteditor eine Bin-Datei zu öffnen, dann geht das evtl. gar nicht oder man sieht allerlei merkwürdiges Zeugs auf dem Bildschirm, das nur der Rechner "versteht".
Hex-Dateien haben wohl ihren Ursprung in früheren Jahren der Computerei, als es üblich war, Programmcode über eine serielle Schnittstelle in einen Rechner zu laden oder zu flashen. Serielle Schnittstellen können für 7-Bit Übertragung eingestellt sein und bestimmte Bit-Kombinationen werden außerdem als Steuerzeichen interpretiert. D.h. eine Folge von Bytes könnte man nicht unmittelbar über eine serielle Schnittstelle übertragen (ASCII-Code schon), daher der Umweg über das Hex-Format.
Und wieder was gelernt. Danke für die Erläuterung.
OK! So weit war mir das auch klar. Die hex-Datei mit der SD-Karte und bin mit USB und Cura oder so. Kann ich da frei wählen beim Erstellen von Marlin und für ein Creality 4.2.x Board einfach eine bin erstellen und per USB aufspielen? Oder ist das irgendwo vorgegeben, was für das Board zu verwenden ist? Ich bin bisher davon ausgegangen, ich kann nur mit der hex-Datei arbeiten, da Creality da nur hex-Dateien zum Download für diese Bords anbietet.
Ich bin bisher davon ausgegangen, ich kann nur mit der hex-Datei arbeiten, da Creality da nur hex-Dateien zum Download für diese Bords anbietet.
Ich habe erst neulich eine Firmware .bin auf meinen Ender 3 v2 aufgespielt und das hat super geklappt.
Hab die Datei einfach auf die SD geladen, in den Drucker geschoben und zack, hats geklappt.
Danke! Sorry! Hab was verwechselt. War genau anders rum. Da sind nur bin-Dateien für die 4.2.x Boards. Die hex-Dateien sind bei den 8-Bit Boards. Also wär die Frage, kann man hex-Dateien auf ein 4.2.x Board flashen.
Kann man das nicht einfach ausprobieren?
Entweder akzeptiert der Drucker das Format oder nicht...
Die Antwort ist gut! wenn man eine passende hex-Datei dazu hat. Aber ich weiß es leider auch nicht. Mitunter könnte es aber tatsächlich hilfreich sein.
DIY_Fan hat das Prinzip oben beschrieben. Welches Format letztendlich verlangt wird, entscheidet das den Speicher beschreibende Programm. Im Falle der Programmierung über die SD-Karte ist das der Bootloader auf dem Druckermainboard. Das ist ein kleines Progrämmchen im Speicher des Boards, und weil es so klein ist, will es oft keine Hex-, sondern Binärdateien. Der Code für die Umwandlung vom Hex-Format ins letztendlich benötigte Binärformat würde den Bootloader nämlich unnötigerweise vergrößern. Das wäre insbesondere nachteilig bei den alten 8-Bit-MCUs mit wenig Speicher.
Nun, das kann so ganz nicht hinhauen. Ein Ender-3 mit 1.1.x 8-Bit Board braucht auch einen Bootloader um da eine Firmware zu flashen und der nimmt hex-Dateien über USB. Dessen Speicher ist auch besonders klein.
Nun, das kann so ganz nicht hinhauen. Ein Ender-3 mit 1.1.x 8-Bit Board braucht auch einen Bootloader um da eine Firmware zu flashen und der nimmt hex-Dateien über USB. Dessen Speicher ist auch besonders klein.
Hab ich mich Jahre nicht mehr mit befasst - aber hat der nicht einfach einen Arduino-Bootloader bekommen? Dann ist es nicht unbedingt der Bootloader in der MCU, der das Hex-Format verlangt, sondern eher die Arduino-Umgebung (bzw. AVRDUDE) auf dem PC. Die wandelt das dann ggf. ins Binärformat um.
Edit:
... oder die Übertragung selbst läuft textbasiert, wie mit dem ursprünglichen STK500-Bootloader.
Ich weiss nicht ob das funktionieren würde: Die Anleitung bei StackExchange
Klingt aber ziemlich kompliziert...
Wieso willst du denn ein .hex flashen? Kannst du nicht einfach ein .bin nehmen?
Ja die Anleitung bezieht sich auf die 2560 8-Bit Boards. Die haben auch hex-Dateien. Geht aber mit Cura ganz einfach. Wollen eigentlich nicht aber schon oft genug schreit hier wer nach Hilfe... Und wär ja schön zu wissen. Einfach aus Neugier.
So genau weiß ich das auch nicht Michael. Ich bin eigentlich nur Anwender. Leider viel zu oft gezwungen, mich damit zu beschäftigen. Creality-Firmware sei Dank...
Das klingt zumindest mal interessant und ist den Versuch wert. Muß nur überlegen, auf was ich hier verzichten kann, wenn es in die Hose geht. Danke!
... und wie ich gerade feststelle, kann das o. g. Tool "srecord" z. B. bei Ubuntu direkt aus dem Repository installiert werden.
Ooh! Danke für den Tipp! Ja es hat einen Grund. Ich habe hier im Sovol SV01 Pro ein Creality 4.2.2 Board von Creality. Dem hab ich eine neue Firmware aufgespielt. Funktioniert auch. Wollte danach eine neuere Firmware aufspielen aber ohne Erfolg. Über USB ist zumindest einen Versuch wert.
Ooh! Danke für den Tipp! Ja es hat einen Grund. Ich habe hier im Sovol SV01 Pro ein Creality 4.2.2 Board von Creality. Dem hab ich eine neue Firmware aufgespielt. Funktioniert auch. Wollte danach eine neuere Firmware aufspielen aber ohne Erfolg. Über USB ist zumindest einen Versuch wert.
Ich bin mir ziemlich sicher, dass du es schon getan hast, aber man kann leicht vergessen, dass der Creality Bootloader sich den Namen der zuletzt geflashten Datei merkt und eine Datei mit demselben Namen nicht noch einmal lädt, also musst du sicherstellen, dass du die Datei umbenennst, wenn der Name unverändert bleibt.
Don’t have an account yet? Register yourself now and be a part of our community!