Partial Flashing sieht keine Änderung und bricht ohne Meldung ab

Ich habe heute mit Calliope v2 erlebt, dass nach Eingabe des Koppel Musters und blauem Symbol und Herunterladen in MakeCode der gelbe Kreis mit 0% kurz erscheint und sofort wieder verschwindet. Das haben wir mit mehr als 5 Calliope und iPads in einem Zimmer gemacht. Bei den ersten hat es funktioniert, bei den letzten 3 ist der Abbruch passiert. Das hat sich bei mehreren Versuchen wiederholt.

Ich suche nun nach der Ursache. Wer hat das in Schulklassen auch schon erlebt und was wurde unternommen? Für Schüler ist es enttäuschend, wenn sie es bis dahin geschafft haben und dann nicht testen können.

Ich dachte, die Koppel Muster könnten auf anderen eigeschalteten iPads gespeichert sein und dann ist es mit zwei iPads verbunden. Das konnte ich im Homeoffice mit zwei iPads aber nicht nachvollziehen. Ich konnte aus MakeCode eine Datei von einem iPad übertragen und dann vom anderen iPad während das erste noch in der App war.

Ich erinnere mich, dass in einer früheren App Version das zweite iPad dann gar nicht blau wurde, obwohl das Muster stimmte.

Ist an der Stelle in der App was geändert worden?

In der Schule installiere ich die Apps über das MDM und habe das Update 3.2.1 gemacht.
(Es kann theoretisch sein, dass es nicht überall geklappt hat und eine ältere Version der App drauf war…)


Eine HEX Datei per Classroom App und AirDrop übertragen und in MakeCode öffnen hat funktioniert. Allerdings musste ich das (gefühlt) 12 Mal tippen auf den empfangenden Schüler iPads selbst machen. Erklären kann man das nicht…

Wenn die Bluetooth-Übertragung nicht funktioniert, installiere ich die Demo-Datei (#25) aus dem Flash-Speicher. Dann funktioniert es.

1 „Gefällt mir“

Ich habe es inzwischen täglich in allen 4 Schulen erlebt, dass auf dem iPad der gelbe Kreis 0% anzeigt und sofort verschwindet. Mit der Anzahl der gleichzeitig benutzten iPads konnte ich keinen Zusammenhang feststellen.

Es sieht eher so aus, dass Partial Flashing sich verschluckt. Es wird die Änderung im Code nicht erkannt und somit ist eine Übertragung nicht nötig. Früher wurde dann aber angezeigt „Keine Änderungen zu übertragen“. Hier bricht es ohne Meldung ab.

Ja, nach Programm 25 laden geht es dann. Beim erstem Mal ging es in den Schulen auch immer, weil Partial Flashing dann noch nicht wirkt. Beim zweiten Mal ist es passiert.

Partial Flashing deaktivieren in den Projekteinstellungen scheint manchmal wirkungslos zu sein, dann müsste ja die Übertragung - wenn sie funktioniert - immer lange dauern. Die Übertragung wird auch bei deaktiviertem Partial Flashing beim zweiten Mal schneller - sehr merkwürdig.

Die iPads sind in allen möglichen Konfigurationen: Shared oder nicht, iPadOS 16.3 oder 17.4.

Die App ist immer aktuell 3.2.1 und nimmt natürlich das neue MakeCode.

Calliope 1.3 / 2.0 / 2.1

Calliope 1.3 kann ich dann aber in die Kiste zurück legen, weil der vom iPad nicht mehr zu gebrauchen ist. Und wenn die Kinder weg sind, stecke ich sie an die digitale Tafel und lade das DEMO Programm drauf.

Alles gut, aber damit sollen ja Lehrer klar kommen?

Ich als Halbwissender mache keine Workshops mehr mit mehr als 5 Calliope V2 Geräten. Die zahlreichen Schwierigkeiten bei der Bluetooth-Übertragung bekomme ich sonst nicht gehandlet. Ich hoffe, dass es bei V3 besser laufen wird.

Die Einstellungen reagieren nicht unmittelbar und jedes Mal. Diesen Bug haben wir auch schon vor längerem an das MakeCode-Team gemeldet.
Ich kann auf keinem der iPads hier aber ähnliches Verhalten feststellen. Apple hatte unter iPadOS 17.0-17.1 einen Bluetooth Bug, der einige Geräte betroffen hat. Die Schilderungen kann ich ansonsten weder reproduzieren, noch haben wir Rückmeldungen zu diesem Verhalten bekommen. Unter iPdOS 17.0.x konnte ich das auch feststellen. Wie aber geschrieben, ist das schon länger behoben. Das sollte auch unabhängig von er App Version sein, obwohl dort natürlich auch irgendwelche Abhängigkeiten auftreten können.

Vielen Dank für die Bemühungen.
Ich habe es noch mal probiert mit 3 iPads 17.4, App 3.2.1 und 3 Calliope 2.1 mit neuer Firmware.

Es geht darum, dass nach erfolgreichem Koppeln der gelbe Kreis erscheint und sofort wieder verschwindet und keine Änderungen übertragen werden.

Das ist auch wieder aufgetreten, wahrscheinlich liegt es an geladenen Erweiterungen. Ohne Erweiterungen, nur beim Start zeige Zahl, und die Zahl immer ändern, wurden die Änderungen (schneller) übertragen.

Das Programm hat auch die Erweiterung Funk geladen und sah ungefähr so aus:

Geändert wurden dann nur Zahlen und das sollte wieder übertragen werden. Dazu musste natürlich immer A+B + Reset gedrückt werden. Und dabei verschwand der gelbe Kreis manchmal sofort. Eine große Änderung (neue Blöcke hinzu fügen) half nicht. Es ging dann erst wieder nach #25.

Aber aktuell gestern sind auch wieder richtige Fehler aufgetreten, die nur mit Programm 25 aus dem Flash behoben werden konnten (beim Calliope V1 und V3 ist man ohne Flash natürlich hilflos).

  1. Abbruch nach 2% (wenn, dann sind es immer 2%):

  2. Übertragungsfehler sofort roter Kreis,

  3. manchmal zeigt Calliope (nach solchen Fehlern) nach Reset oder Einschalten sofort das B-Symbol und das Koppel Muster an (als hätte man A+B + Reset gedrückt). Und dann tut er aber nicht koppeln. So lange bis #25 geladen wurde.

  4. Auch gestern wieder ist passiert, dass das Koppel Muster stimmt, aber das blaue Symbol in der App erscheint nicht. Nach #25 klappt das sofort.

Einen Ablauf, wie sich das nachvollziehen lässt, konnte ich nicht finden.

Hat schon mal jemand untersucht, welche Rolle die Batterieladung bei solchen Bluetooth Fehlern spielt? Und wie kann ich das mit vertretbarem Aufwand in der Schule feststellen?

Außer den Fehlern, die auch ich nicht finde, stören mich noch zwei Features erheblich:

  1. Früher hat Partial Flashing die Meldung ausgegeben: Keine Änderungen zu übertragen.
    Heute verschwindet einfach der gelbe Kreis. Auch dann wenn es tatsächlich stimmt, dass keine Änderungen zu übertragen sind. Hier wünsche ich mir, dass es wieder angezeigt wird.

  2. Die Bedienung „Herunterladen“ ist unübersichtlich. Zuerst muss ich an zwei Stellen Herunterladen tippen. Dann wird nicht unterschieden zwischen HEX Datei speichern und Bluetooth übertragen. Und die größte Verwirrung ist, dass nach Übertragung (wenn der gelbe Kreis mit 100% fertig ist) genau das selbe Bild angezeigt wird wie vor der Übertragung. Wenn ich zum Schüler iPad komme sehe ich weder ob die Übertragung erfolgreich war, noch ob überhaupt schon angefangen wurde zu übertragen.
    Und Schüler werden schon verwirrt, wenn während der Übertragung auf Bildschirm und Calliope unsinnige Zeichen angezeigt werden. Das ist bei V3 besser geworden - haben wir nicht und bekommen wir nicht…

Und nun Frohe Ostern!

  1. Das Herunterladen von v2 Programmen auf v1 Calliope sollte unterbunden werden, weil das abstürzt und auch Calliope v1 für Bluetooth unbrauchbar macht und erst #25 über das USB Kabel geladen werden muss.
  2. Im MakeCode sollte die gewählte Hardware v1 oder v2 deutlich auf dem Bildschirm angezeigt werden. Nur v3 ist erkennbar, weil der Simulator schwarz ist.

Ah, ich habe vergessen, dass du extrem Aufwändige Erweiterungen integrierst. Dann würde ich das Problem eher an der Stelle vermuten und nicht am Calliope mini oder der App. Das kann etwas beim Kompilieren in MakeCode sein – oder ein nicht identifizierter Bug in der Erweiterung, der für Probleme bei der Übertragung sorgt. Es kann durchaus sein, dass die Programme per USB dann funktionieren, per Bluetooth aber nicht. Es ist da ja nicht 100% identisches Vorgehen und da du da extrem am Limit agierst, würde ich direkt vermuten, dass es daran liegt. Das scheint mir als absolute Ausnahme zu gelten. Das sollte eher über ein Issue (Issues · microsoft/pxt-calliope · GitHub) laufen, als hier im Forum – es wird dir vermutlich niemand hier helfen können…

  1. Früher hat Partial Flashing die Meldung ausgegeben: Keine Änderungen zu übertragen.
    Heute verschwindet einfach der gelbe Kreis. Auch dann wenn es tatsächlich stimmt, dass keine Änderungen zu übertragen sind. Hier wünsche ich mir, dass es wieder angezeigt wird.

Ja, allerdings wurde es so unmöglich direkt ein identisches Programm nochmal zu übertragen und es ist manchmal erforderlich. Deshalb ist das kein Blocker mehr und man kann ein identisches Programm mehrmals übertragen. Warum das in deinem Fall nicht geht, würde ich mal als individuelles Thema sehen. An allen von uns getesteten iPads/iOS Versionen klappt das.

  1. Die Bedienung „Herunterladen“ ist unübersichtlich. Zuerst muss ich an zwei Stellen Herunterladen tippen. Dann wird nicht unterschieden zwischen HEX Datei speichern und Bluetooth übertragen. Und die größte Verwirrung ist, dass nach Übertragung (wenn der gelbe Kreis mit 100% fertig ist) genau das selbe Bild angezeigt wird wie vor der Übertragung. Wenn ich zum Schüler iPad komme sehe ich weder ob die Übertragung erfolgreich war, noch ob überhaupt schon angefangen wurde zu übertragen.
    Und Schüler werden schon verwirrt, wenn während der Übertragung auf Bildschirm und Calliope unsinnige Zeichen angezeigt werden. Das ist bei V3 besser geworden - haben wir nicht und bekommen wir nicht…

Da würde wohl leider eher eine Mail an Apple etwas bringen. Es ist unabhängig von der Calliope mini Version oder der App. Apple sperrt im WebView einen direkt initiierten Download, der nicht händisch nochmal bestätigt wurde und zwar genau bevor dieser startet. Bei der Android App geht das deshalb auch direkt, weil es dort nicht blockiert wird. Das einzige, was wir an dieser Stelle evtl. machen könnten, wäre nach der Übertragung noch den Webview erneut zu öffnen. Dann hätte man aber einen kompletten reload des Projekts (und das ist nicht wirklich sinnvoll).

Bei dem „Freeze“ bzw. der Zeichen ist es eine Gerätefrage. Die tauchen auf, weil in der DAL der Calliope mini in einen inaktiven Zustand versetzt wird, wenn der in den DFU-Modus geschickt wird (dabei passiert es, dass er durchaus einzelne LEDs beleuchten kann, die nichts mit einem Programm zu tun haben). Das ist in der CoDAL komplett anders – da bekommt man ja auch einen Fortschritt bei der Übertragung angezeigt. Dadurch, dass man aber in der App einen klaren Hinweis bekommt, halte ich das für unkritisch. Auf dem Bildschirm vom iPad wird natürlich nichts unsinniges angezeigt, sondern der Übertragungsfortschritt.

Ebenfalls schöne (und vor allem stressfreie) Ostern!