Burning firmware of TELINK TLSR8258

The T-Zigbee board has two MCUs on-board. You burn the firmware you will need the T-U2T USB to TTL adaptor.

You will also need the latest TLSR8258 firmware from LILYGo. It can be found here. The directory contain the following:

README.md
hciDevice_ZE_8258_SDK_eb644f1_MD5_a27ce68a94bc19284c5c87a4e0aa416b.bin
hciDevice_ZR_8258_SDK_eb644f1_MD5_3e7c395bacca28475952808a79ff2ec1.bin
sampleGW_8258_20220302.bin

FIXME I believe that the hciDevice_ZE_8258_SDK_eb644f1_MD5_a27ce68a94bc19284c5c87a4e0aa416b.bin firmware is for edge devices that do not participate in the Zigbee network rounting (battery operated), while the hciDevice_ZR_8258_SDK_eb644f1_MD5_3e7c395bacca28475952808a79ff2ec1.bin firmware is for constantly powered devices that participate in routing.

To attach the TLSR8258 to the USB port you have to set the DIP switches on the board like this (1st two switches on - the rest off):

You will also need the TlsrComSwireWriter utility. Download it here and place it somewhere on your local file system. Open the USBCOMFlashTx.html file in a browser.

Connect your T-Zigbee using the T-U2T adaptor:

In the web browser click on the Open button, select the com port, and set the speed to 921600.

Now select the firmware you want to burn based on your project requirements, and click on the Write to Flash button.

If the firmware burn was successful the red LED indicator on the board should be lit:

Troubleshooting

The power to the Zigbee module on the board is controlled from the ESP32. The enable pin of the regulator driving the Zigbee module is connected to pin 0 of the ESP32, so if you cannot communicate with the TLSR8258 ensure there is a sketch running on the ESP32 which enables the power:

#include <Arduino.h>
#define CONFIG_ZIGBEE_MODULE_PIN 0


void setup() {
    pinMode(CONFIG_ZIGBEE_MODULE_PIN, OUTPUT);
    digitalWrite(CONFIG_ZIGBEE_MODULE_PIN, HIGH);
}

void loop() {
}