lowsync error: "ESP32 not responding, timeout" (ESP32-WROVER)



  • Hello,

    Low.js seams full of promises so I'd like to test it as an alternative to native C.

    I'm trying to use the following ESP32 Wrover board: LOLIN D32 Pro based on ESP32-WROVER Rev 1 (chip is ESP32-D0WD ). Until now it works correctly with esp-idf 3.3.1 toolchain. I never had issue with make flash with these board and USB cable.

    When I try to replace the firmware with low.js I get the following error:

    $ node_modules/.bin/lowsync flash --port=/dev/ttyUSB0 --init
    *** Step 1/3: Probing ESP32 microcontroller
        now checking if it is an ESP32-WROVER... (takes a while)
    Unexpected error: ESP32 not responding, timeout Error: ESP32 not responding, timeout
        at Timeout._onTimeout (/home/f/esp/lowjs_test/node_modules/lowsync/build/webpack:/src/commands/commands/flash.ts:28:20)
        at listOnTimeout (internal/timers.js:549:17)
        at processTimers (internal/timers.js:492:7)
    

    My configuration is:

    $ uname -a
    Linux hostnameXXX 5.3.0-26-generic #28-Ubuntu SMP Wed Dec 18 05:37:46 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux
    $ npm --version
    6.13.6
    $ nodejs --version
    v13.6.0
    $ node_modules/.bin/lowsync --version
    1.4.4
    

    I tried to manually force additional lowsync and esptool parameters without success.

    Any idea how I can make lowsync work and start using low.js?



  • I guess the program we flash to probe whether it is a ESP32-WROVER is not working on your board. The first time I have seen this error.

    After calling low sync, can you check what the microcontroller outputs on UART with a monitoring program? It might show an error message.

    Thank you!

    Thomas



  • Thank you for your reply. I built a custom lowsync without the check_wrover call and now it works...



  • The default baudrate is:

            const port = new SerialPort(path, { baudRate: 921600 });
    

    But for my board 115200 is better for the console.



  • You are right, no need to set baud rate this high for a simple status report. Will change this in next lowsync version.



  • The microcontroller output is:

    ets Jun  8 2016 00:22:57
    
    rst:0x1 (POWERON_RESET),boot:0x17 (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:1
    load:0x3fff0018,len:4
    load:0x3fff001c,len:5212
    load:0x40078000,len:9036
    ho 0 tail 12 room 4
    load:0x40080400,len:6572
    entry 0x400806f8
    Ό��ϖF��Ό�ܮ���6��������ϖ�������,�����6�����������D���Ď����,����ΌJ�ꌿ�
                                                                        ���
                                                                           �
    
    
    

    The parsing doesn't seem to work.

    If I force systemSize manually the flash process works but then the boot process fails.

    Flashing now works (NB: I added some console.log() calls)

    $ lowsync flash --port=/dev/ttyUSB0 --init
    *** Step 1/3: Probing ESP32 microcontroller
        now checking if it is an ESP32-WROVER... (takes a while)
    Replace cehck_wrover(...) with systemSize = 9 * 1024 * 1024
    *** Step 2/3: Erasing flash and building image in parallel
    esptool.py v2.8
    Serial port /dev/ttyUSB0
    Connecting....
    Detecting chip type... ESP32
    Chip is ESP32D0WDQ5 (revision 1)
    Features: WiFi, BT, Dual Core, 240MHz, VRef calibration in efuse, Coding Scheme None
    Crystal is 40MHz
    MAC: 84:0d:8e:d2:a5:bc
    Uploading stub...
    Running stub...
    Stub running...
    Erasing flash (this may take a while)...
    Chip erase completed successfully in 2.7s
    Hard resetting via RTS pin...
    Downloading data from neonious servers...
    Building firmware...
    ****** Used flash space: ******
    low.js code       2097152 bytes
    low.js data        793247 bytes
    Static files            0 bytes
    Factory files        6842 bytes
    Modules             53830 bytes
    Settings              746 bytes
    Reserved           193911 bytes
    -------------------------------
    Total             3145728 bytes
    *** Step 3/3: Flashing firmware
    esptool.py v2.8
    Serial port /dev/ttyUSB0
    Connecting....
    Detecting chip type... ESP32
    Chip is ESP32D0WDQ5 (revision 1)
    Features: WiFi, BT, Dual Core, 240MHz, VRef calibration in efuse, Coding Scheme None
    Crystal is 40MHz
    MAC: 84:0d:8e:d2:a5:bc
    Uploading stub...
    Running stub...
    Stub running...
    Configuring flash size...
    Auto-detected Flash size: 16MB
    Flash params set to 0x024f
    Compressed 2947724 bytes to 1695361...
    Wrote 2947724 bytes (1695361 compressed) at 0x00001000 in 149.5 seconds (effective 157.7 kbit/s)...
    Hash of data verified.
    
    Leaving...
    Hard resetting via RTS pin...
    *** Done, low.js flashed. Please give your device a few seconds to reset to factory state
    To communicate with your microcontroller, connect to the Wifi:
    SSID:       low.js@ESP32 840D8ED2A5BC
    Password:   TRvezeE2RDyO
    In this Wifi, the microcontroller has the IP 192.168.0.1
    Note: Your device has enough flash space to support low.js Professional with on-board web-based IDE + debugger, over-the-air updating and native modules. Please check https://www.neonious.com/Store for more information!
    
    

    However boot fails.

    UART output is:

    rst:0xc (SW_CPU_RESET),boot:0x17 (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:1
    load:0x3fff0018,len:4
    load:0x3fff001c,len:272
    ho 0 tail 12 room 4
    load:0x40078000,len:7236
    load:0x40080400,len:5728
    entry 0x40080648
    ets Jun  8 2016 00:22:57
    
    rst:0xc (SW_CPU_RESET),boot:0x17 (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:1
    load:0x3fff0018,len:4
    load:0x3fff001c,len:272
    ho 0 tail 12 room 4
    load:0x40078000,len:7236
    load:0x40080400,len:5728
    entry 0x40080648
    ets Jun  8 2016 00:22:57
    
    rst:0xc (SW_CPU_RESET),boot:0x17 (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:1
    load:0x3fff0018,len:4
    load:0x3fff001c,len:272
    ho 0 tail 12 room 4
    load:0x40078000,len:7236
    load:0x40080400,len:5728
    entry 0x40080648
    ...
    

    Any idea?



  • OK so both programs, low.js and the test program are not working on your board. I have no idea why, as I have never seen a board with this error (the other person with flashing problems in this forum is having a different problem, btw, which is transfering the data and not running the flashed programs).

    If you would send the board to me, I could take a very detailed look and figure this out. Is this an option? I would send the board back at no charge.

    Thomas



  • Thank you for your proposition regarding testing my board.
    I use this board for prototyping but my target is not to use it in my final product (a kitchen webradio : https://github.com/fc92/my-podcaster). I see that you are selling ESP32-WROVER Breakout-Board and ESP32-WROVER 16 MB. Is it an alternative that I could use for development? How do you flash the board in this configuration (no USB ?).



  • Yes, you can use the ESP32-WROVER + the breakout board for development. You will need a USB to TTL board for flashing.

    As I did not put such a board into the store yet, but I have many of them on stock, if you buy 2 WROVERs + breakout boards in the store, I will add one of these for you to the package for free: https://eckstein-shop.de/FTDI-FT232RL-33V-5V-Basic-Programmer-Downloader-USB-to-TTL-for-Arduino?gclid=EAIaIQobChMIhLKlnpid5wIVCIXVCh29JQ6XEAQYBCABEgKVIPD_BwE

    Thomas



  • @neoniousTR Thanks! I will place my order on the store.



  • Quick update: the last version of low.js is now working on my ESP32 Wrover board: LOLIN D32 Pro based on ESP32-WROVER Rev 1 (chip is ESP32-D0WD).
    This is really great news as I failed soldering the ESP32-WROVER module by hand. I need more practice and the use of soldering flux for next time.
    So I will continue working on that LOLIN D32 board for now.


Log in to reply