Hallo zusammen,
kürzlich sollte ich die Anfrage einer Schule bearbeiten, die den Calliope mit Linux-Laptops, dem Chrome-Browser und dem Editor MakeCode verwendet.
Leider klappt das Überspielen mit dem Chrome-Browser auf einer Vielzahl der Laptops nicht - mir ist bisher kein Muster ersichtlich. Es klappt auf ca. 50% der Laptops einwandfrei.
Workaround: Nutzung des Firefox-Browsers. Dort ist das Handling aber schwieriger für die Fünftklässler (Download der .hex-Datei landet automatisch im Downloads-Ordner, der für sie aus Dolphin nicht erreichbar ist. Schaffen sie es in den Downloads-Ordner, müssen sie die Datei manuell kopieren und auf den Calliope kopieren).
Ab hier musste ich raten. Wenn die Handhabung beim Firefox schwieriger als beim Chrome ist, die Schüler/innen ihre HEX-Datei herunterladen, im Download-Verzeichnis suchen und dann manuell auf den Calliope kopieren müssen, dann geht es wohl um WebUSB, was bei 50% der Laptops nicht funktioniert.
Meine erste Idee, es müsse an den Laptops und an Chrome liegen, scheidet aus. Lange Zeit musste man bei Linux über eine Einstellung WebUSB aktivieren. Diese Zeit ist allerdings vorbei. Mit einem halbwegs aktuellen Chrome oder Chromium ist WebUSB in allen Betriebssystemen (Linux, macOS, Windows, Raspberry Pi OS) automatisch aktiv.
Meine zweite Idee ist, dass es am jeweiligen Calliope liegen könnte. Vermutlich hat die Schule eine Sammlung von Calliope v1.3 und v2.0. Technisch unterscheiden sich diese Calliope durch das Vorhandensein eines zusätzlichen Flashspeichers beim v2.0. Ich behaupte mal, dass nur wenige Leute dieses Feature kennen, geschweige denn verwenden. Wenn also der Microcontroller, die Sensoren und die Programmierung beim Calliope v1.3 und v2.0 identisch sind und man auf den Flashspeicher verzichten kann, dann sollte man eigentlich beide Boards gleich behandeln können
Und wenn die aktuelle Firmware v1.3 WebUSB kann und die aktuelle Firmware v2.0 WebUSB nicht kann, dann sollte man mal einen Firmware-Wechsel versuchen. Ich nehme mir also einen Calliope v2.0 und installiere dort die neueste v1_3_calliope_usbfirmware.hex. Damit bekomme ich einen Calliope v2.0, der sich wie ein Calliope v1.3 verhält. Er kennt seinen Flashspeicher nicht mehr, lässt sich aber mit dem Chrome-Browser und dem aktuellen MakeCode über WebUSB programmieren. In MakeCode muss ich als Hardware den Calliope v1 auswählen. Wunderbar!
Die aktuelle USB-Firmware v1.3 installiere ich einmalig, indem ich den Calliope mit gedrückter Resettaste über USB an den Computer anschließe. Beim Loslassen der Resettaste erscheint dann im Dateimanager ein Laufwerk MAINTENANCE:, auf das ich die USB-Firmware v1.3 kopiere. Der Calliope startet automatisch neu und zeigt im Dateimanager das gewohnte Laufwerk MINI:. Dass jetzt die für WebUSB geeignete Firmware installiert ist, kann ich auf dem Laufwerk MINI: in der Datei DETAILS.TXT nachschauen.
Wichtig ist die Interface-Version 0253 und der Eintrag WebUSB bei den USB-Interfaces.
# DAPLink Firmware - see https://mbed.com/daplink
Unique ID: 9900000052374e4500232001000000460000000097969901
HIC ID: 97969901
Auto Reset: 1
Automation allowed: 1
Overflow detection: 1
Daplink Mode: Interface
Interface Version: 0253
Bootloader Version: 0242
Git SHA: 64359f5c786363065a41ec15c348e3d53568da03
Local Mods: 1
USB Interfaces: MSD, CDC, HID, WebUSB
Bootloader CRC: 0x459c23c8
Interface CRC: 0x733dec2f
Remount count: 1
URL: https://calliope.cc/
Viel Erfolg mit dem verwandelten Calliope v2.0 und WebUSB! Ich bin jedenfalls gespannt auf die Rückmeldung der Schule, ob jetzt alles funktioniert.
Beste Grüße
Ralf