Meshtastic

1 of 4 t-beams will no longer update

I know this isn’t a meshtastic problem, But 1 of 4 of our t-beams will no longer update via USB

It happened a few weeks back with 1.1.23 and I fought with it for a while… I thought I had success once by holding the reset and pulling pin 0 low while it’s attempting to connect. But alas I still can’t seem to reprogram this one. It still seems to boot up and function fine, the screen shows incoming messages. But It’s stuck on 1.1.23

Both in Windows with ESPhome and in Linux with the included shell script - Both methods work fine on the other 3 units.

Is there a trick with these to get them back?
Is it just the USB to serial, and if so can I hotwire one of the others to the serial lines?
Will pushing new firmware from the app likely work?

$ ./device-update.sh -f firmware-tbeam-US-1.1.31.bin 
Trying to flash update firmware-tbeam-US-1.1.31.bin.
esptool.py v3.0
Found 1 serial ports
Serial port /dev/ttyUSB0
Connecting........_____....._____....._____....._____....._____....._____....._____
/dev/ttyUSB0 failed to connect: Failed to connect to Espressif device: Timed out waiting for packet header

A fatal error occurred: Could not connect to an Espressif device on any of the 1 available serial ports.

Thanks,

Jason

the usb chip inside the tbeam is just a serial to usb part. It connects rx/tx and it uses ‘rts’ to pull the CPU reset pin low. Is it possible you tried to run device-update while some other app had the serial port open? If so, it will cause this problem (the esptool.py doesn’t check for other connections)

No, I’ve tried literally a hundred times or more. Over many days, in 2 OS’s

And like I said, I can program the other 3 over and over, but this one will not go…

Is the CPU reset pin different that the button?

Try holding down the reset button. Keep it held down while starting the device-update script.

Once you see:

Release the reset button.

That’ll force it accept a firmware update. When I thought my esp32 are stuck, this often helps. Depending on the cause your processor is stuck, this may not work – but it’s worth a shot.

This happens when the reset pin is being pulled into the wrong state either by a software setting or sometimes a bad capacitor across the reset pin.

I’ve not seen this problem on any tbeam, but try it.

1 Like

That doesn’t work, unfortunately… Tried many times.

I just metered the reset pin and it’s at 3.410 when running and cycles to 0.536 when the script is running.

Got out clips and pulled it right to 0 but still no joy…

Hopefully, an OTA update is able to update it…

1 Like

Ahh, I was hoping it would.

You need to clean the memory chip with ESP tool first.

“I had the same problem some time ago and i solved it by formatting the memory chip with the ESP flash download Tool”

(connect the ttgo in the computer and selected the COM port, just hit erase)

I didn’t know that was even an option. Will keep this in my back pocket.

1 Like

This is a common problem in ESP32 memory chips.
Luckily the ESP Tool program is the only one that fix it, although I still haven’t figured out what kind of script it does to format the memory making it available again for writing code without problems.
Maybe it has to do with some kind of file system used in the memory chip, maybe sometimes it gets corrupted or creates errors by the chip that writes the data into the memory chip itself.
I know that ESP32 has a mini software that takes care of this, it also manages the wifi management and the functionality of the ESP32 chip, maybe it is the one that does not read the memory well with errors.

2 Likes

I was so excited to see this update and rushed to get this utility, however, it doesn’t seem to solve my issue, or I don’t know what I’m doing.

I can’t find the option to “Format”. Pressing “Erase” will get me the all too familiar “…

I’ve tried the Developer Mode and Factory Mode for the ESP32…

I’ve tried adding the only provided .bin file to the list…

I’m hesitant to try and connect one of my three remaining units to see if I get different results as we went to great lengths to get these here in rural Mexico…

I would be very grateful to have a step by step guide for noobs in this situation.

I now see your edited comment and see that I did as you said. Select com port and hit erase… Whomp Whomp…
Again waiting for a OTA update I guess…

I could also try and transplant another ESP32 to this board…

You don’t have to put any file, you just have to press erase without putting any file, then disconnect the TTGO, remove the battery from the ttgo if it has one inserted, restart the pc and put the meshtastic firmware again

(From the command lines of ESP tool it appears that you have COM port problems. restart your pc before doing all this. also put the right driver for the TTGO model because some ttgo have different chips)

I can confirm that the other 3 specimens connect and erase correctly. And I can reflash them with Meshtastic again.

This one problem child however will not respond to this utility, sadly.

There is only one last chance left if the esp32 chip is not completely blown! If when you connect your TTGO to your computer and the COM port appears correctly, you must try to download the ESP32 firmware that you find by searching on the official ESP page. You have to use the ESP32 Tool and maybe even some videos on YouTube how to do it
If doing all this still does not work, then it will be clear that you have some TTGO produced with malfunctions

I guess that the OTA will work. And that for some (hardware) reason the gpio 0 is fried (which is asserted by the esptool to force bootloader entry).

The OTA isn’t working I’m afraid, It prompts to update to 1.1.32 and the progress bar gets to about 20% and then stops and the unit seems to reboot, it shows the startup screen at 1.1.23

I’ve tried half a dozen times with the same result.

This is my next approach, but I’m having a hard time finding said firmware so far.

Hi, what you are looking for is the release page on GitHub i think.

1 Like

No, I’ve got the Meshtasic device code, I think TitanTronics suspects that reflashing the complete ESP32 firmware including bootloader is the solution, as I understand it…?

1 Like

Ahh sorry, of course you are right. This looks promising: https://www.espressif.com/en/support/download/at

But it seems to be only the wireless firmware…

Small Victory!

I was able to update the firmware on this dodgy specimen using App version 1.1.36 via OTA - I’m not sure if you changed something or if I inadvertently did something differently. The only thing I can think that I may have done is that I used USB power this time, not sure but I may have been on battery power before and perhaps the t-beam wanted to sleep during the update?

When the progress bar got over ~30% the screen started dimming, so I tapped the phone screen to keep it awake…

Happy to have 1.1.32 on this one!

For completeness, I checked, neither ESPHome in Windows nor the device-update.sh script in Linux can update it again… So gpio 0 is likely cooked, as you suspected.

1 Like