T1 (BK7238) to nowy układ Tuya Wi-Fi 802.11b/g/n i Bluetooth 5.2 LowEnergy (LE) zaprojektowany dla produktów IoT o niskim poborze mocy i kompaktowych rozmiarach. T1 jest wykorzystywany przez moduły T1-M, T1-U-HL, T1-3S, T1-LC5-HL. T1 posiada 32-bitowy MCU pracujący z częstotliwością do 160 MHz, 2 MB SiP Flash, 288 KB RAM i 4-bajtowy eFuse. Zasilany jest napięciem od 2,7 do 3,6 V. Peryferia T1 obejmują:
- GPIO: 19 w QFN32, 9 w QFN20
- 1x SPI
- 2x UART: 1 z obsługą pobierania Flash
- 1x I2C
- 1x kontroler DMA ogólnego przeznaczenia (GDMA) z 6 kanałami
- 6x 32-bitowy kanał PWM
- 10-bitowy przetwornik AUX ADC, do 6 kanałów
- 6x 32-bitowy timer ogólnego przeznaczenia
- 1x watchdog timer (WDT)
- 1x licznik czasu rzeczywistego (RTC)
- 1x czujnik temperatury
- 1x generator liczb prawdziwie losowych (TRNG)
W tym temacie pokażę wyprowadzenia układu T1, następnie przejdę do popularnych modułów T1 Tuya, a na koniec pokażę, jak można go sflashować za pomocą open source firmware .
Po co zmieniać firmware?
Zmiana oprogramowania układowego pozwala na:
- uruchamianie urządzenia bez chmury (metoda szanująca prywatność)
- sparować urządzenie z Home Assistant (łatwo dzięki HASS Discovery)
- skonfigurować zaawansowane automatyzacje za pomocą skryptów OBK lub Berry
- dodawać mechanizmy niedostępne w Tuya (grupy urządzeń Tasmota itp.)
- dodawać nowe czujniki, przyciski i inne urządzenia peryferyjne
- i wiele więcej
Zacznijmy od rozważenia pinów T1. Najważniejszymi pinami dla flashowania są UART1 (TX1 i RX1), które są używane do programowania, oraz TX2, który jest wyjściem dziennika debugowania przy 115200.
Rozkład pinów i opisy T1 QFN32:
| Pin # | Nazwa | I/O | Typ | Opis |
| 1 | VCCRXFE | -. | Wejście analogowe | Zasilanie odbiornika RF |
| 2 | ANT | -. | RF | 2.Port sygnału RF 4 GHz |
| 3 | VCCPA | -. | Wejście analogowe | Zasilacz RF PA |
| 4 | VCCTX | -. | Wejście analogowe | Zasilanie nadajnika RF |
| 5 | GND | -. | GND | Ground |
| 6 | XI | -. | Wejście analogowe | Wejście kwarcowe 26 MHz |
| 7 | XO | -. | Wyjście analogowe | Wyjście kwarcowe 26 MHz |
| 8 | VCCPLL | -. | Wejście analogowe | Zasilanie RF PLL |
| 9 | VDDAON | -. | Wyjście analogowe | Zawsze-wł.włączone/cyfrowe wyjście LDO |
| 10 | VBAT | -. | Wejście analogowe | Zasilanie układu |
| 11 | CEN | -. | Wejście analogowe | Chip enable, aktywny wysoki |
| 12 | P28/ADC4 | I/O | Cyfrowe/analogowe | GPIO28 / ADC4 |
| 13 | P20/ADC3 | I/O | Digital/Analog | GPIO20 / ADC3 |
| 14 | P21 | I/O | Digital | GPIO21 |
| 15 | P22 | I/O | Digital | GPIO22 |
| 16 | P23 | I/O | Digital | GPIO23 |
| 17 | P24/LPO_CLK/PWM4/ANTLSB/SCL/ADC2 | I/O | Cyfrowe/analogowe | GPIO24 / wyjście zegara 32 kHz / PWM4 (diff w/ PWM5) / wybór anteny BT LE (LSB) / I2C: SCL / ADC2 |
| 18 | NC | -. | NC | Brak połączenia |
| 19 | P14/SCK/ANT0 | I/O | Digital | GPIO14 / SPI: SCK / BT LE antenna select 0 |
| 20 | P16/MOSI/ANT2 | I/O | Cyfrowe | GPIO16 / SPI: MOSI / BT LE antenna select 2 |
| 21 | P15/CSN/ANT1/SCL | I/O | Cyfrowe | GPIO15 / SPI: CSN / BT LE antenna select 1 / I2C: SCL |
| 22 | P17/MISO/ANT3/SDA | I/O | Cyfrowe | GPIO17 / SPI: MISO / Wybór anteny BT LE 3 / I2C: SDA |
| 23 | P26/PWM5/ANTMSB/SDA/ADC1 | I/O | Cyfrowe/analogowe | GPIO26 / PWM5 (diff w/ PWM4) / Wybór anteny BT LE (MSB) / I2C: SDA / ADC1 |
| 24 | P6/CLK13M/PWM0/TCK/ANT0 | I/O | Cyfrowe | GPIO6 / 26 MHz clk (รท1/2/4/8) / PWM0 (diff w/ PWM1) / JTAG: TCK / wybór anteny BT LE 0 |
| 25 | P7/PWM1/TMS/ANT1 | I/O | Cyfrowe | GPIO7 / PWM1 (diff w/ PWM0) / JTAG: TMS / BT LE antenna select 1 |
| 26 | P8/PWM2/TDI/ANT2/CLK26M | I/O | Digital | GPIO8 / PWM2 (diff w/ PWM3) / JTAG: TDI / BT LE antenna select 2 / 26 MHz clk output |
| 27 | P9/PWM3/TDO/ANT3 | I/O | Cyfrowe | GPIO9 / PWM3 (diff w/ PWM2) / JTAG: TDO / BT LE antenna select 3 |
| 28 | P10/DL_1RX/ADC6 | I/O | Cyfrowe/analogowe | GPIO10 / UART1: RX (Flash DL) / ADC6 |
| 29 | P11/DL_1TX | I/O | Cyfrowe | GPIO11 / UART1: TX (Flash DL) |
| 30 | P1/2RX/RXEN/ADC5 | I/O | Cyfrowe/analogowe | GPIO1 / UART2: RX / RX enable / ADC5 |
| 31 | P0/2TX/TXEN | I/O | Cyfrowe | GPIO0 / UART2: TX / TX enable |
| 32 | VCCIF | -. | Wejście analogowe | Zasilanie IF |
| Die pad | GND_SLUG | -. | GND | Ground |
T1 QFN20 Pinout i opisy:
| Pin # | Nazwa | I/O | Typ | Opis |
| 1 | ANT | -. | RF | 2.Port sygnału RF 4 GHz |
| 2 | VCCPA | -. | Wejście analogowe | Zasilacz RF PA |
| 3 | VCCTX | -. | Wejście analogowe | Zasilanie nadajnika RF |
| 4 | XI | -. | Wejście analogowe | Wejście kwarcowe 26 MHz |
| 5 | XO | -. | Wyjście analogowe | Wyjście kwarcowe 26 MHz |
| 6 | VCCPLL | -. | Wejście analogowe | Zasilanie RF PLL |
| 7 | VDDAON | -. | Wyjście analogowe | Wyjście zawsze-włączone/cyfrowe wyjście LDO |
| 8 | VBAT | -. | Wejście analogowe | Zasilanie układu |
| 9 | CEN | -. | Wejście analogowe | Chip enable, aktywny wysoki |
| 10 | P24/LPO_CLK/PWM4/ANTLSB/SCL/ADC2 | I/O | Cyfrowe/analogowe | GPIO24, Wyjście zegara 32 kHz, PWM4 (różnicowy z PWM5), wybór anteny Bluetooth LE (LSB), I2C: SCL, ADC2 |
| 11 | P26/PWM5/ANTMSB/SDA/ADC1 | I/O | Cyfrowe/analogowe | GPIO26, PWM5 (różnicowy z PWM4), wybór anteny Bluetooth LE (MSB), I2C: SDA, ADC1 |
| 12 | P6/CLK13M/PWM0/ANT0 | I/O | Cyfrowe | GPIO6, Wyjście zegara 26 MHz (podzielone przez 1/2/4/8), PWM0, Wybór anteny Bluetooth LE 0 |
| 13 | P8/PWM2/ANT2/CLK26M | I/O | Cyfrowe | GPIO8, PWM2 (różnicowy z PWM3), wybór anteny Bluetooth LE 2, Wyjście zegara 26 MHz |
| 14 | P9/PWM3/ANT3 | I/O | Cyfrowe | GPIO9, PWM3 (różnicowe z PWM2), Antena Bluetooth LE select 3 |
| 15 | P10/DL_1RX/ADC6 | I/O | Cyfrowe/analogowe | GPIO10, UART1: RX (obsługa pobierania Flash), ADC6 |
| 16 | P11/DL_1TX | I/O | Cyfrowe | GPIO11, UART1: TX (obsługa pobierania Flash) |
| 17 | P1/2RX/RXEN/ADC5 | I/O | Cyfrowe/analogowe | GPIO1, UART2: RX, RX enable, ADC5 |
| 18 | P0/2TX/TXEN | I/O | Cyfrowe | GPIO0, UART2: TX, TX enable |
| 19 | VCCIF | -. | Wejście analogowe | Zasilanie IF |
| 20 | VCCRXFE | -. | Wejście analogowe | Zasilanie odbiornika RF |
| Die pad | GND_SLUG | -. | GND | . Ground |
Schemat wewnętrzny T1:
To były informacje o T1, ale T1 często występuje w postaci modułów. Oto najczęściej spotykane moduły T1.
Pinout modułu T1-M
T1-M jest odpowiednikiem T1 (BK7238) WB2S/CB2S/TYWE2S. Udostępnia PWM, ADC i UART 1. UART 2 znajduje się z tyłu modułu.
| Pin No. | Symbol | I/O typ | opis |
| 1 | 3V3 | P | 3.3V pin zasilania. |
| 2 | 2. P26 | I/O | Obsługuje sprzętowy PWM, odpowiadający pinowi 11 na układzie scalonym. |
| 3 | GND | P | Pin masy. |
| 4 | P6 | I/O | Wspiera sprzętowy PWM, odpowiadający pinowi 12 na układzie scalonym. |
| 5 | RX1 | I/O | UART_RX1 do odbioru danych użytkownika, P10 odpowiadający pinowi 15 na układzie scalonym. |
| 6 | P8 | I/O | Wspiera sprzętowy PWM, odpowiadający pinowi 13 na układzie scalonym. |
| 7 | TX1 | I/O | UART_TX1 do wysyłania danych użytkownika, P11 odpowiadający pinowi 16 na układzie scalonym. |
| 8 | UART_TX1 do wysyłania danych użytkownika.ADC | I/O | Pin ADC, GPIO 1, odpowiadający pinowi 17 na układzie scalonym. |
| 9 | P9 | I/O | Wspiera sprzętowy PWM, odpowiadający pinowi 14 na układzie scalonym. |
| 10 | CEN | I/O | Pin resetu, aktywny niski i wewnętrznie podciągnięty. Odpowiada pinowi 9 na układzie scalonym. |
| 11 | P24 | I/O | Wspiera sprzętowy PWM, odpowiadający pinowi 10 na układzie scalonym. |
Pinout modułu T1-3S
T1-3S jest odpowiednikiem T1 (BK7238) dla CB3S/WB3S/TYWE3S.
| Pin No. | Symbol | I/O type | Feature |
| 1 | RST | I | Pin resetu niskiego poziomu.poziom resetowania, aktywny wysoki i wewnętrznie podciągnięty, odpowiadający CEN na układzie scalonym. |
| 2 | 2.ADC3 | I/O | Pin ADC, odpowiadający P20 na układzie scalonym. |
| 3 | CEN | I | Pin włączający, wewnętrznie podciągnięty. Po zewnętrznym podciągnięciu do stanu niskiego może być używany jako pin resetujący. |
| 4 | P22 | I/O | GPIO_22, odpowiadający P22 na układzie scalonym. |
| 5 | GPIO_22, odpowiadające P22 na układzie scalonym.P6 | I/O | GPIO_6, odpowiadający P6 na układzie scalonym. Obsługuje sprzętowy PWM0. |
| 6 | GPIO_6, odpowiadające P6 na układzie scalonym.P8 | I/O | GPIO_8, odpowiadające P8 na układzie scalonym. Obsługa sprzętowego PWM2. |
| 7 | P9 | I/O | GPIO_9, odpowiadające P9 na układzie scalonym. Obsługa sprzętowego PWM3. |
| 8 | 3V3 | P | Pin zasilania (DC 3.3V). |
| 9 | GND | P | Pin masy. |
| 10 | P23 | I/O | GPIO_23, odpowiadający P23 na układzie scalonym. |
| 11 | TX2 | I/O | UART2_TXD (używany do drukowania dziennika), odpowiadający P0 na układzie scalonym. |
| 12 | RX2 | I/O | UART2_RXD (używany do drukowania dziennika), odpowiadający P1 na układzie scalonym. |
| 13 | UART2_RXD (używany do drukowania logów).P24 | I/O | GPIO_24, odpowiadający P24 na układzie scalonym. Obsługa sprzętowego PWM4. |
| 14 | P26 | I/O | GPIO_26, odpowiadający P26 na układzie scalonym. Obsługa sprzętowego PWM5. |
| 15 | RX1 | I/O | UART1_RXD do odbioru danych użytkownika, odpowiadający P10 na układzie scalonym. |
| 16 | TX1 | I/O | UART1_TXD do transmisji danych użytkownika, odpowiadający P11 na układzie scalonym. |
T1-LC5-HL
T1-LC5-HL jest odpowiednikiem T1 (BK7238) dla CBLC5, WBLC5.
| Pin No. | Symbol | I/O typ | opis |
| 1 | ANT | O | Pin podkładki anteny zewnętrznej. |
| 2 | 2.G | P | Ziemia. |
| 3 | M4 | I/O | Obsługuje sprzętowy PWM, odpowiadający P24 na układzie scalonym. |
| 4 | 4.M3 | I/O | Wspiera sprzętowy PWM, odpowiadający P9 na układzie scalonym. |
| 5 | M5 | I/O | Wspiera sprzętowy PWM, odpowiadający P26 na układzie scalonym. |
| 6 | 3V3 | P | Zasilanie pin |
| Symbol | Typ I/O | Opis |
| R2 | I/O | UART2_RX do odbioru logów, odpowiadający P12 na układzie scalonym. |
| T2 | I/O | UART2_TX do przesyłania logów, odpowiadający P0 na układzie scalonym. |
| R1 | UART2_TX do przesyłania logów, odpowiadający P0 na układzie scalonym.I/O | UART1_RX do odbioru danych użytkownika, odpowiadający P10 na układzie scalonym. |
| T1 | UART1_RX do odbioru danych użytkownika, odpowiadający P10 na układzie scalonym.I/O | UART1_TX do transmisji danych użytkownika, odpowiadający P11 na układzie scalonym. |
| UART1_TX do transmisji danych użytkownika, odpowiadający P11 na układzie scalonym. CEN | I | Pin resetu, aktywny niski i wewnętrznie podciągnięty. |
T1-U-HL
T1-U-HL to odpowiednik CBU w wersji T1 (BK7238).
| Pin No. | Symbol | I/O typ | opis | |
| 1 | P14 | I/O | Normalny pin GPIO, odpowiadający pinowi 19 na układzie scalonym. Może być ponownie użyty jako SPI_SCK. | |
| 2 | 2.P16 | I/O | Zwykły pin GPIO, odpowiadający pinowi 20 na układzie scalonym. Może być ponownie użyty jako SPI_MOSI. | |
| 3 | P23 | I/O | Zwykły pin GPIO, odpowiadający pinowi 16 na układzie scalonym. | |
| 4 | P22 | I/O | Zwykły pin GPIO, odpowiadający pinowi 15 na układzie scalonym. | |
| 5 | ADC | I/O | Pin ADC, odpowiadający P20 (pin 13) na układzie scalonym. | |
| 6 | RX2 | I/O | UART_RX2, odpowiadający P1 (Pin 30) na układzie scalonym. | |
| 7 | 7 | UART_RX2, odpowiadający P1 (Pin 30 na układzie scalonym). TX2 | I/O | UART_TX2 do drukowania logów, odpowiadający P0 (pin 31) na układzie scalonym. |
| 8 | P24 | I/O | Obsługuje sprzętowy PWM4, odpowiadający pinowi 17 na układzie scalonym. | |
| 9 | P9 | I/O | Obsługuje sprzętowy PWM3, odpowiadający pinowi 27 na układzie scalonym. | |
| 10 | P26 | I/O | Obsługuje sprzętowy PWM5, odpowiadający pinowi 23 na układzie scalonym. | |
| 11 | P6 | I/O | Obsługuje sprzętowy PWM0, odpowiadający pinowi 24 na układzie scalonym. | |
| 12 | P8 | I/O | Wspiera sprzętowy PWM2, odpowiadający pinowi 26 na układzie scalonym. | |
| 13 | GND | P | Pin masy. | |
| 14 | 3V3 | P | 3.3V pin zasilania. | |
| 15 | TX1 | I/O | UART_TX1 do wysyłania danych użytkownika, odpowiadający P11 na układzie scalonym (odpowiadający pinowi 29 na układzie scalonym). Aby uzyskać więcej informacji na temat ogólnej integracji MCU, zobacz Projektowanie sprzętowe modułu CBx. | |
| 16 | RX1 | I/O | UART_RX1 do odbioru danych użytkownika, odpowiadający P10 na układzie scalonym (odpowiadający pinowi 28 na układzie scalonym). Aby uzyskać więcej informacji na temat ogólnej integracji MCU, zobacz Projektowanie sprzętowe modułu CBx. | |
| 17 | P28 | I/O | Zwykły pin GPIO, odpowiadający pinowi 12 na układzie scalonym. | |
| 18 | CEN | I/O | Pin resetu, aktywny niski i wewnętrznie podciągnięty. Jest kompatybilny z konstrukcjami innych modułów. Odpowiada pinowi 11 na układzie scalonym. | |
| 19 | P21 | I/O | Zwykły pin GPIO, odpowiadający pinowi 14 na układzie scalonym. | |
| 20 | P17 | I/O | Zwykły pin GPIO, odpowiadający pinowi 22 na układzie scalonym. Może być ponownie użyty jako SPI_MISO. | |
| 21 | Pin GPIO odpowiadający pinowi 22 na układzie scalonym.P15 | I/O | Normalny pin GPIO, odpowiadający pinowi 21 na układzie scalonym. Może być ponownie użyty jako SPI_CS. |
Jak flashować moduły T1 i T1?
Flashowanie T1 (BK7238) jest bardzo podobne do flashowania BK7231T/BK7231N, więc sprawdź nasze tutoriale BK7231T/BK7231N. Tutaj przedstawię tylko krótką wersję przewodnika.
Pamiętaj o wykonaniu 2MB kopii zapasowej firmware przed flashowaniem jakiegokolwiek nowego oprogramowania!
Konfiguracja sprzętu
Do flashowania BK7238 potrzebny będzie konwerter USB na UART. Ponadto należy zapewnić dobre zasilanie 3,3 V, zasilanie modułu WiFi bezpośrednio z konwertera USB na UART może nie wystarczyć. Często używam do tego celu zewnętrznego LDO 3.3V, takiego jak AMS1117-3.3V. Możliwe jest również użycie wbudowanego LDO, jeśli urządzenie jest w nie wyposażone, wtedy można podłączyć 5 V do wejścia LDO, aby uzyskać 3,3 V na wyjściu, jak 3.3V jest wymagane dla modułu WiFi.
Należy więc podłączyć masę, zasilanie (3,3 V) i RX / TX do portu UART 1 Beken. Podłącz TX do RX i RX do TX.
Gdy narzędzie do flashowania czeka na reset / uzyskanie magistrali, odłącz na chwilę napięcie 3,3 V i podłącz je ponownie.
Więcej informacji można znaleźć w innych naszych przewodnikach.
Pobieranie oprogramowania
Pobierz OBK tutaj:
https://github.com/openshwprojects/OpenBK7231T_App/releases
Pobierz OpenBK7238 _QIO_*.bin, ponieważ T1 to BK7238.
Pamiętaj, że w przypadku Easy Flasher nie jest to konieczne, ponieważ Easy Flasher może automatycznie pobrać wymagane pliki binarne z Github.
Oprogramowanie do flashowania opcja 1 - Easy Flasher:
https://github.com/openshwprojects/BK7231GUIFlashTool
Easy Flasher jest bardzo prosty w użyciu, wystarczy go uruchomić, wybrać chip (BK7238), użyć go do pobrania firmware, a następnie najpierw wykonać flash backup a następnie napisać nowy firmware.
Opcja oprogramowania do flashowania 2 - BKFil: .
https://www.elektroda.com/rtvforum/topic4059172.html
https://github.com/openshwprojects/FlashTools/tree/main/Beken
Przykładowy log:
cmdline: |D:/Instalki/Open BK7321/BEKEN_BKFIL_V2.1.6.0_20231123/bk_loader.exe download -p 6 -b 1500000 --uart_type OTHER --mainBin-multi D:/Instalki/Open BK7321/BK7231GUIFlashTool-v49/firmwares/OpenBK7238_QIO_1.18.140.bin@0x0-0x132000 --fast_link 1 |
bk_loader version 2.1.6.0: build @Nov 23 2023 11:23:40
2025-07-27 18:58:55.833 Current port : COM6 + BaudRate : 115200 connect success
2025-07-27 18:58:56.034 do_reset_signal
2025-07-27 18:58:56.034 Getting Bus...
2025-07-27 18:58:58.905 Gotten Bus...
2025-07-27 18:58:59.049 Got ChipId: 0x7238
2025-07-27 18:58:59.049 Current Chip is : BK7238
2025-07-27 18:58:59.081 Current baudrate : 1500000 success
2025-07-27 18:58:59.112 rxf-uid : 45 53 4d 39 38 38 00 07 00 ab 4a 52 01 20 ad 78
2025-07-27 18:58:59.112 Got FLashMID: 0x154285
2025-07-27 18:58:59.116 Unprotecting Flash
2025-07-27 18:58:59.144 Unprotected Flash ->pass
2025-07-27 18:58:59.144 [ 0 ] file_path : D:/BK7231GUIFlashTool-v49/firmwares/OpenBK7238_QIO_1.18.140.bin
2025-07-27 18:58:59.144 [ 0 ] file_length : 0x132000 (1224 KB)
2025-07-27 18:58:59.144 [ 0 ] file_crc : 0x8f7900f9
2025-07-27 18:58:59.144 Begin EraseFlash
2025-07-27 18:58:59.147 Start 4K Erase
2025-07-27 18:58:59.147 End 4K Erase
2025-07-27 18:58:59.147 Start 64K Erase
2025-07-27 18:59:00.210 End 64K Erase
2025-07-27 18:59:00.210 EraseFlash ->pass
2025-07-27 18:59:00.213 Begin WriteFlash...
2025-07-27 18:59:10.402 WriteFlash ->pass
2025-07-27 18:59:10.402 Begin read CRC
2025-07-27 18:59:13.254 CRC_Verify ->pass
2025-07-27 18:59:13.347 Enprotect pass
2025-07-27 18:59:13.380 Boot_Reboot
2025-07-27 18:59:13.767 Total Test Time : 14.861 s
2025-07-27 18:59:13.767 Writing Flash OK
Troubleshooting
Cały proces jest podobny do flashowania BK7231, więc jak zwykle:
- spróbuj zamienić RX i TX
- upewnij się, że zasilasz moduł dobrym napięciem 3.3V
- skrócić przewody
- spróbuj użyć CEN do resetowania zamiast odłączania zasilania (zewrzyj CEN do masy na 0,1s)
- wypróbuj inną prędkość transmisji
- wypróbuj inny konwerter USB na UART
Powiązane poradniki wideo
Są to instrukcje dla BK7231T/BK7231N, ale proces dla BK7238/T1 jest taki sam, wystarczy wykonać flashowanie zgodnie z powyższym opisem.
Przykładowy log bootowania urządzenia z firmware Tuya
Zostało to pobrane z pinu TX2 przy prędkości 115200 bodów.
prvHeapInit-start addr:0x415228, size:175576
[Flash]id:0x852015
bk_timer_init exit
spi_init exit
sctrl_sta_ps_init
**********tuya_upgrade_main need upgrade? [255]**********
cset:0 0 0 0
[FUNC]rwnxl_init
IP Rev: 431458e2
tkl_ethernetif_init
tkl_[bk]tx_txdesc_flush
ex_txdesc_flush
[FUNC]intc_init
[FUNC]calibration_main
gpio_level=1,txpwr_state=15
device_id=0x22068000
[01-01 00:00:00 ty E][4164][log_seq.c:884] logseq empty
[01-01 00:00:00 ty N][4164][ty_sys.c:277] sdk_info:< TuyaOS V:3.8.31 BS:40.00_PT:2.3_LAN:3.5_CAD:1.0.5_CD:1.0.0 >
< BUILD AT:2024_12_26_11_42_43 BY ci_manage FOR tuyaos-iot AT T1 >
IOT DEFS < WIFI_GW:1 DEBUG:0 KV_FILE:0 LITTLE_END:1 SL:0 OPERATING_SYST[01-01 00:00:00 ty N][4164][ty_sys.c:278] name:oem_t1_irbox_mol_ty:0.0.5
[01-01 00:00:00 ty N][4164][ty_sys.c:279] firmware compiled at Feb 25 2025 21:21:43
[01-01 00:00:00 ty N][4164][ty_sys.c:280] system reset reason:[0]
[01-01 00:00:00 ty N][4164][simple_flash_protected.c:86] init protected data length 715 wr_cnt 14
[01-01 00:00:00 ty N][4164][simple_flash.c:447] key_addr: 0x1f5000 block_sz 4096
[01-01 00:00:00 ty N][4164][simple_flash.c:533] get key:
calibration_main over
flash txpwr table:0xf
dif g and n20 ID in flash:4
read txpwr tab from flash success
calibrate low value:[465]
calibrate high value:[8d3]
temp in flash is:256
lpf_i &[01-01 00:00:00 ty N][4 0:00:00 ty N][4164][td164][tdd_button_gpio.c:d_button_gpio.c:199] td199] tdd_gpio_button_regd_gpio_button_register ister succ
succ
found[01-01 00:00:00 ty N][4 00:00:00 ty N][4164][164][ty_app_ir_oem_confty_app_ir_oem_config.c:ig.c:56] --->long_press56] --->long_press_time:_time:3
[01-01 00:00:03
use xtal:51
xtal_ca0 ty N][4164][tuya_tls.li:51
--init_xtal = 51c:911] uni_random_init.
[FUNC]ps_init
[FUNC]..
func_init_extended OVER!!!
start_type:0
[01-01 00:00:00 ty N][400 ty N][4164][tuya_tls164][tuya_tls.c:354] tu.c:354] tuya_tls_rand_iya_tls_rand_init ok!
nit ok!
Version:
app_init finished
[01-01 00:00:00 ty E][416e][api_lib.c:227] LWIP_NETCONN_THREAD_SEM_FREE:not find thread sem
[01-01 00:00:00 ty N][4164][tuya_svc_devos.c:319] gw_cntl->gw_wsm.stat:2
rw_ieee80211_set_country code:
code: CN
channel: 1 - 13
mode: MANUAL
bk_wlan cca closed
!! tkl_wifi_station_fast_connect
>>> mhdr_set_station_status_cb
>>> _wifi_station_status_cb 0
wlan_clear_fast_connect_info
>>> mhdr_set_station_status 0
>>> _wifi_station_status_cb 0
[sa_sta]MM_RESET_REQ
[bk]tx_txdesc_flush
[sa_sta]ME_CONFIG_REQ
[sa_sta]ME_CHAN_CONFIG_REQ
[sa_sta]MM_START_REQ
fast_connect
sizeof(wpa_supplicant)=928
hapd_intf_add_vif,type:2, s:0, id:0
wpa_dInit
hapd_intf_ioctl:939
hapd_intf_ioctl:939
hapd_intf_ioctl:939
hapd_intf_ioctl:939
hapd_intf_ioctl:939
hapd_intf_ioctl:939
netif_is_added: 0x40c418
netif_is_added: 0x40c3d0
net_wlan_add_netif already exist!, vif_idx:0
mac 80:64:7c:21:ff:7b
net_wlan_add_netif done!, vif_idx:0
me_mgmt_tx chan no avail
cipher2security 2 2 24 8
cipher2security 2 2 24 8
wpa_supplicant_connect
Cancelling sca[01-01 01:00:0chan avail
n ty N][4164][tuya_wi0 ty N][4164][tuya_wififi_status.c:167] cur st_at:5 0x0 -->>
status.c:167] cur stat:5 0x0wpa_driver_associate: a -->>
[01-01 01:00:00 u64][tuya_wifi_status.c:ty N][4164][tuya_wifi_s169] wifi netstat changtatus.c:169] wifi netsted to:5 -->>
>>> mhdr_set_station_status 3
>>> _wifi_station_status_cb 3
at changed to:5found scan rst rssi -38 > -50
bssid 74:da:88:a5:9e:fb, cap_info 0x1031, BI 100, ssid DOM-1
sm_auth_send:1
-->>
[01-01 01:00:00 ty N][4164][mf_test.c:276] have actived over 15 min, not enter mf_init
[01-01 01:00:00 ty N][4164][ty_sys.c:343] mf_init succ
[01-01 01:00:00 ty N][4164][ty_sys.c:63] have actived over 15min, don't scan prod test ssid
[01-01 01:00:00 ty N][4164][tuya_iot_wifi_api.c:307] wifi soc init. pid:keycmhjv873dhvsn firmwarekey:keycmhjv873dhvsn ver:0.0.5
[01-01 01:00:00 ty N][4164][tuya_wifi_link.c:86] start wifi link params validate, nc_tp:9 md:3
[01-01 01:00:00 ty N][4164][tuya_wifi_link.c:108] gw_wsm.nc_tp:9
[01-01 01:00:00 ty N][4164][tuya_wifi_link.c:109] gw_wsm.md:3
[01-01 01:00:00 ty N][4164][tuya_svc_devos.c:547] Last reset reason: 0
[01-01 01:00:00 ty N][4164][tuya_svc_devos.c:376] gw_cntl->gw_if.abi:0 input:0
[01-01 01:00:00 ty N][4164][tuya_svc_devos.c:377] gw_cntl->gw_if.product_key:keycmhjv873dhvsn, input:keycmhjv873dhvsn
[01-01 01:00:00 ty N][4164][tuya_svc_devos.c:378] gw_cntl->gw_if.tp:0, input:0
[01-01 01:00:00 ty N][4164][tuya_svc_devos.c:381] gw_cntl->gw_if.firmware_key:keycmhjv873dhvsn, input:keycmhjv873dhvsn
[01-01 01:00:00 ty N][4164][tuya_svc_devos.c:580] enter success_proc
[01-01 01:00:00 ty N][4164][tuya_svc_devos.c:583] serial_no:80647c21ff7b
[01-01 01:00:00 ty N][4164][tdl_ir_dev_manage.c:1441] Set ir recv task stack size: 4096
[01-01 01:00:00 ty N][41e5][tuya_bt_link.c:63] bt startup attr:ff
[01-01 01:00:00 ty N][41e5][tuya_ble_svc.c:1204] upd product_id type:1 keycmhjv873dhvsn
[01-01 01:00:00 ty N][4164][tdl_binitial BLE...
ble mac:80-64-7c-21-ff-7c
rwip_heap_env addr:0x42e4e8 size:972
rwip_heap_msg addr:0x42e8c0 size:3208
rwip_heap_non_ret addr:0x42f550 size:668
xvr_reg_init
tx_pwr_idx:41
enter normal mode
uze:668
[01-01 01:00:00 ty N][4285][tbl_ir_cloud_service.c:475] sw timer create success
[01-01 01:00:00 ty N][41a9][ty_app_ir_component.c:78] =================>event_id:3, event_size:0
[01-01 01:00:00 ty N][41e5][tuya_ble_svc.c:1299] ty bt sdk init success finish
[01-01 01:00:00 ty E][41e5][tuya_svc_timer_task.c:1376] read timer_full_key failed
[01-01 01:00:00 ty N][41e5][tuya_svc_devos.c:231] __devos_init_evt success
[01-01 01:00:00 ty N][41e5][tuya_svc_devos.c:68] already bind
[01-01 01:00:00 ty N][41e5][tuya_svc_mqtt_client.c:179] [mqtts://m3-eu.lifeaiot.com:8883] mqtt state change 0 -> 1
[01-01 01:00:00 ty N][4329][tuya_svc_mqtt_client.c:1275] mqtt_thread paused
[01-01 01:00:00 ty N][4329][tuya_svc_mqtt_client.c:664] mqtt close
[01-01 01:00:00 ty E][41e5][astro_timer.c:326] astro timer read fail:-6
[01-01 01:00:00 ty E][41e5][astro_timer.c:861] read fail:-6
[01-01 01:00:00 ty E][41e5][tuya_wifi_connect.c:371] wf connect err:-1, ssid:DOM-1
[01-01 01:00:00 ty N][41e5][tuya_wifi_status.c:167] cur stat:5 0x5e64d -->>
[01-01 01:00:00 ty N][41d3][ty_app_main.c:54] Main Module: v1.0.0 (0.0.5)
temp_code:30 - adc_code:245 - adc_trend:[13]:256->[14]:246
init_xtal:51, delta:-1, last_xtal:51
[01-01 01:00:00 ty N][41e5][ble_gap.c:2509] Start Adv
[01-01 01:00:00 ty N][41e5][tuya_ble_svc.c:1386] ble adv updated
auth timeout
SM_DISCONNECTING status=1
>>> mhdr_set_station_status 9
>>> _wifi_station_status_cb 9
RW_EVT_STA_CONNECT_FAILED 9
---------SM_CONNECT_IND_fail
[01-01wpa_supplicant_req plic_scan
Setting scan[reta[retry1] request: 0.100ry1] request: 0.100000 000 sec
sec
wpa_supplicant_scan
wpa_drv_scan
wpa_send_scan_req
>>> mhdr_set_station_status 1
>>> _wifi_station_status_cb 1
ht in scan
scan_start_req_handler
wpa_driver_scan_start_cb
scanu_confirm: status 0, upload_cnt 0, recv_cnt 3, time 204573us, result 0
wpa_driver_scan_cb
Scan completed in 0.202000 seconds
>>> mhdr_set_station_status 2
>>> _wifi_station_status_cb 2
get_scan_rst_null
>>> mhdr_set_station_status 6
>>> _wifi_station_status_cb 6
No suitable network found
wpa_supplicant_req_scan
Setting scan[retry0] request: 5.000000 sec
>>> mhdr_set_station_status_when_reconnect_over 6
>>> _wifi_station_status_cb 6
tkl_wifi_station_connect !!!
Cancelling scan request
sm external auth not in corrent state
>>> mhdr_set_station_status 0
>>> _wifi_station_status_cb 0
wpa_supplicant_req_scan
Setting scan[retry1] request: 0.000000 sec
wpa_supplicant_scan
wpa_drv_scan
wpa_send_scan_req
>>> mhdr_set_station_status 1
>>> _wifi_station_status_cb 1
ht in scan
scan_start_req_handler
wpa_driver_scan_start_cb
scanu_confirm: status 0, upload_cnt 0, recv_cnt 19, time 1326385us, result 0
wpa_driver_scan_cb
Scan completed in 1.322000 seconds
>>> mhdr_set_station_status 2
>>> _wifi_station_status_cb 2
get_scan_rst_null
>>> mhdr_set_station_status 6
>>> _wifi_station_status_cb 6
RW_EVT_STA_CONNECT_FAILED 6
[01-01 01:00:03 ty N][No suitable network fou4nd
nd
wpa_supplicant_req_scan
Setting scan[retry0] request: 5.000000 sec
>>> mhdr_set_station_status_when_reconnect_over 6
>>> _wifi_station_status_cb 6
tkl_wifi_station_connect !!!
Cancelling scan request
sm external auth not in corrent state
>>> mhdr_set_station_status 0
>>> _wifi_station_status_cb 0
wpa_supplicant_req_scan
Setting scan[retry1] request: 0.000000 sec
wpa_supplicant_scan
wpa_drv_scan
wpa_send_scan_req
>>> mhdr_set_station_status 1
>>> _wifi_station_status_cb 1
ht in scan
scan_start_req_handler
wpa_driver_scan_start_cb
scanu_confirm: status 0, upload_cnt 0, recv_cnt 23, time 1326447us, result 0
wpa_driver_scan_cb
Scan completed in 1.322000 seconds
>>> mhdr_set_station_status 2
>>> _wifi_station_status_cb 2
get_scan_rst_null
>>> mhdr_set_station_status 6
>>> _wifi_station_status_cb 6
RW_EVT_STA_CONNECT_FAILED 6
[01-01 01:00:07 ty N][No suitable network fou4nd
nd
wpa_supplicant_
req_scan
Setting scan[retry0] request: 5.000000 sec
>>> mhdr_set_station_status_when_reconnect_over 6
>>> _wifi_station_status_cb 6
tkl_wifi_station_connect !!!
Cancelling scan request
sm external auth not in corrent state
>>> mhdr_set_station_status 0
>>> _wifi_station_status_cb 0
wpa_supplicant_req_scan
Setting scan[retry1] request: 0.000000 sec
wpa_supplicant_scan
wpa_drv_scan
wpa_send_scan_req
>>> mhdr_set_station_status 1
>>> _wifi_station_status_cb 1
ht in scan
scan_start_req_handler
wpa_driver_scan_start_cb
scanu_confirm: status 0, upload_cnt 0, recv_cnt 13, time 1326588us, result 0
wpa_driver_scan_cb
Scan completed in 1.322000 seconds
>>> mhdr_set_station_status 2
>>> _wifi_station_status_cb 2
get_scan_rst_null
>>> mhdr_set_station_status 6
>>> _wifi_station_status_cb 6
RW_EVT_STA_CONNECT_FAILED 6
[01-01 01:00:11 ty N]No suitable network fou[und
nd
wpa_supplicant_req_scan
Setting scan[retry0] request: 5.000000 sec
>>> mhdr_set_station_status_when_reconnect_over 6
>>> _wifi_station_status_cb 6
tkl_wifi_station_connect !!!
Cancelling scan request
sm external auth not in corrent state
>>> mhdr_set_station_status 0
>>> _wifi_station_status_cb 0
wpa_supplicant_req_scan
Setting scan[retry1] request: 0.000000 sec
wpa_supplicant_scan
wpa_drv_scan
wpa_send_scan_req
>>> mhdr_set_station_status 1
>>> _wifi_station_status_cb 1
ht in scan
scan_start_req_handler
wpa_driver_scan_start_cb
scanu_confirm: status 0, upload_cnt 0, recv_cnt 22, time 1326433us, result 0
wpa_driver_scan_cb
Scan completed in 1.322000 seconds
>>> mhdr_set_station_status 2
>>> _wifi_station_status_cb 2
get_scan_rst_null
>>> mhdr_set_station_status 6
>>> _wifi_station_status_cb 6
RW_EVT_STA_CONNECT_FAILED 6
[01-01 01:00:17 tNo suitable network fouyk found
nd
wpa_supplicant_req_scan
Setting scan[retry0] request: 5.000000 sec
>>> mhdr_set_station_status_when_reconnect_over 6
>>> _wifi_station_status_cb 6
tkl_wifi_station_connect !!!
Cancelling scan request
sm external auth not in corrent state
>>> mhdr_set_station_status 0
>>> _wifi_station_status_cb 0
wpa_supplicant_req_scan
Setting scan[retry1] request: 0.000000 sec
wpa_supplicant_scan
wpa_drv_scan
wpa_send_scan_req
>>> mhdr_set_station_status 1
>>> _wifi_station_status_cb 1
ht in scan
scan_start_req_handler
wpa_driver_scan_start_cb
scanu_confirm: status 0, upload_cnt 0, recv_cnt 23, time 1326169us, result 0
wpa_driver_scan_cb
Scan completed in 1.322000 seconds
>>> mhdr_set_station_status 2
>>> _wifi_station_status_cb 2
get_scan_rst_null
>>> mhdr_set_station_status 6
>>> _wifi_station_status_cb 6
RW_EVT_STA_CONNECT_FAILED 6
No suitable network found[01-01 01:00:26 ty N][4
][ta1e5][tal_wifi_recol_wifi_reconnet.c:246] nnet.c:246] wifi statuswifi status changed to changed to 1, stat: 1
1, stat: 1
wpa_supplic
ant_req_scan
Setting scan[retry0] request: 5.000000 sec
>>> mhdr_set_station_status_when_reconnect_over 6
>>> _wifi_station_status_cb 6
[01-01 01:00:36 ty N][41bd][tal_wifi_reconnet.c:187] wifi reconnet finsh
[01-01 01:00:36 ty N][41bd][tuya_wifi_status.c:167] cur stat:5 0x5e64d -->>
[01-01 01:01:00 ty N][41d3][tuya_wifi_protect.c:1576] device is long time(local:60 cloud:0) offline,stat:3 start wifi backup reconnect
[01-01 01:01:00 ty N][41d3][tuya_wifi_connect.c:455] device is long time(local:60 cloud:0) offline,stat:5 start local reconnect
[01-01 01:01:00 ty N][41d3][tuya_wifi_connect.c:161] reconect func got ssid&passwd , start reconnect
tkl_wifi_station_connect !!!
Cancelling scan request
sm external auth not in corrent state
>>> mhdr_set_station_status 0
>>> _wifi_station_status_cb 0
wpa_supplicant_req_scan
Setting scan[retry1] request: 0.000000 sec
wpa_supplicant_scan
wpa_drv_scan
wpa_send_scan_req
>>> mhdr_set_station_status 1
>>> _wifi_station_status_cb 1
ht in scan
scan_start_req_handler
wpa_driver_scan_start_cb
scanu_confirm: status 0, upload_cnt 0, recv_cnt 13, time 1326383us, result 0
wpa_driver_scan_cb
Scan completed in 1.322000 seconds
>>> mhdr_set_station_status 2
>>> _wifi_station_status_cb 2
get_scan_rst_null
>>> mhdr_set_station_status 6
>>> _wifi_station_status_cb 6
RW_EVT_STA_CONNECT_FAILED 6
[01-01 01:01:02 tyNo suitable network foun found
d
wpa_supplicant_req_scan
Setting scan[retry0] request: 5.000000 sec
>>> mhdr_set_station_status_when_reconnect_over 6
>>> _wifi_station_status_cb 6
tkl_wifi_station_connect !!!
Cancelling scan request
sm external auth not in corrent state
>>> mhdr_set_station_status 0
>>> _wifi_station_status_cb 0
wpa_supplicant_req_scan
Setting scan[retry1] request: 0.000000 sec
wpa_supplicant_scan
wpa_drv_scan
wpa_send_scan_req
>>> mhdr_set_station_status 1
>>> _wifi_station_status_cb 1
ht in scan
scan_start_req_handler
wpa_driver_scan_start_cb
T1/BK7238 dev board
Jeśli chcesz uruchomić kod BK7238/T1, ale nie masz żadnych modułów Tuya, możesz spróbować użyć NiceMCU XH-WB3S:
https://www.elektroda.com/rtvforum/topic4106397.html
Podsumowanie
T1 to nowy układ WiFi firmy Tuya oparty na rdzeniu BK7238. T1 może być flashowany tak samo jak BK7238 za pomocą naszego open source firmware (nasze wieloplatformowe rozwiązanie inspirowane T1). wieloplatformowe rozwiązanie zainspirowane przez Tasmota/Esphome) i sparowane z Home Assistant . Preferowanym narzędziem do flashowania jest Easy Flasher , ale możesz również użyć BKfill, jeśli wystąpią jakieś problemy. Pamiętaj tylko, aby najpierw wykonać kopię zapasową 2 MB flash.
Czy do tej pory napotkałeś jakieś moduły T1 Tuya? Daj nam znać! Możemy również pomóc w konfiguracji i integracji urządzenia.
Fajne? Ranking DIY Pomogłem? Kup mi kawę.