ESP32-cam-mb Access Point funktioniert fehlerhaft

Hallo zusammen,

ich habe mir bereits die Finger wund gegoogelt und komme einfach zu keiner Lösung. Ich habe einen ESP32-Cam mit ESP32-Cam-MB zum programmieren. Jetzt war der Gedanke, mit dem MB zu programmieren und dann den ESP alleine zu nutzen. Doch das funktioniert leider nicht. Ich habe versucht den ESP als Accesspoint einzurichten. Leider stimmt der WLAN name und das Password noch dem Upload nicht überein. Anbei mein Sketch und die Serielle Ausgabe.

/*********
  Rui Santos
  Complete instructions at https://RandomNerdTutorials.com/esp32-cam-projects-ebook/
  
  Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files.
  The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
*********/

#include "esp_camera.h"
#include <WiFi.h>

//
// WARNING!!! Make sure that you have either selected ESP32 Wrover Module,
//            or another board which has PSRAM enabled
//

// Select camera model
//#define CAMERA_MODEL_WROVER_KIT
//#define CAMERA_MODEL_ESP_EYE
//#define CAMERA_MODEL_M5STACK_PSRAM_
//#define CAMERA_MODEL_M5STACK_WIDE
#define CAMERA_MODEL_AI_THINKER

#include "camera_pins.h"

const char* ssid = "Pferdehaenger";
const char* password = "1234";

void startCameraServer();

void setup() {
  Serial.begin(115200);
  Serial.setDebugOutput(true);
  Serial.println();

  camera_config_t config;
  config.ledc_channel = LEDC_CHANNEL_0;
  config.ledc_timer = LEDC_TIMER_0;
  config.pin_d0 = Y2_GPIO_NUM;
  config.pin_d1 = Y3_GPIO_NUM;
  config.pin_d2 = Y4_GPIO_NUM;
  config.pin_d3 = Y5_GPIO_NUM;
  config.pin_d4 = Y6_GPIO_NUM;
  config.pin_d5 = Y7_GPIO_NUM;
  config.pin_d6 = Y8_GPIO_NUM;
  config.pin_d7 = Y9_GPIO_NUM;
  config.pin_xclk = XCLK_GPIO_NUM;
  config.pin_pclk = PCLK_GPIO_NUM;
  config.pin_vsync = VSYNC_GPIO_NUM;
  config.pin_href = HREF_GPIO_NUM;
  config.pin_sscb_sda = SIOD_GPIO_NUM;
  config.pin_sscb_scl = SIOC_GPIO_NUM;
  config.pin_pwdn = PWDN_GPIO_NUM;
  config.pin_reset = RESET_GPIO_NUM;
  config.xclk_freq_hz = 20000000;
  config.pixel_format = PIXFORMAT_JPEG;
  //init with high specs to pre-allocate larger buffers
  if(psramFound()){
    config.frame_size = FRAMESIZE_UXGA;
    config.jpeg_quality = 10;
    config.fb_count = 2;
  } else {
    config.frame_size = FRAMESIZE_SVGA;
    config.jpeg_quality = 12;
    config.fb_count = 1;
  }

#if defined(CAMERA_MODEL_ESP_EYE)
  pinMode(13, INPUT_PULLUP);
  pinMode(14, INPUT_PULLUP);
#endif

  // camera init
  esp_err_t err = esp_camera_init(&config);
  if (err != ESP_OK) {
    Serial.printf("Camera init failed with error 0x%x", err);
    return;
  }

  sensor_t * s = esp_camera_sensor_get();
  //initial sensors are flipped vertically and colors are a bit saturated
  if (s->id.PID == OV3660_PID) {
    s->set_vflip(s, 1);//flip it back
    s->set_brightness(s, 1);//up the blightness just a bit
    s->set_saturation(s, -2);//lower the saturation
  }
  //drop down frame size for higher initial frame rate
  s->set_framesize(s, FRAMESIZE_SXGA);

#if defined(CAMERA_MODEL_M5STACK_WIDE)
  s->set_vflip(s, 1);
  s->set_hmirror(s, 1);
#endif

  WiFi.softAP(ssid, password);
  Serial.print("Name Netzwerk: ");
  Serial.println(ssid);
  IPAddress IP = WiFi.softAPIP();
  Serial.print("AP IP address: ");
  Serial.println(IP);

  startCameraServer();

  Serial.print("Camera Ready! Use 'http://");
  Serial.print(WiFi.localIP());
  Serial.println("' to connect");
}

void loop() {
  // put your main code here, to run repeatedly:
  delay(10000);
}

die Serielle Ausgabe zeigt:
...
11:02:20.325 -> Name Netzwerk: Pferdehaenger
11:02:20.325 -> AP IP address: 192.168.4.1
11:02:20.325 -> Starting web server on port: '80'
11:02:20.325 -> Starting stream server on port: '81'
11:02:20.325 -> Camera Ready! Use 'http://0.0.0.0' to connect
...
Im Handy wird der WLAN Name "ESP32-CAM-MB AP" angezeigt. AUßerdem fragt er nicht nach einem Password auch wenn ich es eingestellt habe.

Hat jemand eine Ahnung was da los ist und wie ich zum Ziel komme?

Die Datei esp_camera.h ist mir nicht bekannt, aber eventuell fehlt eine Zeile:

  WiFi.mode(WIFI_AP); // "AP" für Access Point, "STA" für Station
  WiFi.softAP(ssid, password);

WPA2 - Wi-Fi Protected Access 2 / IEEE 802.11i

Die Datei esp_camera.h ist mir nicht bekannt, aber eventuell fehlt eine Zeile:

Mit dem Befehl

WiFi.softAP(..)
erstellt er ja den Access Point. Ich frage mich nur warum er den SSD Namen und das Passwor5t aus dem Sketch nicht übernimmt. Da der SSID dann aber ESP32-Cam-MB heißt, vermute ich einen zusammenhang mit dem Motherboard welches ich zum hochladen/ programmieren des ESP verwende.

Ich verwende den Esp32 Connect Tab Esp32 Access Point Tab, den Fips freundlicherweise auf meinen Wunsch auf seiner hervorragenden Seite ergänzt hat. Da funktionieren SSID- und Passwort-Abfrage wie gewünscht. Du könntest Dein Programm mit dem von Fips vergleichen.

Anleitung: Einführung zu fipsok.de

Ichj habe mir den Sketch angesehen. Das ist aber kein Access Point sondern Client sketch. Das heißt der ESP wählt sich in eine bestehendes WLAN ein. Das funktinoiert bei mir. Das hatte ich vorher schon ausprobiert. Jetzt will ich aber einen Acces Point. Das heißt der ESP soll ein eigenes WLAN aufbauen.

Dann hast du wohl den falschen Sketch angesehen.
Hier ist der Accesspoint-Tab.

Hast du den Artikel gelesen?

Es ist eine Anforderung von WPA2 die du nicht erfüllst, hat nur beiläufig mit dem Esp32 zu tun.

Es steht auch in den Kommentaren meiner Connect Tab's, egal ob Station oder Accesspoint, drin.

Es ist eine Vorgabe von WPA2/ IEEE 802.11i die du in deinem Sketch aus #1 nicht erfüllst.

Nun sollte es aber werden.

Sorry, meinte den Esp32 "Access Point Tab".

Ich bin euch echt dankar für eure Hilfe aber ich bekomme es einfach nicht hin. Mittlerweile habe ich keinen schimmer mehr wie ich zum ziel kommen soll.

Ich habe den Sketch versucht der in dem Link steht aber außer Fehlermeldungen passiert nichts und bei meinem urspünglichen Sketch kommt erschwerend hinzu, dass ich die ESP32 cam ohne das Motherboard nicht betreiben kann.

Ich bin ratlos und am Ende. Hat vielleicht jemand ein fertigen Sketch den ich dann nur noch mit meiner SSID und Password befüllen muss? Und vielleicht eine Ahnung wie ich den ESP32 ohne das Motherboard zum laufen bekomme?

Danke schonmal

Hallo,

hab den Kram gerade mal rausgekramt:
das ESP32-Cam-MB enthält nur den USB-Wandler, einen 3,3V Spannungsregler und die Taster und Beschaltung für GPIO und Reset zum Programmieren. Auf die programmierten Funktionen des ESP32-Cam-Moduls hat es keinen Einfluß.
Der Hinweis zum Passwort kam ja oben schon, gerade hier mal geändert und schon meldet sich der AP richtig als "Pferdehaenger" und verbindet auch richtig.

Gruß aus Berlin
Michael

Bei Fips lese ich mindestens 8 Zeichen:

const char *password = "Passphrase";        // << mindestens 8 Zeichen jedoch nicht länger als 64 Zeichen

Bei mir mit ESP-32 Dev Kit C V4 funktioniert dies:

  const char *password = "12345678";        // << mindestens 8 Zeichen jedoch nicht länger als 64 Zeichen

Sorry Leute. Ich bin euch echt dankbar aber bei mir geht gar nichts mehr. Den Sketch von Fips bekomme ich nicht zum laufen, meinen alten SKetch bekomme ich auch nicht mehr zum laufen und so eine richtige Ahnung habe ich auch nicht mehr.
Hier ist der Versuch den Sketch von Fips zu nutzen


// ****************************************************************
// Sketch Esp32 Webserver Modular(Tab)
// created: Jens Fleischer, 2018-07-06
// last mod: Jens Fleischer, 2020-03-26
// For more information visit: https://fipsok.de
// ****************************************************************
// Hardware: Esp32
// Software: Esp32 Arduino Core 1.0.0 - 1.0.4
// Getestet auf: ESP32 NodeMCU-32s
/******************************************************************
  Copyright (c) 2018 Jens Fleischer. All rights reserved.

  This file is free software; you can redistribute it and/or
  modify it under the terms of the GNU Lesser General Public
  License as published by the Free Software Foundation; either
  version 2.1 of the License, or (at your option) any later version.
  This file is distributed in the hope that it will be useful,
  but WITHOUT ANY WARRANTY; without even the implied warranty of
  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
  Lesser General Public License for more details.
*******************************************************************/
// Der WebServermodular stellt den Haupt Tab dar.
// #include "SPIFFS.h" #include <WebServer.h> müssen im Haupttab aufgerufen werden
// Die Funktionalität des ESP32 Webservers ist erforderlich.
// "server.onNotFound()" darf nicht im Setup des ESP32 Webserver stehen.
// Inklusive Arduino OTA-Updates
/**************************************************************************************/

#include <WebServer.h>
#include <ArduinoOTA.h>
#include <SPIFFS.h>

//#define DEBUGGING                     // Einkommentieren für die Serielle Ausgabe

#ifdef DEBUGGING
#define DEBUG_B(...) Serial.begin(__VA_ARGS__)
#define DEBUG_P(...) Serial.println(__VA_ARGS__)
#define DEBUG_F(...) Serial.printf(__VA_ARGS__)
#else
#define DEBUG_B(...)
#define DEBUG_P(...)
#define DEBUG_F(...)
#endif

WebServer server(80);

const char *ssid = "Esp32AP";               // << kann bis zu 32 Zeichen haben
const char *password = "Passphrase";        // << mindestens 8 Zeichen jedoch nicht länger als 64 Zeichen

#ifdef CONFIG
IPAddress apIPv4(10, 0, 0, 0);              // eigene IP des Esp32 Access Point
IPAddress subnet(255, 0, 0, 0);             // Subnetzmaske des Netzwerkes
const char *hostName = "Zentrale";          // eigener Hostname
#endif

void setup() {
  DEBUG_B(115200);
  DEBUG_F("\nSketchname: %s\nBuild: %s\t\tIDE: %d.%d.%d\n\n", __FILE__, __TIMESTAMP__, ARDUINO / 10000, ARDUINO % 10000 / 100, ARDUINO % 100 / 10 ? ARDUINO % 100 : ARDUINO % 10);
//  spiffs();
//  admin();
  Connect();
  //  setupTime();
  //  espboardLed();
  //  onboardLed();
  //  bme280();
  //  dht22();                      // Die Tabs die du nutzen möchtest, musst du Einkommentieren
  //  bh1750();
  //  setupSchaltUhr();

  ArduinoOTA.onStart([]() {
    //save();                       //Einkommentieren wenn Werte vor dem Update gesichert werden sollen
  });
  ArduinoOTA.begin();

  server.begin();
  DEBUG_P("HTTP Server gestartet\n\n");
}

void loop() {
  ArduinoOTA.handle();
  server.handleClient();
//  if (millis() < 0x2FFF || millis() > 0xFFFFF0FF) runtime();  // Auskommentieren falls du den Admin Tab nicht nutzen möchtest
  //  emailResponse();
  //  dualSchaltuhr();        // Die Tabs die du nutzen möchtest, musst du Einkommentieren
}

void Connect() {                            // Funktionsaufruf "Connect();" muss im Setup nach "spiffs();" eingebunden werden
  WiFi.mode(WIFI_AP);
#ifdef CONFIG
  WiFi.softAPConfig(apIPv4, apIPv4, subnet);
  WiFi.softAPsetHostname(hostName);
#endif
  if (WiFi.softAP(ssid, password)) {
    DEBUG_F("Verbinde dich mit dem Netzwerk \"%s\"\nGib die IP %s im Browser ein\n\n", ssid, WiFi.softAPIP().toString().c_str());
    DEBUG_F("Hostname des AP = %s\n", WiFi.softAPgetHostname());
    DEBUG_P("Mac Adresse des AP = " + WiFi.softAPmacAddress());
    DEBUG_P("Broadcast IP des AP = " + WiFi.softAPBroadcastIP().toString());
  } else {
    DEBUG_P("Fehler beim erstellen.");
  }
}

hier ist meiner

/*********
  Rui Santos
  Complete instructions at https://RandomNerdTutorials.com/esp32-cam-projects-ebook/
  
  Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files.
  The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
*********/

#include "esp_camera.h"
#include <WiFi.h>

//
// WARNING!!! Make sure that you have either selected ESP32 Wrover Module,
//            or another board which has PSRAM enabled
//

// Select camera model
//#define CAMERA_MODEL_WROVER_KIT
//#define CAMERA_MODEL_ESP_EYE
//#define CAMERA_MODEL_M5STACK_PSRAM_
//#define CAMERA_MODEL_M5STACK_WIDE
#define CAMERA_MODEL_AI_THINKER

#include "camera_pins.h"

const char* ssid = "Pferdehaenger";
const char* password = "12345678";

void startCameraServer();

void setup() {
  Serial.begin(115200);
  Serial.setDebugOutput(true);
  Serial.println();

  camera_config_t config;
  config.ledc_channel = LEDC_CHANNEL_0;
  config.ledc_timer = LEDC_TIMER_0;
  config.pin_d0 = Y2_GPIO_NUM;
  config.pin_d1 = Y3_GPIO_NUM;
  config.pin_d2 = Y4_GPIO_NUM;
  config.pin_d3 = Y5_GPIO_NUM;
  config.pin_d4 = Y6_GPIO_NUM;
  config.pin_d5 = Y7_GPIO_NUM;
  config.pin_d6 = Y8_GPIO_NUM;
  config.pin_d7 = Y9_GPIO_NUM;
  config.pin_xclk = XCLK_GPIO_NUM;
  config.pin_pclk = PCLK_GPIO_NUM;
  config.pin_vsync = VSYNC_GPIO_NUM;
  config.pin_href = HREF_GPIO_NUM;
  config.pin_sscb_sda = SIOD_GPIO_NUM;
  config.pin_sscb_scl = SIOC_GPIO_NUM;
  config.pin_pwdn = PWDN_GPIO_NUM;
  config.pin_reset = RESET_GPIO_NUM;
  config.xclk_freq_hz = 20000000;
  config.pixel_format = PIXFORMAT_JPEG;
  //init with high specs to pre-allocate larger buffers
  if(psramFound()){
    config.frame_size = FRAMESIZE_UXGA;
    config.jpeg_quality = 10;
    config.fb_count = 2;
  } else {
    config.frame_size = FRAMESIZE_SVGA;
    config.jpeg_quality = 12;
    config.fb_count = 1;
  }

#if defined(CAMERA_MODEL_ESP_EYE)
  pinMode(13, INPUT_PULLUP);
  pinMode(14, INPUT_PULLUP);
#endif

  // camera init
  esp_err_t err = esp_camera_init(&config);
  if (err != ESP_OK) {
    Serial.printf("Camera init failed with error 0x%x", err);
    return;
  }

  sensor_t * s = esp_camera_sensor_get();
  //initial sensors are flipped vertically and colors are a bit saturated
  if (s->id.PID == OV3660_PID) {
    s->set_vflip(s, 1);//flip it back
    s->set_brightness(s, 1);//up the blightness just a bit
    s->set_saturation(s, -2);//lower the saturation
  }
  //drop down frame size for higher initial frame rate
  s->set_framesize(s, FRAMESIZE_SXGA);

#if defined(CAMERA_MODEL_M5STACK_WIDE)
  s->set_vflip(s, 1);
  s->set_hmirror(s, 1);
#endif

  WiFi.softAP(ssid, password);
  Serial.print("Name Netzwerk: ");
  Serial.println(ssid);
  IPAddress IP = WiFi.softAPIP();
  Serial.print("AP IP address: ");
  Serial.println(IP);

  startCameraServer();

  Serial.print("Camera Ready! Use 'http://");
  Serial.print(WiFi.localIP());
  Serial.println("' to connect");
}

void loop() {
  // put your main code here, to run repeatedly:
  delay(10000);
}

Das ist die Fehlermeldung aus dem seriellen Monitor

21:54:52.341 -> Brownout detector was triggered
21:54:52.341 -> 
21:54:52.341 -> ets Jun  8 2016 00:22:57
21:54:52.341 -> 
21:54:52.341 -> rst:0xc (SW_CPU_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)
21:54:52.341 -> configsip: 0, SPIWP:0xee
21:54:52.387 -> clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00
21:54:52.387 -> mode:DIO, clock div:1
21:54:52.387 -> load:0x3fff0018,len:4
21:54:52.387 -> load:0x3fff001c,len:1216
21:54:52.387 -> ho 0 tail 12 room 4
21:54:52.387 -> load:0x40078000,len:10944
21:54:52.387 -> load:0x40080400,len:6388
21:54:52.387 -> entry 0x400806b4

?

Den habe ich auf meinen ESP32 geladen und er scheint ebenso wie OTA zu funktionieren.

Spiel mal den Blink-Sketch drauf und dann wieder den von Fips. Bei mir hat sowas mal geholfen, eine Erklärung habe ich aber nicht.

Blink sketch funktioniert

aber sonst nur Fehlermeldungen.
das ist der SKetch


// ****************************************************************
// Sketch Esp32 Webserver Modular(Tab)
// created: Jens Fleischer, 2018-07-06
// last mod: Jens Fleischer, 2020-03-26
// For more information visit: https://fipsok.de
// ****************************************************************
// Hardware: Esp32
// Software: Esp32 Arduino Core 1.0.0 - 1.0.4
// Getestet auf: ESP32 NodeMCU-32s
/******************************************************************
  Copyright (c) 2018 Jens Fleischer. All rights reserved.

  This file is free software; you can redistribute it and/or
  modify it under the terms of the GNU Lesser General Public
  License as published by the Free Software Foundation; either
  version 2.1 of the License, or (at your option) any later version.
  This file is distributed in the hope that it will be useful,
  but WITHOUT ANY WARRANTY; without even the implied warranty of
  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
  Lesser General Public License for more details.
*******************************************************************/
// Der WebServermodular stellt den Haupt Tab dar.
// #include "SPIFFS.h" #include <WebServer.h> müssen im Haupttab aufgerufen werden
// Die Funktionalität des ESP32 Webservers ist erforderlich.
// "server.onNotFound()" darf nicht im Setup des ESP32 Webserver stehen.
// Inklusive Arduino OTA-Updates
/**************************************************************************************/

#include <WebServer.h>
#include <ArduinoOTA.h>
#include <SPIFFS.h>

//#define DEBUGGING                     // Einkommentieren für die Serielle Ausgabe

#ifdef DEBUGGING
#define DEBUG_B(...) Serial.begin(__VA_ARGS__)
#define DEBUG_P(...) Serial.println(__VA_ARGS__)
#define DEBUG_F(...) Serial.printf(__VA_ARGS__)
#else
#define DEBUG_B(...)
#define DEBUG_P(...)
#define DEBUG_F(...)
#endif

WebServer server(80);

void setup() {
  DEBUG_B(115200);
  DEBUG_F("\nSketchname: %s\nBuild: %s\t\tIDE: %d.%d.%d\n\n", __FILE__, __TIMESTAMP__, ARDUINO / 10000, ARDUINO % 10000 / 100, ARDUINO % 100 / 10 ? ARDUINO % 100 : ARDUINO % 10);
  spiffs();
  admin();
  Connect();
  //  setupTime();
  //  espboardLed();
  //  onboardLed();
  //  bme280();
  //  dht22();                      // Die Tabs die du nutzen möchtest, musst du Einkommentieren
  //  bh1750();
  //  setupSchaltUhr();

  ArduinoOTA.onStart([]() {
    //save();                       //Einkommentieren wenn Werte vor dem Update gesichert werden sollen
  });
  ArduinoOTA.begin();

  server.begin();
  DEBUG_P("HTTP Server gestartet\n\n");
}

void loop() {
  ArduinoOTA.handle();
  server.handleClient();
  if (millis() < 0x2FFF || millis() > 0xFFFFF0FF) runtime();  // Auskommentieren falls du den Admin Tab nicht nutzen möchtest
  //  emailResponse();
  //  dualSchaltuhr();        // Die Tabs die du nutzen möchtest, musst du Einkommentieren
}

das ist die Fehlermeldung

C:\Users\Raeuber\AppData\Local\Temp\arduino_modified_sketch_453380\CameraWebServer.ino: In function 'void setup()':
CameraWebServer:51:10: error: 'spiffs' was not declared in this scope
   spiffs();
          ^
CameraWebServer:52:9: error: 'admin' was not declared in this scope
   admin();
         ^
CameraWebServer:53:11: error: 'Connect' was not declared in this scope
   Connect();
           ^
C:\Users\Raeuber\AppData\Local\Temp\arduino_modified_sketch_453380\CameraWebServer.ino: In function 'void loop()':
CameraWebServer:74:59: error: 'runtime' was not declared in this scope
   if (millis() < 0x2FFF || millis() > 0xFFFFF0FF) runtime();  // Auskommentieren falls du den Admin Tab nicht nutzen möchtest
                                                           ^
Mehrere Bibliotheken wurden für "WiFi.h" gefunden
 Benutzt: C:\Users\Raeuber\AppData\Local\Arduino15\packages\esp32\hardware\esp32\1.0.6\libraries\WiFi
 Nicht benutzt: C:\Program Files (x86)\Arduino\libraries\WiFi
exit status 1
'spiffs' was not declared in this scope

und das kommt wenn ich den Beispielsketch Camera Webserver aufspiele

22:47:04.402 -> 
22:47:04.402 -> rst'⸮⸮0 (RTCWDT_RTC%UMQ⸮,boot:0x13B⸮A%}MQ}1M!}	OOT)
22:47:04.402 -> config⸮⸮ 0, SPIWP:0⸮⸮
22:47:04.402 -> clk_drv:0⸮0,q_drv:0x0b"}⸮⸮⸮⸮0x00,⸮.⸮⸮⸮⸮⸮0x00,⸮}⸮⸮⸮⸮0x00,w}⸮⸮v:0x00
22:47:04.402 -> moV⸮"%=⸮ clock V⸮⸮1
22:47:04.402 -> load:0⸮fff0018,len'SH⸮⸮+⸮⸮0x3f⸮⸮⸮c,len:1216C!⸮⸮⸮⸮⸮⸮⸮12 ⸮⸮⸮j
22:47:04.402 -> load:0⸮0078000,len:10NSH⸮⸮+⸮⸮0x40‚⸮⸮0,len:6388
⸮⸮⸮⸮⸮0x40080⸮⸮
22:47:06.022 -> 
22:47:06.069 -> [E][camera.c:1113] camera_probe(): Detected camera not supported.
22:47:06.069 -> [E][camera.c:1379] esp_camera_init(): Camera probe failed with error 0x20004

Naja, logisch.
Die Funktionen die Du aufrufst sind nicht da.

Da fehlt etwas... Du brauchst die entsprechenden tabs.

Dann könnte meine Anleitung (siehe #5) eventuell hilfreich sein.

Meine Arduinos hängen alle an einem USB-Hub mit eigenem starken Netzteil. Das sorgt eventuell für mehr oder konstanteren Strom und schützt meinen Läppi. Einen Hub habe ich trotz aller Vorsicht schon mal tauschen müssen.