====== Xiaomi Mijia 2 (LYWSD03MMC) ======
* bluetooth teploměr s LCD, lze nahrát custom firmware
* baterie CR2032, vydrží cca rok
* firmware
* by default obsahuje xioami fw, který pracuje jen s xioami appkou
* zigbee fw jsou dva
* [[https://github.com/devbis/z03mmc/|devbis/z03mmc]] verzovaný od 1.00
* [[https://github.com/pvvx/ZigbeeTLc|ZigbeeTLc]] (pvvx) verzovaný od 0.1?
* prý je 2x úspornější než devbis https://github.com/pvvx/ZigbeeTLc/issues/37#issuecomment-1937844181
* od verze 0.120 se hlásí jako LYWSD03MMC-z !!!
* ZigBeeTLC firmware
* docela dlouho trvá, než se projeví změna teploty.. asi tak 15 minut?
* dělá to ale i thermostat s původním fw
* oba jsem přesunul do jiné místnosti a sledoval rychlost změny. Zigbee teploměr začal zvedat teplotu zhruba stejně, ale pak starý termostat přeběhl. Asi je to tím, že nějakou dobu trvá, než se teplota plastu adaptuje na změnu
* neumí se asi sám přepárovat na nejbližší router
* ruční párování se provádí spojením plošek GND a RST na více než 7s (po odstranění zadního krytu)
===== Přechod z Xioami na ZigBeeTLC fw =====
* flashovat lze
* OTA
* https://pvvx.github.io/ATC_MiThermometer/TelinkMiFlasher.html
* UART
* není moc spolehlivý, simuluje se zde nějaký 1-wire protokol
* nedoporučuje se flashovat přímo finální fw, ale nějaký přechodový
* Xioami verze 1.0.0_0130
* nejde nahrát nový ZigBeeTLC fw přímo, musí se nahrát nejdřív ATC fw
* Xioami do verze 2.1.1_0159
* stačilo dát connect, do activation a vybrat požadovaný firmware
* Xioami od verze 2.1.1_0159+
* musí se připojit k Xioami Appce a pak vytáhnout klíče z cloudu
Problémy
* firmware se nahrál, ale po restartu je bez změny
* dělalo mi to u ATC v52, pomohlo přejít na v53 beta, pak už to šlo
* po nahrání ATC z Xioami neukazuje flasher ZigBeeTLC fw
* resetni senzor
* vypni/zapni bluetooth v OS
* F5 stránky s flasherem
* po nahrání ATC fw to hlásí custom fw a posílá mě na jiný web flasher s ručním zadáním .bin img
* nikdy nenahrávej přímo .bin přes web flasher, musí to mít příponu .zigbee
* vrať se na původní flasher a zkus reset senzoru, vypnout/zapnout bluetooth v OS
* nenabízí mi to požadovaný fw a ukzauje špatně revizi B1.1
* zkus restart zařízení, bluetooth, ...
* zkus znovu nahrát ATC v53 beta (pokud ho znovu nabízí)
* zkus delete all records v nabídce ATC fw ve flasheru
* po flash zigbeeTLC nemám ni displeji nic, ale zigbee vypadá funkčně
* je to nějaký problém v zigbeeTLC fw 1.28 u hw revize B1.6 2025
* buď to používej bez displeje a čekej na nový fw
* nebo si tam vrať ten ATC fw a používej BT
* vrácení se provádí přes speciální OTA fw viz github pvxx
===== Oživování přes UART =====
Programátor
* LYWSD03MMC nejde prý bricknout, vždycky jde znovu přeflashovat. Jediný problém prý je, pokud se do něj pustí více než 3.3V
* měl by se použít UART TTL 3.3V ([[boards]])
* paradoxně, já jsem byl 4x úspěšný se svým pl2303 ([[boards]]), u kterého jsem ale naměřil 4.8V VCC. Nikdy se mi to nepodařilo s FT232RL, který má 3.3V. Je ale fakt, že jsem to s pl2303 zkoušel mnohem víckrát.
Zapojení
* existuje více schémat zapojení
* 1) pouze TX
* VCC se dá na vbat+ (boční plošky)
* GND se dá na vbat- (spodní ploška)
* TXD se přípojí na SWS (P14, popisek nad ploškou)
* [[https://github.com/pvvx/ATC_MiThermometer/issues/378#issuecomment-2476852534|zdroj]]
* 2) TX s RST
* navíc se DTR/RTS připojuje na RST
* [[https://github.com/pvvx/ATC_MiThermometer/issues/378#issuecomment-1791477897|zdroj]]
* 3) TX+RX
* TXD se připojí přes 1-1.7kOhm na SWS
* RXD se připojí na SWS bez odporu
* [[https://github.com/atc1441/ATC_MiThermometer/blob/master/Mi_SWS_Connection.jpg|zdroj]]
==== USBCOM web flasher ====
* nachystat webový USBCOM flasher https://pvvx.github.io/ATC_MiThermometer/USBCOMFlashTx.html
* dát open na UART
* vybrat požadovaný firmware
* používá se [[https://github.com/pvvx/ATC_MiThermometer/blob/master/bin/Original/Original_OTA_Xiaomi_LYWSD03MMC_v1.0.0_0130.bin|Original_OTA_Xiaomi_LYWSD03MMC_v1.0.0_0130.bin]], aby se pak mohl přehrát spolehlivější cestou přes OTA na finální
* zapojení TX+RX přes odpor
* VCC krokodýlek na vbat+
* GND krokodýlek na vbat-
* přidržet TXD+RXD na P14
* kliknout na flash
==== TLSR825x Flasher ====
* rozjet Python TLSR825x Flasher https://github.com/pvvx/TlsrComSwireWriter
* instaloval jsem přes venv
* zapojení TX+RX přes odpor
* VCC krokodýlek na vbat+
* přidržet TXD+RXD na P14
* spustit program
* GND krokodýlek na vbat-
* nejprve jsem pustil erase
LSR825x Flasher version 00.00.04
-------------------------------------------------------
Open /dev/ttyUSB0, 921600 baud...
Reset module (RTS low)...
Activate (5000 ms)...
UART-SWS 92160 baud. SW-CLK ~24.4 MHz(?)
Erase All Flash ...
-------------------------------------------------------
Worked Time: 7.070 sec
Done!
* pak vlastní zápis
(venv-test) djbuldog@Pharaon:~/Stažené$ python3 TLSR825xComFlasher.py -p /dev/ttyUSB0 -t5000 wf 0 Original_OTA_Xiaomi_LYWSD03MMC_v1.0.0_0130.bin
=======================================================
TLSR825x Flasher version 00.00.04
-------------------------------------------------------
Open /dev/ttyUSB0, 921600 baud...
Reset module (RTS low)...
Activate (5000 ms)...
UART-SWS 92160 baud. SW-CLK ~24.9 MHz(?)
Inputfile: Original_OTA_Xiaomi_LYWSD03MMC_v1.0.0_0130.bin
Write Flash data 0x00000000 to 0x00016ac4...
-------------------------------------------------------
Worked Time: 41.880 sec
Done!
==== Poznámky ====
* poprvé se mí to podařilo s pouze TX, takže není nutné používat zapojení TX+RX s odporem pro webový USBCOM flasher. U python flasheru to asi potřeba je, protože flashuje až když dostane signál.
* LYWSD03MMC lze flashovat jen chvíli po nastartování, pak už to ignoruje
* dávat erase all asi není nutné, podařilo se mi to i bez toho
* funkci lze ověřit i bez připojeného LCD, protože BT vysílá (v případě BT fw)
* flashování přes UART pouze simuluje původní 1-wire protokol, takže se to nemusí napoprvé podařit, protože to není spolehlivé
* pokud to nejde přes webový USBCOM flasher, zkus ten python :D
* bacha na správné označení vodičů
* dost dlouho jsem měl zapojený RX a TX obráceně, protože jsem spletl barvy
* myslel jsem, že TX je bílá a ona je to zelená
* v nouzi zkus RX s TX otočit, zda nepomůže :D
===== Přechod z devbis na ZigBeeTLC fw =====
OTA
* musí se použít správný OTA img, který lze instalovat na devbis fw
* složka s fw https://github.com/pvvx/ZigbeeTLc/tree/master/bin/devbis
* 1141-020a-09993001-z03mmc_v1100.zigbee - Zigbee OTA ver: ZigbeeTLc to devbis v1.1.0.0
* 1141-0203-79993001-Z03MMC_v01NN.zigbee - Zigbee OTA ver: devbis old ver1.0.6 to ZigbeeTLc
* db15-0203-79993001-Z03MMC_v01NN.zigbee - Zigbee OTA ver: devbis new ver1.1.0 to ZigbeeTLc
* přes Z2M ([[https://github.com/pvvx/ZigbeeTLc/issues/7#issuecomment-2391416159|návod]])
* vytvořit lokální index OTA souborů pro z2m
* nastavit z2m, aby používal lokální index
* přes ZHA (([[https://github.com/pvvx/ZigbeeTLc/issues/7|návod]]
* vzít vbox s HA + novy USB dongle .. rozjet si ZHA místo Z2M a zkusit ten postup výše
===== Vytvoření OTA img =====
* není potřeba dělat, už existují
* ale kdyby to bylo někdy potřeba, tak
* https://github.com/pvvx/ZigbeeTLc/issues/58#issuecomment-1940163912
* Reads a firmware image file and outputs an OTA file on standard output
python3 zb_bin_ota.py z03mmc.bin z03mmc -m0x1141 -i0x020a -v0x09993001 -s"Zigbee ver: ZigbeeTLc to devis"
* parametry pro devbis FW a)
"fileVersion": 285224961, //0x11003001
"manufacturerCode": 4417, //0x1141
"imageType": 515, //0x203
"url": "https://github.com/Koenkk/zigbee-OTA/raw/master/images/Telink/1141-0203-11003001-z03mmc.zigbee",
* parametry pro zibbeetlc FW b)
"fileVersion": 18886657, //0x01203001
"manufacturerCode": 4417, //0x1141
"imageType": 522, //0x020a
"url": "https://github.com/Koenkk/zigbee-OTA/raw/master/images/Telink/1141-020a-01203001-Z03MMC.zigbee",