Xinyuan-LilyGO / LilyGo-T-Call-SIM800

https://www.aliexpress.com/item/33045221960.html
482 stars 239 forks source link

Upload not possible at 5 of 10 bought T-Call SIM800C, need replacement urgent, how to detect faulty boards #165

Closed ClemensGruber closed 3 years ago

ClemensGruber commented 3 years ago

I bought a longer time ago 2 - at this time relatively new - T-Call SIM800C directly at LilyGo via aliexpress. We found the newer model with the AXP useful because we can separate the device from power and it can run on at powering without pressing an additional button, what is needed with the IP5306 version.

We made some software for a bee scale and have tested things the last weeks for an workshop with 20 participants / scales / TTGO T-Calls. I ordered 10 pieces from a local store in Germany, Eckstein components, and also 10 pieces again from LilyGo's aliexpress store.

The 10 T-Calls from Eckstein did arrive a time ago and I had planned to prepare the T-Calls today for the workshop end of September.

I run also in the "cannot upload issue" as described as first FAQ on https://github.com/Xinyuan-LilyGO/LilyGo-T-Call-SIM800, but all hints did not work! I could not upload any code on the device. After a lot of trying - btw. the first ordered T-Calls had never this problem. I tried the next one from the Eckstein batch. Also not working. The third did the upload without any problem.

So in the end I could upload software to 5 of 10 orderd T-Calls from Eckstein components. All T-Calls had the PCB label 20-6-9 T_CALL&sim800C-DS_V02

DSC_0015

I have the impression that the ESP is working one or two seconds and then switched off while the SIM800 tries to connect.

After some T-Calls it is very clear what modules are faulty and what are working: With a new module out of the box, in case the green status LED and the red SIM800L LEDs are light up / blinking it is likely that upload works also and all is fine.

DSC_0011~2

In case the green LED is flashing a second after startup and then is off and only the red modem LED is shining the chance is high that you got the faulty modules!

On the faulty moduls reset button is also not working and you see no debug output on the serial monitor!

DSC_0010

I hope that the 10 modules I ordered from aliexpress are working and that I got a fast replacement for the buggy modules by TTGO! We need the modules fast for our workshop and it would not a good advertising that we have to say it is a 50:50 chance that you get a working module.

Perhaps someone from TTGO can enlighten us what the problem behind is. Is it a wrong initial software that makes the AXP not working correctly or is it a hardware bug?

Btw. at one board I had after several times a bit more output as on the other:

C:\Users\mail\AppData\Local\Arduino15\packages\esp32\tools\esptool_py\3.0.0/esptool.exe --chip esp32 --port COM13 --baud 921600 --before default_reset --after hard_reset write_flash -z --flash_mode dio --flash_freq 40m --flash_size detect 0xe000 C:\Users\mail\AppData\Local\Arduino15\packages\esp32\hardware\esp32\1.0.6/tools/partitions/boot_app0.bin 0x1000 C:\Users\mail\AppData\Local\Arduino15\packages\esp32\hardware\esp32\1.0.6/tools/sdk/bin/bootloader_qio_40m.bin 0x10000 C:\Users\mail\AppData\Local\Temp\arduino_build_3759/sketch_sep17b.ino.bin 0x8000 C:\Users\mail\AppData\Local\Temp\arduino_build_3759/sketch_sep17b.ino.partitions.bin 
esptool.py v3.0-dev
Serial port COM13
Connecting........_____....._____....
Chip is ESP32-D0WD (revision 1)
Features: WiFi, BT, Dual Core, 240MHz, VRef calibration in efuse, Coding Scheme None
Crystal is 40MHz
MAC: ac:67:b2:f3:a7:b0
Uploading stub...
Running stub...
Stub running...
Changing baud rate to 921600
Changed.
Configuring flash size...
Auto-detected Flash size: 4MB
Compressed 8192 bytes to 47...
Writing at 0x0000e000... (100 %)
Wrote 8192 bytes (47 compressed) at 0x0000e000 in 0.0 seconds (effective 13106.9 kbit/s)...
Hash of data verified.
Compressed 18624 bytes to 12073...
Writing at 0x00001000... (100 %)
Wrote 18624 bytes (12073 compressed) at 0x00001000 in 0.2 seconds (effective 908.5 kbit/s)...
Hash of data verified.
Compressed 197856 bytes to 106061...
Writing at 0x00010000... (14 %)
Writing at 0x00014000... (28 %)

A fatal error occurred: Invalid head of packet (0x00)
A fatal error occurred: Invalid head of packet (0x00)

At this board pressing the push button near the SIM800 leads to a reset.

I used the latest Arduino IDE and "ESP32 Dev Module", but as said before. The other boards are working so I assume that it is no IDE or computer problem.

amotl commented 3 years ago

Dear Clemens,

did you also try all other workarounds found on the internet for this specific problem? There are a bunch of suggestions around and many of them worked for others. The most prominent ones are:

  1. Use a better USB cable.
  2. Use a baud rate of 115200 or 57600.
  3. Hold down the programming button for the whole flashing process.
  4. Don't write anything to "STDOUT" within your void setup().
  5. Add capacitors.
  6. Check solder points.

With kind regards, Andreas.

P.S.: To support you with more details about those workarounds, please inspect those resources:

ClemensGruber commented 3 years ago

Today I checked all 10 boards again. From the 5 yesterday not working boards is one working today. One from the yesterday ok boards had initial problems to be re-programmed. Ofter some trials it worked again. Nothing special changed just repeated trying.

I would really have an comment from LilyGo about the presumable reason for this instability and non-functionality.

Thanks Andreas for your time but I fear we have other reasons here, but I checked this also:

Use a better USB cable.

I have tried at least 3 different USB cable, all cable working with other ESP boards and all cable working with at least 5 of the 10 bought T-Calls. So in this case it is not the cable! ;-)

Use a baud rate of 115200 or 57600.

I get no serial connection on this faulty boards so this could not be the problem. But I tried 115200 also with no success.

Hold down the programming button for the whole flashing process.

You are referring to the grounding GPIO0 as described in the FAQ (1. Open the serial monitor, 2. Short IO0 to GND, 3. > Press the RESET button ... serial should output waiting for download) I tried this and got the output waiting for download on one board, but without further success, see the error messages in my initial posting

Don't write anything to "STDOUT" within your void setup().

I cannot upload any sketch so I can not write something in setup() :-)

Add capacitors.

That is the one thing I did not yet, but it's working with the other boards so I think it's not the reason.

Check solder points.

Modules are out of the box, I solderd only some screw terminals and header pins on one module that is not working. I double checked all solder points for solder bridges but all is ok for my soldering. Don't know how good LilyGo's quality check is.

amotl commented 3 years ago

Hold down the programming button for the whole flashing process.

You are referring to the grounding GPIO0 as described in the FAQ?

Maybe. Can you try this procedure without opening the serial monitor? I believe this might block the communication.

Don't write anything to "STDOUT" within your void setup().

I cannot upload any sketch so I can not write something in setup() :-)

I see. In one of the links, there is also a note about erasing the flash completely by using idf.py. Maybe this helps.

ClemensGruber commented 3 years ago

Of cause I did close the serial monitor. With no success. But I got - for testing - the output waiting for download just with one board, maybe the one that is working now.

LilyGO commented 3 years ago

Hello, Let me first help you solve the problem that you cannot download. Please open the serial port monitoring software, after connecting the device, double-click the RTS on the serial port monitoring software, that is, reverse it to see what information is printed on the serial port.

ClemensGruber commented 3 years ago

I'm runnig Arduino IDE in version 1.8.15 on a Win10 machine. After plugging in the T-Call the serial port is detected and shows up under toos > port. Serial monitor is set to 115200 there is no output on the console also after pressing reset on the T-Call or connect GND to GPIO0 and press and hold or press only without holding the reset button.

On Arduino's seial monitor there is no RTS button to double-click. I tried also Putty but there is also no RTS to click. What software are you using for this task?

ClemensGruber commented 3 years ago

I have now tried a Raspberry Pi, so a complet other system, but with the same problems. I also tried out some serial monitor programs on Linux and on Windows but non had an RTS button to click or an other interface to force RTS signals. Any help appreciated ... but I think it is an hardware problem on the TTGO T-Call side!

ClemensGruber commented 3 years ago

Any hint @LilyGO? otherwise I will return the T-Calls to your reseller and hope that the replacement boards working.

LilyGO commented 3 years ago

Have you tried to upload the firmware using flash_download_tool to see if it can be successfully uploaded?

ClemensGruber commented 3 years ago

I have returned the non-working boards to your reseller due to time constrains, we need working board for a planed workshop. I will get the replacement boards today as announced by the postal service. I will check the boards and in case in this batch is also a non working I will try a binary upload via the ESP Flash Download Tool. In case someone is searching: https://www.espressif.com/en/support/download/other-tools

crbble commented 3 years ago

Just for reference, I had the same problem without any solution. Eckstein replaced one board without problems.

LilyGO commented 3 years ago

Hello, can you take a video to show me how the board can't upload firmware?

ClemensGruber commented 2 years ago

Because 3 of the 5 former working T-Calls from Eckstein did quit the job now also, I have the chance to try an upload via Espressif's ESP32 Flash Download Tool instead of the Arduino IDE as mentioned above. The 3 boards worked before soldering and have now the same behaviour as described above at the fresh unpacked one. One is working the most time but unreliable, one is working 20-30 seconds, seems to have something to do with heat ...

It's also not possible to upload code with Espressif's tool! Serial port is detected but there is no further connection established. The tool is stalling at the sync process:

2021-11-18 10_49_16-ESP32 DOWNLOAD TOOL V3 9 2

Message after stopping:

2021-11-18 10_49_43-COM15

In the console you get after stopping this:

test offset :  65536 0x10000
case ok
..........................................................................................................................................................................
[2021-11-18 11:04:52,222][ESP8266Loader_spi[1]][espDownloader.py][line:422][ERROR]: Chip sync error
[2021-11-18 11:04:52,222][ESP8266Loader_spi[1]][espDownloader.py][line:582][ERROR]: ESP32 Chip sync error esp_sync_blocking.

Good thing: All T-Calls directly from TTGO via aliexpress ordered are working and the replacement T-Calls from Eckstein also. Unfortunately Eckstein nor an other European reseller has T-Calls to sell. So I will go to aliexpress again and hope that shipping is not too slow!