calliope-edu / Calliope-Android-App

The Calliope mini Android App is designed to make working with the Calliope mini easy and convenient.
https://play.google.com/store/apps/details?id=cc.calliope.mini
7 stars 2 forks source link

Programmübertragung per Bluetooth / DFU bricht mit Fehler ab #10

Open charlie-chaperon opened 4 months ago

charlie-chaperon commented 4 months ago

getestete Version Calliope mini App 2.0.0

getestet mit folgenden Calliope mini Das Problem tritt bei Calliope Mini der Version 1.3 als auch 2.1 auf.

Eingrenzung Android-Version > 11 möglicherweise auf Hersteller / Modell von Lenovo begrenzt, das kann ich nicht abgrenzen.

Bisher tritt das Problem nur bei diesen Tablets auf. Mit unseren ipads (6. Generation, iOS 17.4.1, App-Version iOS 3.2.1) oder auf meinem privaten Smartphone (LineageOS 18 / Android 11, App-Version 2.0.0) funktioniert die Übertragung einwandfrei.

Setup folgendes Problem habe ich bei der Verwendung der Calliope Mini App (version 2.0.0) auf dem Tablet (Lenovo TB125FU, Android 13): Standort und Bluetooth sind aktiviert, das Startprogramm für Bluetooth habe ich übertragen. Zugriffsberechtigung für Geräte in der Nähe erteilt.

Fehlerbeschreibung / Ablauf zum Reproduzieren Die Verbindung per Bluetooth wird erkannt (grünes Symbol) und ich kann Programme schreiben (MakeCode oder Open Roberta Lab). Das Problem tritt bei beiden Editoren während des Übertragens auf:

Prozessbeginn Gerät verbinden

[wiederholt einige Male]

Fehler 4096 DFU Device Disconnected

Danach ist der Calliope Mini nicht mehr nutzbar und keine der Tasten reagiert, so als ob ein leeres Programm übertragen wurde. Über Bluetooth ist Calliope nun als "DFU targ" sichtbar, auch nach dem Neustart.

Allerdings kann ich durch Übertragen des Startprogramms per USB alles wieder resetten.

Amerlander commented 4 months ago

Danke für das Feedback, @charlie-chaperon

Wir sind gerade dabei, sowohl die App als auch MakeCode zu aktualisieren, um diesen Fehler zu beheben. Die Veröffentlichung hat sich leider etwas verzögert, aber ich rechne damit, dass die Updates diese oder kommende Woche veröffentlicht werden. Ich poste hier ein Update, wenn es so weit ist.

Wenn du willst, kannst du diesen (zugegeben etwas umständlichen) Workaround schon einmal testen und uns gerne Feedback geben:

Im Gegensatz zu bisher wird die App nach dem Zeichnen des Musters nach einer Kopplung fragen, die muss natürlich bestätigt werden.

image

charlie-chaperon commented 4 months ago

Danke auch @Amerlander .

Ich habe den Workaround gerade mit dem Tablet und den beiden Calliope erfolgreich getestet. Die Übertragung funktioniert und auch Open Roberta läuft damit.

Was ich gemacht habe:

Mir gefällt auf jeden Fall die neue Routine. Es sollte eigentlich nicht mehr passieren, dass die Anwender*innen einen Schritt übersehen, z.B. weil die Kopplung bestätigt werden muss.

Ach ja, der link zum Open Roberta Lab ist veraltet, da dort auch ein größeres Update gemacht wurde. Vielleicht könnt ihr das gleich mit anpassen in der App ;)

Im Open Roberta Lab gibts nun nämlich auch die Option Calliope mit Bluetooth zu starten, was allerdings in der Auswahl bestätigt werden muss. Dafür lässt sich aber direkt der Link zu Calliope im Editor setzen.

Was ich nicht getestet habe: Über "Projekteinstellungen" (Standard Make Code / 6.0.28) kann ich die Einstellung "Bluetooth: Kopplung erforderlich" aktivieren. Ich habe nicht probiert ob es damit auch funktioniert, wenn ich Calliope vorher über Android direkt kopple.

Das wäre für unser aktuelles Anwendungsszenario aber auch zu umständlich.

Amerlander commented 4 months ago

Danke dir für das Feedback.

Das übertragen sollte beim ersten mal aus jedem Editor heraus klappen. Die Frage ist immer, was danach ist - also was das übertragene Programm dann für Einstellungen für Bluetooth auslöst.

Es sind im Grunde zwei Bluetooth Einstellungen verbreitet, eine bei der gekoppelt werden muss und eine, bei der ohne Kopplung übertragen wird. Bei Android ist bei neueren Geräten nur noch die Übertragung mit Kopplung möglich, bei iOS weiterhin nur ohne.

Die Erweiterung in MakeCode aktiviert das koppeln. Bei OpenRoberta gibt es nur ohne Kopplung und die Einstellung lässt sich nicht ändern. Daher würde ich davon ausgehen, dass es nach dem ersten mal aus OpenRoberta heraus übertragen ein zweites mal nicht klappt (dann egal mit welchem Editor - wichtig ist für die Übertragung immer nur, was auf dem mini vorher aufgespielt wurde, nicht, was aktuell übertragen wird).

Amerlander commented 4 months ago

Zu den Projekteinstellungen in der aktuellen Make Code: Leider werden die Einstellungen sehr unzuverlässig auch in die Hex Datei übernommen (Siehe Issue https://github.com/microsoft/pxt-calliope/issues/264).

Theoretisch wäre es möglich anstelle der Erweiterung zu laden den Schalter umzulegen, aber meist klappt das nicht. Die Erweiterung macht aber nichts anderes, als eben diese Einstellung zu erzwingen.

charlie-chaperon commented 4 months ago

Ich kann mir das nächste Woche nochmal anschauen und etwas ausführlicher testen wie es im Zusammenspiel mit Open Roberta läuft.

charlie-chaperon commented 4 months ago

Ich habe jetzt nochmal getestet und kann ein paar Ergänzungen machen.

Getestet mit

Unter welchen Umständen funktioniert eine Übertragung

Ich vermute mal, die bluetooth-pairing-Erweiterung macht im Grunde nichts anderes als ein komfortables Koppeln. Im Gegensatz zum Bluetooth-Programm aus dem Flash (25) muss ich hier nämlich nicht noch eine PIN eingeben. Für meine Calliope ab Version 2 ist das Programm aus dem Flash aber ein zusätzlicher willkommener Workaround!

Amerlander commented 4 months ago

Die Erweiterung wurde mit dem letzten Beta update umbenannt, sie ist jetzt als "one-time-pairing" zu finden.

Wir sind gerade noch am testen und anschließend wird die aktuelle MakeCode beta zur live-version, die Android App noch ein Update erhalten und die Anleitungen dazu aktualisiert.

image

charlie-chaperon commented 2 weeks ago

Ich habe jetzt auch mit der neuen Version 2.0.2 testen können.

Anmerkungen

Amerlander commented 2 weeks ago

Google Play braucht immer etwas länger, um neue Versionen zu testen und freizugeben. Auf Google Play ist die aktuellste Version (2.0.3) jetzt aber veröffentlicht. Wie lange F-Droid zum aktualisieren braucht weiß ich nicht, aber sicher auch im Laufe der Woche.

Auf dem Homescreen in der App ist auf der zweiten Seite eine Anleitung eingebunden: https://app.calliope.cc/android/de Klappt es mit dieser Anleitung bei dir, oder gibt es Probleme?

charlie-chaperon commented 2 weeks ago

Sehr gut, ich habe es jetzt mit Version 2.0.3 probiert.

Die Anleitung auf Seite 2 ist gut, ich habe noch diese Ergänzungen: