pvvx/ATC_MiThermometer

Cannot seem to get it to work on version B1.9

bbosilje opened this issue Β· 137 comments

When I try to flash it with the latest firmware in the repo, the display remains "frozen" with the last values it displayed with the stock firmware.

When I flash back to the original firmware on the web page, the display comes back with all the segments lit up (ie: 1888.8 E, 88 %, Bluetooth icon, battery icon and full face).

Screen Shot 2021-09-28 at 13 56 41

I am still able to communicate with the device through the flashing webpage, but nothing I do seems to change the display.

Am I doing something wrong or does this revision of the unit (B1.9) not work with the existing firmwares in this repo?

I have the same problem with 2 unit's. Both have CMIIT ID: 2019DP8115 (On the back of the carton box)
After installing de original software back on the unit. The display shows 88% and LOW battery icon and says the temp is 27c when looking at the ESPHome log.

My first thermometer works fine, so I ordered some more. With he new ones I have the same problem. After flashing a custom firmware (31, 32n, 32z) the display freezes. When putting the battery out and back in the display stays empty. But I'm able to connect with the webupdater. After flashing the original firmware back, the display is like the picture in first post.

Here are pictures of the packaging and the PCB:
IMG_20210929_170646
IMG_20210929_170702
IMG_20210929_170729

Besides the display problem, the measurement also doesn't work. After sucessfully connecting with the webupdater, at the top of the page, it says: "Temp/Humi: waiting notify for data after connecting".
When using GraphMemo after some time: "load 0 samples."

Maybe @atc1441 knows the new ones and can help...?

I also have a similar problem. Except, using the original FW doesn't bring back the LCD.
Is there someone helping with this problem?

Regards

Comparing the old and new pcb we can see they use a new lcd controller ic.

So that means we need to adapt the display communication

https://img.mysku.me/uploads/pictures/05/59/35/2020/02/19/30f83a.jpg

Would better images of the chip help, so you can read the printing?

And besides the display, the measurement seems also broken...

Pictures would help to, mostly these chinese chips are not known/without datasheet but we can try

20211005_160546
I'm sorry for the image quality, I only have smartphone/tablet camera. I checked with a magnifying glass:
MCBSLM01
V5K000EG3

Hello everybody,

there is a funny Information: Package of mine showed same date "2021.08" (see 3rd picture) but when I opened up my case, I realized that I have HW-B1.6 (2021-03) and not HW-B1.9 (2021-05).
They change their HW very fast. Chip on the first picture has no description at all :-(
TeLink chip on the 2nd picture is at least the same.
3rd Picture shows the package.

Question: Should I re-open #130 because it is a different HW? Or do we manage it in one issue, because the HW behaves the same?

IMG (1c)
IMG (1b)
IMG (1d)

Good morning,

I at least found a way to recover the Mi-Thermometer (screen and sensors).

  • Connect though it with pvvx TelinkMiFlasher
  • Click Original-FW
  • Click Flash to Device
  • Go to the Xiaomi Home App
  • Connect your device (still possible)
  • Go to Settings and select "Firmware Update"
  • Done --> You can use your device again :)

Cheers Reimund

So that means they made a detection for what display controller they got in a device with just one firmware.

This is good as we can see how they detect it and copy it, as in the first model there was no way to read from the display controller just writing.

Can you maybe dump the firmware update file link? You need to be rooted if i remember correctly

Took a while to get it but here we go

Changed the MiHome plugin so it will alert with the firmware URL 😁

Screenshot_20211007-101413_Mi Home

New firmware attached as reference
LYWSD03MMC_0130_upd_miaomiaoce.sensor_ht.t2.zip

Update and downgrade from an to 0130 works fine. So can be developed with now and reversed further

Sounds great. Unbricking the device with webupdater and the zip you provided here worked.
If you need testers, let us know ;)

H4R0 commented

I got mixed batches where you order for example 4 sensors at once.

Half of them got bricked and I was able to unbrick them with the given stock firmware.

Note that for me not only display was not working but also temperature reports.

BLE communication was the only thing that still worked.

pvvx commented

So that means they made a detection for what display controller they got in a device with just one firmware.

Display controller on I2C:
image

PS: I don't have new versions of devices yet :(

Note that for me not only display was not working but also temperature reports.

BLE communication was the only thing that still worked.

Same issue here, only in my case it is also not possible to receive the settings from the device like explained here.

I got 6 of these new devices. So if I need to test something, let me know! :)

PS: I don't have new versions of devices yet :(

Do you need the vendor where I bought mine? V1.9. (German ebay, but shipping took 1 week...)

Thanks for all this info - it helped me reviving my two devices (both CMIIT id: 2019DP8115).

For what's worth, @atc1441 custom firmware (#125 (comment)) worked for me, so it did the method @Reimund-Koenig described (#125 (comment))

Both sensors are now working happily with my Homes Assistant, though sadly using Xiaomi firmware and the Mi bind codes.

@atc1441 if you decide to update your .bin to work with these new devices, also count me in for any testing you might need πŸ˜„

Need to get my hands on one of the newer devices or best on both of them.

Then its quite simple to add them.

Will order some.

Just got a donation from O. So its only fair to invest that money back into it :)

Any best links for odering from germany ?

Nice one; how can I chip in as well?
BTW. Great work, you and @pvvx πŸ’ͺ

I got mine devices from here: https://www.aliexpress.com/item/4000427410383.html, and they arrived, albeit to the UK, reasonably quickly.

Good luck with getting yours soon.

Any best links for odering from germany ?

I ordered mine here on ebay and got V1.9. But shipping takes a week...

@vanMacG ordered one there because of speed.

@mariuszkorba thanks as well
A link is in my Repo https://github.com/atc1441/ATC_MiThermometer

Maybe someone can send me one as well?
As there are two new versions and not known what some will get

@atc1441 I can send you a B1.6 one if needed.

Got exactly the same problem, got the MCBSLM01 lcd controller, and the latest xiaomi firmware from @atc1441 doesn't work for me. I got 4 new ones, only did this to one of them, got other 3 running original firmware, is it possible to read the flash and dump the bin ?

Managed finally to connect to xiaomi home, added and downloaded latest firmware, it downloads a 0130 version also (same as @atc1441) but works, I suspect it may have been a problem flashing the firmware.....

@atc1441 I got two spares laying here. Other two in this 4-pack are already in use without any hiccups.
Will check the versions and contact you if it are the newer versions. Shouldn't take too long from the Netherlands to get it to you.
Btw... You guys are awesome! Thanks for sharing this with us and for all the effort you guys are putting into it.
πŸ™

I experienced same thing and was able to fix the display by upgrading in Mi Home app, as suggested above. However, afterwards when trying to set a bindkey for use with stock firmware, Telink flasher outputs:

12:08:36: Searching for devices
12:08:39: Connecting to: LYWSD03MMC
12:08:47: NotFoundError: No Services matching UUID 00010203-0405-0607-0809-0a0b0c0d1912 found in Device.
12:08:47: Reconnect 1 from 5
12:08:47: NotFoundError: No Services matching UUID 00010203-0405-0607-0809-0a0b0c0d1912 found in Device.
12:08:47: Reconnect 2 from 5
12:08:47: NotFoundError: No Services matching UUID 00010203-0405-0607-0809-0a0b0c0d1912 found in Device.
12:08:47: Reconnect 3 from 5
12:08:47: NotFoundError: No Services matching UUID 00010203-0405-0607-0809-0a0b0c0d1912 found in Device.
12:08:47: Reconnect 4 from 5
12:08:47: NotFoundError: No Services matching UUID 00010203-0405-0607-0809-0a0b0c0d1912 found in Device.
12:08:47: Reconnect 5 from 5
12:08:47: NotFoundError: No Services matching UUID 00010203-0405-0607-0809-0a0b0c0d1912 found in Device.
12:08:47: Something went wrong, to many reconnect's

Does upgrading break the ability to read with stock firmware?

@MrTheoW
Thank you. Lets wait a bit to see what version i get got the one on order and one being send to me so maybe this is already enough

If you're in Australia, I'm happy to send you one. But if not, it probably won't beat your order haha.

Sorry, But the ones I have left are versions 1.4.
image

I got 3 V1.6 and oddly enough they don't brick themselves unless I reseat the battery. They can be reflashed but there are no measurements.

I experienced same thing and was able to fix the display by upgrading in Mi Home app, as suggested above. However, afterwards when trying to set a bindkey for use with stock firmware, Telink flasher outputs:

12:08:36: Searching for devices
12:08:39: Connecting to: LYWSD03MMC
12:08:47: NotFoundError: No Services matching UUID 00010203-0405-0607-0809-0a0b0c0d1912 found in Device.
12:08:47: Reconnect 1 from 5
12:08:47: NotFoundError: No Services matching UUID 00010203-0405-0607-0809-0a0b0c0d1912 found in Device.
12:08:47: Reconnect 2 from 5
12:08:47: NotFoundError: No Services matching UUID 00010203-0405-0607-0809-0a0b0c0d1912 found in Device.
12:08:47: Reconnect 3 from 5
12:08:47: NotFoundError: No Services matching UUID 00010203-0405-0607-0809-0a0b0c0d1912 found in Device.
12:08:47: Reconnect 4 from 5
12:08:47: NotFoundError: No Services matching UUID 00010203-0405-0607-0809-0a0b0c0d1912 found in Device.
12:08:47: Reconnect 5 from 5
12:08:47: NotFoundError: No Services matching UUID 00010203-0405-0607-0809-0a0b0c0d1912 found in Device.
12:08:47: Something went wrong, to many reconnect's

Does upgrading break the ability to read with stock firmware?

@bjeanes got the same issue : just cliqued on "clear log", then again on connect and issue disappeared. I maybe reloaded the page or manually disconnected the device from bluetooth before retrying...

I can't get rid of it. I get the error on https://atc1441.github.io/TelinkFlasher.html as well as https://pvvx.github.io/ATC_MiThermometer/TelinkMiFlasher.html (with this one device - other 5 are fine).

I've rebooted the computer, reset the sensor, taken battery out and back. It's not bricked as it still is updating temp/humidity and advertises on BLE, but the flashers can't seem to work with it :(

So out of curiosity, I tried a different computer and it was able to connect to that device and let me activate a bindkey. Not sure why my primary computer consistently fails to connect. Maybe some poisoned cache somewhere...

I bought 4 of these devices from aliexpress. On the first I flashed the firmware with ATC_Thermometer.bin file. The procedure was ok, but when I disconnected the battery and connect it again the screen is blank and I cannot use it anymore. However the device is reachable via bluetooth and seen as a ATC_XXXX device.
On another device I did the same and of course the same issue happened. Then I tried to flash the original firmware to the device (d4135e135443ba86e403ecb2af2bf0af_upd_miaomiaoce.sensor_ht.t2.bin file, found on this page). What happened next is the device is bricked, It is not discoverable anymore via bluetooth and the screen is blank.
I now have two other new devices to use but I don’t want to brick them too.
I hope to find a solution very soon...

You can flash bricked devices via UART, they are not hopelessly dead...

Just to confirm:

I got 3 devices labeled (on box) 2021.08

  1. flashed ATC_Thermometer32z.bin firmware = frozen display, no measurements, BLE works.
  2. Removed and re-inserted battery = empty display
  3. needed to switch from Chrome on Debian with BLE dongle to another device / Chrome on Android (I was unable to connect to the devices from Chrome on Debian after initial flash, did not try reboot but unplug/replug of USB BLE adapter)
  4. updated to stock firmware Original_OTA_Xiaomi_LYWSD03MMC_v1.0.0_0109.bin = empty/frozen display but BLE works.
  5. updated to LYWSD03MMC_0130_upd_miaomiaoce.sensor_ht.t2.zip = works again

Attached: PCB top and bottom of CHMLmini_TLW_V1.6 202103 HW: B1.6
b-1-6

A quick multimeter test indicates: The two i2c pins connect to the temphum sensor only, not to the new display controller (no marking / label). The test point names near the display controller (SCK, SDA) are a hint that this revision uses SPI (?).

From pictures:
The production marking of 1.4 is 2021-13 (week 13 is 03/21) and design date of 2020-12
The production marking of 1.6 is 2021-23 (week 23 is 06/21) and design date of 2021-03
The production marking of 1.9 is 2021-31 (week 31 is 08/21) and design date of 2021-05

probed around the board with the logic analyzer:
P7 looks like a SPI MOSI or I2C SDA, P11 looks like a MISO. PSDA/PSCK start to toggle as soon as the first data is sent on P7
Data on P7 / P11 repeats every ~6.9 seconds.
latrace1
latrace2

Inspecting this a bit closer... there is only 1 connected pin, and it is connected to pin 1 of the controller which supports UART. Bit time fits with 38400 baud UART and parsing as UART data seems reasonable... is this UART? Did they just add a 2nd microcontroller to drive the display?
b-1-6-2
after initial power-on (all segments active):
uart-1
a few seconds later, display updates to a reading (I dont know what, display not attached):
uart-2

00 00 00 00 AA seems to be the header, 55 the end of packet marker ; after the AA seems to be the control data, possibly 1 = segment switched on? next to the 55 seems to be some kind of check sum as it is 00 in the FF FF FF... packet and something else in the "real data" packet. 6 data bytes provide 6*8 = 48 bits, which should fit all the LCD segments. This is just an educated guess and needs to be confirmed...

I can provide logic analyzer traces of B1.6 or provide a B1.6 unit (shipping in Germany) if anyone is interested.

Is it worth the effort for B1.6 hardware or should I just (try to) get newer B1.9 hardware? I assume the rapid design changes are due to chip shortage, so it might be a good idea to support B1.6 as well in case they start to produce B1.6 again. I'll try to capture more info soon to provide enough data to figure out the checksum and map the segments to the bits of the 6 bytes.

As this issue is about B1.9 - where should B1.6 info go?

Edit: Regarding the checksum:
bitwise XOR of 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF bytes --> 0x00
bitwise XOR of 0xD3 0xBE 0x15 0xA5 0xF6 0xBF bytes --> 0x94

This means it is possible to feed own UART data to the B1.6 display controller and figure out which segment maps to which bit in the 6 bytes.

Same issue here with the B1.6 version.
Thanks for all the effort in trying to fix this!

I bought 4 of these devices from aliexpress. On the first I flashed the firmware with ATC_Thermometer.bin file. The procedure was ok, but when I disconnected the battery and connect it again the screen is blank and I cannot use it anymore. However the device is reachable via bluetooth and seen as a ATC_XXXX device.
On another device I did the same and of course the same issue happened. Then I tried to flash the original firmware to the device (d4135e135443ba86e403ecb2af2bf0af_upd_miaomiaoce.sensor_ht.t2.bin file, found on this page). What happened next is the device is bricked, It is not discoverable anymore via bluetooth and the screen is blank.
I now have two other new devices to use but I don’t want to brick them too.
I hope to find a solution very soon...

To recover devices over the air use xiaomi app as described in: #125 (comment)

Good morning,

I at least found a way to recover the Mi-Thermometer (screen and sensors).

  • Connect though it with pvvx TelinkMiFlasher
  • Click Original-FW
  • Click Flash to Device
  • Go to the Xiaomi Home App
  • Connect your device (still possible)
  • Go to Settings and select "Firmware Update"
  • Done --> You can use your device again :)

Cheers Reimund

I tried but on my page I don't see any "Original Firmware" to click. The only thing I can do is to download the original firmware and flash it. But I don't know where to find the firmware file.

Just got in a few B1.6 version Thermometers and hooked one first up to a Logic Analyzer as well so that one can be started on now the B1.6 version, lets see what the other ordered one will bring :)

thanks for the donation to M4

Sensor, not really usefull:
MiThermometer_B1 6

Good morning,
I at least found a way to recover the Mi-Thermometer (screen and sensors).

  • Connect though it with pvvx TelinkMiFlasher
  • Click Original-FW
  • Click Flash to Device
  • Go to the Xiaomi Home App
  • Connect your device (still possible)
  • Go to Settings and select "Firmware Update"
  • Done --> You can use your device again :)

Cheers Reimund

I tried but on my page I don't see any "Original Firmware" to click. The only thing I can do is to download the original firmware and flash it. But I don't know where to find the firmware file.

Ok, I just made it! Thanks, I'll wait for a solution!

Just got in a few B1.6 version Thermometers and hooked one first up to a Logic Analyzer as well so that one can be started on now the B1.6 version, lets see what the other ordered one will bring :)

thanks for the donation to M4

Sensor, not really usefull: MiThermometer_B1 6

Marking is similar to Sensirion SHT4x. Package is similar. Pinout fits.
https://www.sensirion.com/fileadmin/user_upload/customers/sensirion/Dokumente/2_Humidity_Sensors/Datasheets/Sensirion_Humidity_Sensors_SHT4x_Datasheet.pdf

I2C trace shows: address of sensor on my B1.6 is 0x44. Fits the SHT4x. CRC algorithm of SHT4x fits the data from the B1.6 sensor. Formula to get measurement values from raw bytes calculates reasonable temperature and humidity for me.

"run measurement" command is 0x44 0xFD, which fits the SHT4x.

Run measurement:
run-meas

Get results:
get-res
0x65 0x9A calculates to 24,45 Β°C ; CRC with help of http://www.sunshine2k.de/coding/javascript/crc/crc_js.html is 0x41, which is correct
0x77 0x8D calculates to 52,4 % rel. humidity ; CRC with help of link above is 0x22, which is correct

@TimeTravel-0 perfekt.
Looks very good :)

pvvx commented

I have made several orders in different stores and I am awaiting receipt. Hopefully new versions will come ...
When I receive new versions in a few days, I will build support. There is nothing complicated here.
The main thing is that the new version HW is at hand...

I ordered from https://www.aliexpress.com/item/1005001626975979.html and the 7 (of 10) which I have set up were all v1.9 hardware. The other 3 may also be, but I haven't opened the box.

Maybe someone can send me one as well? As there are two new versions and not known what some will get

Sure, in Berlin? Tell me where, got 4 here.

Maybe someone can send me one as well? As there are two new versions and not known what some will get

Sure, in Berlin? Tell me where, got 4 here.

Near Hamburg, got the B1.6 Version now so only if you may got the B1.9 version it is needed anymore :)

unfortunaly i am unable to open the screws. very small torx needed -.-
can somebody tell which one exactly?

You can tell the version via the App nRFConnect

Looking at Hardware revision string:
Screenshot_20211017-221346_nRF Connect

Thx for Information, got only 1.6

pvvx commented

Today I received from the store version B1.4 again (date on the package is 2020-10). We'll have to wait for the next order ... Lottery :(

image

pvvx commented

Original-FW in TelinkMiFlasher updated to 0130.

  • Connect though it with pvvx TelinkMiFlasher
  • Click "Show all mi keys" -> "!Erase all Mi Keys!"
  • Click Original-FW

Sensirion technical customer support: SHV4 datasheet is under NDA, support only for customers (this confirms SHV4 is a Sensirion device).

unfortunaly i am unable to open the screws. very small torx needed -.- can somebody tell which one exactly?

Screws are Torx T4 (a bit loose) or Torx T5 (fits not all the way in) ; ("Mijia Wiha Driver Kit")

hi, FYI the b1.6 device that i recovered with the new original firmware (and flashed with previous ones via serial) now shows hw revision = 0000 in the nfc connect app...
not the 2 others i have.

@atc1441
Look like its not a general rule i am not able to do it with an 1.9 board

@BasicCPPDev what happens if you tap on the arrow(s)? :-)

It show B1.9 of course :D #feel_so_stupid

:D
No problem.

But as it seems this hardware revision is saved in extra flash area it does indeed only works on a stock device

pvvx commented

But as it seems this hardware revision is saved in extra flash area it does indeed only works on a stock device

image

The firmware of an empty TLSR825x microcontroller (TB-03F module) gives HW: 0000. At the same time, Mi-Home works, registration - ok :)
If write an entry 'B1.4F1.0-CFMK-LB-ZCXTJ--' in 0x55000, then the version number is restored:
Hardware Revision String: B1.4

Sure it doed work with mi home with it being 0000
But what i mean does not work is to know via BLE what hardware version you got with it being 0000

@pvvx Hello, I wanted to thank you first hand. Also share my experience on my 2 devices that I got today. As a matter of fact MI packing's do not follow the correct hardware version. I got 2 devices today with the date of 2021.8 on the back. But the HW is 1.6. I tried to flash them with the fw V3.2 you uploaded 2 days ago. Unfortunately I got the error "This file is no telink firmware .bin!". Then I tried original fw 130 flashing with no problem. Any help would be appreciated.
It seems the old hw 1.4 is no longer available.

did you already ordered the new devices from ali? received today 4 of them could donate you one. Im from Zurich but going tomorrow to germany, could you send you one if you want.

image

Just contact me if you're intrested.

unfortunaly i am unable to open the screws. very small torx needed -.- can somebody tell which one exactly?

The one that fits mine is labelled "T5".

I'm in the states, but I got B1.9 in a box labeled "2021.08".

The stock firmware reports 1.9:

Screenshot_20211021-093802

The 3.2 firmware reports B1.4 🀷

IMG_20211021_093138

IMG_20211021_093154

Of course, same symptoms as OP. I can flash consistently, but no sensor readings and LCD stays frozen. I do get the same display when I reset with the battery, not a clean screen. But I think you are all past that point.

I am willing to send one to Germany, but that can't be the best way. If you're desperate, let me know. I will ship it.

Today i received the other ordered Thermometer, sadly only the oldest B1.4 and not B1.9 as hoped.

While this does not help much i compared the 1.4 and 1.6 version to each other and its possible to differ them from each other or more say what version you got, at the Reset and GND label there are 2 Traces on the 1.6 version and only one on the 1.4 version, also the Vias differ a bit.
When comparing the images from @jeffeb3 on the 1.9 version should be that one trace inside of the Battery circle visible from the outside which is not available on the other versions.
So at least some usefulness.
20211023_105053
20211023_105200

@jeffeb3 if your offer still stays i would be happy to get one from you. Mail: mi@43u.de

Good news everyone,

Just uploaded a first Release to support B1.6 version of the Thermometers.

it will auto detect on boot which devices are available πŸ‘

https://github.com/atc1441/ATC_MiThermometer

Sorry for tribble post.

Could someone with version B1.9 maybe test my newest release and see if the sensor gets read out.
the chances are high that B1.6 and B1.9 uses the same sensor.

The I2C Address of the B1.9 version display controller ist 0x3E / 0x7C maybe that helps to find it

I confirm that it really works on B1.6. Many thanks!
After reboot it shows all values way sooner than with original FW, when it can take over 15 minutes for all values to show up in HA. I think it took only around 2 minutes. Perfect!

And i love BAT indication.

Just mae jet another update, by Byte patching the stock firmware to thing it is having an B1.9 Display controller installed i was able to sniff that i2c data.

The Segments will not be sorted i think but it should display atleas something on the B1.9 version :)
https://github.com/atc1441/ATC_MiThermometer

So someone with B1.9 please try it out

Just flashed on my 1.6, everything seems fine but i cannot seem to change the advertising interval, always remains 10 seconds.

image
Low temp was in the shed before flashing, high temp is after flashing and updating every 10 seconds

@RafaelSchridi The advertising interval on my firmware is 10 seconds, what the advertising interval changes is how often the temperature is updated in the advertising, maybe that is what you see?

Sorry my bad, I was looking at the mqtt data while i should have been looking at homeassistant.

The advertising interval on my firmware is 10 seconds...

Hm...do you say that advertising interval is 10 seconds, not 60 seconds, as you have written on your "readme" page? (it says: byte1 0x06 - value times 10 seconds = interval 60 seconds default.)
Is 10 seconds ok for battery life? (just asking...)

The advertising interval on my firmware is 10 seconds...

Hm...do you say that advertising interval is 10 seconds, not 60 seconds, as you have written on your "readme" page? (it says: byte1 0x06 - value times 10 seconds = interval 60 seconds default.) Is 10 seconds ok for battery life? (just asking...)

As mentioned the setting advertising interval changes how often the sensor data is updated.

The device is sending a BLE paket anyway every 3-5 seconds and it makes no difference to if that includes sensor advertising data or not, it needs to send BLE pakets as otherwise no one would be able to connect to it to make settings / update firmware etc. :)

Aha... ok, thanks, i understand now. So, battery won't last any less if this interval is set to 10 seconds or 1 minute.
Anyway, i think that ESPHome module sends data to HA every minute or two (as i see fromESPHome's log) and it's not possible to change that to more or less...

Just tried it on 1.9, same result, no display. Let me know how I can help out.

Just tried it on 1.9, same result, no display. Let me know how I can help out.

Could be that the lcd driver includes crc then it will stay blank.
Need to test on a real device as it seems

Please try if the sensor works.
Connect to it with nrfconnect app and see if the Enviromental sensor shows plausible values.

Just tried it on 1.9, same result, no display. Let me know how I can help out.

Could be that the lcd driver includes crc then it will stay blank. Need to test on a real device as it seems

Please try if the sensor works. Connect to it with nrfconnect app and see if the Enviromental sensor shows plausible values.
xiaomi_temp_1 9_test_1

xiaomi_temp_1 9_test_2

The display is showing garbage but the reading was fine. Before flashing it was 24.8 temp and 55% humidty. I got more sensors on stock firmware to compare values but im waiting to normalise the values cause i pulled them from colder rooms.

If I blow air towards all 3 of them the 2 stock ones update immediately on the display but the ATC one is much slower to react reading it from the app, but it does update so that's good!

The Segments will not be sorted i think but it should display atleas something on the B1.9 version :)

The garbled display makes it sound like this is indeed the case!

Nice ok so that means it really just missing the segment layout now.

Made a short video about the update: https://youtu.be/orinnMN1Ik4

Yes, the bottom number (where humidity is on stock) looks like it loops between humidity and battery I suspect, but its no longer frozen

LE:

stock 1: 25.0 temperature, 59% humidity
stock 2: 24.9 temperature, 59% humidity
ATC : 25.9 temperature, 52% humidity

So it looks like it is a bit decalibrated compared to stock but I have no idea how it was on B1.4 because these B1.9 are my first ones I got

Sorry for the double post:

Left them alone without touching them. It seems that temperature same as stock firmware and humidity is 4-5% higher on stock than ATC so I got another dumb humidity sensors and while stock B1.9 show 56%, both ATC and dumb sensors are showing 52%

Sorry for the double post:

Left them alone without touching them. It seems that temperature same as stock firmware and humidity is 4-5% higher on stock than ATC so I got another dumb humidity sensors and while stock B1.9 show 56%, both ATC and dumb sensors are showing 52%

Thanks for confirming.

It is known that the Stock firmware has 5% difference to custom firmware, on all versions :)

yotux commented

I can flash the software to B1.9 date code 2021.08 Release 52

Flash is successful:

Can not send any commands: Tried Advertizing 5 min, 1 min, also tried using F temp setting.

Display Changed from LO.L to LO.Y

Log Below:

Log:
22:39:44: Searching for devices
22:39:49: Connecting to: LYWSD03MMC
22:39:59: Detected Mi Thermometer
22:39:59: Connected
22:40:04: Activating now, please wait...
22:40:07: Activation successfull
22:40:08: Received device infos are correct
22:40:08: Login successfull
22:40:32: File was selected, size: 63652 bytes
22:40:32: Count: 3979
22:40:40: Start DFU
22:41:44: Update done after 63.091 seconds
22:41:50: Disconnected.
22:42:16: Error on sending setting FE06
22:42:22: Error on sending setting FE1E
22:42:28: Error on sending setting FF

@yotux you need to reconnect after the flash, from what you describe it looks all good and again just the segment mapping is wrong

yotux commented

Would like to reconnect will not.

Log

12:26:43 AM: Disconnected.
12:26:43 AM: Searching for devices
12:26:45 AM: Connecting to: ATC_7B7F0D
12:26:45 AM: NotFoundError: No Services matching UUID 00010203-0405-0607-0809-0a0b0c0d1912 found in Device.
12:26:45 AM: Reconnect 1 from 5
12:26:45 AM: NotFoundError: No Services matching UUID 00010203-0405-0607-0809-0a0b0c0d1912 found in Device.
12:26:45 AM: Reconnect 2 from 5
12:26:45 AM: NotFoundError: No Services matching UUID 00010203-0405-0607-0809-0a0b0c0d1912 found in Device.
12:26:45 AM: Reconnect 3 from 5
12:26:45 AM: NotFoundError: No Services matching UUID 00010203-0405-0607-0809-0a0b0c0d1912 found in Device.
12:26:45 AM: Reconnect 4 from 5
12:26:45 AM: NotFoundError: No Services matching UUID 00010203-0405-0607-0809-0a0b0c0d1912 found in Device.
12:26:45 AM: Reconnect 5 from 5
12:26:45 AM: NotFoundError: No Services matching UUID 00010203-0405-0607-0809-0a0b0c0d1912 found in Device.
12:26:45 AM: Something went wrong, to many reconnect's
12:26:46 AM: Disconnected.

@yotux please try to connect to it with nRFConnect app.
Also please try to reinsert the battery / reboot the used pc / smartphone

@yotux I got exactly the same thing - #125 (comment)

The only solution for me was to try a different computer to connect (a different browser was insufficient).

yotux commented

Sadly work has forced us to switch to Iphones, I can connect via nrf connect.

After Reboot:
Log:

00:43:54: Searching for devices
00:43:57: Connecting to: ATC_7B7F0D
00:44:02: NetworkError: Connection failed for unknown reason.
00:44:02: Reconnect 1 from 5
00:44:08: NotFoundError: No Services matching UUID 00010203-0405-0607-0809-0a0b0c0d1912 found in Device.
00:44:08: Reconnect 2 from 5
00:44:08: NotFoundError: No Services matching UUID 00010203-0405-0607-0809-0a0b0c0d1912 found in Device.
00:44:08: Reconnect 3 from 5
00:44:08: NotFoundError: No Services matching UUID 00010203-0405-0607-0809-0a0b0c0d1912 found in Device.
00:44:08: Reconnect 4 from 5
00:44:08: NotFoundError: No Services matching UUID 00010203-0405-0607-0809-0a0b0c0d1912 found in Device.
00:44:08: Reconnect 5 from 5
00:44:08: NotFoundError: No Services matching UUID 00010203-0405-0607-0809-0a0b0c0d1912 found in Device.
00:44:08: Something went wrong, to many reconnect's

Have been using Arch via chromium to flash will fire up a VM of Win10 and try flashing.
Flashed back to stock. Will continue to test as needed.

@bjeanes Switching to Chrome inside of VM it has accepted the stock firmware, thank you for your hack.
@atc1441 Thank you for your assistance also, I in the US but I can send you a 2021.08 device if you need one.

Hi, I flashed the New FW to one of my sensors.
Flashing was fine. I linke the battery indicator.
But each time the indicator shows up, the humidity value raises 2-3%. If the page without the battery indicator shows up, the humidity drops 2-3% again.

hello everyone, first my appreciation for all the effort from everyone.
I'm less familiar with programming, so I'd like to benefit from your knowledge, but I'd also like to share my experience.
My Xiaomi is V1.6. I flashed with Telink the latest version and got the following:
Every 10 sec the batt indicator switches on and off and when it is on it shows a humidity of 93% and when it is off 48%, (the latter will be correct)
It is also noticeable that the battery indicator only shows 1 line, even with a new battery.
I will continue to follow this forum, thanks in advance everybody.

@Bert-coder This is the exact wanted behavior :)

As this is an segment display the battery symbol is only that one line battery, to fix it i implemented so that the Humidity area is used for the Battery status.
so every time the battery symbol is shown you can read the battery status in the other field.
for you the battery is at 93% and humidity is 48%

I guess that in original FW this battery icon is lit only when battery is empty (as warning for replacement), that’s why it’s made as β€œempty”…

@atc1441 Okay so I did better than I thought :) indeed if I turn off the battery indicator then I get the humidity in the picture. @Protoncek I agree

I have 4 pcs V1.4 working with ESP home in Home assistant. Works great. Bought extra thermometers for expansion and surprised like everyone that they are not so easy to flash.

Now the last .bin flashed. I've noticed that after flashing the TeLink interface looks different from flashing V3.2 but I can toggle the display options on and off, so that's good.

Unfortunately I have not yet managed to display the Xiaomi in ESP home. I have set all settings the same as the first 4 pieces. That means that I did adjust the last 3 sets of the MAC address. I also set the Xiaomi advertisement type to Mi Like.

platform: xiaomi_lywsd03mmc
mac_address: "A4:C1:38:C0:37:BD"
bindkey: "eef418daf699a0c188f3bfd17e4565d9"
temperature:
name: kitchen floor temperature"
humidity:
name: kitchen floor humidity"
battery_level:
name: kitchen floor battery"

Does anyone already have experience with this?

I left advertisement in custom mode. In ESPHome you just change platform to "atc_mithermometer", remove bindkey, add "battery_voltage and you're set. That way you have also absolute battery voltage available, not only percentage.

SUPER!!!
Thanks, I am very pleased with this solution.

Can I also flash the latest .bin software in the Xiaomi V1.4? This to keep the system clear and universal for me?

@Bert-coder yes the firmware auto detect the hardware so it is compatible with all (B1.4 B1.6 and (B1.9 Not fully right now))

FYI, here is a 1.9 against the 1.4 that I have (I think they are 1.4, they are at least a few months old).

IMG_20211024_075925~2

The silk screen line is thicker, and you can see the P6 and P20 labels easily.