WebUSB möglich?

Hallo zusammen

Ich versuche momentan den Calliope Mini im Rahmen einer Arbeit in meine eigene Website einzubinden. Da generiere ich eine .hex Datei aus MicroPython. Diese kann ich ohne Probleme per Drag´n´Drop auf den Mini ziehen und es funktioniert. Nun versuche ich die HEX mithilfe von WebUSB auf den Mini zu flashen. Ist das von der technischen Seite überhaupt möglich? Und falls ja, welche Firmware brauche ich dafür?

Meine Beobachtungen bis jetzt:

  • Es gibt ein online WebUSB Flashing tool von SEGGER, das spuckt aber raus, dass der Mini nicht kompatibel mit Web Flashing ist, da habe ich die Firmware auf der SEGGER Website gebraucht J-Link WebUSB target firmware update
  • Das online WebUSB Flashing Tool von MBED erkennt funktioniert auch nicht, auch mit der Firmware wo im DETAILS.TXT CMSIS-DAP steht. Diese habe ich installiert, weil das Tool von MBED mit DapJS funktioniert. DAPjs Demo
  • In der unterstützen Platform Liste von mbed ist der Callipe nicht drinn, geht das also nicht mit DapJS?
  • Ich habe auch versucht mit Zadig verschiedene USB / Serial Treiber zu installieren, bis jetzt kein Erfolg

Ich hoffe jemand kann mir sagen ob es technisch möglich ist, und falls ja welche Firmware ich denn dafür bräuchte.

Danke schon mal im Voraus,

Gruss Joel

Leider ist mit dem aktuellen mini kein WebUSB möglich. Deswegen ist es auch im Makecode für Calliope nicht aktiviert.

Hallo @joel2206

es hängt generell erstmal von der mini Version ab.
Bis zum Calliope mini 1.3 (inkl.) nutzen wir DAPLink. Da sollte ein Update die Möglichkeit bieten.
Wir überarbeiten gerade den Punkt auf der Webseite. Sobald der neu ist, sollte es funktionieren.
Bei den minis ab 2.0 nutzen wir JLink, da hat Segger WebUSB direkt implementiert (allerdings technisch anders).
Leider konnte das bei MakeCode nicht implementiert werden, eine eigene Umsetzung dürfte aber durchaus möglich sein.
Warum das Beispiel auf der Segger Seite aktuell nicht funktioniert, wissen wir auch leider nicht.
Das geht aber mit keinem Gerät und scheint mit aktuellen Browsern nicht klar zu kommen.

Beste Grüße
Jörn

Hi @joern.alraun

Für meinen Zweck brauche ich die 2.0 Minis, also dann muss ich mit JLink arbeiten.

Ich habe den Code auf der SEGGER Demo angeschaut, und bin den Fehler mit dem Browser umgangen. Danach gibt es trotzdem einen Error: „This J-Link does not support file flash download“.

Ich versuche nun mit dem SEGGER Support in Kontakt zu treten, um herauszufinden was da los ist.

Danke trotzdem für deine Hilfe :slight_smile:

Liebe Grüsse
Joel

1 „Gefällt mir“

Super, sollte es eine Rückmeldung geben, dann bitte auch hier posten. Vielleicht bekommen wir das gemeinsam hin…

Grüße
Jörn

Hello Joel, Sorry for the delay in response. The Calliope mini supports WebUSB in the regards to use WinUSB as USB enumeration mode and therefore is accessible via the WebUSB API, from within the web browser.
If you know the full USB protocol, you can communicate with the Calliope mini as a J-Link.
At no point it says that the WebUSB from the wiki, which requires the probe to also report certain capabilities, works with the Calliope mini. It only refers to J-Link OB, but I agree that the information is not really specific.
We will rework/extend the article.
The thing with WebUSB is that it only specifies if a device is accessible via the API.
The protocol and specific WebUSB „applications“ may have further requirements to the device, beyond to the pure raw USB API accessibility.

Das habe ich als Antwort bekommen, also das Web example unterstützt den Mini nicht.

Aber die Kommunikation sollte möglich sein wenn mal das „full USB protocol“ kennt… Ist nun die Frage was gemeint ist.

Danke!
Segger hatte allerdings eine WebUSB Demoseite mit der es funktioniert hat. Das finde ich bei der Antwort etwas komisch.

Mit der neuen USB-Firmware geht es übrigens wieder!
Diese sind hier immer auf dem neusten Stand ladbar:
Erste Hilfe → Der mini wird nicht mehr als USB-Laufwerk erkannt. Was kann ich tun?

Wir werden da auch mal eine eigene Seite für einrichten, weil die Daten da nicht so richtig leicht zu erreichen sind.