Erstinstallation - MCU wird am USB-Port nicht erkannt - Teil-Gelöst

sensebox-mcu

#1

Ich bin mit meinem Latein am Ende!

Jeder Versuch, ein Sketch hoch zu laden, endet mit “No device found on COM6 Beim Hochladen des Sketches ist ein Fehler aufgetreten”
Die MCU wird penetrant NICHT als USB-Wechseldatenträger erkannt.
Vorab: den Beitrag “senseBox:edu wird nicht erkannt” vom Oktober 2018 habe ich gelesen und durchgearbeitet. Ohne Ergebnis.

Ich nutze ein Laptop mit Win7pro; Arduino 1.8.7 und den SenseBox-Treiber habe ich bereits mehrfach streng nach Anleitung installiert (und auch wieder deinstalliert und neu versucht). Auch ein Versuch mit Arduino 1.8.8 führte zum selben Ergebnis.
Beide Packages (SAMD und senseBox) sind installiert; versuchshalber auch noch das für SAMD-Beta-Boards.
Im Gerätemanager wird die Sensebox (eigentlich sauber) einem COM-Port zugewiesen; der Treiber als aktuell deklariert. Trotzdem erscheint sie beim Anschließen an USB nicht als Datenträger.
Weder Ab-/Anstecken am USB noch Reset über den Taster auf dem Board führt zu irgendeinem Ergebnis.

Beim allerersten Versuch, den Test-Sketch (LED blinken lassen) hochzuladen wechselte immerhin die Farbe von grün auf rot-auf/abschwellend. Allerdings auch schon mit der o.g. Fehlermeldung.

Noch etwas: Jeder Versuch, den SenseBox-Treiber zu (de-)installieren oder den Rechner herunterzufahren wird durch die MCU “ausgebremst”. Der Vorgang wird erst dann beendet, wenn ich das USB-Kabel “kalt” abziehe. Dann aber ohne Mucken und Murren.

Hat jemand eine Idee, was ich übersehen habe?


#2

Hallo @Rosenstaub und erstmal willkommen im Forum. Ich bin bei uns für den Hardwaresupport zuständig und war mit Grippe zwei Wochen außer Gefecht gesetzt. Daher komme ich leider erst jetzt dazu dir zu antworten…gibt es denn schon Neuigkeiten an der Front?

Kannst du dich noch daran erinnern ob die MCU bei der Installation des Treibers im Bootloader Modus war? Den Modus startet man mit einem Doppelklick auf Reset. Falls nein versuche es bitte erneut mit der Installation des Treibers im besagten Modus.

Bei der Installation der Board Support Packages ist darauf zu achten dass die in der richtigen Reihenfolge installiert werden (erst die Arduino SAMD Board und dann die senseBox SAMD Boards). Die SAMD Beta Boards brauchst du für unsere Anwendung nicht.
Ich gehe mal davon aus dass du vorm Hochladen die senseBox MCU in der Arduino IDE unter ‘Werkzeuge’ -> ‘Boards’ ausgewählt hast.

Der Wechseldatenträger sollte übrigens nur dann auftauchen wenn du das Board, wie oben beschrieben, in den Bootloader versetzt. Wenn wir das hinbekommen dass der Wechseldatenträger erkannt wird bekommen wir auch den Upload ans Laufen!

Was genau deinen Rechner bei der Treiberinstallation “ausbremst” kann ich leider nicht genau nachvollziehen da wir hier keine Win7 Maschinen zum Testen haben…


#3

Hallo Jan,

danke für die Reaktion!

Nur leider helfen mir die vorgeschlagenen Schritte zur Abhilfe nicht weiter.

  • Ja, die MCU war im Bootloadermodus (LED auf Dauer-grün)

Einer der ersten Hochlade-Versuche führte zum Wechsel der LED auf Rot an-/abschwellend.

“Doppelklicks” auf dem Reset-Taster habe ich schon zig-fach probiert. Ohne sichtbare Änderungen.

  • Ja, ich habe die Treiber/Support Packages in der angegebenen Reihenfolge installiert. Den Beta-Treiber habe ich in meiner Not als Versuch nachinstalliert.

  • Ja, ich habe die SenseBox als Ziel ausgewählt.

  • Mittlerweile habe ich entdeckt, dass im Gerätemanager unter USB-Controller ein “Massenspeichergerät” und unter USB-Eingabegeräte (HumanInterfaceDevices) ein “Eingabegerät” erscheinen, sobald die MCU über USB angestöpselt ist. Allerdings erscheint sie nicht im Systray oder gar im Explorer als Wechseldatenträger.

Ich bleibe ratlos…

Ergänzung/Lösung(!) ein Tag später:
An einem anderen (Win7-)Rechner habe ich die Installation noch einmal durchexerziert.
Also

  • Zuerst die Arduino 1.8.7 als .zip heruntergeladen und entpackt. NICHT installiert.
  • Arduino über die .exe gestartet, alle Warnmeldungen von Betriebssystem und Firewall ignoriert.
  • Dann die zwei SAMD-Packages und
  • als letztes noch den senseBox MCU Treiber aus den FAQs / “Windows USB-Bootloader Treiber aktualisieren” installiert.
  • DANN die SenseBox per USB angestöpselt und, oh Wunder, es erschien ein Wechseldatenträger im Systray sowie im Explorer als Laufwerk und Windows versuchte (vergeblich) Treiber dafür zu finden.
  • Den Port in Arduino-Werkzeuge-Port ausgewählt und einen Test-Sketch hochgeladen. ERFOLGREICH!

Daraufhin habe ich an meinem ersten Rechner ALLES (Dateien, Verknüpfungen, Registry-Einträge), was ich irgendwie mit SenseBox oder Arduino in Verbindung bringen konnte, weggeschmissen und noch einmal neu installiert wie oben beschrieben.
Auch hier funktionierte es!

Nun kommt das ABER (gleichlautend für beide Rechner):

  • Der Wechseldatenträger SenseBox ließ sich genau EINMAL auswerfen; danach erschien er nie wieder.
  • Beim erneuten Anschluss per USB erscheint zwar im Gerätemanager unter “Anschlüsse COM&LPT” die SenseBox an einem (anderen!) Port, aber nicht mehr im Systray/Explorer.
  • Wenn ich diesen neuen Port in Arduino-Werkzeuge-Port auswähle, kann ich einen Sketch hochladen. Arduino fällt danach aber sofort auf den “alten” Port zurück. Das, OBWOHL in den Voreinstellungen (preferences.txt) der aktuelle Port gespeichert ist. Bei jedem neuerlichen Hochladeversuch muss ich den korrekten Port wieder suchen und auswählen.

Ergebnis:
Ich bin jetzt soweit zufrieden, als dass ich einen, wenn auch holprigen, Weg gefunden habe, Sketche hochzuladen. Nun geht’s ans Programmieren…


#4

Moin Moin,

schön zu hören dass du weiter gekommen bist und insbesondere danke für die Step-to-Step Anweisungen deiner Lösung.

In der Regel befindet sich das Board im Programmodus wenn man es über Arduino programmiert. Du hattest es oben einmal verwechselt daher hier nochmal in der Übersicht:

  • Bootloader-Modus: der Programmablauf ist unterbrochen. Der Bootloader wartet auf einen neuen Sketch und aktiviert einen Wechseldatenträger namens “SENSEBOX”. Hierbei wechselt die rote LED neben dem USB-Anschluss abwechselnd von hell auf dunkel. Man kann jederzeit vom Programm- und den Bootloader-Modus wechseln indem man innerhalb von 0,5 Sekunden zweimal den Resetbutton drückt.
  • Programm-Modus: das zuletzt hochgeladene Programm wird in Dauerschleife ausgeführt. Zu erkennen daran dass die grünen LEDs der Statusanzeige und den aktiven Schnittstellen leuchten. Man kann vom Bootloader- in den Programm-Modus wechseln, nur dann wenn zuletzt ein gültiges Programm aufgespielt war und man einmal Reset drückt.

Wie du schon richtig beobachtet hast, werden dem Board unterschiedliche Kennungen für den seriellen Anschluss in beiden Modi zugewiesen. Arduino merkt sich dabei immer nur die Kennung des Programm-Modus. D.h. wenn du dich im Bootloader-Modus befindest beim Programmieren musst du die Anschlusskennung manuell ändern vor dem Hochladen.

Falls etwas mit dem Hochladen über Arduino nicht klappen sollte kann man das Board in den Bootloader-Modus versetzen. Der Wechseldatenträger der dann gestartet wird, nimmt vorkompilierte .bin Dateien an. Die kannst du direkt in Arduino unter Sketch --> Export compiled binary erzeugen. Danach nur noch auf den Wechseldatenträger kopieren und falls die Datei gültig ist wird dann automatisch in den Programm-Modus gewechselt und das Programm ausgeführt.