Typo and rewording of the central README

pull/88/head
Christian Muehlhaeuser 2024-11-19 10:52:56 +01:00
parent 6f787e3f9d
commit e5814de1ad
1 changed files with 48 additions and 49 deletions

View File

@ -1,8 +1,8 @@
# PrusaConnect ESP32-CAM # PrusaConnect ESP32-CAM
This repository includes source code and firmware releases for the **ESP32-cam** module programmed in the **Arduino IDE**. Currently, several versions of boards built on **ESP32/ESP32S3** processors with a camera chip are supported. Below is the list supported boards. Additionally, for each supported board, there is a guide on how to upload the firmware, how to compile code for it, and a basic data informations/issues for the board. This repository includes source code and firmware releases for the **ESP32-cam** module programmed in the **Arduino IDE**. Currently, several versions of boards built on **ESP32/ESP32S3** processors with a camera chip are supported. You can find a list of supported boards below. Additionally, for each supported board, there is a guide on how to upload the firmware, how to compile code for it, some basic information and a list of known issues for this particular board.
This project uses other libraries. It is necessary to install them in the Arduino IDE. This project uses other libraries. It is necessary to install them in the Arduino IDE:
- App [Arduino IDE 2.3.2](https://www.arduino.cc/en/software) - App [Arduino IDE 2.3.2](https://www.arduino.cc/en/software)
- MCU support [arduino-ESP32 3.0.2](https://github.com/espressif/arduino-esp32) - MCU support [arduino-ESP32 3.0.2](https://github.com/espressif/arduino-esp32)
- ~~Library [ESPAsyncWebSrv 1.2.7](https://github.com/dvarrel/ESPAsyncWebSrv)~~ To version **1.0.3-rc1** - ~~Library [ESPAsyncWebSrv 1.2.7](https://github.com/dvarrel/ESPAsyncWebSrv)~~ To version **1.0.3-rc1**
@ -13,7 +13,7 @@ This project uses other libraries. It is necessary to install them in the Arduin
- Library [UniqueID 1.3.0](https://github.com/ricaun/ArduinoUniqueID) - Library [UniqueID 1.3.0](https://github.com/ricaun/ArduinoUniqueID)
- Library [DHTnew 0.4.20](https://github.com/RobTillaart/DHTNew) - Library [DHTnew 0.4.20](https://github.com/RobTillaart/DHTNew)
What we need for functionality What we need for functionality:
- Supported versions of boards built on **ESP32/ESP32-S3** processors with a camera [here](#supported_boards) - Supported versions of boards built on **ESP32/ESP32-S3** processors with a camera [here](#supported_boards)
- How to flash binary files to ESP32-cam board from Linux/MAC/Windows [ here ](#flash_fw) - How to flash binary files to ESP32-cam board from Linux/MAC/Windows [ here ](#flash_fw)
- How to compile software in the Arduino IDE [here](#arduino_lib) - How to compile software in the Arduino IDE [here](#arduino_lib)
@ -52,9 +52,9 @@ Uploading a precompiled version of the firmware to the MCU is possible from eith
<a name="arduino_lib"></a> <a name="arduino_lib"></a>
## How to compile software in the Arduino IDE ## How to compile software in the Arduino IDE
The software can be compiled and uploaded to the MCU. Software compilation was done in Arduino IDE. To ensure proper functionality, it is necessary to install support for ESP32 boards into Arduino IDE, as well as several other libraries The software can be compiled and uploaded to the MCU. Software compilation was done in Arduino IDE. To ensure proper functionality, it is necessary to install support for ESP32 boards into Arduino IDE, as well as several other libraries.
At the first step we need to install support for **ESP32 board**. As a first step we need to install support for **ESP32 boards**.
**File** -> **Preferences** -> **Additional boards managers URLs** **File** -> **Preferences** -> **Additional boards managers URLs**
@ -62,15 +62,15 @@ At the first step we need to install support for **ESP32 board**.
https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json
``` ```
then go to **Tools** -> **Board** -> **Boards Manager...** and install module **ESP32** by **Espressif Systems** then go to **Tools** -> **Board** -> **Boards Manager...** and install module **ESP32** by **Espressif Systems**.
The next step is to install the necessary libraries. Go to **Sketch** -> **Include Library** -> **Manage Libraries...** or you can use **Ctrl+Shift+I**. Then you can search for the necessary libraries and install them. The next step is to install the necessary libraries. Go to **Sketch** -> **Include Library** -> **Manage Libraries...** or you can use **Ctrl+Shift+I**. Here you can search for the necessary libraries and install them.
For the installation of the **ESPAsyncWebServer** and **AsyncTCP** libraries, it is necessary to download the **ZIP** archive from the official **GIT** repository, and then import it using **Sketch** -> **Include Library** -> **Add .ZIP Library ...** For the installation of the **ESPAsyncWebServer** and **AsyncTCP** libraries, it is necessary to download the **ZIP** archive from the official **GIT** repository, and then import it using **Sketch** -> **Include Library** -> **Add .ZIP Library ...**.
Then it is possible build and upload the firmware to the board. Each board requires a different Arduino IDE configuration. Therefore, it is necessary to select the board from the [supported boards](#supported_boards) and read the documentation on how to build and upload the firmware. You should now be able to build the firmware and upload it to the board. Each board requires a different Arduino IDE configuration. Therefore, it is necessary to select the board from the [supported boards](#supported_boards) and read the documentation on how to build and upload the firmware.
**For each specific the board type, it's neccerasy** in the file **mcu_cfg.h**, after **line 16** is definitions specify the version of the board for which the software will be compiled. It is necessary to enable the version of the board that will be used. **For each specific board type, it's necessary** to update the file called **mcu_cfg.h**. Below **line 16** you can find several definitions that specify the version of the board for which the software will be compiled. It is necessary to enable the version of the board that will be used:
```c ```c
#define AI_THINKER_ESP32_CAM false #define AI_THINKER_ESP32_CAM false
@ -84,44 +84,44 @@ Then it is possible build and upload the firmware to the board. Each board requi
<a name="prusa_connect"></a> <a name="prusa_connect"></a>
## How to connect camera board to Prusa Connect ## How to connect camera board to Prusa Connect
- Open up the **Prusa Connect** webpage [connect.prusa3D.com](https://connect.prusa3D.com) - Go to the **Prusa Connect** webpage [https://connect.prusa3D.com](https://connect.prusa3D.com).
- Log in - Log in.
- Select a printer you wish to use the camera for. - Select a printer you wish to use the camera for.
- Navigate to the **Camera** tab. - Navigate to the **Camera** tab.
- Click **Add new other camera** - Click **Add new other camera**.
- **A new camera will appear** in the list. Here, you can give the camera a name. - **A new camera will appear** in the list. Here, you can give the camera a name.
- This is the most important part: Copy the **TOKEN** for the given camera and save it for later use. - This is the most important part: Copy the **TOKEN** for the given camera and save it for later use.
<img src="doc/connect_1.jpg" width=50% height=50%> <img src="doc/connect_1.jpg" width=50% height=50%>
<img src="doc/connect_2.jpg" width=50% height=50%> <img src="doc/connect_2.jpg" width=50% height=50%>
- Connect the Cam to the **USB Power supply** - Connect the Cam to the **USB Power supply**.
- After a brief moment, the camera will start in a **Wi-Fi AP mode**. Essentially, it starts it's own Wi-Fi network. The network name (SSID) is **ESP32_camera_UID**, where **UID** is the first three numbers from the **MCU ID**. - After a brief moment, the camera will start in a **Wi-Fi AP mode**. Essentially, it starts its own Wi-Fi network. The network name (SSID) is **ESP32_camera_UID**, where **UID** is the first three numbers from the **MCU ID**.
- Find the camera in the Wi-Fi list on your computer. - Find the camera in the Wi-Fi list on your computer.
- Enter the default password: **12345678** and connect to it. After establishing a successful connection, your computer might complain about having "No Internet" on the given network. That is OK. - Enter the default password: **12345678** and connect to it. After establishing a successful connection, your computer might complain about having "No Internet" on the given network. That is OK.
- Open up a new web browser. - Open up a new web browser.
- Open up the **192.168.0.1** IP Address as a webpage. Alternatively, you can also use the http://prusa-esp32cam.local hostname (mDNS) instead of the IP Address. - Enter [http://192.168.0.1](http://192.168.0.1) as the URL. Alternatively, you can also try to use the http://prusa-esp32cam.local hostname (mDNS) instead of the IP address.
- The camera's configuration interface should appear. - The camera's configuration interface should appear.
- In the **Wi-Fi configuration tab** It's necessary to set the SSID of the WiFi network and the password of the WiFi network to which the camera should connect in order to be able to upload images to Prusa Connect. And click to **Save & Connect** button - In the **Wi-Fi configuration tab** it's necessary to set the SSID of the WiFi network and the password of the WiFi network to which the camera should connect in order to be able to upload images to Prusa Connect. Make sure to click the **Save & Connect** button when you're done.
<img src="doc/connect_4.jpg" width=50% height=50%> <img src="doc/connect_4.jpg" width=50% height=50%>
- In the **Camera configuration tab**, insert the **Token** into the marked field. Click **Save**. **This is the Prusa Connect camera token we have obtained in an earlier step.** Wait until the token has been save successfully. - In the **Camera configuration tab**, insert the **Token** you have obtained earlier into the marked field. Click **Save**. Wait until the token has been saved successfully.
<img src="doc/connect_3.jpg" width=50% height=50%> <img src="doc/connect_3.jpg" width=50% height=50%>
- Since we're in the camera configuration tab already, we can set up the image options: In this same tab you should also configure a few image settings:
- Set up the **resolution**. This will improve the image quality significantly, as the resolution is set to the lowest possible by default. - Set up the **resolution**. This will improve the image quality significantly, as the resolution is set to the lowest possible by default.
- Set up the **Trigger interval** and click **Save**. - Set up the **Trigger interval** and click **Save**.
- Clicking **Refresh snapshot** will refresh the image you see on the page. - Clicking **Refresh snapshot** will refresh the image you see on the page.
- We should now have completed setting up the camera. - We should now have completed setting up the camera.
While we are on the ESP camera's configuration page, let's take a quick look at the other options it offers. While we are on the ESP camera's configuration page, let's take a quick look at the other options it offers:
- Camera configuration tab contain - Camera configuration tab contains
- Camera cip settings - Camera cip settings
- Authentication token setting - Authentication token setting
- Camera flash settings - Camera flash settings
- Wi-Fi configuration tab contain - Wi-Fi configuration tab contains
- Setting the wifi network to which the camera can connect - Setting the wifi network to which the camera can connect
- The possibility of turning off the service AP - The possibility of turning off the service AP
- Option to set static IP addresses for WiFi networks to which the camera connects - Option to set static IP addresses for WiFi networks to which the camera connects
@ -131,7 +131,7 @@ While we are on the ESP camera's configuration page, let's take a quick look at
- For a manual firmware update, select the firmware file **ESP32_PrusaConnectCam.ino.bin** and click **Upload file & Update**. Afterwards, reboot the camera. - For a manual firmware update, select the firmware file **ESP32_PrusaConnectCam.ino.bin** and click **Upload file & Update**. Afterwards, reboot the camera.
- Update from cloud. To check for firmware updates, select **Check Update from cloud**. If a newer version is available, click **Update from cloud**. Note that the camera has to be connected to the Internet, before using these functions. - Update from cloud. To check for firmware updates, select **Check Update from cloud**. If a newer version is available, click **Update from cloud**. Note that the camera has to be connected to the Internet, before using these functions.
- Setting **log level** and getting logs from the camera. To get the logs, it is necessary to have a micro SD card formatted to **FAT32** inserted in the camera! - Setting **log level** and getting logs from the camera. To get the logs, it is necessary to have a micro SD card formatted to **FAT32** inserted in the camera!
- Check the status of uploading the image to Prusa Connect using the **PrusaConnect Status:** variable - Check the status of uploading the image to Prusa Connect using the **PrusaConnect Status:** variable.
**Interesting improvements.** There is a protective film on the camera module. The protective film needs to be removed from the lens. **Interesting improvements.** There is a protective film on the camera module. The protective film needs to be removed from the lens.
@ -144,38 +144,37 @@ The second problem is that the camera module is not usually attached to the micr
<a name="service_ap"></a> <a name="service_ap"></a>
## Service AP ## Service AP
After powering on and booting up the camera, it enters **AP mode**, which serves as a configuration mode for the camera. Essentially, it starts its own Wi-Fi network. The network name (SSID) is **ESP32_camera_UID**, where **UID** is the first three numbers from the **MCU ID**, serving as a unique identifier for the camera. The password for connecting to the AP is **12345678**. The camera's IP address is **192.168.0.1**. To configure the camera via **AP mode**, you need to connect to this IP address using a web browser: **http://192.168.0.1**. Alternatively, you can also use the **http://prusa-esp32cam.local** hostname (**mDNS**) instead of the IP Address. After powering on and booting up the camera, it enters **AP mode**, which serves as a configuration mode for the camera. Essentially, it starts its own Wi-Fi network. The network name (SSID) is **ESP32_camera_UID**, where **UID** is the first three numbers from the **MCU ID**, serving as a unique identifier for the camera. The password for connecting to the AP is **12345678**. The camera's IP address is **192.168.0.1**. To configure the camera via **AP mode**, you need to connect to this IP address using a web browser: **http://192.168.0.1**. Alternatively, you can also use the **http://prusa-esp32cam.local** hostname (**mDNS**) instead of the IP address.
After establishing a successful connection, your computer might display a "**No Internet**" warning for the given network. **This is normal**. After establishing a successful connection, your computer might display a "**No Internet**" warning for the given network. **This is normal**.
If you have set up a Wi-Fi network name (SSID) and password in the camera for it to connect to, then upon powering on, the camera will automatically connect to the configured Wi-Fi network and simultaneously activate AP mode for **5 minutes**. AP mode is always enabled after powering on and booting up the camera for **5 minutes**. The service Wi-Fi AP is **automatically deactivates** itself after **5 minutes** following each camera startup if no device is connected to the camera. If you have set up a Wi-Fi network name (SSID) and password in the camera for it to connect to, then upon powering on, the camera will automatically connect to the configured Wi-Fi network and simultaneously activate AP mode for **5 minutes**. AP mode is always enabled after powering on and booting up the camera for **5 minutes**. The service Wi-Fi AP **automatically deactivates** itself after **5 minutes** following each camera startup if no device is connected to the camera.
Service AP is for for the first camera configuration. If the camera is connected to a WiFi network, it is possible to configure it from the local network. Service AP is for the first camera configuration. If the camera is connected to a WiFi network, it is possible to configure it from the local network.
<a name="factory_cfg"></a> <a name="factory_cfg"></a>
## How to reset configuration to factory settings ## How to reset configuration to factory settings
Each version of the [supported board](#supported_boards) uses a different pin for camera reset. Therefore, it is necessary to refer to the documentation for the specific board to determine which pin is used for reset camera configuration to factory configuration. Each version of the [supported boards](#supported_boards) uses a different pin for camera reset. Therefore, it is necessary to refer to the documentation of the specific board to determine which pin is used to reset the camera configuration to factory defaults.
The procedure is always the same: The procedure is the same for each board:
- Ground the pin for camera reset configuration. - Ground the pin for camera reset configuration.
- Connect the power supply. - Connect the power supply.
- Wait for 10 seconds. - Wait for 10 seconds.
- An LED will start blinking (refer to the board's documentation). - An LED will start blinking (refer to the board's documentation).
- Disconnect the ground from the camera reset configuration pin. - Disconnect the ground from the camera reset configuration pin.
- The LED will stop blinking. - The LED will stop blinking.
- The camera configuration will be restored to factory settings. - The camera configuration will be reset to factory defaults.
<a name="status_led"></a> <a name="status_led"></a>
## Status LED ## Status LED
On the board, there is a status LED that provides a visual indicator of the module's current status On the board, there is a status LED that provides a visual indicator of the module's current status through blinking at defined intervals. Each [supported board](#supported_boards) has the STATUS LED located in a different place. It is necessary to refer to the documentation to locate the STATUS LED on the board.
through blinking at defined intervals. Each [supported board](#supported_boards) has the STATUS LED located in a different place. It is necessary to refer to the documentation to locate the STATUS LED on the board.
Upon module activation, the LED illuminates. After processor initialization, the LED exhibits different blinking intervals based on the current mode of the module Upon module activation, the LED illuminates. After processor initialization, the LED exhibits different blinking intervals based on the current mode of the module:
- **Service AP Mode only:** The LED blinks every **400 ms**, indicating the module's availability in service AP mode. - **Service AP Mode only:** The LED blinks every **400 ms**, indicating the module's availability in service AP mode.
- **Connecting to WiFi AP:** While connecting to a WiFi Access Point, the LED blinks at intervals of **800 ms**. - **Connecting to WiFi AP:** While connecting to a WiFi Access Point, the LED blinks at an interval of **800 ms**.
- **Connected to WiFi Network:** Upon successful connection to a WiFi network, the LED blinks at intervals of **4000 ms**, signaling a stable connection. - **Connected to WiFi Network:** Upon successful connection to a WiFi network, the LED blinks at an interval of **4000 ms**, signaling a stable connection.
- **Problematic State:** If an issue or error occurs, the LED accelerates its blinking to every **100 ms**. - **Problematic State:** If an issue or error occurs, the LED accelerates its blinking to every **100 ms**.
The approximate boot time of the device is 15-20 seconds. The approximate boot time of the device is 15-20 seconds.
@ -183,14 +182,14 @@ The approximate boot time of the device is 15-20 seconds.
<a name="logs"></a> <a name="logs"></a>
## Debug logs ## Debug logs
It is possible to save debug logs to a microSD card, but the card must be formatted to FAT32. Currently, the maximum tested capacity for a microSD card is 16GB. If a microSD card is inserted into the camera, it is necessary to reboot the camera. When a microSD card is inserted into the camera before boot, logging to the microSD card is automatically enabled. If no microSD card is inserted, the saving of debug logs to the microSD card is automatically disabled. Enabling the saving of debug logs to a microSD card is only possible during camera boot, so it is necessary to restart the camera after inserting the microSD card. Debug logs are saved as plain text in the file Syslog.log It is possible to save debug logs to a microSD card, but the card must be formatted to FAT32. Currently, the maximum tested capacity for a microSD card is 16GB. If a microSD card is inserted into the camera, it is necessary to reboot the camera. When a microSD card is inserted into the camera before boot, logging to the microSD card is automatically enabled. If no microSD card is inserted, logging to the microSD card is automatically disabled. Enabling the saving of debug logs to a microSD card is only possible during camera boot, so it is necessary to restart the camera after inserting the microSD card. Debug logs are saved as plain text in the file `SysLog.log`.
<a name="serial_cfg"></a> <a name="serial_cfg"></a>
## Serial console configuration ## Serial console configuration
Currently, it is possible to set the basic camera configuration using the serial console. Baud speed for communication with MCU is **115200 8N1** It is possible to set the basic camera configuration using the serial console. Serial port settings for communication with the MCU need to be set to **115200 8N1**.
Commands for configuration have simple syntax Commands for configuration have a simple syntax:
| command | separator | variable | termination | line terminator | | command | separator | variable | termination | line terminator |
|--------------|-----------|-----------|-------------|--------------------------| |--------------|-----------|-----------|-------------|--------------------------|
@ -206,16 +205,16 @@ Currently, available commands are listed in the table below:
| mcureboot | Rebooting the MCU | | mcureboot | Rebooting the MCU |
| commandslist | Listing currently supported commands via serial console | | commandslist | Listing currently supported commands via serial console |
| getwifimode | Print current WiFi mode. STA/AP/AP+STA | | getwifimode | Print current WiFi mode. STA/AP/AP+STA |
| getwifistastatus | Print WiFi STA status. Connected/Disconnected/Connecting.... | | getwifistastatus | Print WiFi STA status. Connected/Disconnected/Connecting... |
| getwifistaip | Print IP address for WiFi STA | | getwifistaip | Print IP address for WiFi STA |
| getserviceapssid | Print service AP SSID name | | getserviceapssid | Print service AP SSID name |
| setauthtoken | Set authentication token for Prusa Connect | | setauthtoken | Set authentication token for Prusa Connect |
| otaupdate | Start OTA update process | | otaupdate | Start OTA update process |
| resolution | Set photo resolution | | resolution | Set photo resolution |
| photoquality | Set photo quality | | photoquality | Set photo quality |
| setflash | enable/disable LED flash | | setflash | Enable/disable LED flash |
| setlight | enable/disable LED light | | setlight | Enable/disable LED light |
| loglevel | set log level. 0=Error, 1=Warning, 2=Info, 3=Verbose | | loglevel | Set log level. 0=Error, 1=Warning, 2=Info, 3=Verbose |
The standard command sequence for camera basic settings is The standard command sequence for camera basic settings is
@ -228,7 +227,7 @@ The standard command sequence for camera basic settings is
<a name="rest"></a> <a name="rest"></a>
## WEB API ## WEB API
The camera have a WEB API, allowing several operations to be performed through the web interface. The camera offers a web API, allowing several operations to be performed through the web interface:
| Command | Description | | Command | Description |
|---------------------------|--------------------------------------------------| |---------------------------|--------------------------------------------------|
@ -247,12 +246,12 @@ The camera have a WEB API, allowing several operations to be performed through t
<a name="stream"></a> <a name="stream"></a>
## Video stream ## Video stream
The video stream is available on the WEB page **http://IP/stream.mjpg** The video stream is available at **http://IP/stream.mjpg**.
<a name="man_focus"></a> <a name="man_focus"></a>
## Manual camera focus ## Manual camera focus
Usually, the camera module is properly focused. However, the camera module can be manually focused. There are several types of lenses for camera modules. I have created several [Tools](https://www.printables.com/cs/model/877739-esp32-cam-ov2640-focus-adjustment-wrench) for manually focusing the camera module. Usually, the camera module is properly focused. However, the camera module can be manually focused. There are several types of lenses for camera modules. I have created several [tools](https://www.printables.com/cs/model/877739-esp32-cam-ov2640-focus-adjustment-wrench) for manually focusing the camera module.
<img src="doc/focus_2.jpg" width=40% height=40%> <img src="doc/focus_2.jpg" width=40% height=40%>
@ -263,11 +262,11 @@ First, it is necessary to hold the camera with a holder and then put the wrench
<a name="ext_temp"></a> <a name="ext_temp"></a>
## External temperature sensor ## External temperature sensor
The software supports an external temperature sensor **DHT22** or **DHT11**. The sensor needs to be connected according to the manual for the specific version of the board. The temperature and humidity are automatically read every 30 seconds after the enable sensor. The software supports an external temperature sensor **DHT22** or **DHT11**. The sensor needs to be connected according to the manual for the specific version of the board. The temperature and humidity are automatically read every 30 seconds once the sensor has been enabled.
<img src="doc/Sensori-DHT11-e-DHT22.jpg" width=40% height=40%> <img src="doc/Sensori-DHT11-e-DHT22.jpg" width=40% height=40%>
Information about sensor Information about sensors:
| | DHT11 | DHT22 | | | DHT11 | DHT22 |
|-------------------|--------------|------------------| |-------------------|--------------|------------------|
@ -277,7 +276,7 @@ Information about sensor
| Humidity range | 20-80% / 5% | 0-100% / 2-5% | | Humidity range | 20-80% / 5% | 0-100% / 2-5% |
| Sampling rate | 1Hz | 0.5Hz | | Sampling rate | 1Hz | 0.5Hz |
It is necessary to use the **module**, **not the sensor**! The module with the sensor has a **4.7Kohm** resistor soldered onto the PCB, which is necessary for the proper functioning of the **one-wire bus**. If you use the sensor, it is necessary to connect a 4.7K ohm resistor to the one-wire bus as shown in the schematic below. **The module must be powered with 3.3V VCC, otherwise, it may damage the camera board.** It is necessary to use the **module**, **not the sensor**! The module with the sensor has a **4.7kOhm** resistor soldered onto the PCB, which is necessary for the **one-wire bus** to operate properly. If you use the sensor, it is necessary to connect a 4.7kOhm resistor to the one-wire bus as shown in the schematic below. **The module must be powered with 3.3V VCC, otherwise it may damage the camera board**.
Here is a typical schematic for the DHT22 or DHT11 sensor: Here is a typical schematic for the DHT22 or DHT11 sensor:
@ -287,6 +286,6 @@ Here is a typical schematic for the DHT22 or DHT11 sensor:
## Troubleshooting ## Troubleshooting
- A potential issue may arise with connecting to the service AP. If the connection fails and an authentication error occurs, it is necessary to clear the FLASH memory of the processor, and FLASH FW again. This can be done either through the Arduino IDE or using official software. - A potential issue may arise with connecting to the service AP. If the connection fails and an authentication error occurs, it is necessary to clear the FLASH memory of the processor, and FLASH FW again. This can be done either through the Arduino IDE or using official software.
- After the initial firmware upload to the new camera, there may be an issue when connecting to the IP address, where the camera prompts for a username and password to access the web page. Even when entering the username "admin" and the password "admin", the login still doesn't work. In such cases, it's necessary to reset the camera configuration to factory settings. The procedure is outlined in the readme file [here](#factory_cfg) - After the initial firmware upload to a new camera, there may be an issue when connecting to the IP address, where the camera prompts for a username and password to access the web page. Even when entering the username "admin" and the password "admin", the login still doesn't work. In such cases, it's necessary to reset the camera configuration to factory settings. The procedure is outlined in the readme file [here](#factory_cfg).
- If you are getting a 400 return code from Prusa Connect, then you need to create a new other camera in Prusa Connect and enter a new token into the ESP32 camera. - If you are getting a 400 return code from Prusa Connect, then you need to create another camera in Prusa Connect and enter a new token into the ESP32 camera.
- If you are getting a 404 return code from Prusa Connect, it may indicate that the printer is powered off. The printer must be powered on in order for images to be uploaded. - If you are getting a 404 return code from Prusa Connect, it may indicate that the printer is powered off. The printer must be powered on in order for images to be uploaded.