Thanks for the suggestions and for the code. I really appreciate the effort that your team is taking to try and get this to work, this LCD peripheral is a great capability to have.
I tried adjusting the size of the
bounce_buffer_size_px and saw some odd behavior depending on the size. Sometimes nothing would display, sometimes the image would have missing rows. Sometimes it would crash very quickly. For example, using
bounce_buffer_size_px = 10 * 1000, it would run for about 2 seconds and then restart.
I ended up using 16 * 1000 for the size of
bounce_buffer_size_px for the demonstrations above on the 800 x 480 display.
Currently, the CircuitPython port for ESP32-S3 is only using one core. (To me this CircuitPython project is fairly complex to understand and debug, but if you have specific questions I will work to get the answer.)
If I use the code with the interrupts enabled, once the display was initiated, the system would hang. I assumed that this was because the display refresh interrupt kept stealing all the processor cycles. So, I disabled all the code lines that setup the interrupt on VSYNC. To refresh the display I added a "flush_buffer" function to flush the Cache and call
lcd_rgb_panel_start_transmission (see images in the previous post).
I just changed my "flush_buffer" to flush the cache and call
lcd_rgb_panel_restart_transmission (instead of
start_transmission). It is still out of sync, but the weird giant boxes are gone. That's a step forward.
In the
lcd_rgb_panel_restart_transmission I added a "esp_rom_delay_us(1);" after the
gdma_start, but it had no effect.
Perhaps there is something that is slowing down the transmission after it starts. I'll need to dig in further to understand the bounce code that you added. Any suggestions are welcome.
Debugging update:
I found a way to capture the full Debug log after a crash. Here is what happens when I set
bounce_buffer_size_px = 10 * 1000 and the system restarts after about 2 seconds after the display starts. See line 144 for the restart. I don't think it is a power dip, but I could be wrong. I have both USB ports connected to my MacBook which is powered by the wall plug.
Code: Untitled.txt Select all
ESP-ROM:esp32s3-20210327
Build:Mar 27 2021
rst:0x1 (POWERON),boot:0x3 (DOWNLOAD(USB/UART0))
waiting for download
ESP-ROM:esp32s3-20210327
Build:Mar 27 2021
rst:0x1 (POWERON),boot:0xb (SPI_FAST_FLASH_BOOT)
SPIWP:0xee
mode:DIO, clock div:2
load:0x3fcd0108,len:0x1654
load:0x403b6000,len:0xb7c
load:0x403ba000,len:0x2f78
entry 0x403b6248
I (29) boot: ESP-IDF 121ddb87e-dirty 2nd stage bootloader
I (30) boot: compile time 21:38:23
I (30) boot: chip revision: 0
I (32) boot.esp32s3: Boot SPI Speed : 40MHz
I (37) boot.esp32s3: SPI Mode : DIO
I (41) boot.esp32s3: SPI Flash Size : 8MB
I (46) boot: Enabling RNG early entropy source...
I (52) boot: Partition Table:
I (55) boot: ## Label Usage Type ST Offset Length
I (62) boot: 0 nvs WiFi data 01 02 00009000 00005000
I (70) boot: 1 otadata OTA data 01 00 0000e000 00002000
I (77) boot: 2 ota_0 OTA app 00 10 00010000 00200000
I (85) boot: 3 ota_1 OTA app 00 11 00210000 00200000
I (92) boot: 4 uf2 factory app 00 00 00410000 00040000
I (100) boot: 5 user_fs Unknown data 01 81 00450000 003b0000
I (107) boot: End of partition table
I (112) boot: Defaulting to factory image
E (116) esp_image: image at 0x410000 has invalid magic byte (nothing flashed here?)
E (125) boot: Factory app partition is not bootable
I (130) esp_image: segment 0: paddr=00010020 vaddr=3c120020 size=4a2f8h (303864) map
I (214) esp_image: segment 1: paddr=0005a320 vaddr=3fc9a300 size=05638h ( 22072) load
I (226) esp_image: segment 2: paddr=0005f960 vaddr=40374000 size=006b8h ( 1720) load
I (226) esp_image: segment 3: paddr=00060020 vaddr=42000020 size=11461ch (1132060) map
I (513) esp_image: segment 4: paddr=00174644 vaddr=403746b8 size=15c3ch ( 89148) load
I (539) esp_image: segment 5: paddr=0018a288 vaddr=50000000 size=01010h ( 4112) load
I (540) esp_image: segment 6: paddr=0018b2a0 vaddr=600fe000 size=00028h ( 40) load
I (554) boot: Loaded app from partition at offset 0x10000
I (554) boot: Disabling RNG early entropy source...
I (568) opi psram: vendor id : 0x0d (AP)
I (568) opi psram: dev id : 0x02 (generation 3)
I (568) opi psram: density : 0x03 (64 Mbit)
I (571) opi psram: good-die : 0x01 (Pass)
I (576) opi psram: Latency : 0x01 (Fixed)
I (581) opi psram: VCC : 0x01 (3V)
I (586) opi psram: SRF : 0x01 (Fast Refresh)
I (591) opi psram: BurstType : 0x01 (Hybrid Wrap)
I (596) opi psram: BurstLen : 0x01 (32 Byte)
I (602) opi psram: Readlatency : 0x02 (10 cycles@Fixed)
I (608) opi psram: DriveStrength: 0x00 (1/1)
W (612) PSRAM: DO NOT USE FOR MASS PRODUCTION! Timing parameters will be updated in future IDF version.
I (623) spiram: Found 64MBit SPI RAM device
I (627) spiram: SPI RAM mode: sram 80m
I (632) spiram: PSRAM initialized, cache is in normal (1-core) mode.
I (639) cpu_start: Pro cpu up.
I (643) cpu_start: Starting app cpu, entry point is 0x40378450
I (0) cpu_start: App cpu up.
I (1075) spiram: SPI SRAM memory test OK
I (1084) cpu_start: Pro cpu start user code
I (1084) cpu_start: cpu freq: 240000000
I (1084) cpu_start: Application information:
I (1087) cpu_start: Project name: circuitpython
I (1093) cpu_start: App version: 5.3.0-11827-gfcde108d0-dirty
I (1099) cpu_start: Compile time: Apr 14 2022 21:38:17
I (1106) cpu_start: ELF file SHA256: e4423d5ee5e26a92...
I (1112) cpu_start: ESP-IDF: 121ddb87e-dirty
I (1118) heap_init: Initializing. RAM available for dynamic allocation:
I (1125) heap_init: At 3FCAB038 len 00034FC8 (211 KiB): D/IRAM
I (1131) heap_init: At 3FCE0000 len 0000EE34 (59 KiB): STACK/DRAM
I (1138) heap_init: At 3FCF0000 len 00008000 (32 KiB): DRAM
I (1144) heap_init: At 600FE028 len 00001FD8 (7 KiB): RTCRAM
I (1151) spi_flash: detected chip: generic
I (1155) spi_flash: flash io: dio
I (1160) sleep: Configure to isolate all GPIO pins in sleep state
I (1166) sleep: Enable automatic switching of GPIO sleep configuration
I (1174) coexist: coexist rom version e7ae62f
I (1179) cpu_start: Starting scheduler on PRO CPU.
I (0) cpu_start: Starting scheduler on APP CPU.
I (10) gpio: GPIO[48]| InputEn: 1| OutputEn: 0| OpenDrain: 0| Pullup: 0| Pulldown: 0| Intr:0
I (20) gpio: GPIO[0]| InputEn: 1| OutputEn: 0| OpenDrain: 0| Pullup: 0| Pulldown: 0| Intr:0
I (1020) gpio: GPIO[48]| InputEn: 0| OutputEn: 0| OpenDrain: 0| Pullup: 1| Pulldown: 0| Intr:0
I (1030) gpio: GPIO[0]| InputEn: 0| OutputEn: 0| OpenDrain: 0| Pullup: 1| Pulldown: 0| Intr:0
I (1030) gpio: GPIO[1]| InputEn: 0| OutputEn: 0| OpenDrain: 0| Pullup: 1| Pulldown: 0| Intr:0
I (1040) gpio: GPIO[2]| InputEn: 0| OutputEn: 0| OpenDrain: 0| Pullup: 1| Pulldown: 0| Intr:0
I (1050) gpio: GPIO[3]| InputEn: 0| OutputEn: 0| OpenDrain: 0| Pullup: 1| Pulldown: 0| Intr:0
I (1060) gpio: GPIO[4]| InputEn: 0| OutputEn: 0| OpenDrain: 0| Pullup: 1| Pulldown: 0| Intr:0
I (1070) gpio: GPIO[5]| InputEn: 0| OutputEn: 0| OpenDrain: 0| Pullup: 1| Pulldown: 0| Intr:0
I (1080) gpio: GPIO[6]| InputEn: 0| OutputEn: 0| OpenDrain: 0| Pullup: 1| Pulldown: 0| Intr:0
I (1090) gpio: GPIO[7]| InputEn: 0| OutputEn: 0| OpenDrain: 0| Pullup: 1| Pulldown: 0| Intr:0
I (1100) gpio: GPIO[8]| InputEn: 0| OutputEn: 0| OpenDrain: 0| Pullup: 1| Pulldown: 0| Intr:0
I (1110) gpio: GPIO[9]| InputEn: 0| OutputEn: 0| OpenDrain: 0| Pullup: 1| Pulldown: 0| Intr:0
I (1110) gpio: GPIO[10]| InputEn: 0| OutputEn: 0| OpenDrain: 0| Pullup: 1| Pulldown: 0| Intr:0
I (1120) gpio: GPIO[11]| InputEn: 0| OutputEn: 0| OpenDrain: 0| Pullup: 1| Pulldown: 0| Intr:0
I (1130) gpio: GPIO[12]| InputEn: 0| OutputEn: 0| OpenDrain: 0| Pullup: 1| Pulldown: 0| Intr:0
I (1140) gpio: GPIO[13]| InputEn: 0| OutputEn: 0| OpenDrain: 0| Pullup: 1| Pulldown: 0| Intr:0
I (1150) gpio: GPIO[14]| InputEn: 0| OutputEn: 0| OpenDrain: 0| Pullup: 1| Pulldown: 0| Intr:0
I (1160) gpio: GPIO[15]| InputEn: 0| OutputEn: 0| OpenDrain: 0| Pullup: 1| Pulldown: 0| Intr:0
I (1170) gpio: GPIO[16]| InputEn: 0| OutputEn: 0| OpenDrain: 0| Pullup: 1| Pulldown: 0| Intr:0
I (1180) gpio: GPIO[17]| InputEn: 0| OutputEn: 0| OpenDrain: 0| Pullup: 1| Pulldown: 0| Intr:0
I (1190) gpio: GPIO[18]| InputEn: 0| OutputEn: 0| OpenDrain: 0| Pullup: 1| Pulldown: 0| Intr:0
I (1200) gpio: GPIO[21]| InputEn: 0| OutputEn: 0| OpenDrain: 0| Pullup: 1| Pulldown: 0| Intr:0
I (1210) gpio: GPIO[38]| InputEn: 0| OutputEn: 0| OpenDrain: 0| Pullup: 1| Pulldown: 0| Intr:0
I (1220) gpio: GPIO[45]| InputEn: 0| OutputEn: 0| OpenDrain: 0| Pullup: 1| Pulldown: 0| Intr:0
I (1230) gpio: GPIO[46]| InputEn: 0| OutputEn: 0| OpenDrain: 0| Pullup: 1| Pulldown: 0| Intr:0
I (1240) gpio: GPIO[47]| InputEn: 0| OutputEn: 0| OpenDrain: 0| Pullup: 1| Pulldown: 0| Intr:0
I (1250) gpio: GPIO[48]| InputEn: 0| OutputEn: 0| OpenDrain: 0| Pullup: 1| Pulldown: 0| Intr:0
E (1300) I2S: i2s_driver_uninstall(1957): I2S port 0 has not installed
E (1300) I2S: i2s_driver_uninstall(1957): I2S port 1 has not installed
E (1300) timer_group: timer_deinit(310): HW TIMER NEVER INIT ERROR
E (1310) timer_group: timer_deinit(310): HW TIMER NEVER INIT ERROR
E (1320) timer_group: timer_deinit(310): HW TIMER NEVER INIT ERROR
E (1320) timer_group: timer_deinit(310): HW TIMER NEVER INIT ERROR
I (1390) gpio: GPIO[0]| InputEn: 0| OutputEn: 0| OpenDrain: 0| Pullup: 1| Pulldown: 0| Intr:0
I (1390) gpio: GPIO[1]| InputEn: 0| OutputEn: 0| OpenDrain: 0| Pullup: 1| Pulldown: 0| Intr:0
I (1400) gpio: GPIO[2]| InputEn: 0| OutputEn: 0| OpenDrain: 0| Pullup: 1| Pulldown: 0| Intr:0
I (1410) gpio: GPIO[3]| InputEn: 0| OutputEn: 0| OpenDrain: 0| Pullup: 1| Pulldown: 0| Intr:0
I (1420) gpio: GPIO[4]| InputEn: 0| OutputEn: 0| OpenDrain: 0| Pullup: 1| Pulldown: 0| Intr:0
I (1420) gpio: GPIO[5]| InputEn: 0| OutputEn: 0| OpenDrain: 0| Pullup: 1| Pulldown: 0| Intr:0
I (1430) gpio: GPIO[6]| InputEn: 0| OutputEn: 0| OpenDrain: 0| Pullup: 1| Pulldown: 0| Intr:0
I (1440) gpio: GPIO[7]| InputEn: 0| OutputEn: 0| OpenDrain: 0| Pullup: 1| Pulldown: 0| Intr:0
I (1450) gpio: GPIO[8]| InputEn: 0| OutputEn: 0| OpenDrain: 0| Pullup: 1| Pulldown: 0| Intr:0
I (1460) gpio: GPIO[9]| InputEn: 0| OutputEn: 0| OpenDrain: 0| Pullup: 1| Pulldown: 0| Intr:0
I (1470) gpio: GPIO[10]| InputEn: 0| OutputEn: 0| OpenDrain: 0| Pullup: 1| Pulldown: 0| Intr:0
I (1480) gpio: GPIO[11]| InputEn: 0| OutputEn: 0| OpenDrain: 0| Pullup: 1| Pulldown: 0| Intr:0
I (1490) gpio: GPIO[12]| InputEn: 0| OutputEn: 0| OpenDrain: 0| Pullup: 1| Pulldown: 0| Intr:0
I (1500) gpio: GPIO[13]| InputEn: 0| OutputEn: 0| OpenDrain: 0| Pullup: 1| Pulldown: 0| Intr:0
I (1510) gpio: GPIO[14]| InputEn: 0| OutputEn: 0| OpenDrain: 0| Pullup: 1| Pulldown: 0| Intr:0
I (1520) gpio: GPIO[15]| InputEn: 0| OutputEn: 0| OpenDrain: 0| Pullup: 1| Pulldown: 0| Intr:0
I (1530) gpio: GPIO[16]| InputEn: 0| OutputEn: 0| OpenDrain: 0| Pullup: 1| Pulldown: 0| Intr:0
I (1540) gpio: GPIO[17]| InputEn: 0| OutputEn: 0| OpenDrain: 0| Pullup: 1| Pulldown: 0| Intr:0
I (1550) gpio: GPIO[18]| InputEn: 0| OutputEn: 0| OpenDrain: 0| Pullup: 1| Pulldown: 0| Intr:0
I (1560) gpio: GPIO[21]| InputEn: 0| OutputEn: 0| OpenDrain: 0| Pullup: 1| Pulldown: 0| Intr:0
I (1560) gpio: GPIO[38]| InputEn: 0| OutputEn: 0| OpenDrain: 0| Pullup: 1| Pulldown: 0| Intr:0
I (1570) gpio: GPIO[45]| InputEn: 0| OutputEn: 0| OpenDrain: 0| Pullup: 1| Pulldown: 0| Intr:0
I (1580) gpio: GPIO[46]| InputEn: 0| OutputEn: 0| OpenDrain: 0| Pullup: 1| Pulldown: 0| Intr:0
I (1590) gpio: GPIO[47]| InputEn: 0| OutputEn: 0| OpenDrain: 0| Pullup: 1| Pulldown: 0| Intr:0
I (1600) gpio: GPIO[48]| InputEn: 0| OutputEn: 0| OpenDrain: 0| Pullup: 1| Pulldown: 0| Intr:0
E (1650) I2S: i2s_driver_uninstall(1957): I2S port 0 has not installed
E (1650) I2S: i2s_driver_uninstall(1957): I2S port 1 has not installed
W (6790) lcd_panel.rgb: Frame buffer is not an integer multiple of bounce buffers.
W (6790) lcd_panel.rgb: Adjusted bounce buffer size from 10000 to 9600 pixels to fix this.
ESP-ROM:esp32s3-20210327
Build:Mar 27 2021
rst:0x8 (TG1WDT_SYS_RST),boot:0xb (SPI_FAST_FLASH_BOOT)
Saved PC:0x42110602
SPIWP:0xee
mode:DIO, clock div:2
load:0x3fcd0108,len:0x1654
load:0x403b6000,len:0xb7c
load:0x403ba000,len:0x2f78
entry 0x403b6248
I (31) boot: ESP-IDF 121ddb87e-dirty 2nd stage bootloader
I (31) boot: compile time 21:38:23
I (32) boot: chip revision: 0
I (34) boot.esp32s3: Boot SPI Speed : 40MHz
I (39) boot.esp32s3: SPI Mode : DIO
I (43) boot.esp32s3: SPI Flash Size : 8MB
W (48) boot.esp32s3: PRO CPU has been reset by WDT.
W (54) boot.esp32s3: APP CPU has been reset by WDT.
I (59) boot: Enabling RNG early entropy source...
I (65) boot: Partition Table:
I (68) boot: ## Label Usage Type ST Offset Length
I (76) boot: 0 nvs WiFi data 01 02 00009000 00005000
I (83) boot: 1 otadata OTA data 01 00 0000e000 00002000
I (90) boot: 2 ota_0 OTA app 00 10 00010000 00200000
I (98) boot: 3 ota_1 OTA app 00 11 00210000 00200000
I (105) boot: 4 uf2 factory app 00 00 00410000 00040000
I (113) boot: 5 user_fs Unknown data 01 81 00450000 003b0000
I (121) boot: End of partition table
I (125) boot: Defaulting to factory image
E (129) esp_image: image at 0x410000 has invalid magic byte (nothing flashed here?)
E (138) boot: Factory app partition is not bootable
I (143) esp_image: segment 0: paddr=00010020 vaddr=3c120020 size=4a2f8h (303864) map
I (227) esp_image: segment 1: paddr=0005a320 vaddr=3fc9a300 size=05638h ( 22072) load
I (234) esp_image: segment 2: paddr=0005f960 vaddr=40374000 size=006b8h ( 1720) load
I (235) esp_image: segment 3: paddr=00060020 vaddr=42000020 size=11461ch (1132060) map
I (523) esp_image: segment 4: paddr=00174644 vaddr=403746b8 size=15c3ch ( 89148) load
I (549) esp_image: segment 5: paddr=0018a288 vaddr=50000000 size=01010h ( 4112) load
I (550) esp_image: segment 6: paddr=0018b2a0 vaddr=600fe000 size=00028h ( 40) load
I (564) boot: Loaded app from partition at offset 0x10000
I (565) boot: Disabling RNG early entropy source...
I (578) opi psram: vendor id : 0x0d (AP)
I (578) opi psram: dev id : 0x02 (generation 3)
I (578) opi psram: density : 0x03 (64 Mbit)
I (582) opi psram: good-die : 0x01 (Pass)
I (586) opi psram: Latency : 0x01 (Fixed)
I (591) opi psram: VCC : 0x01 (3V)
I (596) opi psram: SRF : 0x01 (Fast Refresh)
I (601) opi psram: BurstType : 0x01 (Hybrid Wrap)
I (607) opi psram: BurstLen : 0x01 (32 Byte)
I (612) opi psram: Readlatency : 0x02 (10 cycles@Fixed)
I (618) opi psram: DriveStrength: 0x00 (1/1)
W (623) PSRAM: DO NOT USE FOR MASS PRODUCTION! Timing parameters will be updated in future IDF version.
I (633) spiram: Found 64MBit SPI RAM device
I (638) spiram: SPI RAM mode: sram 80m
I (642) spiram: PSRAM initialized, cache is in normal (1-core) mode.
I (649) cpu_start: Pro cpu up.
I (653) cpu_start: Starting app cpu, entry point is 0x40378450
I (0) cpu_start: App cpu up.
I (1086) spiram: SPI SRAM memory test OK
I (1094) cpu_start: Pro cpu start user code
I (1094) cpu_start: cpu freq: 240000000
I (1094) cpu_start: Application information:
I (1097) cpu_start: Project name: circuitpython
I (1103) cpu_start: App version: 5.3.0-11827-gfcde108d0-dirty
I (1109) cpu_start: Compile time: Apr 14 2022 21:38:17
I (1116) cpu_start: ELF file SHA256: e4423d5ee5e26a92...
I (1122) cpu_start: ESP-IDF: 121ddb87e-dirty
I (1128) heap_init: Initializing. RAM available for dynamic allocation:
I (1135) heap_init: At 3FCAB038 len 00034FC8 (211 KiB): D/IRAM
I (1141) heap_init: At 3FCE0000 len 0000EE34 (59 KiB): STACK/DRAM
I (1148) heap_init: At 3FCF0000 len 00008000 (32 KiB): DRAM
I (1154) heap_init: At 600FE028 len 00001FD8 (7 KiB): RTCRAM
I (1162) spi_flash: detected chip: generic
I (1166) spi_flash: flash io: dio
I (1170) sleep: Configure to isolate all GPIO pins in sleep state
I (1176) sleep: Enable automatic switching of GPIO sleep configuration
I (1184) coexist: coexist rom version e7ae62f
I (1189) cpu_start: Starting scheduler on PRO CPU.
I (0) cpu_start: Starting scheduler on APP CPU.
I (10) gpio: GPIO[0]| InputEn: 0| OutputEn: 0| OpenDrain: 0| Pullup: 1| Pulldown: 0| Intr:0
I (10) gpio: GPIO[1]| InputEn: 0| OutputEn: 0| OpenDrain: 0| Pullup: 1| Pulldown: 0| Intr:0
I (20) gpio: GPIO[2]| InputEn: 0| OutputEn: 0| OpenDrain: 0| Pullup: 1| Pulldown: 0| Intr:0
I (30) gpio: GPIO[3]| InputEn: 0| OutputEn: 0| OpenDrain: 0| Pullup: 1| Pulldown: 0| Intr:0
I (40) gpio: GPIO[4]| InputEn: 0| OutputEn: 0| OpenDrain: 0| Pullup: 1| Pulldown: 0| Intr:0
I (50) gpio: GPIO[5]| InputEn: 0| OutputEn: 0| OpenDrain: 0| Pullup: 1| Pulldown: 0| Intr:0
I (60) gpio: GPIO[6]| InputEn: 0| OutputEn: 0| OpenDrain: 0| Pullup: 1| Pulldown: 0| Intr:0
I (70) gpio: GPIO[7]| InputEn: 0| OutputEn: 0| OpenDrain: 0| Pullup: 1| Pulldown: 0| Intr:0
I (80) gpio: GPIO[8]| InputEn: 0| OutputEn: 0| OpenDrain: 0| Pullup: 1| Pulldown: 0| Intr:0
I (90) gpio: GPIO[9]| InputEn: 0| OutputEn: 0| OpenDrain: 0| Pullup: 1| Pulldown: 0| Intr:0
I (100) gpio: GPIO[10]| InputEn: 0| OutputEn: 0| OpenDrain: 0| Pullup: 1| Pulldown: 0| Intr:0
I (110) gpio: GPIO[11]| InputEn: 0| OutputEn: 0| OpenDrain: 0| Pullup: 1| Pulldown: 0| Intr:0
I (110) gpio: GPIO[12]| InputEn: 0| OutputEn: 0| OpenDrain: 0| Pullup: 1| Pulldown: 0| Intr:0
I (120) gpio: GPIO[13]| InputEn: 0| OutputEn: 0| OpenDrain: 0| Pullup: 1| Pulldown: 0| Intr:0
I (130) gpio: GPIO[14]| InputEn: 0| OutputEn: 0| OpenDrain: 0| Pullup: 1| Pulldown: 0| Intr:0
I (140) gpio: GPIO[15]| InputEn: 0| OutputEn: 0| OpenDrain: 0| Pullup: 1| Pulldown: 0| Intr:0
I (150) gpio: GPIO[16]| InputEn: 0| OutputEn: 0| OpenDrain: 0| Pullup: 1| Pulldown: 0| Intr:0
I (160) gpio: GPIO[17]| InputEn: 0| OutputEn: 0| OpenDrain: 0| Pullup: 1| Pulldown: 0| Intr:0
I (170) gpio: GPIO[18]| InputEn: 0| OutputEn: 0| OpenDrain: 0| Pullup: 1| Pulldown: 0| Intr:0
I (180) gpio: GPIO[21]| InputEn: 0| OutputEn: 0| OpenDrain: 0| Pullup: 1| Pulldown: 0| Intr:0
I (190) gpio: GPIO[38]| InputEn: 0| OutputEn: 0| OpenDrain: 0| Pullup: 1| Pulldown: 0| Intr:0
I (200) gpio: GPIO[45]| InputEn: 0| OutputEn: 0| OpenDrain: 0| Pullup: 1| Pulldown: 0| Intr:0
I (210) gpio: GPIO[46]| InputEn: 0| OutputEn: 0| OpenDrain: 0| Pullup: 1| Pulldown: 0| Intr:0
I (220) gpio: GPIO[47]| InputEn: 0| OutputEn: 0| OpenDrain: 0| Pullup: 1| Pulldown: 0| Intr:0
I (230) gpio: GPIO[48]| InputEn: 0| OutputEn: 0| OpenDrain: 0| Pullup: 1| Pulldown: 0| Intr:0
E (280) I2S: i2s_driver_uninstall(1957): I2S port 0 has not installed
E (280) I2S: i2s_driver_uninstall(1957): I2S port 1 has not installed
E (280) timer_group: timer_deinit(310): HW TIMER NEVER INIT ERROR
E (290) timer_group: timer_deinit(310): HW TIMER NEVER INIT ERROR
E (300) timer_group: timer_deinit(310): HW TIMER NEVER INIT ERROR
E (300) timer_group: timer_deinit(310): HW TIMER NEVER INIT ERROR
I (370) gpio: GPIO[0]| InputEn: 0| OutputEn: 0| OpenDrain: 0| Pullup: 1| Pulldown: 0| Intr:0
I (370) gpio: GPIO[1]| InputEn: 0| OutputEn: 0| OpenDrain: 0| Pullup: 1| Pulldown: 0| Intr:0
I (380) gpio: GPIO[2]| InputEn: 0| OutputEn: 0| OpenDrain: 0| Pullup: 1| Pulldown: 0| Intr:0
I (390) gpio: GPIO[3]| InputEn: 0| OutputEn: 0| OpenDrain: 0| Pullup: 1| Pulldown: 0| Intr:0
I (390) gpio: GPIO[4]| InputEn: 0| OutputEn: 0| OpenDrain: 0| Pullup: 1| Pulldown: 0| Intr:0
I (400) gpio: GPIO[5]| InputEn: 0| OutputEn: 0| OpenDrain: 0| Pullup: 1| Pulldown: 0| Intr:0
I (410) gpio: GPIO[6]| InputEn: 0| OutputEn: 0| OpenDrain: 0| Pullup: 1| Pulldown: 0| Intr:0
I (420) gpio: GPIO[7]| InputEn: 0| OutputEn: 0| OpenDrain: 0| Pullup: 1| Pulldown: 0| Intr:0
I (430) gpio: GPIO[8]| InputEn: 0| OutputEn: 0| OpenDrain: 0| Pullup: 1| Pulldown: 0| Intr:0
I (440) gpio: GPIO[9]| InputEn: 0| OutputEn: 0| OpenDrain: 0| Pullup: 1| Pulldown: 0| Intr:0
I (450) gpio: GPIO[10]| InputEn: 0| OutputEn: 0| OpenDrain: 0| Pullup: 1| Pulldown: 0| Intr:0
I (460) gpio: GPIO[11]| InputEn: 0| OutputEn: 0| OpenDrain: 0| Pullup: 1| Pulldown: 0| Intr:0
I (470) gpio: GPIO[12]| InputEn: 0| OutputEn: 0| OpenDrain: 0| Pullup: 1| Pulldown: 0| Intr:0
I (480) gpio: GPIO[13]| InputEn: 0| OutputEn: 0| OpenDrain: 0| Pullup: 1| Pulldown: 0| Intr:0
I (490) gpio: GPIO[14]| InputEn: 0| OutputEn: 0| OpenDrain: 0| Pullup: 1| Pulldown: 0| Intr:0
I (500) gpio: GPIO[15]| InputEn: 0| OutputEn: 0| OpenDrain: 0| Pullup: 1| Pulldown: 0| Intr:0
I (510) gpio: GPIO[16]| InputEn: 0| OutputEn: 0| OpenDrain: 0| Pullup: 1| Pulldown: 0| Intr:0
I (510) gpio: GPIO[17]| InputEn: 0| OutputEn: 0| OpenDrain: 0| Pullup: 1| Pulldown: 0| Intr:0
I (520) gpio: GPIO[18]| InputEn: 0| OutputEn: 0| OpenDrain: 0| Pullup: 1| Pulldown: 0| Intr:0
I (530) gpio: GPIO[21]| InputEn: 0| OutputEn: 0| OpenDrain: 0| Pullup: 1| Pulldown: 0| Intr:0
I (540) gpio: GPIO[38]| InputEn: 0| OutputEn: 0| OpenDrain: 0| Pullup: 1| Pulldown: 0| Intr:0
I (550) gpio: GPIO[45]| InputEn: 0| OutputEn: 0| OpenDrain: 0| Pullup: 1| Pulldown: 0| Intr:0
I (560) gpio: GPIO[46]| InputEn: 0| OutputEn: 0| OpenDrain: 0| Pullup: 1| Pulldown: 0| Intr:0
I (570) gpio: GPIO[47]| InputEn: 0| OutputEn: 0| OpenDrain: 0| Pullup: 1| Pulldown: 0| Intr:0
I (580) gpio: GPIO[48]| InputEn: 0| OutputEn: 0| OpenDrain: 0| Pullup: 1| Pulldown: 0| Intr:0
E (630) I2S: i2s_driver_uninstall(1957): I2S port 0 has not installed
E (630) I2S: i2s_driver_uninstall(1957): I2S port 1 has not installed