Support for EPS32-PICO-V3

Yes, that works perfectly fine.
I guess I need to stay in an unofficial branch for a while.

Do you have it in the roadmap?

Should this work now properly without any custom branches? =)

Does not work here on my side :slightly_frowning_face:

[env]
platform = espressif32
board = esp32dev
#board_build.partitions = default_8MB.csv
build_flags =
-DARDUINO_ARCH_ESP32
-DBOARD_HAS_PSRAM
-mfix-esp32-psram-cache-issue
framework = arduino
upload_port = /dev/ttyUSB0
monitor_port = /dev/ttyUSB0
monitor_speed = 115200

once I uncomment the default_8MB.csv line, the device will not boot anymore and prints errors that it cannot boot…

The “percentage” updates… but that doesnt help if its not booting :stuck_out_tongue:

With which settings does it work in the Arduino IDE?

Thanks Max,

I don’t know, I don’t use the Arduino IDE :man_shrugging:

VS-Code + PlatformIO

Well does your board have 8MB flash? Pleas execute <python> esptool.py flash_id in accordance to Upload failed on esp-wrover-kit (framework = arduino, espidf) - #2 by maxgerhardt and post the output here.

1 Like

As you already posted above, I am using the ESP32-pico-v3-02.

This chip has 8MB built in.

esptool.py v4.2.1
Found 2 serial ports
Serial port /dev/ttyUSB0
Connecting.....
Detecting chip type... Unsupported detection protocol, switching and trying again...
Connecting.....
Detecting chip type... ESP32
Chip is ESP32-PICO-V3-02 (revision 3)
Features: WiFi, BT, Dual Core, 240MHz, Embedded Flash, Embedded PSRAM, VRef calibration in efuse, Coding Scheme None
Crystal is 40MHz
MAC: 30:83:98:d1:a6:44
Uploading stub...
Running stub...
Stub running...
Manufacturer: 68
Device: 4017
Detected flash size: 8MB
Hard resetting via RTS pin...

build script says 4MB?

Verbose mode can be enabled via `-v, --verbose` option
CONFIGURATION: https://docs.platformio.org/page/boards/espressif32/esp32dev.html
PLATFORM: Espressif 32 (5.2.0) > Espressif ESP32 Dev Module
HARDWARE: ESP32 240MHz, 320KB RAM, 4MB Flash
DEBUG: Current (cmsis-dap) External (cmsis-dap, esp-bridge, esp-prog, iot-bus-jtag, jlink, minimodule, olimex-arm-usb-ocd, olimex-arm-usb-ocd-h, olimex-arm-usb-tiny-h, olimex-jtag-tiny, tumpa)
PACKAGES: 
 - framework-arduinoespressif32 @ 3.20005.220925 (2.0.5) 
 - tool-esptoolpy @ 1.40201.0 (4.2.1) 
 - tool-mkfatfs @ 2.0.1 
 - tool-mklittlefs @ 1.203.210628 (2.3) 
 - tool-mkspiffs @ 2.230.0 (2.30) 
 - toolchain-xtensa-esp32 @ 8.4.0+2021r2-patch3
LDF: Library Dependency Finder -> https://bit.ly/configure-pio-ldf
LDF Modes: Finder ~ chain, Compatibility ~ soft
Found 41 compatible libraries
Scanning dependencies...
Dependency Graph
|-- SPI @ 2.0.0
|-- WiFi @ 2.0.0
|-- LittleFS @ 2.0.0
|   |-- FS @ 2.0.0
|-- ArduinoJson @ 6.19.4
|-- ESPAsyncDNSServer @ 1.0.0+sha.89e6db8
|   |-- ESP32 Async UDP @ 2.0.0
|-- ESPAsync_WiFiManager @ 1.15.0+sha.d45153b
|   |-- AsyncTCP @ 1.1.1
|   |-- ESP Async WebServer @ 1.2.3
|   |   |-- AsyncTCP @ 1.1.1
|   |   |-- FS @ 2.0.0
|   |   |-- WiFi @ 2.0.0
|   |-- ESP_DoubleResetDetector @ 1.3.2
|   |-- ESPAsyncDNSServer @ 1.0.0+sha.89e6db8
|   |   |-- ESP32 Async UDP @ 2.0.0
|   |-- WiFi @ 2.0.0
|-- NeoPixelBus @ 2.7.0
|   |-- SPI @ 2.0.0
|-- AsyncMqttClient @ 0.9.0
|   |-- AsyncTCP @ 1.1.1
|-- HTTPClient @ 2.0.0
|   |-- WiFi @ 2.0.0
|   |-- WiFiClientSecure @ 2.0.0
|   |   |-- WiFi @ 2.0.0
|-- HTTPUpdate @ 2.0.0
|   |-- HTTPClient @ 2.0.0
|   |   |-- WiFi @ 2.0.0
|   |   |-- WiFiClientSecure @ 2.0.0
|   |   |   |-- WiFi @ 2.0.0
|   |-- Update @ 2.0.0
|   |-- WiFi @ 2.0.0
|-- FS @ 2.0.0
Building in release mode
Retrieving maximum program size .pio/build/release/firmware.elf
Checking size .pio/build/release/firmware.elf
Advanced Memory Usage is available via "PlatformIO Home > Project Inspect"
RAM:   [==        ]  16.0% (used 52460 bytes from 327680 bytes)
Flash: [========= ]  94.5% (used 1239105 bytes from 1310720 bytes)

What are the exact bootloader messages at 115200 baud after you flash it with the 8MB partition table?

1 Like
rst:0x3 (SW_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)
configsip: 271414342, 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:1184
load:0x40078000,len:13132
load:0x40080400,len:3036
entry 0x400805e4
ets Jul 29 2019 12:21:46

rst:0x3 (SW_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)
configsip: 271414342, 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:1184
load:0x40078000,len:13132
load:0x40080400,len:3036
entry 0x400805e4
ets Jul 29 2019 12:21:46

rst:0x3 (SW_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)
configsip: 271414342, 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:1184
load:0x40078000,len:13132
load:0x40080400,len:3036
entry 0x400805e4
ets Jul 29 2019 12:21:46

rst:0x3 (SW_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)
configsip: 271414342, 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:1184
load:0x40078000,len:13132
load:0x40080400,len:3036
entry 0x400805e4
ets Jul 29 2019 12:21:46

rst:0x3 (SW_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)
configsip: 271414342, 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:1184
load:0x40078000,len:13132
load:0x40080400,len:3036
entry 0x400805e4
ets Jul 29 2019 12:21:46

rst:0x3 (SW_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)
configsip: 271414342, 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:1184
load:0x40078000,len:13132
load:0x40080400,len:3036
entry 0x400805e4
ets Jul 29 2019 12:21:46

Please install the Arduino IDE + Arduino-ESP32 2.0.5 core and test with the same configuration (done via the Arduino IDE → Tools menu). That way we know whether PlatformIO is at fault or the core itself.

Did you also try the simplest possible blink + print sketch in PlatlformIO with the 8MByte partition table? Your sketch seems quite extensive.

1 Like

this works… at least does not crash

but I have no clue what they exactly do? can find any settings saved anywhere… this IDE is horrible :see_no_evil:

Then let’s equalize the settings accoding to the docs. Can you use the following platformio.ini:

[env]
platform = espressif32
board = esp32dev
framework = arduino
; PSRAM: "Enabled"
; Core Debug Level: "Verbose"
build_flags =
  -DBOARD_HAS_PSRAM
  -mfix-esp32-psram-cache-issue
  -DCORE_DEBUG_LEVEL=5
; Partition Scheme: "8M with spiffs"
board_build.partitions = default_8MB.csv
; Flash Mode: "QIO"
board_build.flash_mode = qio
; upload + monitor sports and speed
upload_port = /dev/ttyUSB0
monitor_port = /dev/ttyUSB0
monitor_speed = 115200

And use the exact some source code as in the Arduino IDE in your src/main.cpp.

1 Like

stripped it down…

image

platformio result is:

RAM:   [=         ]   5.0% (used 16520 bytes from 327680 bytes)
Flash: [=         ]   7.7% (used 257305 bytes from 3342336 bytes)

and arduino result is

Sketch uses 262409 bytes (7%) of program storage space. Maximum is 3342336 bytes.
Global variables use 16520 bytes (5%) of dynamic memory, leaving 311160 bytes for local variables. Maximum is 327680 bytes.

so its very close… but still crashing

built outputs: Deleted

What are the bootloader messages after flashing it with the Arduino IDE but opening the serial monitor in PlatformIO and pressing the reset button?

now its not working either using the Arduino IDE…

The IDE now prints some weird warning too

Configuring flash size...
Erasing flash (this may take a while)...
Chip erase completed successfully in 1.9s
Warning: Image file at 0x1000 is protected with a hash checksum, so not changing the flash size setting. Use the --flash_size=keep option instead of --flash_size=8MB in order to remove this warning, or use the --dont-append-digest option for the elf2image command in order to generate an image file without a hash checksum
Compressed 18880 bytes to 13027...
Writing at 0x00001000... (100 %)
Wrote 18880 bytes (13027 compressed) at 0x00001000 in 0.2 seconds (effective 649.1 kbit/s)...

rst:0x3 (SW_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)
configsip: 271414342, 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:1344
load:0x40078000,len:13836
load:0x40080400,len:3608
entry 0x400805f0
ets Jul 29 2019 12:21:46

rst:0x3 (SW_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)
configsip: 271414342, 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:1344
load:0x40078000,len:13836
load:0x40080400,len:3608
entry 0x400805f0
ets Jul 29 2019 12:21:46

rst:0x3 (SW_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)
configsip: 271414342, 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:1344
load:0x40078000,len:13836
load:0x40080400,len:3608
entry 0x400805f0
ets Jul 29 2019 12:21:46

rst:0x3 (SW_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)
configsip: 271414342, 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:1344
load:0x40078000,len:13836
load:0x40080400,len:3608
entry 0x400805f0
ets Jul 29 2019 12:21:46

okay… here is the bootloader startup using the ARDUINO build:

huhu
huhu
huhu
huhu
huhu
huhu
huhu
ets Jul 29 2019 12:21:46

rst:0x1 (POWERON_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)
configsip: 271414342, 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:1344
load:0x40078000,len:13836
load:0x40080400,len:3608
entry 0x400805f0
[     4][D][esp32-hal-cpu.c:244] setCpuFrequencyMhz(): PLL: 480 / 2 = 240 Mhz, APB: 80000000 Hz
[   228][I][esp32-hal-psram.c:96] psramInit(): PSRAM enabled
huhu
huhu
huhu
huhu
huh

PS: I cant write new replies… maybe I can edit this one :see_no_evil:
TEST! :slight_smile:

BTW: … arduino was NOT working as long the content of that ZIP were within the sketch folder :thinking:

… startup platformio using the default partitions …

ets Jul 29 2019 12:21:46

rst:0x1 (POWERON_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)
configsip: 271414342, 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:1344
load:0x40078000,len:13836
load:0x40080400,len:3608
entry 0x400805f0

You seem to be running in weird bugs here. If you can consistently reproduce the faul within the Arduino IDE, file an issue at Issues · espressif/arduino-esp32 · GitHub. Otherwise, if the issue persists in PlatformIO, file an issue in Issues · platformio/platform-espressif32 · GitHub.

1 Like

I can consistently make it work with arduino but can’t make it work with platformio.

thanks for your assistance max!

I will file an issue and link this discussion though :slight_smile:

hope we can find a solution :innocent: