# Issue with Arduino Cloud Device Recognition: ESP32 Dev Module Detected as LilyGo T-Display

**URL:** <https://forum.arduino.cc/t/issue-with-arduino-cloud-device-recognition-esp32-dev-module-detected-as-lilygo-t-display/1295971>\
**Category:** Cloud Editor\
**Created:** [August 27, 2024, 9:22pm UTC](https://forum.arduino.cc/t/issue-with-arduino-cloud-device-recognition-esp32-dev-module-detected-as-lilygo-t-display/1295971 "2024-08-27T21:22:05Z")\
**Posts on this page:** 17\
**Page:** 1

<div class="post-metadata">

**Author:** ![lucasyukio](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/lucasyukio/32/1099223_2.png) [@lucasyukio](https://forum.arduino.cc/u/lucasyukio)\
**Post date:** [August 27, 2024, 9:22pm UTC](https://forum.arduino.cc/t/issue-with-arduino-cloud-device-recognition-esp32-dev-module-detected-as-lilygo-t-display/1295971/1 "2024-08-27T21:22:05Z")

</div>

I had a previous project where I selected the ESP32 Dev Module as the device in Arduino Cloud, and it was running normally. However, now the project only detects a connection on the USB port if the device selected is set to LilyGo T-Display, which is not the actual model of the board. Additionally, when I try to upload code as LilyGo T-Display, I receive the following error:  
esptool: error: argument operation: invalid choice: '{upload.flags}' (choose from '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')

![image](https://europe1.discourse-cdn.com/arduino/original/4X/2/d/7/2d7b5f9b272d93deb6c401ce79b9659953549ea4.png)  
 ![image](https://europe1.discourse-cdn.com/arduino/original/4X/a/0/d/a0d51504bb0626ea12bcd4723ca6236a56b09fa3.png)

---

<div class="post-metadata">

**Author:** ![ptillisch](https://avatars.discourse-cdn.com/v4/letter/p/ad7895/32.png) [@ptillisch](https://forum.arduino.cc/u/ptillisch)\
**Post date:** [September 5, 2024, 1:58pm UTC](https://forum.arduino.cc/t/issue-with-arduino-cloud-device-recognition-esp32-dev-module-detected-as-lilygo-t-display/1295971/2 "2024-09-05T13:58:20Z")

</div>

Hi @lucasyukio.

> [@lucasyukio](#):
>
> now the project only detects a connection on the USB port if the device selected is set to LilyGo T-Display, which is not the actual model of the board.

This is caused by [a bug](https://github.com/espressif/arduino-esp32/pull/10271) in the 3rd party [" **esp32**" boards platform](https://docs.espressif.com/projects/arduino-esp32/en/latest/getting_started.html).

Due to this bug, it is not possible to use **Arduino Cloud Editor** to upload to any board that has a WCH CH9102 USB to serial bridge chip (as apparently your ESP32 board has).

I recommend using **Arduino IDE** to develop sketches for this particular board.

**Arduino IDE** has [**Arduino Cloud** integration](https://docs.arduino.cc/software/ide-v2/tutorials/ide-v2-cloud-sketch-sync), which provides convenient access to the sketches from your **Arduino Cloud** account.

I'll provide instructions you can follow to set up Arduino IDE and upload your sketch:

1. Install **Arduino IDE** by following the instructions [**here**](https://docs.arduino.cc/software/ide-v2/tutorials/getting-started/ide-v2-downloading-and-installing).
2. Start **Arduino IDE**.
3. Install the " **esp32**" boards platform by following the instructions [**here**](https://docs.espressif.com/projects/arduino-esp32/en/latest/installing.html#installing-using-arduino-ide).
4. Connect **Arduino IDE** to your **Arduino Cloud** account by following the instructions [**here**](https://docs.arduino.cc/software/ide-v2/tutorials/ide-v2-cloud-sketch-sync/#enabling-the-remote-sketchbook)
5. You should now see the list of sketches from your **Arduino Cloud** account in the " **SKETCHBOOK**" panel of the IDE window. Click on the sketch you would like to upload to your board.
6. Click the cloud with downward pointing arrow icon ("Pull Sketch") that appears to the right of the sketch name.  
A "Synchronizing sketchbook, pulling ..." process will start.
7. Wait for the synchronization process to finish, as indicated by the appearance of a notification at the bottom right corner of the IDE window:

> **Done pulling ...**

8. Double click on the sketch name in the " **SKETCHBOOK**" panel.  
The sketch will open in a new **Arduino IDE** window.
9. Select the appropriate board from the IDE's **Tools \> Board \> esp32** menu.
10. Select the appropriate port from the IDE's **Tools \> Port** menu.
11. Select **Sketch \> Upload** from the Arduino IDE menus.

The sketch should now upload successfully to the board.

* * *

**ⓘ** Note that you can use **Arduino IDE** for development of **Arduino Cloud** [Thing](https://docs.arduino.cc/arduino-cloud/cloud-interface/things) sketches. It is convenient to use the **Arduino Cloud** web interface for the initial setup of the Thing, but after that you can open the sketch in **Arduino IDE** for editing and uploading to your board. You will see newly created Thing sketches under the " **Cloud Sketchbook**" tab of the IDE's " **SKETCHBOOK**" panel after you click the "Sync" icon at the bottom right corner of the panel.

* * *

Please let me know if you have any questions or problems while following those instructions.

* * *

I have submitted a fix for the bug (as well as similar bugs that break **Arduino Cloud** for other boards):

> <https://github.com/espressif/arduino-esp32/pull/10271>
>
> \## Description of Change
> 
> The Arduino boards platform framework allows propert…ies of a port to be \[associated with a board definition\](https://arduino.github.io/arduino-cli/dev/platform-specification/#properties-from-pluggable-discovery:~:text=upload\_port.vid%20and%20upload\_port.pid%20properties). The Arduino development software will identify a port having the associated properties as that board.
> 
> This should only be done for properties that are unique to the ports produced by that board model. In cases where a board model does not produce a port with properties unique to that model, it is irresponsible to associate those properties with the board definition as this will cause other models to be inappropriately identified.
> 
> The authors of these board definitions associated them with non-unique USB VID/PID pairs so those associations must be removed. The \`303a:1001\` VID/PID pair is of the hardware CDC serial port of the native USB ESP32 chips. The others are stock VID/PID pairs of general purpose USB to serial bridge chips that are used on many different board models.
> 
> \## Tests scenarios
> 
> Compile for the modified boards using the platform (at 0b8eedea5cf18e2b01f80975197b85f70a36caf3) with this patch (0a8c586953327af6d38280ca10c612a82b4d1be7) applied.
> 
> \## Related links
> 
> Originally reported at https://forum.arduino.cc/t/i-dont-have-elecrow-crowpanel-7-0p/1293026
> 
> \- https://github.com/espressif/arduino-esp32/issues/6384
> \- https://github.com/espressif/arduino-esp32/issues/7292
> \- https://github.com/espressif/arduino-esp32/issues/9702

The proposed fix has already been approved by the " **esp32**" boards platform developer, so it should be in the next release of the platform. However, it might take some time before the **Arduino Cloud** developers will be able to update the version of the platform that is installed on the **Arduino Cloud** servers. So I'm not sure when you might be able to start using this board with **Cloud Editor** again.

You can definitely use **Cloud Editor** with other boards. There is a list of supported official boards here:

[https://support.arduino.cc/hc/en-us/articles/360014779899-Boards-compatible-with-the-Cloud-Editor#cloud-editor-on-windows%2C-macos%2C-and-linux](https://support.arduino.cc/hc/en-us/articles/360014779899-Boards-compatible-with-the-Cloud-Editor#cloud-editor-on-windows%2C-macos%2C-and-linux)

Many 3rd party boards are also supported. If you are thinking of buying another board and want to know whether it will be usable with **Cloud Editor** , you can add a reply here on the forum topic with a link to the board and we'll take a look.

* * *

> [@lucasyukio](#):
>
> when I try to upload code as LilyGo T-Display, I receive the following error:
> 
> ```plaintext
> esptool: error: argument operation: invalid choice: '{upload.flags}' (choose from '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')
> 
> ```

This is caused by yet another bug in the " **esp32**" boards platform:

> <https://github.com/espressif/arduino-esp32/pull/8744>
>
> Fixed bug by adding upload.flags and upload.extra\_flags to LilyGo T-display
> 
> F…ixed same issue as #5589

That bug has already been fixed, but it was fixed after the time of the release of the version of the " **esp32**" platform that is installed on the **Arduino Cloud** servers (2.0.17), so **Arduino Cloud** users will continue to suffer from that bug until the **Arduino Cloud** developers are able to update the version of the " **esp32**" platform that is installed on the servers. The update is potentially disruptive for users because there have been some significant breaking changes in the latest version of the " **esp32**" boards platform.

---

<div class="post-metadata">

**Author:** ![fedekrum](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/fedekrum/32/216306_2.png) [@fedekrum](https://forum.arduino.cc/u/fedekrum)\
**Post date:** [October 1, 2024, 4:28pm UTC](https://forum.arduino.cc/t/issue-with-arduino-cloud-device-recognition-esp32-dev-module-detected-as-lilygo-t-display/1295971/3 "2024-10-01T16:28:24Z")

</div>

Hi,  
I am still having this issue with the latest cloud version.  
Is this still a problem on that version?  
Thanks

---

<div class="post-metadata">

**Author:** ![ptillisch](https://avatars.discourse-cdn.com/v4/letter/p/ad7895/32.png) [@ptillisch](https://forum.arduino.cc/u/ptillisch)\
**Post date:** [October 1, 2024, 4:50pm UTC](https://forum.arduino.cc/t/issue-with-arduino-cloud-device-recognition-esp32-dev-module-detected-as-lilygo-t-display/1295971/4 "2024-10-01T16:50:09Z")

</div>

Hi @fedekrum. It is not the version of Arduino Cloud, but rather the version of the " **esp32**" boards platform installed on the Arduino Cloud servers. These are two different things, and are versioned independently.

The version of the " **esp32**" boards platform has not been updated since the time I wrote the explanation above, so the situation is the same.

---

<div class="post-metadata">

**Author:** ![fedekrum](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/fedekrum/32/216306_2.png) [@fedekrum](https://forum.arduino.cc/u/fedekrum)\
**Post date:** [October 1, 2024, 10:20pm UTC](https://forum.arduino.cc/t/issue-with-arduino-cloud-device-recognition-esp32-dev-module-detected-as-lilygo-t-display/1295971/5 "2024-10-01T22:20:12Z")

</div>

Thanks @ptillisch !

As you suggested, I installed the App instead of using the cloud.

I have the following HW

 ![HW](https://europe1.discourse-cdn.com/arduino/original/4X/8/e/f/8efd93e2a8eebcc3041c01ae71a2a1ebdcd09499.jpeg).

It is being recognized as this  
 ![](https://europe1.discourse-cdn.com/arduino/original/4X/5/c/f/5cfdfd863dcaa5ef872c57d32e46a66226551904.png)

I saw your [PR #10271](https://github.com/espressif/arduino-esp32/commit/41cdbd99b7cdef94b1edb734cea17a9acaa26a94#diff-c3a7c63d53cdec402cf559c1707ce5ef639a7e59e575f41ac5c8f5941e806a9fL27577)

Those modifications seem to be done on esp32 3.0.5  
Here is 3.0.5 boards.txt file for you to check  
[boards.txt.zip](https://forum.arduino.cc/uploads/short-url/sO2pssotXT7G8LHsYCBOucAN4rh.zip) (180.2 KB)

Is there any workaround for me?  
Thanks again

---

<div class="post-metadata">

**Author:** ![islandmagic](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/islandmagic/32/1108732_2.png) [@islandmagic](https://forum.arduino.cc/u/islandmagic)\
**Post date:** [October 2, 2024, 5:38am UTC](https://forum.arduino.cc/t/issue-with-arduino-cloud-device-recognition-esp32-dev-module-detected-as-lilygo-t-display/1295971/6 "2024-10-02T05:38:12Z")

</div>

Same issue with Arduino-cli v 1.0.4.

```arduino
arduino-cli board list
Port Protocol Type Board Name FQBN Core
/dev/cu.usbserial-586A004xxxx serial Serial Port (USB) LilyGo T-Display esp32:esp32:lilygo_t_display esp32:esp32

```

Previously this would list the board FQBN as esp32:esp32:pico32

---

<div class="post-metadata">

**Author:** ![ptillisch](https://avatars.discourse-cdn.com/v4/letter/p/ad7895/32.png) [@ptillisch](https://forum.arduino.cc/u/ptillisch)\
**Post date:** [October 5, 2024, 10:56pm UTC](https://forum.arduino.cc/t/issue-with-arduino-cloud-device-recognition-esp32-dev-module-detected-as-lilygo-t-display/1295971/7 "2024-10-05T22:56:59Z")

</div>

> [@fedekrum](#):
>
> I installed the App instead of using the cloud.

> [@fedekrum](#):
>
> It is being recognized as this  
> ![](https://europe1.discourse-cdn.com/arduino/original/4X/5/c/f/5cfdfd863dcaa5ef872c57d32e46a66226551904.png)

This screenshot shows you are still using Arduino Cloud.

My suggestion was that you use Arduino IDE. You can download Arduino IDE from the links on the "Software" page here:

> **[Software](https://www.arduino.cc/en/software/)**
>
> Open-source electronic prototyping platform enabling users to create interactive electronic objects.

---

<div class="post-metadata">

**Author:** ![ptillisch](https://avatars.discourse-cdn.com/v4/letter/p/ad7895/32.png) [@ptillisch](https://forum.arduino.cc/u/ptillisch)\
**Post date:** [October 5, 2024, 10:59pm UTC](https://forum.arduino.cc/t/issue-with-arduino-cloud-device-recognition-esp32-dev-module-detected-as-lilygo-t-display/1295971/8 "2024-10-05T22:59:33Z")

</div>

> [@islandmagic](#):
>
> Same issue with Arduino-cli v 1.0.4.

As **@fedekrum** mentioned above, the bug in the " **esp32**" boards platform that causes the inappropriate identification was fixed in version 3.0.5 of the platform. So, when using Arduino CLI, you should be able to fix this by updating your installation of the " **esp32**" boards platform.

---

<div class="post-metadata">

**Author:** ![islandmagic](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/islandmagic/32/1108732_2.png) [@islandmagic](https://forum.arduino.cc/u/islandmagic)\
**Post date:** [October 6, 2024, 12:39am UTC](https://forum.arduino.cc/t/issue-with-arduino-cloud-device-recognition-esp32-dev-module-detected-as-lilygo-t-display/1295971/9 "2024-10-06T00:39:32Z")

</div>

I have the version 2.0.15 of the esp32 board library installed in the Arduino IDE. Could there be another version installed somewhere? How can I check?

---

<div class="post-metadata">

**Author:** ![ptillisch](https://avatars.discourse-cdn.com/v4/letter/p/ad7895/32.png) [@ptillisch](https://forum.arduino.cc/u/ptillisch)\
**Post date:** [October 6, 2024, 1:44am UTC](https://forum.arduino.cc/t/issue-with-arduino-cloud-device-recognition-esp32-dev-module-detected-as-lilygo-t-display/1295971/10 "2024-10-06T01:44:34Z")

</div>

Unlike Arduino Cloud, when using Arduino CLI the misidentification of the port doesn't cause any problems because Arduino CLI treats you like an adult and allows you to set whatever FQBN you want. So just ignore the misidentification and make sure to use the appropriate FQBN for your board and you will be fine.

---

<div class="post-metadata">

**Author:** ![pert](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/pert/32/217111_2.png) [@pert](https://forum.arduino.cc/u/pert)\
**Post date:** [March 24, 2025, 10:21pm UTC](https://forum.arduino.cc/t/issue-with-arduino-cloud-device-recognition-esp32-dev-module-detected-as-lilygo-t-display/1295971/11 "2025-03-24T22:21:53Z")

</div>

A post was split to a new topic: [Compilation of Arduino Cloud IoT sketches takes more than an hour](https://forum.arduino.cc/t/compilation-of-arduino-cloud-iot-sketches-takes-more-than-an-hour/1366999)

---

<div class="post-metadata">

**Author:** ![pert](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/pert/32/217111_2.png) [@pert](https://forum.arduino.cc/u/pert)\
**Post date:** [March 24, 2025, 10:24pm UTC](https://forum.arduino.cc/t/issue-with-arduino-cloud-device-recognition-esp32-dev-module-detected-as-lilygo-t-display/1295971/12 "2025-03-24T22:24:55Z")

</div>

A post was split to a new topic: [Code works when using Cloud Editor, but not with Arduino IDE](https://forum.arduino.cc/t/code-works-when-using-cloud-editor-but-not-with-arduino-ide/1367000)

---

<div class="post-metadata">

**Author:** ![mumugs](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/mumugs/32/1127773_2.png) [@mumugs](https://forum.arduino.cc/u/mumugs)\
**Post date:** [March 24, 2025, 3:20pm UTC](https://forum.arduino.cc/t/issue-with-arduino-cloud-device-recognition-esp32-dev-module-detected-as-lilygo-t-display/1295971/13 "2025-03-24T15:20:48Z")

</div>

Hi, this post is from August 2024, its almost April 2025 and the {upload.flags} is still an issue for many boards. I just payed for the Arduino Cloud Subscription, is this the kind of "agility" I should expect from the Cloud team? I have two boards with this error, Lilygo and doit.

---

<div class="post-metadata">

**Author:** ![ptillisch](https://avatars.discourse-cdn.com/v4/letter/p/ad7895/32.png) [@ptillisch](https://forum.arduino.cc/u/ptillisch)\
**Post date:** [March 24, 2025, 11:01pm UTC](https://forum.arduino.cc/t/issue-with-arduino-cloud-device-recognition-esp32-dev-module-detected-as-lilygo-t-display/1295971/14 "2025-03-24T23:01:41Z")

</div>

Hi @mumugs. I apologize for the continued lack of support in Arduino Cloud for these specific models of 3rd party ESP32 board.

The situation is a bit challenging because, in addition to the fix for the bug in the definitions for these boards, the developers of the 3rd party [" **esp32**" boards platform](https://docs.espressif.com/projects/arduino-esp32/en/latest/getting_started.html) that adds support to Arduino Cloud for these boards also made [some significant breaking changes](https://github.com/espressif/arduino-esp32/blob/master/docs/en/migration_guides/2.x_to_3.0.rst). So updating Arduino Cloud to using the version of the platform with the bugs fixed will also cause some previously working sketches and libraries that were previously working to no longer work.

Fortunately the Arduino community has been making good progress on updating the vast ecosystem of code to be compatible with version 3.x of the " **esp32**" platform, so I think that the update will be much less traumatic for the Arduino Cloud users than it would have been if the Arduino Cloud developers had updated the platform soon after the breaking changes were released.

* * *

Note that the primary bug reported here (misidentification of boards that use [the WCH CH9102 USB to serial bridge chip](https://www.wch.cn/products/CH9102.html)) has already been resolved. It is only the secondary bug (uploads fail with an "`invalid choice: '{upload.flags}'`" error) that remains.

That "`invalid choice: '{upload.flags}'`" error is caused by bugs in specific incompetently written boards definitions (the " **esp32**" platform developers just take the board definitions as submitted by the board manufacturer without any validation other than verifying it doesn't break the platform as a whole, so there is a lot of variation in the quality of the definitions). This means it is possible to work around the bug by selecting a different board model that has a definition which is not bugged. The " **ESP32 Dev Module**" board definition will be a good choice for such a workaround. This board definition is designed to provide general purpose support for any board that uses the [**ESP32**](https://www.espressif.com/products/socs/esp32) microcontroller.

Likewise, my alternative suggestion of using [**Arduino IDE**](https://docs.arduino.cc/software/ide-v2) as a workaround remains valid.

Another possible workaround would be to buy a different board. The bugs in the " **esp32**" platform are specific to certain boards, and there are plenty of other boards that work perfectly with Arduino Cloud. Obviously, you can expect the highest level of support for the official Arduino boards. If you like the ESP32 microcontrollers, you might be interested in the [**Nano ESP32**](https://docs.arduino.cc/hardware/nano-esp32). But there are also plenty of cheap 3rd party Chinese boards that can be used with Arduino Cloud if you prefer to continue on that route.

---

<div class="post-metadata">

**Author:** ![mumugs](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/mumugs/32/1127773_2.png) [@mumugs](https://forum.arduino.cc/u/mumugs)\
**Post date:** [March 24, 2025, 11:56pm UTC](https://forum.arduino.cc/t/issue-with-arduino-cloud-device-recognition-esp32-dev-module-detected-as-lilygo-t-display/1295971/15 "2025-03-24T23:56:29Z")

</div>

I am using both Arduino IDE and cloud, but the code synchronization is not good since its not under any source control, so you can easily lose code if you make mistakes, like adding cloud variables which updates your code and can make you lose code. There is a very simple solution, to allow developers to chose which version of to use, or to be able to change or configure the parameters that are send to the esptool, since its being run locally...

---

<div class="post-metadata">

**Author:** ![ptillisch](https://avatars.discourse-cdn.com/v4/letter/p/ad7895/32.png) [@ptillisch](https://forum.arduino.cc/u/ptillisch)\
**Post date:** [March 30, 2025, 11:59pm UTC](https://forum.arduino.cc/t/issue-with-arduino-cloud-device-recognition-esp32-dev-module-detected-as-lilygo-t-display/1295971/16 "2025-03-30T23:59:31Z")

</div>

> [@mumugs](#):
>
> There is a very simple solution, to allow developers to chose which version of to use

I wouldn't call it "simple", and certainly not "very simple", but yes this would be the ideal solution.

> [@mumugs](#):
>
> to be able to change or configure the parameters that are send to the esptool, since its being run locally...

You can do that if you like. Just run it from the command line. You can copy the generated command that is shown in the Arduino Cloud Editor console when you attempt an upload using Arduino Cloud, then adjust the command as you like before running it yourself directly.

---

<div class="post-metadata">

**Author:** ![system](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/system/32/1140315_2.png) [@system](https://forum.arduino.cc/u/system)\
**Post date:** [September 27, 2025, 12:00am UTC](https://forum.arduino.cc/t/issue-with-arduino-cloud-device-recognition-esp32-dev-module-detected-as-lilygo-t-display/1295971/17 "2025-09-27T00:00:01Z")

</div>

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.
