Jump to content

Originale Firmware mit Bricklet 'Nachbau' / Bootloader / Firmware / CPU Tausch


Recommended Posts

Hallo Community

Für ein Projekt möchte ich mehrere Bricklets auf einer gemeinsamen (selbst gerouteten) Platine vereinen, um einen für mein Gehäuse optimalen Aufbau zu erreichen.
Es soll sich dabei um einen 1:1 Nachbau der Bricklets (Hardware + Firmware) handeln - nur eben kombiniert auf einer PCB.

Ich habe mich durch die Doku gelesen und hier im Forum gesucht, jedoch leider noch nicht alle Antworten auf meine Fragen gefunden.

Hier eine Zusammenfassung meines bisherigen Kenntnisstandes (sofern ich alles richtig verstanden habe, ansonsten bitte berichtigen :-)

  • auf den neuen Bricklets befindet sich ein XMC1100 µC
  • auf diesem µC läuft ein Bootloader und eine Firmware
  • das Update der Firmware erfolgt normalerweise über den BrickViewer

Für meinen Fall habe ich folgende Fragen:

  • Mein Nachbau besitzt einen 'leeren' XMC1100. Wie wird der initiale Bootloader auf den µC programmiert?
  • Gibt es die originalen Bootloader / Firmware-Dateien auch als .bin irgendwo zum Download?
    (Da ich die Firmware 1:1 verwenden möchte, bräuchte ich so nicht er die Build-Umgebung aufsetzen.)

Danke schon mal vorab für alle Antworten auf meine (Anfänger-)Fragen

Viele Grüße und einen tollen Start ins Wochenende,
Robert

Link zu diesem Kommentar
Share on other sites

Deine Erkenntnisse sind soweit korrekt. Es werden abhängig vom Bricklet verscheidene Mikrocontroller aus der XMC 1100/1300/1400er Serie verwendet. Diese Details sind aber nicht relevant in deinem Fall.

On 11/24/2023 at 11:51 AM, OutdoorRob said:

Mein Nachbau besitzt einen 'leeren' XMC1100. Wie wird der initiale Bootloader auf den µC programmiert?

Ein Master Brick ab Hardware Version 3.0 kann unseren Bootloader auf einen leeren XMC flashen. Das kann allerdings dann nicht Brick Viewer, sondern du braucht das write_bootloader_and_firmware_to_comcu_bricklet.sh Script von hier https://github.com/Tinkerforge/flash-test

Du brauchst dazu einen PC mit Linux und brickd (z.B. Ubuntu). Du schließt dein Bricklet an Port D einens Master Bricks 3.x an, schließt diesen Master Brick an den PC an und führst das write_bootloader_and_firmware_to_comcu_bricklet.sh Script aus. Dem gibts du als einziges Parameter den Pfad zur *.zbin Datei der Firmware für dein Bricklet mit. Diese kannst du unter https://www.tinkerforge.com/de/doc/Downloads.html herunterladen.

./write_bootloader_and_firmware_to_comcu_bricklet.sh bricklet_io16_v2_firmware_2_0_2.zbin

Ich habe das jetzt recht knapp beschrieben. Falls das zu knapp war kann ich das auch in mehr Details beschreiben. Aber wenn du dich mit Linux auskennst, sollte das eigentlich reichen. Ansonsten frag bitte einfach.

 

 

Link zu diesem Kommentar
Share on other sites

Hallo Photron,
vielen herzlichen Dank für die aufklärende und schnelle Antwort inkl. der Links! Ein echt klasse Support hier ☺️

Master Brick 3.2 & WSL vorhanden.
Solide Anleitung - das klingt gut machbar. Und praktisch, dass man in einem Schritt Bootloader + Firmware flashen kann :)
Wenn ihr hier nichts mehr von mir lest, dann hat alles geklappt (Kann aber noch eine Weile dauern - Projekt läuft gerade erst an.)

Falls ich als Außenstehender bei dem Prozess auf Probleme stoße werde ich diese dann hier dokumentieren 👍

Link zu diesem Kommentar
Share on other sites

  • 4 weeks later...

Moin @OutdoorRob,

das ist eine coole Idee, die Funktionen mehrerer Bricklets zusammenzufassen. Ich könnte in der Tat auch eine Kombination aus "Industrial Digital In 4" und "Industrial Quad Relay" mit je zwei Ein- und Ausgängen gebrauchen. 🙂

Hast du schon eine BOM mit den Teilenummern der Komponenten, insbesondere dem Bricklet-Stecker (vielleicht kann @photron hier aber auch weiterhelfen)? Lässt du die Platine fertigen und bestücken oder machst du das auch selbst?

Viele Grüße und schöne Weihnachtstage
Thomas

Link zu diesem Kommentar
Share on other sites

  • 4 months later...

Guten Tag zusammen,

ich habe das von @OutdoorRob vorgestellte Projekt mittlerweile übernommen und arbeite im Moment daran, wie oben beschrieben, den XMC zu flashen.  Der Anleitung konnte ich soweit gut folgen, jedoch komme ich schließlich zu folgender Fehlermeldung: 

$ ./write_bootloader_and_firmware_to_comcu_bricklet.sh bricklet_io16_v2_firmware_2_0_2.zbin
Connect Bricklet to port D on Master Brick
Traceback (most recent call last):
  File "/home/lukas_b/flash-test-master/src/flash-test/plugin_system/xmc_flash_bootloader.py", line 164, in <module>
    xmc_flash_bootloader(sys.argv[1])
  File "/home/lukas_b/flash-test-master/src/flash-test/plugin_system/xmc_flash_bootloader.py", line 107, in xmc_flash_bootloader
    raise Exception('Bricklet', 'Could not find program master')
Exception: ('Bricklet', 'Could not find program master')
Starting bootloader mode
Could not find any Bricklet

 

Am 24.11.2023 um 13:49 schrieb photron:
./write_bootloader_and_firmware_to_comcu_bricklet.sh bricklet_io16_v2_firmware_2_0_2.zbin

Ich habe diesen Befehl an unserem selbstgebauten Bricklet und auch an einem IO-16 V2.0 Bricklet ausprobiert und komme jeweils auf oben genannte Meldung. Über den Brick viewer funktioniert das flashen des IO-16 einwandfrei. 

Ich wäre über jede Hilfe dankbar. 

Viele Grüße

Lukas

Link zu diesem Kommentar
Share on other sites

Das Skript sucht nach einem Master Brick Hardware Version 3, der alleine, oder der unterste in einem Stapel ist, kann aber keinen finden. An diesem Master Brick muss das zu flashende Bricklet an Port D angeschlossen sein.

Brick Viewer kann alle Bricklets ann jeglichen Bricks flashen, kann aber nur die Firmware und nicht den Bootloader flashen.

Wie ist dein Hardware-Aufbau? An was für einem Brick hast du das Bricklet angeschlossen?

Link zu diesem Kommentar
Share on other sites

90% der Probleme sitzen bekanntlich vor dem PC. Die Fehlermeldung ist behoben, ich hatte den USB Anschluss nicht in Linux eingebunden. 

Allerdings erhalte ich nun folgende Fehlermeldung:

$ ./write_bootloader_and_firmware_to_comcu_bricklet.sh bricklet_io16_v2_firmware_2_0_2.zbin
Connect Bricklet to port D on Master Brick
Using Master 6aMFFF
Schreibe Bootstrapper
Schreibe Bootloader
Errors: {'4'}
Errors: {'4'}
Errors: {'4'}
Errors: {'4'}
Errors: {'4'}
Errors: {'4'}
Errors: {'4'}
Errors: {'4'}
Errors: {'4'}
Errors: {'4'}
Timeout beim Bootloader schreiben
Starting bootloader mode
Could not find any Bricklet

 

Link zu diesem Kommentar
Share on other sites

Am 26.4.2024 um 09:52 schrieb photron:

Fehler 4 bekommst du wenn du unsere IO-16 flasht, oder beim Flashen deiner selbstgebauten IO-16?

Wenn es bei beiden auiftritt, dann hast du noch ein Problem im Flashprozess selbst. Wenn es nur bei deiner IO-16 auftriit, dann hast du vermutlich ein Hardwareproblem bei deiner IO-16.

Hi, es gab tatsächlich noch einen Hardwarefehler. Der wurde gelöst und nun hat es geklappt. Vielen Dank für die mühe und Hilfe. 

Link zu diesem Kommentar
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Gast
Reply to this topic...

×   Du hast formatierten Text eingefügt.   Formatierung jetzt entfernen

  Only 75 emoji are allowed.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Clear editor

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

×
×
  • Neu erstellen...