====== Burning firmware of TELINK TLSR8258 ======
The T-Zigbee board has two MCUs on-board. You burn the firmware you will need the [[:https://www.lilygo.cc/products/t-u2t|T-U2T]] USB to TTL adaptor.
{{ ::t-u2t.png?200 |}}
You will also need the latest TLSR8258 firmware from LILYGo. It can be found [[https://github.com/Xinyuan-LilyGO/T-ZigBee/tree/main/firmware|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):
{{ ::tlsr8258_selected.png?200 |}}
You will also need the TlsrComSwireWriter utility. Download it [[https://github.com/pvvx/TlsrComSwireWriter|here]] and place it somewhere on your local file system. Open the USBCOMFlashTx.html file in a browser.
{{ ::screenshot_2023-09-15_at_12.29.03_pm.png?400 |}}
Connect your T-Zigbee using the T-U2T adaptor:
{{ ::tzigbee-connect.jpg?600 |}}
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:
{{ ::burning_successfully.jpeg?600 |}}
====== 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
#define CONFIG_ZIGBEE_MODULE_PIN 0
void setup() {
pinMode(CONFIG_ZIGBEE_MODULE_PIN, OUTPUT);
digitalWrite(CONFIG_ZIGBEE_MODULE_PIN, HIGH);
}
void loop() {
}