Nano 33 BLE wird am COM-Port nicht mehr gefunden

Hallo liebe Arduino-Community,

seit ca. 6 Wochen beschäftige ich mich nun mit dem Arduino Nano BLE 33 Sense. Das ist wirklich ein super Gerät finde ich wenn man die ganzen Sensoren die dort verbaut sind anschaut.

Die ersten Sketches funktionierten auch nach einigen Runden wirklich gut und des machte auch sehr Spaß. Aber nach einiger Zeit fand das Notebook aber plötzlich das Board nicht mehr. Ich führte es auf das installierte Paperwhite-Display zurück. Nachdem das Bord sich nicht mehr installieren lies habe ich mir einen neuen Nano beschafft und das Display abgeklemmt. Nach kurzer Zeit aber wieder dasselbe Problem...

In der Zwischenzeit habe ich alles versucht, aber die Com-Ports der Boards verschwinden nach kurzer Zeit einfach mitten in der Arbeit ohne Grund und sind nicht mehr einzurichten. Ich habe aus meiner Sicht wirklich alles, ich meine wirklich alles was mir irgend möglich war unternommen:

Ein Com-Port für den Nano wird im Gerätemanager nicht mehr gefunden, kein Eintrag mehr in der Liste Com-Ports, auch nicht unter "ausgeblendeten" Einträgen. Das Menü im Gerätemanager baut sich nach dem Einstecken kurz neu auf, erstellt aber keinen neuen COM-Eintrag. Am Nano leuchtet nach dem Einstecken noch ein grünes Licht am Nano, das war's.

Ich habe in der Zwischenzeit:

  • 5 neue Nano's "verbrannt": 3 Nano BLE Sense rev2, einen Nano BLE Sense und einen Nano BLE. Keiner hat mehr wie ein paar h funktionert. Alle nach einiger Zeit nicht mehr zu finden. Gefühlt hat der erste noch am längsten "gehalten".
  • 3 unterschiedliche USB-Kabel versucht.
  • 4 Notebooks verwendet: Lenovo Thinkpad 510, Tinkpad 470, Yoga 710, jeweils mit Windows 10 und PEAQ S132 mit Windows 11. Wenn der Nano an einem PC nicht mehr ging, ging er auch an den anderen nicht mehr. Alle hatten eigentlich eine andere Firewall, bzw. Virensoftwarekonfiguration, z. T. nur Windows Defender. Dort finde ich auch nichts was ich da einstellen könnte.
  • Ich fasse den Nano in der Zwischenzeit nur noch vorsichtig mit antistatischen Handschuhen an

Bootloader neu habe ich nicht gemacht, weil offensichtlich ja der USB-Chip nicht mehr zu finden ist tut, nicht der Prozessor selbst. Treiber wird als aktuell und aktiv angezeigt, ist ja auch der automatisch von der IDE installierte. Rechner herunter- und wieder hochfahren bringt nichts.

Was habe ich da falsch gemacht? Ich finde im Netz niemanden, der von ähnlichen Problemen berichtet. Aber bei mir ist das ja eindeutig und 100% reproduzierbar.

Ehrlich gesagt kann ich mir das nun irgendwann nicht mehr leisten. Weder bzgl. Geld noch bzgl. der investierten Zeit. Ich werde dann leider nichts mehr mit Arduinos machen können, wenn ich keine Möglichkeit finde, dass die Arduinos länger wie ein paar Stunden funktionieren.

Habt Ihr schon einmal ein ähnliches Problem gehabt und dafür evtl. eine Lösung gefunden?

Kann ja eigentlich nicht sein, dass ich damit der Einzige bin, oder?

Zum Nano 33 kann ich nichts sagen, aber mit den klassischen Arduinos hatte ich nie das Problem. Dass der Nano 33 mit 3,3V an den Aus- und Eingängen arbeitet und pro Pin nur 7 mA liefern kann (der alte Nano 5V / 20 mA) hast Du beachtet?
Das kann sonst schnell zu Elektroschrott führen.

Gruß Tommy

Hallo Tommy,
ja, das Paperwhitedisplay habe ich nach dem ersten Versuch abgeklemmt habe (kann nicht finden wieviel Strom das zieht). Allerdings steht in der Spec des Nano BLE 15 mA/pin, nicht 7 mA? Arduino Nano 33 BLE — Arduino Official Store.
Danach habe ich die Anschlüsse im zweiten Fall mit einem seriellen Input (TTL 5,0V) belegt. Da könnte das dann tatsächlich zu Ärger geführt haben: Da muss ich dann wohl einen 5v-3,3V TTL-Wandler dazwischen schalten. Da muss ich allerdings einen finden, der nur TTL 5V als Eingang verwendet und nicht GND/5,0V als Spannungseingang, da das angeschlossene Gerät keine 5 V ausgibt, nur den Pegel. Ich hatte aber nicht in allen Fällen überhaupt Pins belegt. Daher kann ich bisher nicht sicher sagen, ob es nur daran gelegen haben kann.
Heute bekomme ich den 6ten (BLE) . Ich traue mich zwar ehrlich gesagt nicht so richtig den anzuschließen, aber ich versuche es mal ohne serielle Schnittstelle. Wenn er dann "überlebt" habe ich ja eine gute Chance dass es daran lag :wink:
Vielen Dank für den Tip!

Sorry, da hatte ich den Nano 33 IoT erwischt. Der kann nur 7 mA.
Nur 5V ohne GND gibt es nicht. Eine Spannung ist immer eine Potentialdiferenz zwischen 2 Punkten. Vei uns in der Regel GND und dem Ausgang. Du musst also alle GND miteinander verbinden.

Gruß Tommy

Das heisst Du hast symetrisches Diffenzsignal?
Was ist das für ein Gerät?

Ja genau, wenn man das symmetrisch nennt. Das Gerät ist ein Variometer für Segelflugzeuge. Jetzt habe ich ganz genau gelesen und da steht tatsächlich" Das XCVario arbeitet mit 3.3 Volt Pegeln" Handbuch S. 82: https://xcvario.de/dokumentation/. Damit wäre der Pegelwandler ja gar nicht erforderlich. Ich hoffe ich habe das auch richtig verstanden...
Zur Art der Pegel schreibt der Autor allerdings: "Beim RS232 „TTL“,
wie bei den meisten Geräte der Avionik üblich ... die verwendeten RS232 TTL Pegel sind dort in der Regel 0 Volt für Null und plus 5 Volt für eine Eins " (auch S. 82). Damit habe ich dann so wie ich das verstehe auf TX (hier grün-weiss = RX Nano) 3,3v=1 bzw. 0V=0 und auf einer anderen Leitung GND (hier braun). Zudem liegt noch eine Versorgungsspannung 12V auf einem anderen Pin des RJ45 (und nicht 3,3 oder 5V). Pinbelegung siehe Handbuch S. 101https://xcvario.de/dokumentation/. Das Signal habe ich dann lesen können, wenn ich es nicht invertiert habe (wie empfohlen wurde).

Dann bleibt natürlich immer noch die Frage warum der Nano 33 nicht überlebt... Leider habe ich den 6. noch nicht erhalten um es ohne Seriellen Bus versuchen zu können. Wenn ich ihn habe versuche ich es sofort :wink:

Habe den sechsten Arduino BLE 33 nun in Betrieb genommen.
Er ist ziemlich sofort ausgefallen, siehe unten.

Ich glaube ehrlich gesagt nun nicht mehr daran, dass Arduino's Nano 33 BLE überhaupt funktionieren.

Oder hat noch irgend jemand einen Tip?

Ich bin ziemlich down, weil das heißt, dass das komplette Projekt nicht funktionieren wird. Ich habe da schon sehr viel Zeit hinein gesteckt und das wäre wirklich eine super Sache gewesen, nicht nur für mich, sondern auch für viele andere Segelflieger. Aber macht ja keinen Sinn mit nicht funktionierender Hardware.

Eigentlich müsste man doch da doch wenigstens das Geld für die 6 nicht funktionierenden Geräte zurück bekommen, oder?

Im Detail (wenn das hilft):
1.) Eingesteckt (mit antistatischen Handschuhen)

  • Nano: Grüne Leuchte an, orangene Leuchte blinkt
  • Gerätemanager: USB Serial an COM-Port 5 im Geräte-Manger gefunden,
    Nano 33 BLE wird unter "Andere Geräte" angezeigt
  • IDE findet Nano 33 BLE an Port 5

2.) In der IDE Nano 33 BLE an Port 5 ausgewählt

3.) Sketch hochgeladen (der Sketch berechnet nur ein paar Werte und gibt diese auf dem Serial Monitor aus. Er verwendet weder den Serial1-Port, noch ein externes Display, habe ihn aber noch nie endgültig ausprobieren können ob er wirklich 100% funktioniert, da der Nano davor immer defekt war).

  • Kompiliert und Upload zu 100% durchgeführt
  • IDE: Fehlermeldung "Board wird nicht mehr gefunden" im seriellen Monitor
  • Nano: Es leuchtet nur noch die grüne Leuchte
  • Geräte-Manager: Es wird weder der Nano mehr angezeigt und auch der Com-Port 5 wird nicht mehr gefunden. Unter versteckte Geräte wird jetzt der COM5 als inaktiv und seltsamerweise ein Com6 ebenfalls als inaktiv angezeigt

Aufbau siehe Bilder

Das Verhalten war damit in etwa wie bei den Arduino's davor nur ging es diesmal ziemlich schnell...

Wie gesagt mit 3 anderen Rechnern, 2 anderen Kabeln und einigen anderen Sketches war das ja auch nicht sehr viel anders.




Was für Spannung gibt der USB Port aus?
Bin der Meinung das hängt zu 100% mit deinem Rechner zusammen,

Hallo Fony,
danke für die Überlegung. Allerdings habe ich ja bei 6 kaputten Nanos 33 BLE bisher 4 unterschiedliche Rechner verwendet um das Thema Rechner, USB-Port und Rechnerkonfiguration sicher ausschließen zu können: Lenovo Thinkpad T15, Thinkpad 470, Lenovo Yoga 710 und einen Noname (weiss nicht mehr wie der hieß, steht aber unten). Einzige Gemeinsamkeit: Betriebssystem in allen Fällen Windows 10 oder Windows 11.

Hast Du immer den selben Lieferer gehabt?

Zusatzfrage: Du hast da ein Breadboard ohne Peripherie - der ist genau so da gestorben? Ohne irgendwas angeschlossen?

Ja, genau so. Auf das Breadboard habe ich sie nur gesteckt, damit die Pins keinen ungewollten Kontakt mit irgendetwas bekommen und evtl. durch statische Aufladung o. ä. sterben. Die ersten 2 Nanos habe ich allerdings noch ohne Breadboard "in der Luft" betrieben.

Ach ja Zulieferer: Erster war Reichelt. Nr. 2-6 war Amazon (ich denke immer derselbe). Dieselbe Überlegung hatte ich auch. Deshalb habe ich nun Zulieferer 3 in's Spiel gebracht und direkt bei Arduino bestellt (auch wenn ich die Lieferung mit UPS gar nicht mag und kein Lieferdatium dabei stand)

Ich hatte noch keinen Code gesehen.... Kannst den mal nachliefern, damit man sich mal ein Bild machen kann?

Dann hab ich mal in den Schaltplan geschaut.
Die Datenleitungen hängen direkt am USB - allerdings ist da noch ne Schutzschaltung dran...
Welche Version hast Du? Steht auf dem Board V2 oder V4 oder sowas?

Wenn der Controller nach dem ersten anstecken blinkt, ist der im Ausgangszustand. Da war der blink-Code mit raufgeladen. Der ist beim flashen des Bootloaders mit bei.

Ich glaub nicht, das die nicht zu retten sind; Aber die Ursache muss natürlich gefunden werden....

Das meine ich auch

Ich bin dann heute raus.
@fony kannst ja schon mal bootloader flashen lesen. :wink: Mir dauert das warten auf Antworten zu lange.

Ist jetzt vielleicht ein bisschen weit her geholt aber nachdem du geschrieben hast, dass da plötzlich ein zweiter com port auftaucht musste ich an den seeduino xiao denken. Der lässt sich auch nur einmal beschreiben und danach ist ende, um ihn nochmal beschreiben zu können muss man ihn in den bootloader modus bringen beim xiao geht das indem man schnell zweimal den reset taster drückt. Dann geht er in den bootloader modus, der com port wird wieder aktiv und er kann neu beschrieben werden.

Ich kenn den nano nicht aber evtl. muss der auch erst durch irgendwelches drücken zur mitarbeit überzeugt werden.

Edit:

Beim xiao ist auch ein arm cortex verbaut (samd21)

Und siehe hier https://www.google.com/url?sa=t&source=web&rct=j&opi=89978449&url=https://forum.arduino.cc/t/how-to-flash-a-bootloader/900260&ved=2ahUKEwiNhpzJqvj_AhWihv0HHRr4DHAQFnoECBYQAQ&usg=AOvVaw3tCQERkvFRZgws4C--FIpg post #3 der schreibt auch zweimal schnell reset drücken.

1 Like

Hallo Evil, habe bei einigen Versuchen mehrfach flashen können. Also denke ich prinzipiell geht das

@my_xy_projekt:
Eilt ja nicht. Habe in der Zwischenzeit nach einer Möglichkeit geschaut Fotos zu machen und hier hochgeladen, da ich kein V2 ode rV4 gefunden habe. Die Nano's schauen für mein Laienauge aber zumindest schon mal Original aus.


Code: Habe einige unterschiedliche Teilprogramme des Projektes versucht. Hier ein noch nicht fertiger Teil den ich beim letzten Mal hochgeladen habe. Da sind noch viel Artefakte vom C++ Originalprogramm drin, die ich auskommentiert habe (in Original C++ funktioniert er übrigens als .exe):

String nordsued = "";
//using namespace std;

int main() {
    //Eingaben
    //string nordsued;
    float winddir_mom;
    float winddir_mom_r;
    float windspd_mom;
    float winddir_old;
    float winddir_old_r;
    float windspd_old;

    //Rechengroessen
    float n_s;
    float winddir_the_r;
    float windspd_the_r;
    float winddir_chg_r;
    float a_spd;
    float b_spd;
    float c_spd;
    float d_dir_r;
    float thermaldir_r;

    //Ausgaben
    float d_dir;
    float winddir_chg;
    float winddir_the;
    float thermaldir;
    float thermalspd;
    char pause;
 
    Serial.begin(9600);

    //Input
    Serial.println("Waehle aus: Noerdliche Hemisphere (n), suedliche Hemisphere (s)");
    while (Serial.available() == 0) {     //wait for data available
      String nordsued = Serial.readString();
    }
    // (SerialRead.readFloat(&f_zahl, SERIAL_WAIT))Serial.read(nordsued);
    if(nordsued == "s") {
        n_s=1;
        Serial.println(n_s);
    } else {
        n_s=-1;
        Serial.println(n_s);
    }
    Serial.println("Gib die momentane Windrichtung in Grad an: ");
    winddir_mom=210;
    //cin >> winddir_mom;
    Serial.println("Gib die momentane Windstaerke an, in kmh: ");
    windspd_mom=8;
    //cin >> windspd_mom;
    Serial.println("Gib die allgemeine Windrichtung in Grad an: ");
    winddir_old=225;
    //cin >> winddir_old;
    Serial.println("Gib die allgemeine Windstaerke an, in kmh: ");
    //cin >> windspd_old;
    windspd_old=6;
    //Einheiten
    winddir_mom_r = winddir_mom/57.2957795;
    winddir_old_r = winddir_old/57.2957795;

    //Calc thermal direction
    winddir_chg_r = winddir_mom_r-winddir_old_r;
    a_spd = windspd_old*cos(winddir_chg_r);
    b_spd = a_spd-windspd_mom;
    c_spd = windspd_old*sin(-winddir_chg_r);
    d_dir_r = atan2(-c_spd,-b_spd);
    winddir_the_r = winddir_mom_r+d_dir_r;
    thermaldir_r = winddir_the_r+n_s*90/57.297795+3.14159;

    //limiting to 360 degree
    if (winddir_the_r > 6.28318) {
        winddir_the_r = winddir_the_r-6.28318;
    }
    if (thermaldir_r > 6.28318) {
        thermaldir_r = thermaldir_r-6.28318;
    }

    //Calc cyclonal speed thermal
    thermalspd = sqrt( pow(windspd_mom,2) + pow(windspd_old,2) - 2*windspd_mom*windspd_old * cos(winddir_chg_r) );

    // Ausgaben
    winddir_chg=winddir_chg_r*57.2957795;
    winddir_the=winddir_the_r*57.2957795;
    d_dir=d_dir_r*57.2957795;
    thermaldir = thermaldir_r*57.297795;

    //cout << "\n";
    Serial.print("Winddirection_change:          ");
    Serial.println(winddir_chg,1);

   //cout << "Ausgabe a "+to_string(a_spd)+"\n";
    //cout << "Ausgabe b "+to_string(b_spd)+"\n";
    //cout << "Ausgabe c "+to_string(c_spd)+"\n";
    //cout << "Ausgabe d_dir:                "+to_string(d_dir)+"\n\n";

    Serial.print("Winddirection thermal component: ");
    Serial.println(winddir_the,1);
    Serial.print("Relative bearing to thermal:    ");
    Serial.println(thermaldir,1);
    Serial.print("Cyclonal strength thermal:");
    Serial.println(thermalspd,1);

   // cout << "Push button to close \n";
   // cin >> pause;

    return 0;

Ich sehe gerade du spielst Reinen C++ drauf , ohne setup und loop, nicht das du damit den Arduino Bootloader platt machst, womöglich dadurch kommt die IDE außer Tritt,

Hallo Fony hallo my_xy_projekt,
eine Frohe Botschaft: Euer Hinweis auf den Bootloader hat mich dazu gebracht das Thema Bootloader einmal genauer anzuschauen. In irgendeinem Chat kam dann der Hinweis, der Bootloader sei noch intakt, wenn man den Reset zweimal drückt und der Arduino mit gelbem Blinken antwortet. Das habe ich gemacht und tatschlich Bootloader ok, und oh Wunder: COM-Port des letzten Arduinos ist wieder vorhanden!
Tatsächlich war mein unfassbarer Anfängerfehler, dass ich den Resetknopf, wenn ich ihn bedient habe ich ihn nur einmal gedrückt hatte...
Aber vielleicht kann man mir das vielleicht nachsehen, da ich ja bisher erst 8 Wochen mit dem Gerät zu Gange war. :joy:
Aber ehrlich, ohne den Umweg über die von Euch erwähnte Bootloaderthematik hätte ich vielleicht noch ewig gesucht.
Ob die anderen Arduinos noch tun weiß ich nicht, weil ich nicht zuhause bin. Aber ein erreicht erst mal :wink:
Daher erst mal vielen Dank für die tolle Unterstützung!

1 Like

Dass hört sich wirklich sehr Gut an :wink:
Vermute die Andere sind auch heile, jetzt kannste Basteln ohne Ende :wink: