Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Xiaomi has released new 2.1.1 firmware #298

Open
micturkey opened this issue Oct 1, 2023 · 161 comments
Open

Xiaomi has released new 2.1.1 firmware #298

micturkey opened this issue Oct 1, 2023 · 161 comments

Comments

@micturkey
Copy link

micturkey commented Oct 1, 2023

image
It seems that the way to update firmware using telink flasher has been forbidden.

@atc1441
Copy link
Owner

atc1441 commented Oct 1, 2023

Thank you for the hint.
That really reads like they closed it

@pvvx
Copy link

pvvx commented Oct 10, 2023

Not closed, but changed the "activation". + Changed the "advertising interval" to 2100 ms
"Login", works with known keys. OTA also works.
Set "Mi Token", "Mi Bind Key" and press "Login":
image

A piece of the activation log (sniffer + MiHome):
"Sent Read Request, Handle: 0x00xx" abbreviated as "Send enc_XX".
"Rcvd Read Response, Handle: 0x00xx" abbreviated as "Rcvd enc_XX".

// > Checking for transmission with MTU size
Send enc_10: a4 // Test MTU
Rcvd enc_19: 000004000612 // ?
Send enc_19: 000005000612
Rcvd enc_19: 0000040112121212121212121212121212121212
Send enc_19: 0000050112121212121212121212121212121212
// > Get Device id
Send enc_10: a2000000 // SYS_DEV_INFO_GET
Rcvd enc_19: 000000000200 // ?, 2 blks
Send enc_19: 00000101
Rcvd enc_19: 01000200000000626c742e362e316667336a736f
Rcvd enc_19: 0200726f73673030
Send enc_19: 00000100 // ACK
// ????
Send enc_10: 15000000 // REG_START_WO_PKI
Send enc_19: 000000030400 // ECC_PUBKEY?, 4 blks
Rcvd enc_19: 00000101
Send enc_19: 01003b412a2b060a1d7da21033ff4e584bf4f8f3
Send enc_19: 02001a9dee5c4dc95e198c4bc3be5953d6babfdb
Send enc_19: 0300415a9eda4e42ac53e864d1ebd6c9b4616ce5
Send enc_19: 04004c9f1e094e30fc77ce51 // 18*3+10=64 bytes
Rcvd enc_19: 00000100 // ACK
Rcvd enc_19: 000000030400 // ECC_PUBKEY?, 4 blks
Send enc_19: 00000101
Rcvd enc_19: 010025c4faa9e119108b3133915e663ee3d4d0fb
Rcvd enc_19: 02009ada216d9d91928725dea0bb88f44639f8a1
Rcvd enc_19: 0300bb69a33f849bdbb0c2be2b8910271244c5dd
Rcvd enc_19: 04006bc5edefc593dc2d8557 // 18*3+10=64 bytes
Send enc_19: 00000100 // ACK

Send enc_10: 13000000 // REG_VERIFY_SUCC
Send enc_19: 000000000600   // DEV_SHARE_INFO?, 6 blks
Rcvd enc_19: 00000101
Send enc_19: 01001904e3c44b8ab77b3e2f9b7371b4606d9a8a
Send enc_19: 0200e7c71cc8bc712b7d080af2153d8638b7701e
Send enc_19: 0300ab70d36fceb296c3f8805d4073216e542f93
Send enc_19: 0400523da93c45061966487db32dd32936159b3e
Send enc_19: 05006739aa0281d368eac3205bc87d419ebc838e
Send enc_19: 06007457 // 18*5+2=92 bytes
Rcvd enc_19: 00000100 // ACK

Send enc_19: 000000071600 // SERVER_CERT?, 22 blks 
Rcvd enc_19: 00000101
// send certificate: https://github.com/Ai-Thinker-Open/Telink_SIG_Mesh/blob/master/example/AT_Ali_Mesh/mesh/mi_api/certi/cryptography/mi_crypto.c#L46
Send enc_19: 0100308201773082011ea003020102020101300a
Send enc_19: 020006082a8648ce3d0403023022311330110603
Send enc_19: 030055040a130a4d696a696120526f6f74310b30
Send enc_19: 04000906035504061302434e3020170d31363131
Send enc_19: 050032333038323032355a180f32303636313131 
Send enc_19: 0600313038323032355a30233114301206035504
Send enc_19: 07000a0c0b4d696a696120436c6f7564310b3009
Send enc_19: 080006035504061302434e3059301306072a8648
Send enc_19: 0900ce3d020106082a8648ce3d03010703420004
Send enc_19: 0a00a752ecd44b6b3b17abc34f8300c6320f2e4c
Send enc_19: 0b00bec57a51034b5ecadf7347d745df8c3dbcfa
Send enc_19: 0c00aedb67b04cace5aff798182e43c5a444b627
Send enc_19: 0d00c2d7f361629d3f914802a3423040301f0603
Send enc_19: 0e00551d2304183016801496b7a27c39b1b96633
Send enc_19: 0f00a9f8d109b20060c8e6c511301d0603551d0e
Send enc_19: 1000041604145a29bffb2fb7500ce9c420f23d89
Send enc_19: 11009b6fe0803293300a06082a8648ce3d040302
Send enc_19: 1200034700304402205eb096d630f92f092ae39d
Send enc_19: 13001356f836c529697a355d765f4eccce785b89
Send enc_19: 14009a6d1602207e206b22aa04e6dee818c7d4c4
Send enc_19: 150080e5fabd99074bdecf45346e37f1cffd8646
Send enc_19: 160090 // 18*22+1=397 bytes
Rcvd enc_19: 00000100 // ACK
Rcvd enc_10: 11000000 // REG_SUCCESS

@atc1441
Copy link
Owner

atc1441 commented Oct 10, 2023

Thanks Victor,
So the activation part is not cracked right now, and you need to currently get the set key first from the app etc. to OTA ?

I would expect them to sign the activation on the server side with an unknown private key but lets hope not

@thazro
Copy link

thazro commented Oct 10, 2023

Can i downgrade via Uart? With correct key/token cannot downgrade or change fw. Even if login is correct and OTA seems to work, it doesn't .

@pvvx
Copy link

pvvx commented Oct 11, 2023

I haven't clarified the whole process yet.
There is an assumption that the OTA firmware is signed with an additional key.
The "OTA" procedure itself always works, but at the end the "OTA" code itself may not be included. Previously, for some variants of thermometers, the signature was the correct "CRC" of the OTA code.

It is quite possible that because of these "security worries" Xiaomi has changed the activation and "OTA":
https://francozappa.github.io/publication/2023/espoofer/
image

PS: I can't clarify because I adhere to the "user agreement" in "MiHome". It is forbidden to view their code and other manipulations with it. And no one wants to publish the binary file of the new official firmware for public access :)

@maltiboi
Copy link

is this going to get fixed please? thank you

@Tim-The-Woodsman
Copy link

And I just updated the firmware without checking in here 😞

@wwnkrull
Copy link

I've made the same mistake by updating to the latest firmware. Hope this will be fixed soon.
Thanks guys for all the hard work!

@PerssonNiklas
Copy link

So for those of us who updated to the latest firmware, is there any way to downgrade when the flasher does not connect due to being on unsupported firmware? Catch 22 situation!

@igorlesiv
Copy link

I also can't flat on 2.1.1_0159 version, let me know please it if possible or not. Thanks!

@pvvx
Copy link

pvvx commented Oct 21, 2023

At the moment, you can only write another firmware using a hardware programmer.

@PerssonNiklas
Copy link

At the moment, you can only write another firmware using a hardware programmer.

How would I go about doing that?

@kri5to
Copy link

kri5to commented Oct 23, 2023

damn, got it with the new firmware so cant install the custom also :(
Is there a hope to get the upgrade soon ?

@pvvx
Copy link

pvvx commented Oct 23, 2023

A hint may occur when a new version is released. When it will be possible to upgrade version 2.1.1_0159 in Mi Home to the next one.

@VonalOrdu
Copy link

To go back to the old version (Original_OTA_Xiaomi_LYWSD03MMC_v1.0.0_0130.bin );
To do this, you must remove your temperature sensor and connect it with the cables by following the steps below.
This is how I solved my problem.
I'm sorry for my bad english.

  1. https://github.com/pvvx/ATC_MiThermometer/blob/master/Original_OTA_Xiaomi_LYWSD03MMC_v1.0.0_0130.bin download
  2. https://pvvx.github.io/ATC_MiThermometer/USBCOMFlashTx.html
  3. image
  4. image
  5. File select Original_OTA_Xiaomi_LYWSD03MMC_v1.0.0_0130.bin
  6. Write to flash

@pvvx
Copy link

pvvx commented Nov 2, 2023

@VonalOrdu

  1. The contact on the PCB marked as "reset" is not an RST signal for the TLSR825x SoC !
  2. https://pvvx.github.io/ATC_MiThermometer/USBCOMFlashTx.html - does not use RX pin, resistor and connection RX is not needed !

@VonalOrdu
Copy link

@VonalOrdu

  1. The contact on the PCB marked as "reset" is not an RST signal for the TLSR825x SoC !
  2. https://pvvx.github.io/ATC_MiThermometer/USBCOMFlashTx.html - does not use RX pin, resistor and connection RX is not needed !

I have no idea about this.
I succeeded by doing this.
Maybe it will happen if you do as you say.
I used the suggestion below.

https://github.com/atc1441/ATC_MiThermometer/blob/master/Mi_SWS_Connection.jpg
image

@pvvx
Copy link

pvvx commented Nov 2, 2023

The very name of the utility describes: TLSR825x USB-COM Flash Writer v0.4 (TX-SWS only!) :)

The picture is from another version of the programmer - https://github.com/pvvx/TlsrComSwireWriter - does not work on FTDI chips!

Comment edited: Fixed a link error.

@VonalOrdu
Copy link

The very name of the utility describes: TLSR825x USB-COM Flash Writer v0.4 (TX-SWS only!) :)

The picture is from another version of the programmer - https://github.com/pvvx/TlsrComProg825x - does not work on FTDI chips!

image

Are you saying that I am enough like this?

@pvvx
Copy link

pvvx commented Nov 2, 2023

Are you saying that I am enough like this?

Yes

@VonalOrdu
Copy link

Are you saying that I am enough like this?

Yes

python.exe TLSR825xComFlasher.py -p COM3 -t 70 wf 0 Original_full_flash_Xiaomi_LYWSD03MMC.bin

Why didn't this method work?
"Chip sleep? -> Use reset chip (RTS-RST): see option --tact"
It was giving error.

https://pvvx.github.io/ATC_MiThermometer/USBCOMFlashTx.html

This method worked. Thank you very much for your sharing.

@pvvx
Copy link

pvvx commented Nov 2, 2023

Why didn't this method work?

https://github.com/pvvx/TlsrComSwireWriter - does not work on FTDI chips! (Only Chinese USB-COM chips)

On FTDI chips, reception is performed by checking bitwise synchronization with the removal of bad characters from the buffer with error generation, which does not allow emulating "Telink Swire".

https://github.com/pvvx/TlsrComProg825x - this programmer uses a loader that switches to work with the RX and TX chip UART pins.
It takes a lot of wires...


https://github.com/pvvx/ATC_MiThermometer#the-usb-com-adapter-writes-the-firmware-in-explorer-web-version

image

@ceinmart
Copy link

ceinmart commented Nov 7, 2023

Hi,
I just made the same mistake as everyone here.
I bought two of these sensors and was planning to flash them and use them with a BLE Tracker on my Home Assistant.
However, curious to see how it works originally I did the firmware upgrade when added to mihome app.... stupid curious...

So, after sharing my disgrace...

How hard is to get one of this USB-COM board and use it to downgrade? any link from Aliexpress?
I get little confused about which board is compatible, which link should be used to do the downgrade, how is the right way to wiring...
Please, can anyone share where to buy this USB-COM and a step-by-step how to downgrade the firmware ?

@thazro
Copy link

thazro commented Nov 8, 2023

Hi, I just made the same mistake as everyone here. I bought two of these sensors and was planning to flash them and use them with a BLE Tracker on my Home Assistant. However, curious to see how it works originally I did the firmware upgrade when added to mihome app.... stupid curious...

So, after sharing my disgrace...

How hard is to get one of this USB-COM board and use it to downgrade? any link from Aliexpress? I get little confused about which board is compatible, which link should be used to do the downgrade, how is the right way to wiring... Please, can anyone share where to buy this USB-COM and a step-by-step how to downgrade the firmware ?

Hi. Downgraded using this ch340 usb to ttl rs232 converter:
https://www.aliexpress.com/item/32354359382.html?gatewayAdapt=glo2isr
Solder p14 on thermometer to txd
Solder Gnd to gnd
Solder + to 3.3V
Flash using:
https://pvvx.github.io/ATC_MiThermometer/USBCOMFlashTx.html

@kimol88
Copy link

kimol88 commented Nov 9, 2023

Maybe I can't differently, but flash by site only works on Windows "machine". On MacBook I bricked by flash. On Windows "machine" I recovery firmware without problems :)

@ceinmart
Copy link

Hi. Downgraded using this ch340 usb to ttl rs232 converter: https://www.aliexpress.com/item/32354359382.html?gatewayAdapt=glo2isr Solder p14 on thermometer to txd Solder Gnd to gnd Solder + to 3.3V Flash using: https://pvvx.github.io/ATC_MiThermometer/USBCOMFlashTx.html

Hi Guys,
Just giving an feedback, I just flashed and downgraded my sensor successfully!!!

However I didn't used the board referenced by @tharzo, I got with a Friend the FTDI 232 and followed the steps passed by tarzho.

I did the downgrade of my firmware from v2 to v1 and then flashed it with the custom firmware v4.5 successfully!!
Very , very happy :)
Thanks all for the support.
Now , let's try to setup it on my Home Assistant using a ESP32 as BLE Tracker...

image

image

image

image

@vdende
Copy link

vdende commented Nov 13, 2023

I'm not that familiar with soldering and boards, so I decided to buy a new one from Ali, from the same shop as my previous one. It was shipped very fast and fortunately the firmware version of the new device was still on v1.0.
So for this one I was able to flash it with the custom v4.5, set it to BTHome and configured it in HomeAssistant.

@adamb94
Copy link

adamb94 commented Nov 25, 2023

Is there any expected date when soft 2.1.1 will be supported by Telink Mi Flasher? I was not able to downgrade by Serial

@pvvx
Copy link

pvvx commented Nov 25, 2023

So far no one is doing this or it is unknown.
I'm waiting for the next version to come out.
This will make it possible to understand how to update version 2.1.1.

Disassembling or otherwise viewing codes from Xiaomi is prohibited in the MiHome user agreement. For this reason, other methods that are not prohibited will be used. And this requires the next new version of OTA from MiHome.

@Blackiler
Copy link

I downgraded the firmware through CH340G. It prompted success, but the firmware is still version 2.1. Can someone help solve this problem?
image

@martindell
Copy link

I downgraded the firmware through CH340G. It prompted success, but the firmware is still version 2.1. Can someone help solve this problem?

I had the same issue with two different 340G's. Out of desperation I tried this 340C and it worked. The only other change I made was to leave the baud rate at 460800 rather than try to match the COM port baud rate. It might be that that's the reason for success rather than the 340C but I haven't tested it on the other 340G's yet

@martindell
Copy link

For my sins, my main PC is an apple mac. I have an linux server running a Windows 10 VM and I finally got the CH340 installed with the right drivers and everything looks like it's working - except my Xiami thermostats stubbornly report they're continue to be Version: 2.1.1_0159. I'm definitely doing something wrong. Anyone using this on a VM and can give me some troubleshooting tips?

Answering my own question in case anyone else is looking for Windows VM help. I gave up, purchased an old Windows laptop and had success with this 340C device

@tmfoe
Copy link

tmfoe commented Nov 7, 2024

I have just sucessfully flashed 15 new devices with firmware 2.1.1. to zigbee. Soldering is not necessary. You can just tape two of the wires to the battery holder and hold the other one to p14.

@ryck
Copy link

ryck commented Nov 8, 2024

I finally downgraded my 2.1.1 devices, and since this was my first time doing any kind of hardware downgrading, this is how I did it, in case it helps other noobs like me...

What do you need

What you DON'T need

  • Resistances or complicated circuits (you only need to wire 3.3v, GND and TXD, and all are direct from the USB2TTL pins to the device)
  • Solder skills (yay!)
    • 3.3v and GND go to the battery clips directly, and are easy to keep in place (Don't use 5v, it will fry the device!)
    • TXD goes to pad 14, and you can use your hands to keep it in place for about 30s

Images
The thing I missed the most when I was trying to do this was an image with the actual wiring, so here you go:

device-wiring
serial-wiring

Links

Steps

  1. Get your machine ready
  • Install the drivers if you need to
  • If you are not in windows, create a VM with Win11 and make sure you can access the USB-Serial port. You may need to enable it in virtualbox...
  • Grab the firmware (you can go directly from stock 2.1.1 to the latest ATC, ie, 4.8)
  1. Go to the web flasher click and make sure the new Serial port appears in the dialog, and select it.
  2. Choose the new firmware
  3. Everything else is fine, default settings are OK
  4. With your hand (or somehow) press the TXD pin to P14
  5. Click on flash
  6. Wait for it to finish (around 30s)
  7. Profit

Now your device should have whatever firmware you selected on step #3, but you can use the TelinkMiFlasher to check it out.

Good luck!

@arneboe
Copy link

arneboe commented Nov 9, 2024

I finally downgrade my 2.1.1 devices, and since this was my first time doing any kind of hardware downgrading, this is how I did it, in case it helps other noobs like me...

What do you need

* The device itself (duh!)

* A USB to TTL thingy (I used this one: https://www.amazon.co.uk/dp/B09CK79B4C?ref=ppx_yo2ov_dt_b_fed_asin_title)

* Three (or more) dupont cables like these: https://www.amazon.co.uk/gp/product/B01MT7BAFA/ref=ppx_yo_dt_b_search_asin_image?ie=UTF8&psc=1

* A windows machine / virtual machine (I used virtualbox + a offical win11 iso). I doesn't work on Mac, sadly...

What you DON'T need

* Resistances or complicated circuits (you only need to wire 3.3v, GND and TXD, and all are direct from the serial to the device)

* Solder skills (yay!)
  
  * 3.3v and GND go to the battery clips directly, and are easy to keep in place (Don't use 5v, it will fry the device!)
  * TXD goes to pad 14, and you can use your hand to keep it in place for about 30s

Images The thing I missed the most was an image with the actual wiring, so:

device-wiring serial-wiring

Links

* Flasher: https://pvvx.github.io/ATC_MiThermometer/USBCOMFlashTx.html (massive props to @pvvx and @atc1441)

* New firmware: https://github.com/pvvx/ATC_MiThermometer/blob/master/ATC_v48.bin

* Drivers: https://learn.sparkfun.com/tutorials/how-to-install-ch340-drivers/all

Steps

1. Get your machine ready


* Install the drivers of you need to

* If you are not in windows, create a [VM](https://blogs.oracle.com/virtualization/post/install-microsoft-windows-11-on-virtualbox) with [Win11](https://www.microsoft.com/en-us/software-download/windows11#:%7E:text=Download%20Windows%2011%20Disk%20Image,to%20unlock%20the%20correct%20edition.) and make sure you can access the USB-Serial port. You may need to enable it in virtualbox...

* Grab the firmware (you can go directly from stock 2.1.1 to the latest ATC, ie, 4.8)


2. Go to the [web flasher](https://pvvx.github.io/ATC_MiThermometer/USBCOMFlashTx.html) click and make sure the new Serial port appears in the dialog

3. Choose the new firmware

4. Everything else is fine, default settings are OK

5. With your hand (or somehow) press the TXD pin to P14

6. Click on flash

7. Wait for it to finish (around 30s)

8. Profit

Now your device should have whatever firmware you selected on step #3, but you can use the TelinkMiFlasher to check it out.

Good luck!

This works perfectly. Thank you!

@AndreasUfert
Copy link

  • A windows machine / virtual machine (I used virtualbox + a offical win11 iso). I doesn't work on Mac, sadly...

What exactly is it that doesn't work on a Mac? I'm using this Adapter https://www.amazon.de/dp/B08T24NML9. It is recognized perfectly in Chrome, COM port can be opened, the whole flashing process seems to work. I tried once with 460800, once with 115200. I tried once with ATC_v48.bin, once with the original firmware. However, the device doesn't boot anymore and seems to be bricked.

What is it that does a Windows Machine / Chrome different than a Mac? Is there any chance I'll get my device un-bricked?

@pavel-spacil
Copy link

Is there some way how to flash a firmware on the headless machine (= without a browser) using a PL2303 usb-serial adapter? 🙏

@pvvx
Copy link

pvvx commented Nov 13, 2024

Is there some way how to flash a firmware on the headless machine (= without a browser) using a PL2303 usb-serial adapter?

https://github.com/pvvx/TlsrComSwireWriter

https://raw.githubusercontent.com/pvvx/TlsrComSwireWriter/refs/heads/master/schematicc.gif

Windows

python3 TLSR825xComFlasher.py -p COM3 wf 0 ATC_v48.bin

Linux

python3 TLSR825xComFlasher.py -p /dev/ttyUSB0 wf 0 ATC_v48.bin

@ryck
Copy link

ryck commented Nov 13, 2024

  • A windows machine / virtual machine (I used virtualbox + a offical win11 iso). I doesn't work on Mac, sadly...

What exactly is it that doesn't work on a Mac? I'm using this Adapter https://www.amazon.de/dp/B08T24NML9. It is recognized perfectly in Chrome, COM port can be opened, the whole flashing process seems to work. I tried once with 460800, once with 115200. I tried once with ATC_v48.bin, once with the original firmware. However, the device doesn't boot anymore and seems to be bricked.

What is it that does a Windows Machine / Chrome different than a Mac? Is there any chance I'll get my device un-bricked?

Well, I am not sure why it doesn't work in Mac, to be honest, but I couldn't make it work, and there is plenty of comments reporting the same, hence the virtual machine step...

@CSharpHobo
Copy link

I finally downgraded my 2.1.1 devices, and since this was my first time doing any kind of hardware downgrading, this is how I did it, in case it helps other noobs like me...

What do you need

What you DON'T need

  • Resistances or complicated circuits (you only need to wire 3.3v, GND and TXD, and all are direct from the USB2TTL pins to the device)

  • Solder skills (yay!)

    • 3.3v and GND go to the battery clips directly, and are easy to keep in place (Don't use 5v, it will fry the device!)
    • TXD goes to pad 14, and you can use your hands to keep it in place for about 30s

Images The thing I missed the most when I was trying to do this was an image with the actual wiring, so here you go:

device-wiring serial-wiring

Links

Steps

  1. Get your machine ready
  • Install the drivers if you need to
  • If you are not in windows, create a VM with Win11 and make sure you can access the USB-Serial port. You may need to enable it in virtualbox...
  • Grab the firmware (you can go directly from stock 2.1.1 to the latest ATC, ie, 4.8)
  1. Go to the web flasher click and make sure the new Serial port appears in the dialog, and select it.
  2. Choose the new firmware
  3. Everything else is fine, default settings are OK
  4. With your hand (or somehow) press the TXD pin to P14
  5. Click on flash
  6. Wait for it to finish (around 30s)
  7. Profit

Now your device should have whatever firmware you selected on step #3, but you can use the TelinkMiFlasher to check it out.

Good luck!

Didn't work for me :( screen now blank so presume devices are now dead?

@Missioros
Copy link

Downgrade doesn't work for me :(
I have new B1.5 with frmware 2.1.1.
I connect correctly - gnd, 3.3v and p14.
I put in original fv 1.0.0.
everything works ok.
after disconnecting and inserting the battery it's dead - nothing is displayed

@pavel-spacil
Copy link

Is there some way how to flash a firmware on the headless machine (= without a browser) using a PL2303 usb-serial adapter?

https://github.com/pvvx/TlsrComSwireWriter

https://raw.githubusercontent.com/pvvx/TlsrComSwireWriter/refs/heads/master/schematicc.gif

Windows

python3 TLSR825xComFlasher.py -p COM3 wf 0 ATC_v48.bin

Linux

python3 TLSR825xComFlasher.py -p /dev/ttyUSB0 wf 0 ATC_v48.bin

If I understood this correctly, the method above requires an adapter without LEDs which I was not possible to buy anywhere.
So I installed Parallels and Win 11 and then failed with missing drivers for my PL2303HX adapter 🤦‍♂️
Then I've tried ubuntu but did not pass through apparmor restrictions...
Last try with a new adapter with CP2102 was successful, flashed the ZigBee firmware directly through Chrome on Win11, three times...
One device seemed bricked after one try but I've tried again and it started working 💪

@lits101
Copy link

lits101 commented Nov 16, 2024

I'm not sure I understand this limitation to using Windows? The flasher website seems to work fine on a Mac - though I have three devices that are now showing a blank screen.

CEB7F34B-ED4A-41D8-A448-E4723408ACD1_4_5005_c

@pavel-spacil
Copy link

I would say the problem is the serial port implementation in Chrome on Mac. Which seems to be different from on Win and Linux.

@pvvx
Copy link

pvvx commented Nov 17, 2024

I would say the problem is the serial port implementation in Chrome on Mac. Which seems to be different from on Win and Linux.

On MAC, everything is different. Apple has its own standards for everything, incompatible with other manufacturers and general technical standards. The purpose of creating incompatibilities is to prevent MAC users from using third-party hardware.
For MAC users, there are thermometers that support Apple Home / HomeKit.

@therealprof
Copy link

On MAC, everything is different. Apple has its own standards for everything, incompatible with other manufacturers and general technical standards.

LOL, are you seriously claiming Windows is more standards compliant than macOS? The only difference is that there're magnitudes of difference in the number of users, especially since Windows can be pirated much easier, so solutions to Windows' proprietary proplems are found and worked around much quicker.

For serial ports in particular, Linux and Mac implement the same POSIX and UNIX interfaces whereas Windows is doing it's own special magic...

@pvvx
Copy link

pvvx commented Nov 18, 2024

LOL, are you seriously claiming Windows...

The largest share belongs to the Android :P
Next, it's better to look at the implementations of various APIs in browsers on Chrome... And forget about the tiny percentage of macOS :)

There is no point in adapting to an OS that occupies a very small percentage of the market.
Moreover, I am not a corporation and I am not going to take over the whole world.

@therealprof
Copy link

Oh sure, totally agree regarding the market share. I do disagree about the interfaces though, macOS and Android are a lot more standard compliant than Windows and have a ton more interfaces in common.

@pvvx
Copy link

pvvx commented Nov 18, 2024

And I don't forget that we need to give way to young people and businessmen. Maybe they will implement variants for macOS and so on...
In any case, Telink has open access to the SDK for HomeKit, but there is no implementation of alternative firmware for these thermometers for AppleHome.

@axlerose
Copy link

I finally downgraded my 2.1.1 devices, and since this was my first time doing any kind of hardware downgrading, this is how I did it, in case it helps other noobs like me...
What do you need

What you DON'T need

  • Resistances or complicated circuits (you only need to wire 3.3v, GND and TXD, and all are direct from the USB2TTL pins to the device)

  • Solder skills (yay!)

    • 3.3v and GND go to the battery clips directly, and are easy to keep in place (Don't use 5v, it will fry the device!)
    • TXD goes to pad 14, and you can use your hands to keep it in place for about 30s

Images The thing I missed the most when I was trying to do this was an image with the actual wiring, so here you go:
device-wiring serial-wiring
Links

Steps

  1. Get your machine ready
  • Install the drivers if you need to
  • If you are not in windows, create a VM with Win11 and make sure you can access the USB-Serial port. You may need to enable it in virtualbox...
  • Grab the firmware (you can go directly from stock 2.1.1 to the latest ATC, ie, 4.8)
  1. Go to the web flasher click and make sure the new Serial port appears in the dialog, and select it.
  2. Choose the new firmware
  3. Everything else is fine, default settings are OK
  4. With your hand (or somehow) press the TXD pin to P14
  5. Click on flash
  6. Wait for it to finish (around 30s)
  7. Profit

Now your device should have whatever firmware you selected on step #3, but you can use the TelinkMiFlasher to check it out.
Good luck!

Didn't work for me :( screen now blank so presume devices are now dead?

Downgrade doesn't work for me :( I have new B1.5 with frmware 2.1.1. I connect correctly - gnd, 3.3v and p14. I put in original fv 1.0.0. everything works ok. after disconnecting and inserting the battery it's dead - nothing is displayed

Same to me and i'm using a windows machine
i've a B1.5 hw and iv'e following the same istruction whit a CH340

@axlerose
Copy link

I finally downgraded my 2.1.1 devices, and since this was my first time doing any kind of hardware downgrading, this is how I did it, in case it helps other noobs like me...
What do you need

What you DON'T need

  • Resistances or complicated circuits (you only need to wire 3.3v, GND and TXD, and all are direct from the USB2TTL pins to the device)

  • Solder skills (yay!)

    • 3.3v and GND go to the battery clips directly, and are easy to keep in place (Don't use 5v, it will fry the device!)
    • TXD goes to pad 14, and you can use your hands to keep it in place for about 30s

Images The thing I missed the most when I was trying to do this was an image with the actual wiring, so here you go:
device-wiring serial-wiring
Links

Steps

  1. Get your machine ready
  • Install the drivers if you need to
  • If you are not in windows, create a VM with Win11 and make sure you can access the USB-Serial port. You may need to enable it in virtualbox...
  • Grab the firmware (you can go directly from stock 2.1.1 to the latest ATC, ie, 4.8)
  1. Go to the web flasher click and make sure the new Serial port appears in the dialog, and select it.
  2. Choose the new firmware
  3. Everything else is fine, default settings are OK
  4. With your hand (or somehow) press the TXD pin to P14
  5. Click on flash
  6. Wait for it to finish (around 30s)
  7. Profit

Now your device should have whatever firmware you selected on step #3, but you can use the TelinkMiFlasher to check it out.
Good luck!

Didn't work for me :( screen now blank so presume devices are now dead?

Downgrade doesn't work for me :( I have new B1.5 with frmware 2.1.1. I connect correctly - gnd, 3.3v and p14. I put in original fv 1.0.0. everything works ok. after disconnecting and inserting the battery it's dead - nothing is displayed

Same to me and i'm using a windows machine i've a B1.5 hw and iv'e following the same istruction whit a CH340

I've Solved the problem using an old pl2303

@levsha
Copy link

levsha commented Nov 20, 2024

LOL, are you seriously claiming Windows...

The largest share belongs to the Android :P Next, it's better to look at the implementations of various APIs in browsers on Chrome... And forget about the tiny percentage of macOS :)

There is no point in adapting to an OS that occupies a very small percentage of the market. Moreover, I am not a corporation and I am not going to take over the whole world.

I don't know where are assumptions about tiny percentage came from. Maybe from personal observations on very specific market?
15%+ of desktops are MacOS: https://gs.statcounter.com/os-market-share/desktop/worldwide
42% of developers use MacOS: https://www.jetbrains.com/lp/devecosystem-2023/development/

@pvvx
Copy link

pvvx commented Nov 20, 2024

42% of developers use MacOS: https://www.jetbrains.com/lp/devecosystem-2023/development/

Order a program from them to download firmware to thermometers.

@TaQuangTien
Copy link

I finally downgraded my 2.1.1 devices, and since this was my first time doing any kind of hardware downgrading, this is how I did it, in case it helps other noobs like me...

What do you need

What you DON'T need

  • Resistances or complicated circuits (you only need to wire 3.3v, GND and TXD, and all are direct from the USB2TTL pins to the device)

  • Solder skills (yay!)

    • 3.3v and GND go to the battery clips directly, and are easy to keep in place (Don't use 5v, it will fry the device!)
    • TXD goes to pad 14, and you can use your hands to keep it in place for about 30s

Images The thing I missed the most when I was trying to do this was an image with the actual wiring, so here you go:

device-wiring serial-wiring

Links

Steps

  1. Get your machine ready
  • Install the drivers if you need to
  • If you are not in windows, create a VM with Win11 and make sure you can access the USB-Serial port. You may need to enable it in virtualbox...
  • Grab the firmware (you can go directly from stock 2.1.1 to the latest ATC, ie, 4.8)
  1. Go to the web flasher click and make sure the new Serial port appears in the dialog, and select it.
  2. Choose the new firmware
  3. Everything else is fine, default settings are OK
  4. With your hand (or somehow) press the TXD pin to P14
  5. Click on flash
  6. Wait for it to finish (around 30s)
  7. Profit

Now your device should have whatever firmware you selected on step #3, but you can use the TelinkMiFlasher to check it out.

Good luck!

My USB2TTL does not has 3.3v pinout for powersupply, but it has 3.3v switch for TXD, RXD. So, i keep the 3V battery in the sensor then connect only 2 pin: GND and TXD , and its work.

@hydex80
Copy link

hydex80 commented Nov 23, 2024

I want to run windows on a Mac M2 but it's the arm version. Anyone succesvol running windows 11 arm and downgrading the temp sensors?

@ninogresenz
Copy link

I finally downgraded my 2.1.1 devices, and since this was my first time doing any kind of hardware downgrading, this is how I did it, in case it helps other noobs like me...

What do you need

* The device itself (duh!)

* A USB to TTL thingy (I used this one: https://www.amazon.co.uk/dp/B09CK79B4C?ref=ppx_yo2ov_dt_b_fed_asin_title)

* Three (or more) dupont cables like these: https://www.amazon.co.uk/gp/product/B01MT7BAFA/ref=ppx_yo_dt_b_search_asin_image?ie=UTF8&psc=1

* A windows machine / virtual machine (I used virtualbox + a offical win11 iso). I doesn't work on Mac, sadly...

What you DON'T need

* Resistances or complicated circuits (you only need to wire 3.3v, GND and TXD, and all are direct from the USB2TTL pins to the device)

* Solder skills (yay!)
  
  * 3.3v and GND go to the battery clips directly, and are easy to keep in place (Don't use 5v, it will fry the device!)
  * TXD goes to pad 14, and you can use your hands to keep it in place for about 30s

Images The thing I missed the most when I was trying to do this was an image with the actual wiring, so here you go:

Links

* Flasher: https://pvvx.github.io/ATC_MiThermometer/USBCOMFlashTx.html (massive props to @pvvx and @atc1441)

* New firmware: https://github.com/pvvx/ATC_MiThermometer/blob/master/ATC_v48.bin

* Drivers: https://learn.sparkfun.com/tutorials/how-to-install-ch340-drivers/all

Steps

1. Get your machine ready


* Install the drivers if you need to

* If you are not in windows, create a [VM](https://blogs.oracle.com/virtualization/post/install-microsoft-windows-11-on-virtualbox) with [Win11](https://www.microsoft.com/en-us/software-download/windows11#:%7E:text=Download%20Windows%2011%20Disk%20Image,to%20unlock%20the%20correct%20edition.) and make sure you can access the USB-Serial port. You may need to enable it in virtualbox...

* Grab the firmware (you can go directly from stock 2.1.1 to the latest ATC, ie, 4.8)


2. Go to the [web flasher](https://pvvx.github.io/ATC_MiThermometer/USBCOMFlashTx.html) click and make sure the new Serial port appears in the dialog, and select it.

3. Choose the new firmware

4. Everything else is fine, default settings are OK

5. With your hand (or somehow) press the TXD pin to P14

6. Click on flash

7. Wait for it to finish (around 30s)

8. Profit

Now your device should have whatever firmware you selected on step #3, but you can use the TelinkMiFlasher to check it out.

Good luck!

Worked for me under linux and this USB to TTL converter. thanks a lot!

One thing I had to do in order to connect the USB bridge from within the flasher site:
My user didn't had the permission to access /dev/ttyUSB0:

ls -la /dev/ttyUSB0
crw-rw---- 1 root uucp 188, 0 27. Nov 21:42 /dev/ttyUSB0

so I did a sudo chmod a+rw /dev/ttyUSB0 and then I was able to connect.

@Sch8er
Copy link

Sch8er commented Nov 28, 2024

Worked at my own, too about USB-to-TTL converter.

I also recognized a youtube video for that.

Thx a lot to the creator:

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests