0 votes
by (120 points)

Hi, after our initial conversation regarding failing firmware upgrade an update from my side.

I tried 2 things.

The upload speed adjusted to "115200" and the platformio setup relocated to an Ubuntu VM. However, both again with the same timeout.
 

I passed the USB device into the Linux VM:


Within Linux the device is recognized as ttyUSB0. I have adjusted permissions for dialout.

upload_port = /dev/ttyUSB0
monitor_port = /dev/ttyUSB0


Stupid question. Does the Icon64 have a flash / boot button that must be pressed when uploading the firmware?
The external tactile button is intended for custom needs, right?

Btw. The second Icon64 that I ordered arrived yesterday. I've also tried it out now. Is recognized as COM4 within Windows. Issue is the same.

Regards,
Gunnar

by (15.7k points)
> Does the Icon64 have a flash / boot button that must be pressed

No, it's fully automatic.

> The external tactile button is intended for custom needs, right?

Correct.

You did try with a different USB data cable, right?

I get occasional timeouts on macOS that are unrelated to upload speed. Triggering the upload again in that case usually works. I can't be sure as for the root cause but I suspect esptool.py (integrated in PlatformIO) and/or the driver somehow get the timing wrong sometimes.
by (120 points)
> You did try with a different USB data cable, right?

I made some more tests with 3 different USB cables, different USB port, put an USB Hub between the Laptop and the Icon64. I also switched to native Ubuntu for the tests. Unfortunately all with the same output.

I also applied the udev rules mentioned here: https://docs.platformio.org/en/latest/faq.html#platformio-udev-rules

pio output shows the correct USB port and decice id.

pio device list
/dev/ttyUSB0
------------
Hardware ID: USB VID:PID=10C4:EA60 SER=0212F41E LOCATION=1-1.2
Description: CP2104 USB to UART Bridge Controller - CP2104 USB to UART Bridge Controller

1 Answer

0 votes
by (9.6k points)

I'm really sorry you are going through all this trouble. I can't believe that you have such a bad luck that of all other devices we shipped you got the two devices which don't work. So I believe it's more probably that there is something with your setup. We already excluded the the USB cables, you tried different ones. They also seem to work since you get the output. Here are some more thoughts:

  1. Have you tried to flash the devices without the CO2 sensor plugged in? We don't have many customers who also bought the CO2 sensors
  2. Power supply: you said you used a USB hub. Had this USB hub its own power supply? Weak power supply might also explain the behavior
  3. Can you please post here the output from the console when uploading the the file? This should look like:
    [...]
    Use manually specified: /dev/cu.SLAB_USBtoUART
    Uploading .pio/build/esp-wrover-kit/firmware.bin
    esptool.py v2.6
    Serial port /dev/cu.SLAB_USBtoUART
    Connecting........_____.....____
    Chip is ESP32D0WDQ5 (revision 1)
    [...]
    Writing at 0x00074000... (96 %)
    Writing at 0x00078000... (100 %)
    Wrote 815920 bytes (439686 compressed) at 0x00010000 in 7.1 seconds (effective 917.6 kbit/s)...
    Hash of data verified.
    [...]
  4. Can you try to flash the Icon64 with the Arduino for ESP32?
by (9.6k points)
Update: the OP could fix the problem by soldering a 100uF electrolitic capacitor between EN and GND pin

Welcome to ThingPulse Q&A, where you can ask questions and receive answers from other members of the community.

https://thingpulse.com

...