Xinyuan-LilyGO / T-Embed

MIT License
84 stars 22 forks source link

Device is constantly disconnecting from USB #11

Closed Arielhh closed 1 year ago

Arielhh commented 1 year ago

How is it possible to reset the device so it will be possible to upload a program? on the T-Display S3 you have to press Boot and Reset at the same time and then leave the reset button. How it can be done in this device?

Thanks,

cydergoth commented 1 year ago

Hi - I had a similar issue, and I was able to flash it by taking the ESP IDF flash command line and adding the flag to use the ROM flash option --no-stub

The default behavior is to try to upload a small extra stub then communicate with that to perform the flash.

I may have also specified different reset options for before/after and done a complete flash erase.

I suggest flashing with a known working example, even if it is just a trivial ESP_LOGI in app_main

cydergoth commented 1 year ago
xxxxxxx@embedded-dev:~/workspace/tembed$ esptool.py --help
usage: esptool [-h] [--chip {auto,esp8266,esp32,esp32s2,esp32s3beta2,esp32s3,esp32c3,esp32c6beta,esp32h2beta1,esp32h2beta2,esp32c2,esp32c6}] [--port PORT] [--baud BAUD] [--before {default_reset,usb_reset,no_reset,no_reset_no_sync}] [--after {hard_reset,soft_reset,no_reset,no_reset_stub}] [--no-stub] [--trace] [--override-vddsdio [{1.8V,1.9V,OFF}]] [--connect-attempts CONNECT_ATTEMPTS]
               {load_ram,dump_mem,read_mem,write_mem,write_flash,run,image_info,make_image,elf2image,read_mac,chip_id,flash_id,read_flash_status,write_flash_status,read_flash,verify_flash,erase_flash,erase_region,merge_bin,get_security_info,version} ...

esptool.py v4.4 - Espressif chips ROM Bootloader Utility

positional arguments:
  {load_ram,dump_mem,read_mem,write_mem,write_flash,run,image_info,make_image,elf2image,read_mac,chip_id,flash_id,read_flash_status,write_flash_status,read_flash,verify_flash,erase_flash,erase_region,merge_bin,get_security_info,version}
                        Run esptool.py {command} -h for additional help
    load_ram            Download an image to RAM and execute
    dump_mem            Dump arbitrary memory to disk
    read_mem            Read arbitrary memory location
    write_mem           Read-modify-write to arbitrary memory location
    write_flash         Write a binary blob to flash
    run                 Run application code in flash
    image_info          Dump headers from an application image
    make_image          Create an application image from binary files
    elf2image           Create an application image from ELF file
    read_mac            Read MAC address from OTP ROM
    chip_id             Read Chip ID from OTP ROM
    flash_id            Read SPI flash manufacturer and device ID
    read_flash_status   Read SPI flash status register
    write_flash_status  Write SPI flash status register
    read_flash          Read SPI flash content
    verify_flash        Verify a binary blob against flash
    erase_flash         Perform Chip Erase on SPI flash
    erase_region        Erase a region of the flash
    merge_bin           Merge multiple raw binary files into a single file for later flashing
    get_security_info   Get some security-related data
    version             Print esptool version

options:
  -h, --help            show this help message and exit
  --chip {auto,esp8266,esp32,esp32s2,esp32s3beta2,esp32s3,esp32c3,esp32c6beta,esp32h2beta1,esp32h2beta2,esp32c2,esp32c6}, -c {auto,esp8266,esp32,esp32s2,esp32s3beta2,esp32s3,esp32c3,esp32c6beta,esp32h2beta1,esp32h2beta2,esp32c2,esp32c6}
                        Target chip type
  --port PORT, -p PORT  Serial port device
  --baud BAUD, -b BAUD  Serial port baud rate used when flashing/reading
  --before {default_reset,usb_reset,no_reset,no_reset_no_sync}
                        What to do before connecting to the chip
  --after {hard_reset,soft_reset,no_reset,no_reset_stub}, -a {hard_reset,soft_reset,no_reset,no_reset_stub}
                        What to do after esptool.py is finished
  --no-stub             Disable launching the flasher stub, only talk to ROM bootloader. Some features will not be available.
  --trace, -t           Enable trace-level output of esptool.py interactions.
  --override-vddsdio [{1.8V,1.9V,OFF}]
                        Override ESP32 VDDSDIO internal voltage regulator (use with care)
  --connect-attempts CONNECT_ATTEMPTS
                        Number of attempts to connect, negative or 0 for infinite. Default: 7.

This is using ESP-IDF v5.0

Arielhh commented 1 year ago

Hi cydergoth, Thanks for your answer, I am not using the ESP IDF . I am using the Arduino IDE. do you have any solution that i can implement using the Arduino IDE?

cydergoth commented 1 year ago

Hi - esptool should be available with the Arduino IDE too. You have to run it from the command line however.

On Fri, Jan 20, 2023, 5:31 PM Arielhh @.***> wrote:

Hi cydergoth, Thanks for your answer, I am not using the ESP IDF . I am using the Arduino IDE. do you have any solution that i can implement using the Arduino IDE?

— Reply to this email directly, view it on GitHub https://github.com/Xinyuan-LilyGO/T-Embed/issues/11#issuecomment-1399074146, or unsubscribe https://github.com/notifications/unsubscribe-auth/ABPWAWXZ6IYLU5C4DBAERNTWTMN6VANCNFSM6AAAAAAT7NKYXI . You are receiving this because you commented.Message ID: @.***>

cydergoth commented 1 year ago

For reference this is the command which I used:

esptool.py --no-stub -b 460800 --before default_reset --after hard_reset --chip esp32s3  write_flash --flash_mode dio --flash_size detect --flash_freq 80m 0x0 build/bootloader/bootloader.bin 0x8000 build/partition_table/partition-table.bin 0x10000 build/esp_idf_v5.bin

Where esp_idf_v5.bin is the compiled binary file from my project

mmMicky commented 1 year ago

The middle button in the encoder is the BOOT button. The one on the side is the RST button. Can be used in combination

lewisxhe commented 1 year ago

Please reopen it if there are any further issues