Unable to upload, disconnects from PC

For Adafruit customers who seek help with microcontrollers

Moderators: adafruit_support_bill, adafruit

Please be positive and constructive with your questions and comments.
Locked
User avatar
jholbrook81
 
Posts: 3
Joined: Wed Mar 08, 2023 10:12 am

Unable to upload, disconnects from PC

Post by jholbrook81 »

I'm using an Adafruit QT Py ESP32-S3 No PSRAM. Windows 10 machine, developing in VS Code with platformio.

I see the board on COM3, am able to connect to the serial monitor. Every time I try to upload it immediately disconnects. I have tried hardcoding the COM port as well as various other config settings, restarting VS Code, restarting PC, disconnecting board from PC, a different USB port, and a different board (same model).


Upload log:

Code: Select all

Processing adafruit_qtpy_esp32s3_nopsram (platform: espressif32; board: adafruit_qtpy_esp32s3_nopsram; framework: 
arduino)
------------------------------------------------------------------------------------------------------------------Verbose mode can be enabled via `-v, --verbose` option
CONFIGURATION: https://docs.platformio.org/page/boards/espressif32/adafruit_qtpy_esp32s3_nopsram.html
PLATFORM: Espressif 32 (6.0.1) > Adafruit QT Py ESP32-S3 No PSRAM
HARDWARE: ESP32S3 240MHz, 320KB RAM, 8MB Flash
DEBUG: Current (cmsis-dap) External (cmsis-dap, esp-bridge, esp-builtin, 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.20006.221224 (2.0.6)
 - tool-esptoolpy @ 1.40400.0 (4.4.0)
 - tool-mkfatfs @ 2.0.1
 - tool-mklittlefs @ 1.203.210628 (2.3)
 - tool-mkspiffs @ 2.230.0 (2.30)
 - tool-openocd-esp32 @ 2.1100.20220706 (11.0)
 - toolchain-riscv32-esp @ 8.4.0+2021r2-patch5
 - toolchain-xtensa-esp32s3 @ 8.4.0+2021r2-patch5
Warning! An extra UF2 bootloader image is already added!
LDF: Library Dependency Finder -> https://BANNED/configure-pio-ldf
LDF Modes: Finder ~ chain, Compatibility ~ soft
Found 33 compatible libraries
Scanning dependencies...
No dependencies
Building in release mode
Compiling .pio\build\adafruit_qtpy_esp32s3_nopsram\FrameworkArduinoVariant\variant.cpp.o
Compiling .pio\build\adafruit_qtpy_esp32s3_nopsram\src\main.cpp.o
Generating partitions .pio\build\adafruit_qtpy_esp32s3_nopsram\partitions.bin
Compiling .pio\build\adafruit_qtpy_esp32s3_nopsram\FrameworkArduino\Esp.cpp.o
Compiling .pio\build\adafruit_qtpy_esp32s3_nopsram\FrameworkArduino\FirmwareMSC.cpp.o
Compiling .pio\build\adafruit_qtpy_esp32s3_nopsram\FrameworkArduino\FunctionalInterrupt.cpp.o
Compiling .pio\build\adafruit_qtpy_esp32s3_nopsram\FrameworkArduino\HWCDC.cpp.o
Compiling .pio\build\adafruit_qtpy_esp32s3_nopsram\FrameworkArduino\HardwareSerial.cpp.o
Compiling .pio\build\adafruit_qtpy_esp32s3_nopsram\FrameworkArduino\IPAddress.cpp.o
Compiling .pio\build\adafruit_qtpy_esp32s3_nopsram\FrameworkArduino\IPv6Address.cpp.o
Compiling .pio\build\adafruit_qtpy_esp32s3_nopsram\FrameworkArduino\MD5Builder.cpp.o
Compiling .pio\build\adafruit_qtpy_esp32s3_nopsram\FrameworkArduino\Print.cpp.o
Compiling .pio\build\adafruit_qtpy_esp32s3_nopsram\FrameworkArduino\Stream.cpp.o
Compiling .pio\build\adafruit_qtpy_esp32s3_nopsram\FrameworkArduino\StreamString.cpp.o
Compiling .pio\build\adafruit_qtpy_esp32s3_nopsram\FrameworkArduino\Tone.cpp.o
Compiling .pio\build\adafruit_qtpy_esp32s3_nopsram\FrameworkArduino\USB.cpp.o
Compiling .pio\build\adafruit_qtpy_esp32s3_nopsram\FrameworkArduino\USBCDC.cpp.o
Compiling .pio\build\adafruit_qtpy_esp32s3_nopsram\FrameworkArduino\USBMSC.cpp.o
Compiling .pio\build\adafruit_qtpy_esp32s3_nopsram\FrameworkArduino\WMath.cpp.o
Compiling .pio\build\adafruit_qtpy_esp32s3_nopsram\FrameworkArduino\WString.cpp.o
Compiling .pio\build\adafruit_qtpy_esp32s3_nopsram\FrameworkArduino\base64.cpp.o
Compiling .pio\build\adafruit_qtpy_esp32s3_nopsram\FrameworkArduino\cbuf.cpp.o
Compiling .pio\build\adafruit_qtpy_esp32s3_nopsram\FrameworkArduino\esp32-hal-adc.c.o
Compiling .pio\build\adafruit_qtpy_esp32s3_nopsram\FrameworkArduino\esp32-hal-bt.c.o
Compiling .pio\build\adafruit_qtpy_esp32s3_nopsram\FrameworkArduino\esp32-hal-cpu.c.o
Compiling .pio\build\adafruit_qtpy_esp32s3_nopsram\FrameworkArduino\esp32-hal-dac.c.o
Compiling .pio\build\adafruit_qtpy_esp32s3_nopsram\FrameworkArduino\esp32-hal-gpio.c.o
Compiling .pio\build\adafruit_qtpy_esp32s3_nopsram\FrameworkArduino\esp32-hal-i2c-slave.c.o
Compiling .pio\build\adafruit_qtpy_esp32s3_nopsram\FrameworkArduino\esp32-hal-i2c.c.o
Compiling .pio\build\adafruit_qtpy_esp32s3_nopsram\FrameworkArduino\esp32-hal-ledc.c.o
Compiling .pio\build\adafruit_qtpy_esp32s3_nopsram\FrameworkArduino\esp32-hal-matrix.c.o
Compiling .pio\build\adafruit_qtpy_esp32s3_nopsram\FrameworkArduino\esp32-hal-misc.c.o
Compiling .pio\build\adafruit_qtpy_esp32s3_nopsram\FrameworkArduino\esp32-hal-psram.c.o
Compiling .pio\build\adafruit_qtpy_esp32s3_nopsram\FrameworkArduino\esp32-hal-rgb-led.c.o
Compiling .pio\build\adafruit_qtpy_esp32s3_nopsram\FrameworkArduino\esp32-hal-rmt.c.o
Compiling .pio\build\adafruit_qtpy_esp32s3_nopsram\FrameworkArduino\esp32-hal-sigmadelta.c.o
Compiling .pio\build\adafruit_qtpy_esp32s3_nopsram\FrameworkArduino\esp32-hal-spi.c.o
Compiling .pio\build\adafruit_qtpy_esp32s3_nopsram\FrameworkArduino\esp32-hal-time.c.o
Compiling .pio\build\adafruit_qtpy_esp32s3_nopsram\FrameworkArduino\esp32-hal-timer.c.o
Compiling .pio\build\adafruit_qtpy_esp32s3_nopsram\FrameworkArduino\esp32-hal-tinyusb.c.o
Compiling .pio\build\adafruit_qtpy_esp32s3_nopsram\FrameworkArduino\esp32-hal-touch.c.o
Compiling .pio\build\adafruit_qtpy_esp32s3_nopsram\FrameworkArduino\esp32-hal-uart.c.o
Compiling .pio\build\adafruit_qtpy_esp32s3_nopsram\FrameworkArduino\firmware_msc_fat.c.o
Compiling .pio\build\adafruit_qtpy_esp32s3_nopsram\FrameworkArduino\libb64\cdecode.c.o
Compiling .pio\build\adafruit_qtpy_esp32s3_nopsram\FrameworkArduino\libb64\cencode.c.o
Compiling .pio\build\adafruit_qtpy_esp32s3_nopsram\FrameworkArduino\main.cpp.o
Compiling .pio\build\adafruit_qtpy_esp32s3_nopsram\FrameworkArduino\stdlib_noniso.c.o
Compiling .pio\build\adafruit_qtpy_esp32s3_nopsram\FrameworkArduino\wiring_pulse.c.o
Compiling .pio\build\adafruit_qtpy_esp32s3_nopsram\FrameworkArduino\wiring_shift.c.o
Archiving .pio\build\adafruit_qtpy_esp32s3_nopsram\libFrameworkArduino.a
Linking .pio\build\adafruit_qtpy_esp32s3_nopsram\firmware.elf
Retrieving maximum program size .pio\build\adafruit_qtpy_esp32s3_nopsram\firmware.elf
Checking size .pio\build\adafruit_qtpy_esp32s3_nopsram\firmware.elf
Advanced Memory Usage is available via "PlatformIO Home > Project Inspect"
RAM:   [=         ]   5.8% (used 18856 bytes from 327680 bytes)
Flash: [=         ]  11.7% (used 244405 bytes from 2097152 bytes)
Building .pio\build\adafruit_qtpy_esp32s3_nopsram\firmware.bin
esptool.py v4.4
Creating esp32s3 image...
Merged 2 ELF sections
Successfully created esp32s3 image.
Configuring upload protocol...
AVAILABLE: cmsis-dap, esp-bridge, esp-builtin, esp-prog, espota, esptool, iot-bus-jtag, jlink, minimodule, olimex-arm-usb-ocd, olimex-arm-usb-ocd-h, olimex-arm-usb-tiny-h, olimex-jtag-tiny, tumpa
CURRENT: upload_protocol = esptool
Looking for upload port...
Using manually specified: COM3
Forcing reset using 1200bps open/close on port COM3
Waiting for the new upload port...
Error: Couldn't find a board on the selected port. Check that you have the correct port selected. If it is correct, try pressing the board's reset button after initiating the upload.
*** [upload] Explicit exit, status 1
========================================== [FAILED] Took 20.43 seconds ==========================================

Platformio.ini

Code: Select all

[env:adafruit_qtpy_esp32s3_nopsram]
platform = espressif32
board = adafruit_qtpy_esp32s3_nopsram
framework = arduino
upload_protocol = esptool
upload_port = COM3
upload_speed = 9600
build_flags = -DARDUINO_USB_MODE=1
board_build.partitions = partitions-8MB-tinyuf2.csv
Main.cpp

Code: Select all

#include <Arduino.h>
int globalCount =0;

void setup() {
  Serial.begin(9600);
  Serial.println("Starting demo...");
}


void loop() {
  Serial.println("globalCount: " + globalCount);  
  delay(1000);  
  globalCount++;
}

User avatar
mikeysklar
 
Posts: 13936
Joined: Mon Aug 01, 2016 8:10 pm

Re: Unable to upload, disconnects from PC

Post by mikeysklar »

On the Arduino side the ESP32 board support package has been receiving several updates to fix ESP32-S3 uploads. Are you using espressif's core v2.0.7 it resolves some of the issues.

https://github.com/espressif/arduino-esp32/issues/7882

User avatar
jholbrook81
 
Posts: 3
Joined: Wed Mar 08, 2023 10:12 am

Re: Unable to upload, disconnects from PC

Post by jholbrook81 »

mikeysklar wrote: Wed Mar 08, 2023 7:32 pm On the Arduino side the ESP32 board support package has been receiving several updates to fix ESP32-S3 uploads. Are you using espressif's core v2.0.7 it resolves some of the issues.

https://github.com/espressif/arduino-esp32/issues/7882
I searched the .platformio directory and found .platformio\packages\framework-arduinoespressif32\cores\esp32\core_version.h which indicates it's on v2.0.6. I thought maybe I need to force platformio to use 2.0.7, but this is a package which I would expect the app to be coded against and not control upload?

I downloaded esp32-2.0.7.zip from https://github.com/espressif/arduino-esp32/releases. I looked at it and the folder structure matches the other frameworks.

How can I make platformio use expressif v2.0.7?

User avatar
jholbrook81
 
Posts: 3
Joined: Wed Mar 08, 2023 10:12 am

Re: Unable to upload, disconnects from PC

Post by jholbrook81 »

Somehow I got it working. I did a factory reset following these intructions: https://learn.adafruit.com/adafruit-qt- ... tory-reset

The UF2 file didn't work, I had to use the "Factory Reset and Bootloader Repair" method. I was still having issues, but there was a section in the reset procedure called "Enter ROM Bootloader mode"
Press and hold the BOOT/DFU button down. Don't let go of it yet!
Press and release the Reset button. You should still have the BOOT/DFU button pressed while you do this.
Now you can release the BOOT/DFU button.
If I do that prior to uploading I can get it to work reliably. Is this normal?

User avatar
mikeysklar
 
Posts: 13936
Joined: Mon Aug 01, 2016 8:10 pm

Re: Unable to upload, disconnects from PC

Post by mikeysklar »

Custom user code normally requires manual bootloading mode. A simple sketch like blink might not require manual bootloading. The code example you had shown looked pretty basic, but give this a try:

Code: Select all

int led = LED_BUILTIN;

void setup() {
  // Some boards work best if we also make a serial connection
  Serial.begin(115200);

  // set LED to be an output pin
  pinMode(led, OUTPUT);
}

void loop() {
  // Say hi!
  Serial.println("Hello!");
  
  digitalWrite(led, HIGH);   // turn the LED on (HIGH is the voltage level)
  delay(500);                // wait for a half second
  digitalWrite(led, LOW);    // turn the LED off by making the voltage LOW
  delay(500);                // wait for a half second
}

Locked
Please be positive and constructive with your questions and comments.

Return to “Microcontrollers”