hex vs bin Firmware

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

    XTLW Climber 7, Tronxy X5SA-500 PRO (im Umbau auf Klipper), Tronxy X5SA PRO/Klipper, Halot One

    Edited 3 times, last by 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.

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

    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.

Participate now!

Don’t have an account yet? Register yourself now and be a part of our community!

Unread Threads

    1. Title
    2. Replies
    3. Last Reply
    1. Rohkonstruktion schräg im Raum 27

      • fumopuc
    2. Replies
      27
      Views
      346
      27
    3. Gaston

    1. 3Dconnexion Space Mouse für Onshape unter Linux anyone? 13

      • felixna
    2. Replies
      13
      Views
      363
      13
    3. TK7227

    1. Glätten schiebt Filament vor sich her bei 0% Flow 3

      • corin
    2. Replies
      3
      Views
      74
      3
    3. 3D-Designer

    1. BambuLab Smalltalk 465

      • Fritz
    2. Replies
      465
      Views
      16k
      465
    3. Makermau5

    1. Kuriose Oberfläche - nur mit Cura!?! 3

      • JoJo
    2. Replies
      3
      Views
      128
      3
    3. JoJo