Psram id read error

Answers checklist. I have read the documentation ESP-IDF Programming Guide and the issue is not addressed there. I have updated my IDF branch (master or release) to the latest version and checked t...

Flash tool for octal worked. I had to use the command like this:
python -m espefuse -p «COMX» —do-not-confirm burn_efuse FLASH_TYPE 0

Anyway, that did not resolve my issue.
My current worry is I am not able to run both PSRAM and SPI Flash at 120Mhz (QIO). Both are in quad mode.
According to the documentation, I should be able to do it…
Here is the output:

ESP-ROM:esp32s3-20210327
Build:Mar 27 2021
rst:0x1 (POWERON),boot:0x8 (SPI_FAST_FLASH_BOOT)
SPIWP:0xee
mode:DIO, clock div:1
load:0x3fce3808,len:0x2374
load:0x403c9700,len:0x10a8
load:0x403cc700,len:0x35c8
entry 0x403c99e4
I (27) boot: ESP-IDF v4.4.2-dirty 2nd stage bootloader
I (27) boot: compile time 15:40:01
D (28) bootloader_flash: non-XMC chip detected by SFDP Read (C8), skip.
D (33) bootloader_flash: mmu set block paddr=0x00000000 (was 0xffffffff)
I (39) boot: chip revision: 0
D (43) qio_mode: Probing for QIO mode enable…
D (48) qio_mode: Raw SPI flash chip id 0xc84018
D (52) qio_mode: Manufacturer ID 0xc8 chip ID 0x4018
I (57) qio_mode: Enabling default flash chip QIO
D (63) qio_mode: Initial flash chip status 0x2
D (67) qio_mode: QIO mode already enabled in flash
D (72) qio_mode: Enabling QIO mode…
D (76) boot.esp32s3: magic e9
D (79) boot.esp32s3: segments 03
D (82) boot.esp32s3: spi_mode 02
D (85) boot.esp32s3: spi_speed 0f
D (89) boot.esp32s3: spi_size 04
I (92) boot.esp32s3: Boot SPI Speed : 80MHz
I (97) boot.esp32s3: SPI Mode : QIO
I (101) boot.esp32s3: SPI Flash Size : 16MB
D (106) boot: Enabling RTCWDT(9000 ms)
I (110) boot: Enabling RNG early entropy source…
D (116) bootloader_flash: mmu set paddr=00000000 count=1 size=c00 src_addr=8000 src_addr_aligned=0
D (125) boot: mapped partition table 0x8000 at 0x3c008000
D (130) flash_parts: partition table verified, 5 entries
I (135) boot: Partition Table:
I (139) boot: ## Label Usage Type ST Offset Length
D (147) boot: load partition table entry 0x3c008000
D (152) boot: type=1 subtype=2
I (155) boot: 0 nvs WiFi data 01 02 00009000 00006000
D (162) boot: load partition table entry 0x3c008020
D (167) boot: type=1 subtype=1
I (170) boot: 1 phy_init RF data 01 01 0000f000 00001000
D (178) boot: load partition table entry 0x3c008040
D (183) boot: type=0 subtype=0
I (186) boot: 2 factory factory app 00 00 00010000 00100000
D (193) boot: load partition table entry 0x3c008060
D (198) boot: type=1 subtype=82
I (202) boot: 3 littlefs Unknown data 01 82 00110000 00400000
I (209) boot: End of partition table
D (213) boot: Trying partition index -1 offs 0x10000 size 0x100000
D (220) esp_image: reading image header @ 0x10000
D (224) bootloader_flash: mmu set block paddr=0x00010000 (was 0xffffffff)
D (231) esp_image: image header: 0xe9 0x06 0x02 0x04 4037555c
V (237) esp_image: loading segment header 0 at offset 0x10018
V (243) esp_image: segment data length 0x2bc40 data starts 0x10020
V (249) esp_image: segment 0 map_segment 1 segment_data_offs 0x10020 load_addr 0x3c0b0020
I (257) esp_image: segment 0: paddr=00010020 vaddr=3c0b0020 size=2bc40h (179264) map
D (266) esp_image: free data page_count 0x0000003f
D (271) bootloader_flash: mmu set paddr=00010000 count=3 size=2bc40 src_addr=10020 src_addr_aligned=10000
V (308) esp_image: loading segment header 1 at offset 0x3bc60
D (308) bootloader_flash: mmu set block paddr=0x00030000 (was 0xffffffff)
V (309) esp_image: segment data length 0x43b0 data starts 0x3bc68
V (315) esp_image: segment 1 map_segment 0 segment_data_offs 0x3bc68 load_addr 0x3fc985c0
I (323) esp_image: segment 1: paddr=0003bc68 vaddr=3fc985c0 size=043b0h ( 17328) load
D (332) esp_image: free data page_count 0x0000003f
D (337) bootloader_flash: mmu set paddr=00030000 count=2 size=43b0 src_addr=3bc68 src_addr_aligned=30000
V (349) esp_image: loading segment header 2 at offset 0x40018
D (352) bootloader_flash: mmu set block paddr=0x00040000 (was 0xffffffff)
V (359) esp_image: segment data length 0xa60c4 data starts 0x40020
V (365) esp_image: segment 2 map_segment 1 segment_data_offs 0x40020 load_addr 0x42000020
0x42000020: _stext at ??:?

I (374) esp_image: segment 2: paddr=00040020 vaddr=42000020 size=a60c4h (680132) map
D (382) esp_image: free data page_count 0x0000003f
D (387) bootloader_flash: mmu set paddr=00040000 count=11 size=a60c4 src_addr=40020 src_addr_aligned=40000
V (500) esp_image: loading segment header 3 at offset 0xe60e4
D (500) bootloader_flash: mmu set block paddr=0x000e0000 (was 0xffffffff)
V (501) esp_image: segment data length 0x10e8 data starts 0xe60ec
V (507) esp_image: segment 3 map_segment 0 segment_data_offs 0xe60ec load_addr 0x3fc9c970
I (515) esp_image: segment 3: paddr=000e60ec vaddr=3fc9c970 size=010e8h ( 4328) load
D (524) esp_image: free data page_count 0x0000003f
D (529) bootloader_flash: mmu set paddr=000e0000 count=1 size=10e8 src_addr=e60ec src_addr_aligned=e0000
V (539) esp_image: loading segment header 4 at offset 0xe71d4
D (544) bootloader_flash: mmu set block paddr=0x000e0000 (was 0xffffffff)
V (551) esp_image: segment data length 0x145b4 data starts 0xe71dc
V (557) esp_image: segment 4 map_segment 0 segment_data_offs 0xe71dc load_addr 0x40374000
0x40374000: _WindowOverflow4 at C:/ESP/esp-idf/esp-idf/components/freertos/port/xtensa/xtensa_vectors.S:1736

I (566) esp_image: segment 4: paddr=000e71dc vaddr=40374000 size=145b4h ( 83380) load
D (574) esp_image: free data page_count 0x0000003f
D (579) bootloader_flash: mmu set paddr=000e0000 count=2 size=145b4 src_addr=e71dc src_addr_aligned=e0000
V (605) esp_image: loading segment header 5 at offset 0xfb790
D (605) bootloader_flash: mmu set block paddr=0x000f0000 (was 0xffffffff)
V (606) esp_image: segment data length 0x10 data starts 0xfb798
V (612) esp_image: segment 5 map_segment 0 segment_data_offs 0xfb798 load_addr 0x50000000
I (620) esp_image: segment 5: paddr=000fb798 vaddr=50000000 size=00010h ( 16) load
D (629) esp_image: free data page_count 0x0000003f
D (634) bootloader_flash: mmu set paddr=000f0000 count=1 size=10 src_addr=fb798 src_addr_aligned=f0000
V (643) esp_image: image start 0x00010000 end of last section 0x000fb7a8
D (650) bootloader_flash: mmu set block paddr=0x000f0000 (was 0xffffffff)
D (657) boot: Calculated hash: 6f1c6089fc4599bbf30a9d1eb6f13a95f134590b0aed3f86ff92baddf9cf399f
I (674) boot: Loaded app from partition at offset 0x10000
I (674) boot: Disabling RNG early entropy source…
D (677) boot: Mapping segment 0 as DROM
D (681) boot: Mapping segment 2 as IROM
D (685) boot: calling set_cache_and_start_app
D (689) boot: configure drom and irom and start
V (694) boot: d mmu set paddr=00010000 vaddr=3c0b0000 size=179264 n=3
V (700) boot: rc=0
V (702) boot: i mmu set paddr=00040000 vaddr=42000000 size=680132 n=11
V (709) boot: rc=0
D (711) boot: start: 0x4037555c
0x4037555c: call_start_cpu0 at C:/ESP/esp-idf/esp-idf/components/esp_system/port/cpu_start.c:267

W (726) FLASH: DO NOT USE FOR MASS PRODUCTION! Timing parameters will be updated in future IDF version.
E (726) psram: PSRAM ID read error: 0x00ffffff
E (730) cpu_start: Failed to init external RAM!

abort() was called at PC 0x4037563c on core 0
0x4037563c: call_start_cpu0 at C:/ESP/esp-idf/esp-idf/components/esp_system/port/cpu_start.c:414 (discriminator 3)

Backtrace:0x40375e36:0x3fceb2500x4037d98d:0x3fceb270 0x4038584e:0x3fceb290 0x4037563c:0x3fceb300 0x403cdadc:0x3fceb330 0x403ce03d:0x3fceb380 0x403c9a4d:0x3fceb4b0 0x40045c01:0x3fceb570 |<-CORRUPTED
0x40375e36: panic_abort at C:/ESP/esp-idf/esp-idf/components/esp_system/panic.c:402

0x4037d98d: esp_system_abort at C:/ESP/esp-idf/esp-idf/components/esp_system/esp_system.c:128

0x4038584e: abort at C:/ESP/esp-idf/esp-idf/components/newlib/abort.c:46

0x4037563c: call_start_cpu0 at C:/ESP/esp-idf/esp-idf/components/esp_system/port/cpu_start.c:414 (discriminator 3)

ELF file SHA256: c103d478caed5bc1

CPU halted.

Hello everybody,

I have connected the PSRAM64H to my ESP32-WROOM-32U as shown in the below schematic.

Selection_136.png
Selection_136.png (48.69 KiB) Viewed 12250 times

Unfortunately, when I try to run the «himem» example it fails with the following stacktrace:

Code: Select all

Rebooting...
ets Jul 29 2019 12:21:46

rst:0xc (SW_CPU_RESET),boot:0x3f (SPI_FAST_FLASH_BOOT)
configsip: 0, SPIWP:0xee
clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00
mode:DIO, clock div:2
load:0x3fff0030,len:4
load:0x3fff0034,len:7176
load:0x40078000,len:13664
ho 0 tail 12 room 4
load:0x40080400,len:4632
0x40080400: _init at ??:?

entry 0x400806f4
I (31) boot: ESP-IDF v4.2.1 2nd stage bootloader
I (31) boot: compile time 19:14:30
I (31) boot: chip revision: 3
I (34) boot_comm: chip revision: 3, min. bootloader chip revision: 0
I (41) boot.esp32: SPI Speed      : 40MHz
I (46) boot.esp32: SPI Mode       : DIO
I (50) boot.esp32: SPI Flash Size : 2MB
I (55) boot: Enabling RNG early entropy source...
I (60) boot: Partition Table:
I (64) boot: ## Label            Usage          Type ST Offset   Length
I (71) boot:  0 nvs              WiFi data        01 02 00009000 00006000
I (78) boot:  1 phy_init         RF data          01 01 0000f000 00001000
I (86) boot:  2 factory          factory app      00 00 00010000 00100000
I (93) boot: End of partition table
I (97) boot_comm: chip revision: 3, min. application chip revision: 0
I (105) esp_image: segment 0: paddr=0x00010020 vaddr=0x3f400020 size=0x0aca4 ( 44196) map
I (132) esp_image: segment 1: paddr=0x0001accc vaddr=0x3ffb0000 size=0x02104 (  8452) load
I (136) esp_image: segment 2: paddr=0x0001cdd8 vaddr=0x40080000 size=0x00404 (  1028) load
0x40080000: _WindowOverflow4 at /media/bernhard/Data/Projects/esp-idf/components/freertos/xtensa/xtensa_vectors.S:1730

I (139) esp_image: segment 3: paddr=0x0001d1e4 vaddr=0x40080404 size=0x02e34 ( 11828) load
I (153) esp_image: segment 4: paddr=0x00020020 vaddr=0x400d0020 size=0x17dec ( 97772) map
0x400d0020: _stext at ??:?

I (197) esp_image: segment 5: paddr=0x00037e14 vaddr=0x40083238 size=0x0a994 ( 43412) load
0x40083238: psram_cache_init at /media/bernhard/Data/Projects/esp-idf/components/esp32/spiram_psram.c:1074

I (226) boot: Loaded app from partition at offset 0x10000
I (226) boot: Disabling RNG early entropy source...
I (227) psram: This chip is ESP32-D0WD
E (232) psram: PSRAM ID read error: 0xffffffff
E (236) cpu_start: Failed to init external RAM!
Re-enable cpu cache.

abort() was called at PC 0x40081a15 on core 0
0x40081a15: call_start_cpu0 at /media/bernhard/Data/Projects/esp-idf/components/esp32/cpu_start.c:191 (discriminator 1)


Backtrace:0x40087622:0x3ffe3b90 0x40087ced:0x3ffe3bb0 0x4008b586:0x3ffe3bd0 0x40081a15:0x3ffe3c40 0x40079082:0x3ffe3c80 |<-CORRUPTED
0x40087622: panic_abort at /media/bernhard/Data/Projects/esp-idf/components/esp_system/panic.c:330

0x40087ced: esp_system_abort at /media/bernhard/Data/Projects/esp-idf/components/esp_system/system_api.c:106

0x4008b586: abort at /media/bernhard/Data/Projects/esp-idf/components/newlib/abort.c:46

0x40081a15: call_start_cpu0 at /media/bernhard/Data/Projects/esp-idf/components/esp32/cpu_start.c:191 (discriminator 1)



ELF file SHA256: 0fdb4bded33b4c0e

I have a pullup on GPIO12, so it will be pulled high during boot. But I’ve set the flash voltage to 3.3V with «espefuse.py set_flash_voltage 3.3V». So I think this should be fine?

Does anyone have an idea what I am doing wrong here?

Thanks a lot!

Have a nice day,
Bernhard

I recently purchased a couple ESP-32 cam modules of aliexpress bundled with a module to connect over USB.

When first plugging it in, the preloaded program seemed to indicate nominal function (although a couple characters didn’t work), with this log upon bootup (and a couple things about wifi afterwards) :

 16:27:13.303 -> [0;32mI (29) boot: ESP-IDF v3.0.3 2nd stage bootloader[0m
16:27:13.303 -> [0;32mI (29) boot: compile time 08:53:32[0m
16:27:13.303 -> [0;32mI (29) boot: Enabling RNG early entropy source...[0m
16:27:13.303 -> [0;32mI (33) boot: SPI Speed      : 40MHz[0m
16:27:13.303 -> [0;32mI (37) boot: SPI Mode       : DIO[0m
16:27:13.320 -> [0;32mI (41) boot: SPI Flash Size : 4MB[0m
16:27:13.320 -> [0;32mI (45) boot: Partition Table:[0m
16:27:13.320 -> [0;32mI (49) boot: ## Label            Usage          Type ST Offset   Length[0m
16:27:13.320 -> [0;32mI (56) boot:  0 phy_init         RF data          01 01 0000f000 00001000[0m
16:27:13.368 -> [0;32mI (64) boot:  1 otadata          OTA data         01 00 00010000 00002000[0m
16:27:13.368 -> [0;32mI (71) boot:  2 nvs              WiFi data        01 02 00012000 0000e000[0m
16:27:13.368 -> [0;32mI (79) boot:  3 at_customize     unknown          40 00 00020000 000e0000[0m
16:27:13.368 -> [0;32mI (86) boot:  4 ota_0            OTA app          00 10 00100000 00180000[0m
16:27:13.368 -> [0;32mI (93) boot:  5 ota_1            OTA app          00 11 00280000 00180000[0m
16:27:13.368 -> [0;32mI (101) boot: End of partition table[0m
16:27:13.368 -> [0;32mI (105) boot: No factory image, trying OTA 0[0m
16:27:13.416 -> [0;32mI (110) esp_image: segment 0: paddr=0x00100020 vaddr=0x3f400020 size=0x200f4 (131316) map[0m
16:27:13.416 -> [0;32mI (165) esp_image: segment 1: paddr=0x0012011c vaddr=0x3ffc0000 size=0x02d6c ( 11628) load[0m
16:27:13.464 -> [0;32mI (170) esp_image: segment 2: paddr=0x00122e90 vaddr=0x40080000 size=0x00400 (  1024) load[0m
16:27:13.464 -> [0;32mI (172) esp_image: segment 3: paddr=0x00123298 vaddr=0x40080400 size=0x0cd78 ( 52600) load[0m
16:27:13.464 -> [0;32mI (203) esp_image: segment 4: paddr=0x00130018 vaddr=0x400d0018 size=0xdf390 (914320) map[0m
16:27:13.796 -> [0;32mI (523) esp_image: segment 5: paddr=0x0020f3b0 vaddr=0x4008d178 size=0x01f14 (  7956) load[0m
16:27:13.796 -> [0;32mI (527) esp_image: segment 6: paddr=0x002112cc vaddr=0x400c0000 size=0x00064 (   100) load[0m
16:27:13.796 -> [0;32mI (539) boot: Loaded app from partition at offset 0x100000[0m
16:27:13.796 -> [0;32mI (539) boot: Disabling RNG early entropy source...[0m       

So I decided to upload the CameraWebServer example on it, and no matter how I configured it (AI Thinker or wrover, Flash Frequency, Flash Mode, Partition, I tried practically all the combinations), I get the same sort of error :

E (235) psram: PSRAM ID read error: 0xffffffff

Typically followed by a Camera config failed or Camera probe failed or Camera init failed error (or combination thereof)

I also tried changing the flash size to 8MB (the aliexpress page, for some reason, lists that value as opposed to 4 anywhere else), and it pulls back an error saying that it only detects 4096kb of spi_flash.

Basic programs like a blinking led loop work, but the serial monitor reports the same PSRAM errors anyway, and writing text on serial messes the shit out of the output on startup too.

I know enough to gather that this is a problem with accessing the memory spaces, but I am clueless as to how to solve it. Both of my modules, one unopened until this afternoon, are coming back with the exact same issue. Ideas?

After releasing some projects with the ESP32-CAM, some readers reported issues when trying to use the ESP32-CAM. This guide is a compilation with the most common errors when using the ESP32-CAM and how to fix them.

ESP32-CAM Troubleshooting Guide: Most Common Problems Fixed

We’ve released the following projects with the ESP32-CAM:

  • Video Streaming, Face Detection and Face Recognition
  • ESP32 IP CAM – Video Streaming (Home Assistant and Node-RED)
  • Take Photo and Save to MicroSD Card
  • PIR Motion Detector with Photo Capture
  • Take Photo, Save to SPIFFS and Display in Web Server

Note: some of our readers reported errors when trying to follow the ESP32-CAM project with Home Assistant. We’ve modified some lines on the code, so most of the problems related with that project should be fixed.

Please note that we couldn’t reproduce some of the errors on our end. However, we’ve gathered all the information given by our readers to get answers to the most common issues.

If you have a different problem or a different solution to these issues, you can share your tips by writing a comment below.

Most common errors:

  1. Failed to connect to ESP32: Timed out waiting for packet header
  2. Camera init failed with error 0x20001 or similar
  3. Brownout detector or Guru meditation error
  4. Sketch too big error – Wrong partition scheme selected
  5. Board at COMX is not available – COM Port Not Selected
  6. Psram error: GPIO isr service is not installed
  7. Weak Wi-Fi Signal
  8. No IP Address in Arduino IDE Serial Monitor
  9. Can’t open web server
  10. The image lags/shows lots of latency
  11. esp_camera_fb_get(): Failed to get the frame on time!

1. Failed to connect to ESP32: Timed out waiting for packet header

ESP32-CAM Failed to connect to ESP32: Timed out waiting for packet header

This error means that the ESP32-CAM is not in flashing mode or it is not connected properly to the FTDI programmer.

Double-check the steps to upload code

Double-check that you’ve followed the exact steps to put your ESP32-CAM in flashing mode. Failing to complete one of the steps may result in that error. Here’s the steps you need to follow:

Connect the ESP32-CAM board to your computer using an FTDI programmer. Follow the next schematic diagram:

Important: GPIO 0 needs to be connected to GND so that you’re able to upload code.

Many FTDI programmers have a jumper that allows you to select 3.3V or 5V. Make sure the jumper is in the right place to select 5V.

Important: GPIO 0 needs to be connected to GND so that you’re able to upload code.

ESP32-CAM FTDI Programmer
GND GND
5V VCC (5V)
U0R TX
U0T RX
GPIO 0 GND

To upload the code, follow the next steps:

1) Go to Tools Board and select AI-Thinker ESP32-CAM.

2) Go to Tools Port and select the COM port the ESP32 is connected to.

3) Then, click the upload button to upload the code.

4) When you start to see these dots on the debugging window as shown below, press the ESP32-CAM on-board RST button.

After a few seconds, the code should be successfully uploaded to your board.

GPIO 0 must be connected to GND

Important: if you can’t upload the code, double-check that GPIO 0 is connected to GND and that you selected the right settings in the Tools menu. You should also press the on-board Reset button to restart your ESP32 in flashing mode. Also, check that you have the FTDI programmer jumper cap set to 5V.

Check the FTDI programmer you are using

One of our readers reported the following: “found out that you can program the board with a USB-to-TTL module model CP2102 and that the CH340 model does NOT work“. This is the FTDI programmer we’re using.

Power the ESP32-CAM with 5V

Some of our readers reported that they could only upload code when the ESP32 was powered with 5V. So, power the ESP32-CAM with 5V.

FTDI Programmer 5V

Measure the output voltage of your FTDI programmer (VCC and GND) using a Multimeter to ensure it’s providing 5V to your ESP32-CAM.

FTDI Programmer output 5V multimeter

2. Camera init failed with error 0x20001 or similar

ESP32-CAM Camera init failed with error 0x20001 or similar

If you get this exact error, it means that your camera OVX is not connected properly to your ESP32 board or you have the wrong pin assignment in the code.

Sometimes, unplugging and plugging the FTDI programmer multiple times or restart the board multiple times, might solve the issue.

Camera not connected properly

The camera has a tiny connector and you must ensure it’s connected in the the right away and with a secure fit, otherwise it will fail to establish a connection.

Wrong pin assignment in the code

When you get this error, it might also mean that you didn’t select the right board in the define section or the pin definition is wrong for your board.

Make sure you select the right camera module in your projects. You just need to uncomment the right camera module and comment all the others:

//#define CAMERA_MODEL_WROVER_KIT
//#define CAMERA_MODEL_M5STACK_PSRAM
#define CAMERA_MODEL_AI_THINKER

In this example, we’re using the CAMERA_MODEL_AI_THINKER, so it’s the one that is enabled. Otherwise, it will fail the pin assignment and the camera will fail to init.

There are many esp32-cam boards being released (“fake boards”) that the wiring between the ESP32 and the OV camera might be different, so selecting the camera module, might not be enough. You might need to check each gpio declaration with your board pinout.

For example, M5Stack board without PSRAM has a different pin assignment than the M5STACK with PSRAM (defined on the code by default). So, you need to change the pin definition in the code accordingly to the board pinout.

Not enough power through USB source

If you’re powering your ESP32 through a USB port on your computer, it might not be supplying enough power.

Faulty FTDI programmer

Some readers also reported this problem was solved by replacing their actual FTDI programmer with this one.

The camera/connector is broken

If you get this error, it might also mean that your camera or the camera ribbon is broken. If that is the case, you may get a new OV2640 camera probe.

3. Brownout detector or Guru meditation error

When you open your Arduino IDE Serial monitor and the error message “Brownout detector was triggered” is constantly being printed over and over again. It means that there’s some sort of hardware problem.

It’s often related to one of the following issues:

  • Poor quality USB cable;
  • USB cable is too long;
  • Board with some defect (bad solder joints);
  • Bad computer USB port;
  • Or not enough power provided by the computer USB port.

Solution: 

  • try a different shorter USB cable (with data wires)
  • use a different computer USB port or use a USB hub with an external power supply
  • some readers reported that when powering the ESP32-CAM with 5V, the issue was fixed.

Also, follow the suggestions described in issue 2.

4. Sketch too big error – Wrong partition scheme selected

ESP32-CAM Sketch too big error Wrong partition scheme selected

When you get the following error:

Sketch too big; see http://www.arduino.cc/en/Guide/Troubleshooting#size for tips on reducing it.
Error compiling for board ESP32 Dev Module.

It means that you haven’t selected the right partition scheme. Make sure you select the right partition scheme. In your Arduino IDE, go to Tools > Partition Scheme, select “Huge APP (3MB No OTA)“.

5. Board at COMX is not available – COM Port Not Selected

ESP32-CAM COM Port Not Selected

If you get the following error or similar:

serial.serialutil.SerialException: could not open port 'COM8': WindowsError(2, 'The system cannot find the file specified.')
Failed to execute script esptool
the selected serial port Failed to execute script esptool
 does not exist or your board is not connected
Board at COM8 is not available

It means that you haven’t selected the COM port in the Tools menu. In your Arduino IDE, go to Tools > Port and select the COM port the ESP32 is connected to.

It might also mean that the ESP32-CAM is not establishing a serial connection with your computer or it is not properly connected to the USB connector.

6. Psram error: GPIO isr service is not installed

ESP32-CAM Psram error GPIO isr service is not installed

You are using a board without PSRAM and you get the following error or similar:

E (161) gpio: gpio_isr_handler_remove(380): GPIO isr service is not installed, call gpio_install_isr_service() first
Camera init failed with error 0x101

when the board was initialized with the following settings:

config.frame_size = FRAMESIZE_UXGA;
config.jpeg_quality = 10;
config.fb_count = 2;

Adding the following fixes the issues (it lowers the image resolution so it won’t need so much space to store images. However, as a result, you cannot get some high resolution formats due to the limited memory):

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;
}

Note: face recognition and detection doesn’t work with boards without PSRAM. However, you can still use all the other functionalities of the board. For example, although you can’t use the face recognition and detection features of this project (ESP32-CAM Video Streaming and Face Recognition with Arduino IDE), you can still play with the example and explore the board features as long as you have the right pin assignment in the code.

7. Weak Wi-Fi Signal

Some readers reported that after powering the ESP32-CAM with 5V, they’ve gotten a more stable Wi-Fi signal. You can read this dedicated guide to learn how to connect an external antenna to the ESP32-CAM and extend Wi-Fi coverage.

The ESP32-CAM has the option to use either the built-in antenna or an external antenna. If your ESP32-CAM AI-Thinker has no Wi-Fi connection or poor connection, it might have the external antenna enabled. If you connect an external antenna to the connector, it should work fine.

Check if the jumper 0K resistor by the antenna connector is in the proper position for the desired antenna. There are 3 little white squares laid out like a “<” with the middle position being common.

ESP32-CAM external and built-in antenna
Photo courtesy of Helmut Schoenborn

The following photo shows a closer look at that area. You can clearly see a small 0K resistor connecting to the built-in antenna.

esp32-cam connected to built-in antenna
Photo courtesy of Helmut Schoenborn

With board turned so the the PCB antenna is up:

  • To use the PCB antenna, the resistor must be on the top position, like this: /
  • For the antenna connector, the resistor must be on the bottom position, like this:

So, to enable the on-board antenna:

  • Unsolder the resistor that goes to the antenna, it’s in this position
  • And solder together the two connections to enable the on-board antenna.

8. No IP Address in Arduino IDE Serial Monitor

f you just see dots printed in the serial monitor (……), it means that your ESP32-CAM is not establishing a Wi-Fi connection with your router.

Double-check your network credentials

You need to make sure that you’ve typed your exact network credentials (SSID and password) in the following variables:

const char* ssid = "REPLACE_WITH_YOUR_SSID";
const char* password = "REPLACE_WITH_YOUR_PASSWORD";

Select the right baud rate in the Arduino IDE Serial Monitor

If you don’t select the right baud rate in the Arduino IDE Serial Monitor, you won’t get your board IP address or you’ll just get garbage on the screen.

Make sure you select the right baud rate. In our examples with the ESP32-CAM, we use 115200 baud rate.

Reset the board multiple times

You might also need to press the ESP32-CAM on-board RESET button multiple times to restart your ESP and print the IP address during boot.

RX and TX swapped

Double-check the connections between your ESP32 board and the FTDI programmer. RX goes to TX and TX goes to RX. If these connections are swapped, the ESP32-CAM is not able to establish a serial communication with your computer.

Wi-Fi Range

If the router is far away from your ESP32 board, it might not be able to catch the Wi-Fi signal. Ensure that your ESP32-CAM is fairly close to your router.

9. Can’t open web server

If the ESP32-CAM is printing the IP address in your Arduino IDE Serial Monitor, but when you try to open the web server in your web browser you see a blank screen, it usually means that you are trying to access the ESP32-CAM web server with multiple web browser tabs.

At the moment, these ESP32-CAM sketches only work with one client connected at a time.

10. The image lags/shows lots of latency

Having some latency is normal for such a small and cheap camera. Some readers have suggested the following to reduce latency:

  • Power the ESP32-CAM with a standalone 5V power supply
  • Reduce the frame size with the following in your code:
    config.frame_size = FRAMESIZE_SVGA or config.frame_size = FRAMESIZE_VGA
  • Use an external antenna.

11. esp_camera_fb_get(): Failed to get the frame on time!

We’ve personally never faced this issue. However, many readers are getting this error with their ESP32-CAM boards.

One of our readers (Fibula) suggested the following to solve this issue:

“Im using the ESP32-CAM Module 2MP OV2640 Camera sensor Module Type-C USB module from Aliexpress. Although not mentioned, It doesn’t have the extra PSRAM the other M5 models do, and the camera has one changed IO pin.

See here: https://github.com/m5stack/m5stack-cam-psram/blob/master/README.md and scroll down to Interface Comparison.

The CameraWebServer Arduino example we’re probably all using doesn’t have this ESP32-CAM model defined.

You need to add it yourself in the main tab add:

#define CAMERA_MODEL_M5STACK_NO_PSRAM

And in the camera_pins.h tab add the following:

#elif defined(CAMERA_MODEL_M5STACK_NO_PSRAM)
#define PWDN_GPIO_NUM -1
#define RESET_GPIO_NUM 15
#define XCLK_GPIO_NUM 27
#define SIOD_GPIO_NUM 25
#define SIOC_GPIO_NUM 23
#define Y9_GPIO_NUM 19
#define Y8_GPIO_NUM 36
#define Y7_GPIO_NUM 18
#define Y6_GPIO_NUM 39
#define Y5_GPIO_NUM 5
#define Y4_GPIO_NUM 34
#define Y3_GPIO_NUM 35
#define Y2_GPIO_NUM 17
#define VSYNC_GPIO_NUM 22
#define HREF_GPIO_NUM 26
#define PCLK_GPIO_NUM 21

And you’re good to go.

Also note that the max resolution of the bare ESP32-CAM Module is XGA 1024×768, I assume also because of the lack of PSRAM. “

We hope this suggestion solves your issue. Let us know in the comments section.

Using larger microSD card sizes

According to he datasheet, the ESP32-CAM should only supports 4GB microSD cards.

However, we’ve tested with 16GB microSD card and it works well.

You might not be able to store more than 4GB, even though you have 16GB. We haven’t tested storing more than 4GB, so we’re not sure about this.

Are these projects compatible with M5Stack board?

Yes, the M5Stack ESP32 board is compatible with out projects. However, you must check your camera pinout to ensure you have the right assignment in the code.

You can check the M5Stack camera connections here.

How to set a fixed the IP Address

To set a static/fixed IP address, you can follow the next tutorial:

  • ESP32 Static/Fixed IP Address

Setting ESP32-CAM as Access Point (AP)

You can set your ESP32-CAM as an Access Point (AP). This means you are able to connect to your ESP32-CAM directly without having to connect to your router. You can use the following code to set your video streaming web server as an Access Point:

/*********
  Rui Santos
  Complete project details at https://RandomNerdTutorials.com/esp32-cam-video-streaming-web-server-camera-home-assistant/
  
  IMPORTANT!!! 
   - Select Board "AI Thinker ESP32-CAM"
   - GPIO 0 must be connected to GND to upload a sketch
   - After connecting GPIO 0 to GND, press the ESP32-CAM on-board RESET button to put your board in flashing mode
  
  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>
#include "esp_timer.h"
#include "img_converters.h"
#include "Arduino.h"
#include "fb_gfx.h"
#include "soc/soc.h" //disable brownout problems
#include "soc/rtc_cntl_reg.h"  //disable brownout problems
#include "esp_http_server.h"

// Replace with your network credentials
const char* ssid     = "ESP32-Access-Point";
const char* password = "123456789";

#define PART_BOUNDARY "123456789000000000000987654321"

// This project was tested with the AI Thinker Model, M5STACK PSRAM Model and M5STACK WITHOUT PSRAM
#define CAMERA_MODEL_AI_THINKER
//#define CAMERA_MODEL_M5STACK_PSRAM
//#define CAMERA_MODEL_M5STACK_WITHOUT_PSRAM

// Not tested with this model
//#define CAMERA_MODEL_WROVER_KIT

#if defined(CAMERA_MODEL_WROVER_KIT)
  #define PWDN_GPIO_NUM    -1
  #define RESET_GPIO_NUM   -1
  #define XCLK_GPIO_NUM    21
  #define SIOD_GPIO_NUM    26
  #define SIOC_GPIO_NUM    27
  
  #define Y9_GPIO_NUM      35
  #define Y8_GPIO_NUM      34
  #define Y7_GPIO_NUM      39
  #define Y6_GPIO_NUM      36
  #define Y5_GPIO_NUM      19
  #define Y4_GPIO_NUM      18
  #define Y3_GPIO_NUM       5
  #define Y2_GPIO_NUM       4
  #define VSYNC_GPIO_NUM   25
  #define HREF_GPIO_NUM    23
  #define PCLK_GPIO_NUM    22

#elif defined(CAMERA_MODEL_M5STACK_PSRAM)
  #define PWDN_GPIO_NUM     -1
  #define RESET_GPIO_NUM    15
  #define XCLK_GPIO_NUM     27
  #define SIOD_GPIO_NUM     25
  #define SIOC_GPIO_NUM     23
  
  #define Y9_GPIO_NUM       19
  #define Y8_GPIO_NUM       36
  #define Y7_GPIO_NUM       18
  #define Y6_GPIO_NUM       39
  #define Y5_GPIO_NUM        5
  #define Y4_GPIO_NUM       34
  #define Y3_GPIO_NUM       35
  #define Y2_GPIO_NUM       32
  #define VSYNC_GPIO_NUM    22
  #define HREF_GPIO_NUM     26
  #define PCLK_GPIO_NUM     21

#elif defined(CAMERA_MODEL_M5STACK_WITHOUT_PSRAM)
  #define PWDN_GPIO_NUM     -1
  #define RESET_GPIO_NUM    15
  #define XCLK_GPIO_NUM     27
  #define SIOD_GPIO_NUM     25
  #define SIOC_GPIO_NUM     23
  
  #define Y9_GPIO_NUM       19
  #define Y8_GPIO_NUM       36
  #define Y7_GPIO_NUM       18
  #define Y6_GPIO_NUM       39
  #define Y5_GPIO_NUM        5
  #define Y4_GPIO_NUM       34
  #define Y3_GPIO_NUM       35
  #define Y2_GPIO_NUM       17
  #define VSYNC_GPIO_NUM    22
  #define HREF_GPIO_NUM     26
  #define PCLK_GPIO_NUM     21

#elif defined(CAMERA_MODEL_AI_THINKER)
  #define PWDN_GPIO_NUM     32
  #define RESET_GPIO_NUM    -1
  #define XCLK_GPIO_NUM      0
  #define SIOD_GPIO_NUM     26
  #define SIOC_GPIO_NUM     27
  
  #define Y9_GPIO_NUM       35
  #define Y8_GPIO_NUM       34
  #define Y7_GPIO_NUM       39
  #define Y6_GPIO_NUM       36
  #define Y5_GPIO_NUM       21
  #define Y4_GPIO_NUM       19
  #define Y3_GPIO_NUM       18
  #define Y2_GPIO_NUM        5
  #define VSYNC_GPIO_NUM    25
  #define HREF_GPIO_NUM     23
  #define PCLK_GPIO_NUM     22
#else
  #error "Camera model not selected"
#endif

static const char* _STREAM_CONTENT_TYPE = "multipart/x-mixed-replace;boundary=" PART_BOUNDARY;
static const char* _STREAM_BOUNDARY = "rn--" PART_BOUNDARY "rn";
static const char* _STREAM_PART = "Content-Type: image/jpegrnContent-Length: %urnrn";

httpd_handle_t stream_httpd = NULL;

static esp_err_t stream_handler(httpd_req_t *req){
  camera_fb_t * fb = NULL;
  esp_err_t res = ESP_OK;
  size_t _jpg_buf_len = 0;
  uint8_t * _jpg_buf = NULL;
  char * part_buf[64];

  res = httpd_resp_set_type(req, _STREAM_CONTENT_TYPE);
  if(res != ESP_OK){
    return res;
  }

  while(true){
    fb = esp_camera_fb_get();
    if (!fb) {
      Serial.println("Camera capture failed");
      res = ESP_FAIL;
    } else {
      if(fb->width > 400){
        if(fb->format != PIXFORMAT_JPEG){
          bool jpeg_converted = frame2jpg(fb, 80, &_jpg_buf, &_jpg_buf_len);
          esp_camera_fb_return(fb);
          fb = NULL;
          if(!jpeg_converted){
            Serial.println("JPEG compression failed");
            res = ESP_FAIL;
          }
        } else {
          _jpg_buf_len = fb->len;
          _jpg_buf = fb->buf;
        }
      }
    }
    if(res == ESP_OK){
      size_t hlen = snprintf((char *)part_buf, 64, _STREAM_PART, _jpg_buf_len);
      res = httpd_resp_send_chunk(req, (const char *)part_buf, hlen);
    }
    if(res == ESP_OK){
      res = httpd_resp_send_chunk(req, (const char *)_jpg_buf, _jpg_buf_len);
    }
    if(res == ESP_OK){
      res = httpd_resp_send_chunk(req, _STREAM_BOUNDARY, strlen(_STREAM_BOUNDARY));
    }
    if(fb){
      esp_camera_fb_return(fb);
      fb = NULL;
      _jpg_buf = NULL;
    } else if(_jpg_buf){
      free(_jpg_buf);
      _jpg_buf = NULL;
    }
    if(res != ESP_OK){
      break;
    }
    //Serial.printf("MJPG: %uBn",(uint32_t)(_jpg_buf_len));
  }
  return res;
}

void startCameraServer(){
  httpd_config_t config = HTTPD_DEFAULT_CONFIG();
  config.server_port = 80;

  httpd_uri_t index_uri = {
    .uri       = "/",
    .method    = HTTP_GET,
    .handler   = stream_handler,
    .user_ctx  = NULL
  };
  
  //Serial.printf("Starting web server on port: '%d'n", config.server_port);
  if (httpd_start(&stream_httpd, &config) == ESP_OK) {
    httpd_register_uri_handler(stream_httpd, &index_uri);
  }
}

void setup() {
  WRITE_PERI_REG(RTC_CNTL_BROWN_OUT_REG, 0); //disable brownout detector
 
  Serial.begin(115200);
  Serial.setDebugOutput(false);
  
  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; 
  
  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;
  }
  
  // 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;
  }
  // Connect to Wi-Fi network with SSID and password
  Serial.print("Setting AP (Access Point)…");
  // Remove the password parameter, if you want the AP (Access Point) to be open
  WiFi.softAP(ssid, password);

  IPAddress IP = WiFi.softAPIP();
  Serial.print("Camera Stream Ready! Connect to the ESP32 AP and go to: http://");
  Serial.println(IP);
  
  // Start streaming web server
  startCameraServer();
}

void loop() {
  delay(1);
}

View raw code

To better understand how it works, you can read the next tutorial:

  • ESP32 Access Point (AP) for Web Server

Wrapping Up

We hope you’ve found this troubleshooting guide useful and you were able to make your ESP32-CAM work with our projects.

If you have any other issues or suggestions on how to fix them, please post a comment below.

If you like this project, you may also like other projects with the ESP32-CAM:

  • ESP32-CAM AI-Thinker Pinout Guide: GPIOs Usage Explained
  • Video Streaming, Face Detection and Face Recognition
  • Build ESP32-CAM Projects (eBook)
  • Read all our ESP32-CAM Projects, Tutorials and Guides

Thank you for reading.

P.S. It is very difficult to understand what’s wrong with your project when we can’t reproduce the error on our end. However, if you post the error, there might be other readers with the same issue/solution, so we encourage you to interact in the comment’s section.

Небольшая плата ESP32 с дисплеем. Идея была сделать аналог референсного esp32-lyrat но в меньших размерах. На плате разведен дисплей ST7789, ADC-DAC ES8388, вывод на стерео наушники и внешний усилитель моно, а также микрофон, кнопки и джойстик

Элементная база

8 MB Flash / 8 MB PSRAM
ST7789 Display
ES8388 ADC-DAC / PAM8302
SDCARD
CP2102

Антенна

Пришла в голову идея сделать плату с 2.4-GHz Inverted F антеной. По сравнению с PCB антенной которую используют для USB dongle reference design, F антенна обладает лучшими характеристиками, но имеет немного большие размеры, и широкую полоса пропускания

Импеданс сопротивления антенны 50 Ом требует согласования с ESP32

«The output impedance of the RF pins of ESP32 (QFN 6*6) and ESP32 (QFN 5*5) are (30+j10) Ω and (35+j10) Ω, respectively»

Воспользуемся калькулятором для расчета.

Дисплей ST7789

ST7789 это дешевый компактный 240×240 цветной дисплей. Подключается через SPI интерфейс как и в предыдуший статье

Сброс (Reset) дисплея работает только по включению. Схема сброса дисплея это резистор 10 КОм к VDD. Если во время вывода изображения вызвать ресет ESP32 то картинка уже не будет отображаться. Надо делать отдельным выводом на ногу ESP32 или пробовать подводить к AEN сброса самого микроконтроллера. Так же забыл вывести CS. Пришлось вешать волосок на землю. Вопрос нужно ли отключать подсветку или можно CS управлять энергопотреблением дисплея

Звук ES8388

ЦАП выполнен на ES8388. В нем так же имеется АЦП. Ранее я уже запускал аналогичный АЦП от
Everest ES8374. ES8374 в отличии от ES8388 имеет моно выход с усилителем около 1 ватта.

При запуске ES8388 однако возникли проблемы. Неясная ситуация с выходом на наушники. В референсной esp32-lyrat-v4.2 выходы на наушники LOUT1 и ROUT1 но микросхема DAC8388 имеет дифференциальные выходы левого и правого канала. То что я слышал в наушниках это шум и слабый уровень сигнала. Надо разобраться как включать выходы в правильном режиме. В примерах для этих референсных плат нет особого кода переключения.

PAM8302


Внешний усилитель планировал поставить из линейки PAM. Они хорошо известны по усилителю
Class-D and Class-AB PAM8406. Но мне потребовался моно вариант. Его пока не распаивал

Микрофон


ICS-43432 микрофон подключается по шине I2S. Вывод LR отвечает за конфигурирование левого или правого канала. Левый на землю, правый на VDD

PSRAM W25Q64

Забыл вывести 7 вывод PSRAM. PSRAM вешается параллельно W25Q64 за исключением вывода тактирования и CS. CS надо подтянуть резистором к VDD

Кнопки и джойстик

Внешнее управление организовано на резистивном делителе. Уровни напряжения определяются внутренним АЦП. В зависимости от того какая кнопка нажата формируется определенное для делителя напряжение. Померяв на входе АЦП уровень можно определить нажатую кнопку

UART CP2102

UART интерфейс традиционно на CP2102. Тут лотерея если покупать у Китайцев. В одной партии могут быть разные ID. Например у меня определялась #lsusb как Verifon и устройства /dev/ttyUSB не обнаруживалось. Добавил примерно так где 10c4 804c это vid pid. Кстати слетает после перезагрузки.

sudo modprobe cp210x
sudo -s
echo 10c4 804c > /sys/bus/usb-serial/drivers/cp210x/new_id

WiFi

WiFi заработал не сразу. BT так и не получилось связаться. В режиме BT колонки устройство видно, но соединение установить не получается. Очень важно, как оказалось правильно подвести питание на чип ESP32. Дорожки должны быть как можно толще. На каждый внутренний блок, к которому подводится питание должен стоять шунтирующий конденсатор. Только когда я пропаял сверху дорожку и повесил дополнительно в одном месте конденсатор по питанию прямо на дорожку, чип завел Wi-Fi. До этого в логах начинался мусор и все висло когда доходило до старта WiFi

Boot WiFi scan Log

rst:0x1 (POWERON_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)
configsip: 0, SPIWP:0xee
clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00
mode:DIO, clock div:2
load:0x3fff0030,len:4
load:0x3fff0034,len:7068
load:0x40078000,len:14600
load:0x40080400,len:4160
0x40080400: _init at ??:?

entry 0x40080684
I (29) boot: ESP-IDF v4.2-dev-2243-gcf056a7d0-dirty 2nd stage bootloader
I (29) boot: compile time 17:00:41
I (30) boot: chip revision: 1
I (34) boot_comm: chip revision: 1, min. bootloader chip revision: 0
I (51) boot.esp32: SPI Speed: 40MHz
I (52) boot.esp32: SPI Mode: DIO
I (52) boot.esp32: SPI Flash Size: 4MB
I (54) boot: Enabling RNG early entropy source…
I (60) boot: Partition Table:
I (63) boot: ## Label Usage Type ST Offset Length
I (71) boot: 0 nvs WiFi data 01 02 00009000 00006000
I (78) boot: 1 phy_init RF data 01 01 0000f000 00001000
I (86) boot: 2 factory factory app 00 00 00010000 00100000
I (93) boot: End of partition table
I (97) boot_comm: chip revision: 1, min. application chip revision: 0
I (104) esp_image: segment 0: paddr=0x00010020 vaddr=0x3f400020 size=0x1b81c (112668) map
I (162) esp_image: segment 1: paddr=0x0002b844 vaddr=0x3ffb0000 size=0x03b04 ( 15108) load
I (169) esp_image: segment 2: paddr=0x0002f350 vaddr=0x40080000 size=0x00404 ( 1028) load
0x40080000: _WindowOverflow4 at /home/dm/esp/esp-idf/components/freertos/xtensa/xtensa_vectors.S:1730

I (170) esp_image: segment 3: paddr=0x0002f75c vaddr=0x40080404 size=0x008bc ( 2236) load
I (179) esp_image: segment 4: paddr=0x00030020 vaddr=0x400d0020 size=0x78d34 (494900) map
0x400d0020: _stext at ??:?

I (401) esp_image: segment 5: paddr=0x000a8d5c vaddr=0x40080cc0 size=0x194d0 (103632) load
I (466) boot: Loaded app from partition at offset 0x10000
I (466) boot: Disabling RNG early entropy source…
I (478) psram: This chip is ESP32-D0WD
E (479) psram: PSRAM ID read error: 0xffffffff
E (479) spiram: SPI RAM enabled but initialization failed. Bailing out.
I (486) cpu_start: Failed to init external RAM; continuing without it.
I (493) cpu_start: Pro cpu up.
I (497) cpu_start: Starting app cpu, entry point is 0x400816d8
0x400816d8: call_start_cpu1 at /home/dm/esp/esp-idf/components/esp_system/port/cpu_start.c:109

I (0) cpu_start: App cpu up.
I (518) cpu_start: Pro cpu start user code
I (518) cpu_start: Application information:
I (518) cpu_start: Project name: scan
I (523) cpu_start: App version: v4.2-dev-2243-gcf056a7d0-dirty
I (530) cpu_start: Compile time: Nov 6 2020 17:00:39
I (536) cpu_start: ELF file SHA256: 7ea95a8a24884f2f…
I (542) cpu_start: ESP-IDF: v4.2-dev-2243-gcf056a7d0-dirty
I (550) heap_init: Initializing. RAM available for dynamic allocation:
I (556) heap_init: At 3FFAE6E0 len 00001920 (6 KiB): DRAM
I (562) heap_init: At 3FFB9510 len 00026AF0 (154 KiB): DRAM
I (569) heap_init: At 3FFE0440 len 00003AE0 (14 KiB): D/IRAM
I (575) heap_init: At 3FFE4350 len 0001BCB0 (111 KiB): D/IRAM
I (581) heap_init: At 4009A190 len 00005E70 (23 KiB): IRAM
I (589) spi_flash: detected chip: generic
I (592) spi_flash: flash io: dio
W (596) spi_flash: Detected size(8192k) larger than the size in the binary image header(4096k). Using the size in the binary image header.
I (611) cpu_start: Starting scheduler on PRO CPU.
I (0) cpu_start: Starting scheduler on APP CPU.
I (735) wifi:wifi driver task: 3ffc1ed4, prio:23, stack:6656, core=0
I (735) system_api: Base MAC address is not set
I (735) system_api: read default base MAC address from EFUSE
I (765) wifi:wifi firmware version: bbe4b67
I (765) wifi:wifi certification version: v7.0
I (765) wifi:config NVS flash: enabled
I (765) wifi:config nano formating: disabled
I (765) wifi:Init data frame dynamic rx buffer num: 32
I (775) wifi:Init management frame dynamic rx buffer num: 32
I (775) wifi:Init management short buffer num: 32
I (785) wifi:Init static tx buffer num: 16
I (785) wifi:Init static rx buffer size: 1600
I (795) wifi:Init static rx buffer num: 10
I (795) wifi:Init dynamic rx buffer num: 32
I (895) phy: phy_version: 4182, f1ba940, Jun 4 2020, 19:40:07, 0, 0
I (905) wifi:mode: sta (98:f4:ab:6c:ed:c4)
I (3005) scan: Total APs scanned = 5
I (3005) scan: SSID ___1_____
I (3005) scan: RSSI -48
I (3005) scan: Authmode WIFI_AUTH_WPA_WPA2_PSK
I (3005) scan: Pairwise Cipher WIFI_CIPHER_TYPE_CCMP
I (3015) scan: Group Cipher WIFI_CIPHER_TYPE_CCMP
I (3015) scan: Channel 12

I (3025) scan: SSID _____2______
I (3025) scan: RSSI -64
I (3025) scan: Authmode WIFI_AUTH_WPA2_PSK
I (3035) scan: Pairwise Cipher WIFI_CIPHER_TYPE_CCMP
I (3035) scan: Group Cipher WIFI_CIPHER_TYPE_CCMP
I (3045) scan: Channel 7

I (3045) scan: SSID ______2_______
I (3055) scan: RSSI -83
I (3055) scan: Authmode WIFI_AUTH_WPA_WPA2_PSK
I (3065) scan: Pairwise Cipher WIFI_CIPHER_TYPE_TKIP_CCMP
I (3065) scan: Group Cipher WIFI_CIPHER_TYPE_TKIP
I (3075) scan: Channel 3

I (3075) scan: SSID ____3____
I (3075) scan: RSSI -92
I (3085) scan: Authmode WIFI_AUTH_WPA2_PSK
I (3085) scan: Pairwise Cipher WIFI_CIPHER_TYPE_CCMP
I (3095) scan: Group Cipher WIFI_CIPHER_TYPE_CCMP
I (3095) scan: Channel 3

I (3105) scan: SSID ___4______
I (3105) scan: RSSI -94
I (3105) scan: Authmode WIFI_AUTH_WPA2_PSK
I (3115) scan: Pairwise Cipher WIFI_CIPHER_TYPE_CCMP
I (3125) scan: Group Cipher WIFI_CIPHER_TYPE_CCMP
I (3125) scan: Channel 8

Запуск теста esp-idf-st7789

ST7789 test log

I (2992) FillTest: elapsed time[ms]:1650
I (7042) ColorBarTest: elapsed time[ms]:50
I (11322) ArrowTest: elapsed time[ms]:280
I (17422) LineTest: elapsed time[ms]:2100
I (23292) CircleTest: elapsed time[ms]:1870
I (29192) RoundRectTest: elapsed time[ms]:1900
I (39192) RectAngleTest: elapsed time[ms]:6000
I (50152) TriangleTest: elapsed time[ms]:6960
I (54632) DirectionTest: elapsed time[ms]:480
I (59682) HorizontalTest: elapsed time[ms]:1050
I (64722) VerticalTest: elapsed time[ms]:1040
I (68902) FillRectTest: elapsed time[ms]:180
I (73152) ColorTest: elapsed time[ms]:250
I (78182) BMPTest: elapsed time[ms]:1030
I (82322) JPEGTest: decode_image err=0 imageWidth=240 imageHeight=240
I (84732) JPEGTest: elapsed time[ms]:2550
I (95282) FillTest: elapsed time[ms]:1650
I (99332) ColorBarTest: elapsed time[ms]:50
I (103602) ArrowTest: elapsed time[ms]:270
I (109702) LineTest: elapsed time[ms]:2100
I (115572) CircleTest: elapsed time[ms]:1870
I (121472) RoundRectTest: elapsed time[ms]:1900
I (131472) RectAngleTest: elapsed time[ms]:6000
I (142432) TriangleTest: elapsed time[ms]:6960
I (146862) DirectionTest: elapsed time[ms]:430
I (151912) HorizontalTest: elapsed time[ms]:1050
I (156952) VerticalTest: elapsed time[ms]:1040
I (161162) FillRectTest: elapsed time[ms]:210
I (165412) ColorTest: elapsed time[ms]:250
I (170342) BMPTest: elapsed time[ms]:930

Схема с исправлениями

Понравилась статья? Поделить с друзьями:
  • Psqlexception error duplicate key value violates unique constraint
  • Psqlexception error deadlock detected
  • Psql ошибка важно роль root не существует
  • Psql ошибка важно пользователь postgres не прошел проверку подлинности peer
  • Psql как изменить пароль пользователя