====== 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",