TTGO T3 with WCH CH9102F USB Modem won't flash in Mac OS!

Hello all.

I’ve been using LilyGo TTGO T3_V1.6 boards in a project.

I haven’t been facing troubles for flashing the codes to the old boards I’ve got. They use Silicon Labs CP2104 USB to UART modem.

Now I’ve just took out of the box a new TTGO T3 board, labeled T3_V1.6.1, with FA1341 USB modem.

With the serial monitor I’m able to read what its native program outputs, but I can’t upload any code. The messages I get end with:

Serial port /dev/cu.usbmodemFA1341
Connecting....
Chip is ESP32-PICO-D4 (revision 1)
Features: WiFi, BT, Dual Core, 240MHz, Embedded Flash, VRef calibration in efuse, Coding Scheme None
Crystal is 40MHz
MAC: xx:xx:xx:xx:xx:xx
Uploading stub...

A fatal error occurred: Failed to write to target RAM (result was 01070000)
*** [upload] Error 2

I guess there might be missing a driver. Has someone any idea?

Thank you.
Regards, Ciro.

Does it fail in the Arduino-IDE with Arduino core 2.0.1 too?

Using Arduino IDE 2.0.0-beta.7, the result is the same:

--------------------------
Compilation complete.
esptool.py v2.6
Serial port /dev/cu.usbmodemFA1341
Connecting....
Chip is ESP32-PICO-D4 (revision 1)
Features: WiFi, BT, Dual Core, 240MHz, Embedded Flash, VRef calibration in efuse, Coding Scheme None
MAC: xx:xx:xx:xx:xx:xx
Uploading stub...

A fatal error occurred: Failed to write to target RAM (result was 01070000)
Upload error: Error: 2 UNKNOWN: uploading error: uploading error: exit status 2

I’ve been to arduno.cc page, but the latest version I found has been 2.0.0-beta.12. No 2.0.1.

Thank you.
Regards

Are you experiencing this on a Mac with macOS Big Sur or newer?

Mac with Mac OS 10.13.6 High Sierra.

Thank you.
Regards,

What’s the USB-to-serial chip on the board? “FA1341” is just the name used for the device in /dev. But there’s no such chip.

Just found out the embedded interface is a CH9102F !!

Browsing about it, I found this article: CH9102F – A replacement for CP2104 USB to UART bridge.

Unfortunately it looks like it’s not really compatible!

What to do now?

You’re right:

A pseudo compatible…

There’s a discussion in this GitHub issue about it. Some people use a virtual Windows or Linux machine. There’s also a link to a driver. But they mainly talk about macOS Big Sur. So I’m not sure it works with High Sierra.

First I’ve installed the driver found in https://github.com/WCHSoftGroup/ch34xser_macos. It didn’t work out. Moreover, after installing it, the serial interface became invisible to VSCode’s serial monitor as well as for other serial monitors.

Then, I’ve tried to download https://github.com/Xinyuan-LilyGO/LilyGo-T-Call-SIM800/files/7037260/CH9102_Mac_Driver.zip, but the provided file is called CH34xVCPDriver_signed.pkg, that doesn’t change anything!

In fact I still think this kind of board, like this TTGO series isn’t a good solution for the use in final product. We always depend on what the vendors decide to deliver. I mean the parts specification and quality is up to them, not to us.

I’ve been using this board just as a step for product development. Later, I’ve got to draw my own PCB and manage all embedded parts.

Anyway, would there be any other possibility?

Thank you Manuel
Regards

Hello @manuelbl

In fact it didn’t.

But following your article Troubleshooting CH340G issues on macOS, I’ve been able to remove duplicated and old CH340 libraries. Then I’ve installed version 1.5 and now the port can be found and read at least.

Congratulations, your article is great.

Still no success on flashing, unfortunately.

Thank you.
Regards

I’ve decided to install VSCode in Windows 10 virtual machine and now it’s working fine.

In Mac OS so far I couldn’t make it work.

Ciro.

This is my first post here.

I recently bought an LILYGO which I was going to start to test coding on from my Mac but I understood that it didn’t work in MacOS without using some third party drivers.

I decided to send a feedback to apple and I just got a reply where they wanted me to test again with their latest beta for MacOS13.

I did so with the small blink code that I had since last time and it worked like a charm from Visual Studio Code where it before had some issues with the UART (but also in Arduino IDE 2.0.0 RC9 which I didn’t get anywhere with before, with the boards profiles installed with a guide here: https://techexplorations.com/guides/esp32/begin/idewin/)

Small snip below.

Hash of data verified.
Compressed 213104 bytes to 115367…
Writing at 0x00010000… (12 %)
Writing at 0x0001dcca… (25 %)
Writing at 0x0002335b… (37 %)
Writing at 0x00028601… (50 %)
Writing at 0x0002e6b5… (62 %)
Writing at 0x0003887d… (75 %)
Writing at 0x0003e37e… (87 %)
Writing at 0x00043c95… (100 %)
Wrote 213104 bytes (115367 compressed) at 0x00010000 in 3.1 seconds (effective 547.6 kbit/s)…
Hash of data verified.

Leaving…
Hard resetting via RTS pin…
=================================================== [SUCCESS] Took 10.13 seconds ===================================================

Terminal will be reused by tasks, press any key to close it.

Can anyone else also test with the latest beta of macOS 13 (Beta 4 (22A5311f)) and see if it works for you too?