hex vs bin Firmware

  • 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.

  • "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.

    Creality K1 Max, Tronxy X5SA-500 PRO (im Umbau auf Klipper), Tronxy X5SA PRO/Klipper, Creality Halot One

    3 Mal editiert, zuletzt von DIY_Fan ()

  • 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.

    Es gibt keine Probleme. Nur nicht gefundene Lösungen 8)

  • 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.

  • 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.

  • 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...

  • Für die (programmiertechnisch triviale) Konvertierung einer Datei vom Binär-Format ins Intel-Hex-Format verlinkt ARM auf ein entsprechendes Tool, siehe hier. Ich hoffe mal, das funktioniert auch umgekehrt, hab es nicht getestet.

  • 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.

Disclaimer:
*Externe Links enthalten Affiliate Daten. Wird über diese Links etwas bestellt, erhalten wir eine kleine Provision, Euch kostet es nichts Extra.
**Als Amazon-Partner verdienen wir an qualifizierten Verkäufen.

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!

Ungelesene Themen

    1. Thema
    2. Antworten
    3. Letzte Antwort
    1. Probleme beim Einschalten über Octoprint 2

      • PePa
    2. Antworten
      2
      Zugriffe
      60
      2
    3. PePa

    1. Rutschfestes Filament 3

      • debugger
    2. Antworten
      3
      Zugriffe
      54
      3
    3. yogimaker

    1. Qidi Q1 Pro & Serie 3 wo bestellen? 144

      • Stephan
    2. Antworten
      144
      Zugriffe
      12k
      144
    3. okeanos

    1. Filament in der Farbe Blau-Grau gesucht

      • Whity
    2. Antworten
      0
      Zugriffe
      15
    1. Was druckt ihr gerade? Zeigt Mal her! 10k

      • Relaxo
    2. Antworten
      10k
      Zugriffe
      1,2M
      10k
    3. tintifax