ATC_MiThermometer icon indicating copy to clipboard operation
ATC_MiThermometer copied to clipboard

Can't light up the screen correctly after replacing the temperature sensing chip

Open ZdDroid opened this issue 2 years ago • 1 comments

The printed version number of the motherboard is: B1.4

After replacing the temperature sensing chip with SHT3C waterproof type, the firmware is recognized as B1.6 after brushing in the custom firmware, the LCD can not be displayed, Bluetooth is normal, temperature sensing is normal. When I remove the temperature sensing chip, the LCD can be displayed normally as B1.7.

Status: Hardware Version: LYWSD03MMC B1.7, Software Version: 3.8 Vbat: 3286 mV , Temp: 0.00°C, Humi: 0.00%, ID: 0, Reed switch counter: 0, flg: 0x01:r1/t0

-- Whether to consider adding a custom HW function?

When I re-solder the temperature sensing chip SHT3C, the LCD will not show again. Status: Hardware Version: LYWSD03MMC B1.4, Software Version: 3.8 Temp/Humidity: waiting notify for data after connecting

ZdDroid avatar Oct 09 '22 04:10 ZdDroid

The version is determined by the addresses of the display and sensor on I2C

HW LCD I2C addr SHTxxx I2C addr Note
B1.4 0x3C 0x70 (SHTC3)  
B1.6 UART! 0x44 (SHT4x)  
B1.7 0x3C 0x44 (SHT4x) Test original string HW
B1.9 0x3E 0x44 (SHT4x)  
B2.0 0x3C 0x44 (SHT4x) Test original string HW

Version 1.7 or 2.0 is determined at first run by reading the HW line written in Flash. Display matrices or controllers are different for all versions, except B1.7 = B2.0.

	if (sensor_i2c_addr == (SHTC3_I2C_ADDR << 1))
		cfg.hw_cfg.shtc3 = 1; // = 1 - sensor SHTC3
	else
		cfg.hw_cfg.shtc3 = 0; // = 0 - sensor SHT4x or ?

       ....

	if (lcd_i2c_addr == (B14_I2C_ADDR << 1)) {
		if (cfg.hw_cfg.shtc3) { // sensor SHTC3 ?
			cfg.hw_cfg.hwver = 0; // HW:B1.4
			my_HardStr[3] = '4';
		} else { // sensor SHT4x or ?
			cfg.hw_cfg.hwver = 5; // HW:B1.7
			if (my_HardStr[1] == '1') // HW:B1.?
				my_HardStr[3] = '7';
		}
	} else if (lcd_i2c_addr == (B19_I2C_ADDR << 1)) {
		cfg.hw_cfg.hwver = 3; // HW:B1.9
		my_HardStr[3] = '9';
	} else {
		cfg.hw_cfg.hwver = 4; // HW:B1.6
		my_HardStr[3] = '6';
	}

Users who can solder microcircuits can change and assemble the required version of the program themselves. The introduction of additional flags and options increases the size of the code, battery consumption and introduces uncertainties - additional errors and questions from users with the wrong choice...

pvvx avatar Oct 10 '22 22:10 pvvx