logo elektroda
logo elektroda
X
logo elektroda

[BK7238 / T1] TH08E and TH08C LCD Calendar/clock/temperature/humidity

tplewa  15 2079 Cool? (+2)
📢 Listen (AI):
White clock with LCD showing date, time, temperature, and humidity

Hello :)

I recently bought some Tuya modules to play with, with a view to playing with OpenBK.
Among them the TH08(??? E ???) and TH08C modules mentioned in the title. The TH08C version has the ability to switch with a button (the number of clicks of the button that normally turns on the backlight) the 12h/24h time format and the temperature units i.e. C and F.

Both versions are based on the module T1-U-HL (BK7238)

PCB appearance of the TH08E version (as to this E I am not sure but this is how it was described on Aliexpress):

Close-up of TH08E PCB with T1-U-HL module and labeled signal paths

PCB described as "TH08-CBU-BL55072A_V3.8 2025-09-18"


PCB appearance of the TH08C version (this is how it is described in the user manual):

TH08C PCB with T1-U-HL module and label TH08_T1-U_V1.2 2025-10-13

PCB described as "TH08-T1-U_V1.2 2025-10-13"

In principle, both temperature/humidity sensors are similar in design to the TH08 module with BK7231N already described here:

[BK7231N ] Interior of TH08 LCD Calendar/clock/temperature/humidity

At the moment I have uploaded the OpenBK software to the TH08E version (TH08C I have not yet touched and will probably post information about the protocol later). Ot the log data is quite a lot and I don't want to make a fuss with two versions at the moment. As soon as I manage to do something with TH08E I will take up TH08C and see how the communication is with this version....

So for the moment I am focusing on TH08E i.e. PCB "TH08-CBU-BL55072A_V3.8 2025-09-18"

Unfortunately, the communication with the TuyaMCU looks a bit different than in the TH08 module described on the forum (BK7231N) - so for the moment it was not possible to move it.

It is apparent that several packages are missing e.g. 55 AA 00 90 and in the documentation (Tuya Developer) Serial Port Protocol at least I could not find information about package 90....


Edited Post added after time: ok regarding package 90 I found is this Get cached DP command (0x90) - description here: Basic Features MCU Standard Protocol



All in all, I've only been playing with OpenBK for a day (managed to rewire the PIR detectors) and I may be mixing things up. I've actually looked at the OpenBK code but I don't yet understand how it works enough to make any modifications myself.

Maybe colleague @pkaczmarek2 can advise and help here :) Below what I managed to log regarding TH08E module communication....

In firmware configured WiFi/MQTT/NTP (this works) and set flags 10, 37, 43 to this disconnected line CEN - here basically behavioural problems with bad communication similar to the TH08 described in the forum....

Effect:

The TuyaMCU tries to commune with the T1-U-HL (BK7238) and after a period of time shuts down its power supply. The date and time on the display is not updated....



TH08E TuyaMCU communication with original firmware - T: 28.0C H: 26%

Received by WiFi module:
55 AA	03	00		00 01	00	03	
HEADER	VER=03	Heartbeat		LEN	00	CHK	

Sent by WiFi module:
55 AA	00	00		00 00		FF	
HEADER	VER=00	Heartbeat		LEN		CHK	

Sent by WiFi module:
55 AA	00	01		00 00		00	
HEADER	VER=00	Product		LEN		CHK	

Received by WiFi module:
55 AA	03	01		00 37	7B2270223A22623876716D646A6D7073776261703171222C2276223A22312E302E30222C226D223A302C226E223A312C22736D223A307D	57	
HEADER	VER=03	Product		LEN	{"p":"b8vqmdjmpswbap1q","v":"1.0.0","m":0,"n":1,"sm":0}	CHK	

Received by WiFi module:
55 AA	03	02		00 00		04	
HEADER	VER=03	McuConf		LEN		CHK	

Sent by WiFi module:
55 AA	00	02		00 00		01	
HEADER	VER=00	McuConf		LEN		CHK	

Sent by WiFi module:
55 AA	00	03		00 01	02	05	
HEADER	VER=00	WifiState		LEN	02	CHK	

Received by WiFi module:
55 AA	03	03		00 00		05	
HEADER	VER=03	WifiState		LEN		CHK	

Sent by WiFi module:
55 AA	00	03		00 01	03	06	
HEADER	VER=00	WifiState		LEN	03	CHK	

Received by WiFi module:
55 AA	03	03		00 00		05	
HEADER	VER=03	WifiState		LEN		CHK	

Sent by WiFi module:
55 AA	00	08		00 00		07	
HEADER	VER=00	QueryInitStatus		LEN	INVALID date			CHK	

Sent by WiFi module:
55 AA	00	03		00 01	04	07	
HEADER	VER=00	WifiState		LEN	04	CHK	

Received by WiFi module:
55 AA	03	03		00 00		05	
HEADER	VER=03	WifiState		LEN		CHK	

Sent by WiFi module:
55 AA	00	08		00 00		07	
HEADER	VER=00	QueryInitStatus		LEN	INVALID date			CHK	

Received by WiFi module:
55 AA	03	90		00 04	03091718	D1	
HEADER	VER=03	Unk		LEN	03091718	CHK	

Received by WiFi module:
55 AA	03	24		00 00		26	
HEADER	VER=03	Unk		LEN		CHK	

Sent by WiFi module:
55 AA	00	90		00 02	0100	92	
HEADER	VER=00	Unk		LEN	0100	CHK	

Sent by WiFi module:
55 AA	00	24		00 01	BB	DF	
HEADER	VER=00	Unk		LEN	BB	CHK	

Received by WiFi module:
55 AA	03	1C		00 00		1E	
HEADER	VER=03	Date		LEN		CHK	

Sent by WiFi module:
55 AA	00	1C		00 08	011A01170A342105	BA	
HEADER	VER=00	Date		LEN	bOk=1 26/1/23 10:52:33	CHK	

Received by WiFi module:
55 AA	03	22		00 15	090400010017020004000000001802000400000000	82	
HEADER	VER=03	Unk		LEN	090400010017020004000000001802000400000000	CHK	

Sent by WiFi module:
55 AA	00	23		00 01	01	24	
HEADER	VER=00	Unk		LEN	01	CHK	

Received by WiFi module:
55 AA	03	22		00 15	0102000400000118020200040000001A0304000102	85	
HEADER	VER=03	Unk		LEN	0102000400000118020200040000001A0304000102	CHK	

Sent by WiFi module:
55 AA	00	23		00 01	01	24	
HEADER	VER=00	Unk		LEN	01	CHK	



TuyaMCU communication with original firmware - T: 39.7CC H: 14%

Received by WiFi module:
55 AA	03	00		00 01	00	03	
HEADER	VER=03	Heartbeat		LEN	00	CHK	

Sent by WiFi module:
55 AA	00	00		00 00		FF	
HEADER	VER=00	Heartbeat		LEN		CHK	

Sent by WiFi module:
55 AA	00	01		00 00		00	
HEADER	VER=00	Product		LEN		CHK	

Received by WiFi module:
55 AA	03	01		00 37	7B2270223A22623876716D646A6D7073776261703171222C2276223A22312E302E30222C226D223A302C226E223A312C22736D223A307D	57	
HEADER	VER=03	Product		LEN	{"p":"b8vqmdjmpswbap1q","v":"1.0.0","m":0,"n":1,"sm":0}	CHK	

Received by WiFi module:
55 AA	03	02		00 00		04	
HEADER	VER=03	McuConf		LEN		CHK	

Sent by WiFi module:
55 AA	00	02		00 00		01	
HEADER	VER=00	McuConf		LEN		CHK	

Sent by WiFi module:
55 AA	00	03		00 01	02	05	
HEADER	VER=00	WifiState		LEN	02	CHK	

Received by WiFi module:
55 AA	03	03		00 00		05	
HEADER	VER=03	WifiState		LEN		CHK	

Sent by WiFi module:
55 AA	00	03		00 01	03	06	
HEADER	VER=00	WifiState		LEN	03	CHK	

Received by WiFi module:
55 AA	03	03		00 00		05	
HEADER	VER=03	WifiState		LEN		CHK	

Sent by WiFi module:
55 AA	00	08		00 00		07	
HEADER	VER=00	QueryInitStatus		LEN	INVALID date			CHK	

Sent by WiFi module:
55 AA	00	03		00 01	04	07	
HEADER	VER=00	WifiState		LEN	04	CHK	

Received by WiFi module:
55 AA	03	03		00 00		05	
HEADER	VER=03	WifiState		LEN		CHK	

Sent by WiFi module:
55 AA	00	08		00 00		07	
HEADER	VER=00	QueryInitStatus		LEN	INVALID date			CHK	

Received by WiFi module:
55 AA	03	90		00 04	03091718	D1	
HEADER	VER=03	Unk		LEN	03091718	CHK	

Sent by WiFi module:
55 AA	00	90		00 02	0100	92	
HEADER	VER=00	Unk		LEN	0100	CHK	

Received by WiFi module:
55 AA	03	24		00 00		26	
HEADER	VER=03	Unk		LEN		CHK	

Sent by WiFi module:
55 AA	00	24		00 01	BC	E0	
HEADER	VER=00	Unk		LEN	BC	CHK	

Received by WiFi module:
55 AA	03	1C		00 00		1E	
HEADER	VER=03	Date		LEN		CHK	

Sent by WiFi module:
55 AA	00	1C		00 08	011A01170A371505	B1	
HEADER	VER=00	Date		LEN	bOk=1 26/1/23 10:55:21	CHK	

Received by WiFi module:
55 AA	03	22		00 15	090400010017020004000000001802000400000000	82	
HEADER	VER=03	Unk		LEN	090400010017020004000000001802000400000000	CHK	

Sent by WiFi module:
55 AA	00	23		00 01	01	24	
HEADER	VER=00	Unk		LEN	01	CHK	

Received by WiFi module:
55 AA	03	22		00 15	010200040000018D020200040000000E0304000102	EE	
HEADER	VER=03	Unk		LEN	010200040000018D020200040000000E0304000102	CHK	

Sent by WiFi module:
55 AA	00	23		00 01	01	24	
HEADER	VER=00	Unk		LEN	01	CHK	



TH08E TuyaMCU communication with original firmware - sensor removed from Tuya account

Received by WiFi module:
55 AA	03	00		00 01	00	03	
HEADER	VER=03	Heartbeat		LEN	00	CHK	

Sent by WiFi module:
55 AA	00	00		00 00		FF	
HEADER	VER=00	Heartbeat		LEN		CHK	

Sent by WiFi module:
55 AA	00	01		00 00		00	
HEADER	VER=00	Product		LEN		CHK	

Received by WiFi module:
55 AA	03	01		00 37	7B2270223A22623876716D646A6D7073776261703171222C2276223A22312E302E30222C226D223A302C226E223A312C22736D223A307D	57	
HEADER	VER=03	Product		LEN	{"p":"b8vqmdjmpswbap1q","v":"1.0.0","m":0,"n":1,"sm":0}	CHK	

Sent by WiFi module:
55 AA	00	02		00 00		01	
HEADER	VER=00	McuConf		LEN		CHK	

Received by WiFi module:
55 AA	03	02		00 00		04	
HEADER	VER=03	McuConf		LEN		CHK	

Received by WiFi module:
55 AA	03	03		00 00		05	
HEADER	VER=03	WifiState		LEN		CHK	

Sent by WiFi module:
55 AA	00	03		00 01	02	05	
HEADER	VER=00	WifiState		LEN	02	CHK	

Received by WiFi module:
55 AA	03	03		00 00		05	
HEADER	VER=03	WifiState		LEN		CHK	

Sent by WiFi module:
55 AA	00	03		00 01	03	06	
HEADER	VER=00	WifiState		LEN	03	CHK	

Sent by WiFi module:
55 AA	00	08		00 00		07	
HEADER	VER=00	QueryInitStatus		LEN	INVALID date			CHK	

Received by WiFi module:
55 AA	03	00		00 01	01	04	
HEADER	VER=03	Heartbeat		LEN	01	CHK	

Sent by WiFi module:
55 AA	00	00		00 00		FF	
HEADER	VER=00	Heartbeat		LEN		CHK	

Sent by WiFi module:
55 AA	00	01		00 00		00	
HEADER	VER=00	Product		LEN		CHK	

Received by WiFi module:
55 AA	03	01		00 37	7B2270223A22623876716D646A6D7073776261703171222C2276223A22312E302E30222C226D223A302C226E223A312C22736D223A307D	57	
HEADER	VER=03	Product		LEN	{"p":"b8vqmdjmpswbap1q","v":"1.0.0","m":0,"n":1,"sm":0}	CHK	

Received by WiFi module:
55 AA	03	02		00 00		04	
HEADER	VER=03	McuConf		LEN		CHK	

Sent by WiFi module:
55 AA	00	02		00 00		01	
HEADER	VER=00	McuConf		LEN		CHK	

Received by WiFi module:
55 AA	03	03		00 00		05	
HEADER	VER=03	WifiState		LEN		CHK	

Sent by WiFi module:
55 AA	00	03		00 01	01	04	
HEADER	VER=00	WifiState		LEN	01	CHK	

Sent by WiFi module:
55 AA	00	00		00 00		FF	
HEADER	VER=00	Heartbeat		LEN		CHK	

Received by WiFi module:
55 AA	03	00		00 01	01	04	
HEADER	VER=03	Heartbeat		LEN	01	CHK	

Received by WiFi module:
55 AA	03	00		00 01	01	04	
HEADER	VER=03	Heartbeat		LEN	01	CHK	

Sent by WiFi module:
55 AA	00	00		00 00		FF	
HEADER	VER=00	Heartbeat		LEN		CHK	

Received by WiFi module:
55 AA	03	00		00 01	01	04	
HEADER	VER=03	Heartbeat		LEN	01	CHK	

Sent by WiFi module:
55 AA	00	00		00 00		FF	
HEADER	VER=00	Heartbeat		LEN		CHK	

Sent by WiFi module:
55 AA	00	00		00 00		FF	
HEADER	VER=00	Heartbeat		LEN		CHK	

Received by WiFi module:
55 AA	03	00		00 01	01	04	
HEADER	VER=03	Heartbeat		LEN	01	CHK	





In contrast, this is what the communion with OpenBK (TH08E) looks like:

For autoexec.bat with startDriver tmSensor

startDriver TuyaMCU
startDriver tmSensor
startDriver NTP
ntp_setServer 194.146.251.100
ntp_timeZoneOfs 1


Log:

Received by WiFi module:
55 AA	03	01		00 37	7B2270223A22623876716D646A6D7073776261703171222C2276223A22312E302E30222C226D223A302C226E223A312C22736D223A307D	57	
HEADER	VER=03	Product		LEN	{"p":"b8vqmdjmpswbap1q","v":"1.0.0","m":0,"n":1,"sm":0}	CHK	

Sent by WiFi module:
55 AA	00	01		00 00		00	
HEADER	VER=00	Product		LEN		CHK	

Received by WiFi module:
55 AA	03	02		00 00		04	
HEADER	VER=03	McuConf		LEN		CHK	

Sent by WiFi module:
55 AA	00	02		00 01	03	05	
HEADER	VER=00	McuConf		LEN	03	CHK	

Received by WiFi module:
55 AA	03	02		00 00		04	
HEADER	VER=03	McuConf		LEN		CHK	

Sent by WiFi module:
55 AA	00	02		00 01	04	06	
HEADER	VER=00	McuConf		LEN	04	CHK	



and log with autoexec.bat removed startDriver tmSensor :

Received by WiFi module:
55 AA	03	00		00 01	00	03	
HEADER	VER=03	Heartbeat		LEN	00	CHK	

Sent by WiFi module:
55 AA	00	00		00 00		FF	
HEADER	VER=00	Heartbeat		LEN		CHK	

Sent by WiFi module:
55 AA	00	01		00 00		00	
HEADER	VER=00	Product		LEN		CHK	

Received by WiFi module:
55 AA	03	01		00 37	7B2270223A22623876716D646A6D7073776261703171222C2276223A22312E302E30222C226D223A302C226E223A312C22736D223A307D	57	
HEADER	VER=03	Product		LEN	{"p":"b8vqmdjmpswbap1q","v":"1.0.0","m":0,"n":1,"sm":0}	CHK	

Sent by WiFi module:
55 AA	00	02		00 00		01	
HEADER	VER=00	McuConf		LEN		CHK	

Received by WiFi module:
55 AA	03	02		00 00		04	
HEADER	VER=03	McuConf		LEN		CHK	

Sent by WiFi module:
55 AA	00	08		00 00		07	
HEADER	VER=00	QueryInitStatus		LEN	INVALID date			CHK	

Received by WiFi module:
55 AA	03	00		00 01	01	04	
HEADER	VER=03	Heartbeat		LEN	01	CHK	

Sent by WiFi module:
55 AA	00	00		00 00		FF	
HEADER	VER=00	Heartbeat		LEN		CHK	

Sent by WiFi module:
55 AA	00	08		00 00		07	
HEADER	VER=00	QueryInitStatus		LEN	INVALID date			CHK	

Received by WiFi module:
55 AA	03	03		00 00		05	
HEADER	VER=03	WifiState		LEN		CHK	

Sent by WiFi module:
55 AA	00	03		00 01	00	03	
HEADER	VER=00	WifiState		LEN	00	CHK	

Sent by WiFi module:
55 AA	00	08		00 00		07	
HEADER	VER=00	QueryInitStatus		LEN	INVALID date			CHK	

Received by WiFi module:
55 AA	03	00		00 01	01	04	
HEADER	VER=03	Heartbeat		LEN	01	CHK	

Sent by WiFi module:
55 AA	00	00		00 00		FF	
HEADER	VER=00	Heartbeat		LEN		CHK	

Sent by WiFi module:
55 AA	00	08		00 00		07	
HEADER	VER=00	QueryInitStatus		LEN	INVALID date			CHK	

Received by WiFi module:
55 AA	03	00		00 01	01	04	
HEADER	VER=03	Heartbeat		LEN	01	CHK	

Sent by WiFi module:
55 AA	00	00		00 00		FF	
HEADER	VER=00	Heartbeat		LEN		CHK	

Sent by WiFi module:
55 AA	00	08		00 00		07	
HEADER	VER=00	QueryInitStatus		LEN	INVALID date			CHK	

Sent by WiFi module:
55 AA	00	08		00 00		07	
HEADER	VER=00	QueryInitStatus		LEN	INVALID date			CHK	

Received by WiFi module:
55 AA	03	00		00 01	01	04	
HEADER	VER=03	Heartbeat		LEN	01	CHK	

Sent by WiFi module:
55 AA	00	00		00 00		FF	
HEADER	VER=00	Heartbeat		LEN		CHK	

Sent by WiFi module:
55 AA	00	08		00 00		07	
HEADER	VER=00	QueryInitStatus		LEN	INVALID date			CHK	

Sent by WiFi module:
55 AA	00	00		00 00		FF	
HEADER	VER=00	Heartbeat		LEN		CHK	

Received by WiFi module:
55 AA	03	00		00 01	01	04	
HEADER	VER=03	Heartbeat		LEN	01	CHK	

Sent by WiFi module:
55 AA	00	08		00 00		07	
HEADER	VER=00	QueryInitStatus		LEN	INVALID date			CHK	

Received by WiFi module:
55 AA	03	03		00 00		05	
HEADER	VER=03	WifiState		LEN		CHK	

Sent by WiFi module:
55 AA	00	03		00 01	04	07	
HEADER	VER=00	WifiState		LEN	04	CHK	

Received by WiFi module:
55 AA	03	90		00 04	03091718	D1	
HEADER	VER=03	Unk		LEN	03091718	CHK	

Sent by WiFi module:
55 AA	00	08		00 00		07	
HEADER	VER=00	QueryInitStatus		LEN	INVALID date			CHK	

Received by WiFi module:
55 AA	03	00		00 01	01	04	
HEADER	VER=03	Heartbeat		LEN	01	CHK	

Sent by WiFi module:
55 AA	00	00		00 00		FF	
HEADER	VER=00	Heartbeat		LEN		CHK	

Sent by WiFi module:
55 AA	00	08		00 00		07	
HEADER	VER=00	QueryInitStatus		LEN	INVALID date			CHK	

Received by WiFi module:
55 AA	03	00		00 01	01	04	
HEADER	VER=03	Heartbeat		LEN	01	CHK	

Sent by WiFi module:
55 AA	00	00		00 00		FF	
HEADER	VER=00	Heartbeat		LEN		CHK	

Sent by WiFi module:
55 AA	00	08		00 00		07	
HEADER	VER=00	QueryInitStatus		LEN	INVALID date			CHK	

Sent by WiFi module:
55 AA	00	08		00 00		07	
HEADER	VER=00	QueryInitStatus		LEN	INVALID date			CHK	

Sent by WiFi module:
55 AA	00	00		00 00		FF	
HEADER	VER=00	Heartbeat		LEN		CHK	

Received by WiFi module:
55 AA	03	00		00 01	01	04	
HEADER	VER=03	Heartbeat		LEN	01	CHK	

Sent by WiFi module:
55 AA	00	08		00 00		07	
HEADER	VER=00	QueryInitStatus		LEN	INVALID date			CHK	

Sent by WiFi module:
55 AA	00	00		00 00		FF	
HEADER	VER=00	Heartbeat		LEN		CHK	

Received by WiFi module:
55 AA	03	00		00 01	01	04	
HEADER	VER=03	Heartbeat		LEN	01	CHK	

Sent by WiFi module:
55 AA	00	08		00 00		07	
HEADER	VER=00	QueryInitStatus		LEN	INVALID date			CHK	

Sent by WiFi module:
55 AA	00	08		00 00		07	
HEADER	VER=00	QueryInitStatus		LEN	INVALID date			CHK	

Sent by WiFi module:
55 AA	00	00		00 00		FF	
HEADER	VER=00	Heartbeat		LEN		CHK	

Received by WiFi module:
55 AA	03	00		00 01	01	04	
HEADER	VER=03	Heartbeat		LEN	01	CHK	

Sent by WiFi module:
55 AA	00	08		00 00		07	
HEADER	VER=00	QueryInitStatus		LEN	INVALID date			CHK	

Received by WiFi module:
55 AA	03	00		00 01	01	04	
HEADER	VER=03	Heartbeat		LEN	01	CHK	

Sent by WiFi module:
55 AA	00	00		00 00		FF	
HEADER	VER=00	Heartbeat		LEN		CHK	

Sent by WiFi module:
55 AA	00	08		00 00		07	
HEADER	VER=00	QueryInitStatus		LEN	INVALID date			CHK	

Sent by WiFi module:
55 AA	00	08		00 00		07	
HEADER	VER=00	QueryInitStatus		LEN	INVALID date			CHK	

Sent by WiFi module:
55 AA	00	00		00 00		FF	
HEADER	VER=00	Heartbeat		LEN		CHK	

Received by WiFi module:
55 AA	03	00		00 01	01	04	
HEADER	VER=03	Heartbeat		LEN	01	CHK	

Sent by WiFi module:
55 AA	00	08		00 00		07	
HEADER	VER=00	QueryInitStatus		LEN	INVALID date			CHK	

Received by WiFi module:
55 AA	03	00		00 01	01	04	
HEADER	VER=03	Heartbeat		LEN	01	CHK	

Sent by WiFi module:
55 AA	00	00		00 00		FF	
HEADER	VER=00	Heartbeat		LEN		CHK	

Sent by WiFi module:
55 AA	00	08		00 00		07	
HEADER	VER=00	QueryInitStatus		LEN	INVALID date			CHK	

Sent by WiFi module:
55 AA	00	08		00 00		07	
HEADER	VER=00	QueryInitStatus		LEN	INVALID date			CHK	

Sent by WiFi module:
55 AA	00	00		00 00		FF	
HEADER	VER=00	Heartbeat		LEN		CHK	

Received by WiFi module:
55 AA	03	00		00 01	01	04	
HEADER	VER=03	Heartbeat		LEN	01	CHK	

Sent by WiFi module:
55 AA	00	08		00 00		07	
HEADER	VER=00	QueryInitStatus		LEN	INVALID date			CHK	

Received by WiFi module:
55 AA	03	00		00 01	01	04	
HEADER	VER=03	Heartbeat		LEN	01	CHK	

Sent by WiFi module:
55 AA	00	00		00 00		FF	
HEADER	VER=00	Heartbeat		LEN		CHK	

Sent by WiFi module:
55 AA	00	08		00 00		07	
HEADER	VER=00	QueryInitStatus		LEN	INVALID date			CHK	

Sent by WiFi module:
55 AA	00	08		00 00		07	
HEADER	VER=00	QueryInitStatus		LEN	INVALID date			CHK	

Sent by WiFi module:
55 AA	00	00		00 00		FF	
HEADER	VER=00	Heartbeat		LEN		CHK	

Received by WiFi module:
55 AA	03	00		00 01	01	04	
HEADER	VER=03	Heartbeat		LEN	01	CHK	

Sent by WiFi module:
55 AA	00	08		00 00		07	
HEADER	VER=00	QueryInitStatus		LEN	INVALID date			CHK	

Sent by WiFi module:
55 AA	00	00		00 00		FF	
HEADER	VER=00	Heartbeat		LEN		CHK	

Received by WiFi module:
55 AA	03	00		00 01	01	04	
HEADER	VER=03	Heartbeat		LEN	01	CHK	

Sent by WiFi module:
55 AA	00	08		00 00		07	
HEADER	VER=00	QueryInitStatus		LEN	INVALID date			CHK	

Sent by WiFi module:
55 AA	00	08		00 00		07	
HEADER	VER=00	QueryInitStatus		LEN	INVALID date			CHK	

Sent by WiFi module:
55 AA	00	00		00 00		FF	
HEADER	VER=00	Heartbeat		LEN		CHK	

Received by WiFi module:
55 AA	03	00		00 01	01	04	
HEADER	VER=03	Heartbeat		LEN	01	CHK	

Sent by WiFi module:
55 AA	00	08		00 00		07	
HEADER	VER=00	QueryInitStatus		LEN	INVALID date			CHK	

Sent by WiFi module:
55 AA	00	00		00 00		FF	
HEADER	VER=00	Heartbeat		LEN		CHK	

Received by WiFi module:
55 AA	03	00		00 01	01	04	
HEADER	VER=03	Heartbeat		LEN	01	CHK	

Sent by WiFi module:
55 AA	00	08		00 00		07	
HEADER	VER=00	QueryInitStatus		LEN	INVALID date			CHK	

Sent by WiFi module:
55 AA	00	08		00 00		07	
HEADER	VER=00	QueryInitStatus		LEN	INVALID date			CHK	

Received by WiFi module:
55 AA	03	00		00 01	01	04	
HEADER	VER=03	Heartbeat		LEN	01	CHK	

Sent by WiFi module:
55 AA	00	00		00 00		FF	
HEADER	VER=00	Heartbeat		LEN		CHK	

Sent by WiFi module:
55 AA	00	08		00 00		07	
HEADER	VER=00	QueryInitStatus		LEN	INVALID date			CHK	

Sent by WiFi module:
55 AA	00	00		00 00		FF	
HEADER	VER=00	Heartbeat		LEN		CHK	

Received by WiFi module:
55 AA	03	00		00 01	01	04	
HEADER	VER=03	Heartbeat		LEN	01	CHK	

Sent by WiFi module:
55 AA	00	08		00 00		07	
HEADER	VER=00	QueryInitStatus		LEN	INVALID date			CHK	

Sent by WiFi module:
55 AA	00	08		00 00		07	
HEADER	VER=00	QueryInitStatus		LEN	INVALID date			CHK	

Received by WiFi module:
55 AA	03	00		00 01	01	04	
HEADER	VER=03	Heartbeat		LEN	01	CHK	

Sent by WiFi module:
55 AA	00	00		00 00		FF	
HEADER	VER=00	Heartbeat		LEN		CHK	

Sent by WiFi module:
55 AA	00	08		00 00		07	
HEADER	VER=00	QueryInitStatus		LEN	INVALID date			CHK	

Received by WiFi module:
55 AA	03	00		00 01	01	04	
HEADER	VER=03	Heartbeat		LEN	01	CHK	

Sent by WiFi module:
55 AA	00	00		00 00		FF	
HEADER	VER=00	Heartbeat		LEN		CHK	

Sent by WiFi module:
55 AA	00	08		00 00		07	
HEADER	VER=00	QueryInitStatus		LEN	INVALID date			CHK	





Added after 1 [hour] 54 [minutes]:

OK Next entry ;)

There is a little progress after adding the option to autoexec.bat tuyaMcu_defWiFiState 4 the communication went on and the date and time was set :)


LCD of TH08E sensor showing 27.5°C temperature and 29% humidity


As before with option startDriver tmSensor communication cuts off as above.

Although there have been a couple of power-ups where the time/date failed to be set and the BK7238 was cut off (probably not connecting to WiFi - I haven't logged that one). Hmm any ideas ?

What remains now is the issue of sending data to MQTT....
...which are sent as Report status (sync) (0x022) - that is multiple DPs...

e.g. from the following log:
55 AA 03 22 00 15 090400010017020004000000001802000400000000 82
55 AA 03 22 00 15 0102000400000115020200040000001A0304000102 82

hmm how can this be extracted to individual channels ?

Originally it was also possible to set temperature and humidity correction and alarms - but from what I have read in the thread regarding the TH08 based on BK7231N this I understand is not yet supported ?

Current autoexec.bat :

startDriver TuyaMCU
tuyaMcu_defWiFiState 4
startDriver NTP
ntp_setServer 194.146.251.100
ntp_timeZoneOfs 1


Log:

Received by WiFi module:
55 AA	03	00		00 01	00	03	
HEADER	VER=03	Heartbeat		LEN	00	CHK	

Sent by WiFi module:
55 AA	00	00		00 00		FF	
HEADER	VER=00	Heartbeat		LEN		CHK	

Sent by WiFi module:
55 AA	00	01		00 00		00	
HEADER	VER=00	Product		LEN		CHK	

Received by WiFi module:
55 AA	03	01		00 37	7B2270223A22623876716D646A6D7073776261703171222C2276223A22312E302E30222C226D223A302C226E223A312C22736D223A307D	57	
HEADER	VER=03	Product		LEN	{"p":"b8vqmdjmpswbap1q","v":"1.0.0","m":0,"n":1,"sm":0}	CHK	

Received by WiFi module:
55 AA	03	02		00 00		04	
HEADER	VER=03	McuConf		LEN		CHK	

Sent by WiFi module:
55 AA	00	02		00 00		01	
HEADER	VER=00	McuConf		LEN		CHK	

Sent by WiFi module:
55 AA	00	08		00 00		07	
HEADER	VER=00	QueryInitStatus		LEN	INVALID date			CHK	

Received by WiFi module:
55 AA	03	00		00 01	01	04	
HEADER	VER=03	Heartbeat		LEN	01	CHK	

Sent by WiFi module:
55 AA	00	00		00 00		FF	
HEADER	VER=00	Heartbeat		LEN		CHK	

Sent by WiFi module:
55 AA	00	08		00 00		07	
HEADER	VER=00	QueryInitStatus		LEN	INVALID date			CHK	

Received by WiFi module:
55 AA	03	03		00 00		05	
HEADER	VER=03	WifiState		LEN		CHK	

Sent by WiFi module:
55 AA	00	03		00 01	04	07	
HEADER	VER=00	WifiState		LEN	04	CHK	

Received by WiFi module:
55 AA	03	90		00 04	03091718	D1	
HEADER	VER=03	Unk		LEN	03091718	CHK	

Sent by WiFi module:
55 AA	00	08		00 00		07	
HEADER	VER=00	QueryInitStatus		LEN	INVALID date			CHK	

Received by WiFi module:
55 AA	03	00		00 01	01	04	
HEADER	VER=03	Heartbeat		LEN	01	CHK	

Sent by WiFi module:
55 AA	00	00		00 00		FF	
HEADER	VER=00	Heartbeat		LEN		CHK	

Sent by WiFi module:
55 AA	00	08		00 00		07	
HEADER	VER=00	QueryInitStatus		LEN	INVALID date			CHK	

Sent by WiFi module:
55 AA	00	00		00 00		FF	
HEADER	VER=00	Heartbeat		LEN		CHK	

Received by WiFi module:
55 AA	03	00		00 01	01	04	
HEADER	VER=03	Heartbeat		LEN	01	CHK	

Sent by WiFi module:
55 AA	00	08		00 00		07	
HEADER	VER=00	QueryInitStatus		LEN	INVALID date			CHK	

Sent by WiFi module:
55 AA	00	08		00 00		07	
HEADER	VER=00	QueryInitStatus		LEN	INVALID date			CHK	

Sent by WiFi module:
55 AA	00	00		00 00		FF	
HEADER	VER=00	Heartbeat		LEN		CHK	

Received by WiFi module:
55 AA	03	00		00 01	01	04	
HEADER	VER=03	Heartbeat		LEN	01	CHK	

Sent by WiFi module:
55 AA	00	08		00 00		07	
HEADER	VER=00	QueryInitStatus		LEN	INVALID date			CHK	

Sent by WiFi module:
55 AA	00	03		00 01	04	07	
HEADER	VER=00	WifiState		LEN	04	CHK	

Received by WiFi module:
55 AA	03	03		00 00		05	
HEADER	VER=03	WifiState		LEN		CHK	

Sent by WiFi module:
55 AA	00	24		00 01	BE	E2	
HEADER	VER=00	Unk		LEN	BE	CHK	

Received by WiFi module:
55 AA	03	24		00 00		26	
HEADER	VER=03	Unk		LEN		CHK	

Sent by WiFi module:
55 AA	00	1C		00 08	011A011714103A05	B9	
HEADER	VER=00	Date		LEN	bOk=1 26/1/23 20:16:58	CHK	

Received by WiFi module:
55 AA	03	1C		00 00		1E	
HEADER	VER=03	Date		LEN		CHK	

Sent by WiFi module:
55 AA	00	23		00 01	01	24	
HEADER	VER=00	Unk		LEN	01	CHK	

Received by WiFi module:
55 AA	03	22		00 15	090400010017020004000000001802000400000000	82	
HEADER	VER=03	Unk		LEN	090400010017020004000000001802000400000000	CHK	

Sent by WiFi module:
55 AA	00	23		00 01	01	24	
HEADER	VER=00	Unk		LEN	01	CHK	

Received by WiFi module:
55 AA	03	22		00 15	0102000400000115020200040000001A0304000102	82	
HEADER	VER=03	Unk		LEN	0102000400000115020200040000001A0304000102	CHK	

About Author
tplewa
tplewa wrote 6727 posts with rating 988 , helped 222 times. Live in city Warszawa. Been with us since 2003 year.

Comments

p.kaczmarek2 23 Jan 2026 23:56

An interesting device, and with the new BK. More and more of it on the market. It's nice to see someone messing about with it, although I myself prefer to use Zigbee for battery-powered devices, WiFi... [Read more]

tplewa 24 Jan 2026 00:14

Yes I know ZigBee works better for such equipment.... ...although this is more fun than any serious home automation hehe. I just put HA on the VM to practice a bit and implement integrations with my BMS....... [Read more]

p.kaczmarek2 24 Jan 2026 00:24

Go ahead and redesign your next device, I'll try to help too. Post a firmware backup then we'll try, maybe @divadiow can help. I would personally think of a slightly different form of experiment... [Read more]

tplewa 24 Jan 2026 01:24

Exactly BL55072 going over I2C. Here, you could boldly knock out the TuyaMCU and plug directly into the BL55072.... ...except that the segments would have to be configurable, because from what I checked... [Read more]

sq3evp 24 Jan 2026 18:46

Which standard is more economical? Tuya or Zigbee? I have some on Tuya, not sure if Zigbee is worth it? Radio coverage who has better? [Read more]

tplewa 24 Jan 2026 20:41

Ok... TH08E works with OpenBK although from what I've noticed sometimes it doesn't download data from NTP and the date and time on the display is erased - there were also a few cases that it sent values... [Read more]

tplewa 26 Jan 2026 00:26

A little summary of the fight against TH08E and TH08C... 1. Problem with identical MAC addresses after uploading OpenBK Unlike the fact that these thermometers are based on the... [Read more]

sq3evp 26 Jan 2026 09:47

Interesting device - must buy and test. Thanks for the material - it will be motivation to buy and play with reprogramming. [Read more]

tplewa 26 Jan 2026 13:06

@sq3evp - if you have some spare time why not. On Chinese portals you can buy such freebies relatively cheaply so the entry threshold is relatively low. I myself, as I mentioned, fired up Home Assistants... [Read more]

p.kaczmarek2 27 Jan 2026 20:54

It seems to me that the date problem could be solved here: https://obrazki.elektroda.pl/7556917200_1769543525_bigthumb.jpg You need to add a condition to send an acknowledgement only after the response... [Read more]

tplewa 27 Jan 2026 21:22

@pkaczmarek2 I was thinking of something like that with NTP. However, it has to be included in the code that this condition is only taken into account when the ntp driver is loaded... So far, as... [Read more]

p.kaczmarek2 27 Jan 2026 22:39

However, we cannot do this rigidly, because e.g. door sensors do not need NTP. Values look ok: https://obrazki.elektroda.pl/3393848200_1769546039_bigthumb.jpg https://obrazki.elektroda.pl/8780465300_1769546065_bigthumb.jpg... [Read more]

tplewa 27 Jan 2026 23:17

As for the values, yes only the names in the OBK are a bit misleading ;) CMD 0x02 - McuConf - According to the documentation (Tuya Developer) Serial Port Protocol "Report the network status of the... [Read more]

p.kaczmarek2 28 Jan 2026 00:01

This is the skeleton of the automatic TuyaMCU test, which can be fired up on Windows: void Test_TuyaMCU_TH08() { SIM_ClearOBK(0); SIM_UART_InitReceiveRingBuffer(2048); CMD_ExecuteCommand("startDriver... [Read more]

tplewa 28 Jan 2026 07:34

@pkaczmarek2 Okay I think I have a problem - although today I can barely see out of my eyes and I'm falling on my snout from fatigue ;) namely CMD 0x02: 55 AA 03 02 00 00 04 - this is "Query... [Read more]

FAQ

TL;DR: TH08E/TH08C use TuyaMCU over BK7238; Date frame is 8 bytes and DP 0x90 carries 4 bytes. "Get cached DP command (0x90)." [Elektroda, tplewa, post #21817552]

Why it matters: This FAQ helps you fix time/temperature updates and decode frames on TH08E/TH08C with OpenBK, fast.

Quick Facts

What’s the difference between TH08E and TH08C for time and units?

TH08C can switch 12/24‑hour time and °C/°F by button clicks that normally toggle the backlight. TH08E lacks these user-facing toggles in the shared logs. Both use the same BK7238 module and similar TuyaMCU framing. [Elektroda, tplewa, post #21817552]

Which TuyaMCU frames were observed on TH08E/TH08C?

Logs show Heartbeat (0x00), Product (0x01), McuConf (0x02), WifiState (0x03), QueryInitStatus (0x08), Date (0x1C), and Cached DP (0x90). This set is sufficient to negotiate basics and push time to the display. [Elektroda, tplewa, post #21817552]

How long is the Date (0x1C) payload?

The Date frame uses length 0x0008. An example sent frame is: 55 AA 00 1C 00 08 ... with an 8‑byte payload representing the current date and time. This enables accurate clock updates from NTP. [Elektroda, tplewa, post #21817552]

What does TuyaMCU command 0x90 mean here?

0x90 is used as “Get cached DP command.” Captured responses show a 4‑byte payload (e.g., 03 09 17 18). "Get cached DP command (0x90)." This helps retrieve stored datapoints after restarts. [Elektroda, tplewa, post #21817552]

Why does my TH08E stop updating the time after boot?

A CEN line configuration with flags 10, 37, and 43 triggers poor communication. The TuyaMCU then powers down the BK7238 and the display clock freezes. Disable those flags and retest the serial session. [Elektroda, tplewa, post #21817552]

How do I push accurate time to the display with OpenBK?

Enable NTP and send Date (0x1C). Example autoexec: startDriver TuyaMCU; startDriver tmSensor; startDriver NTP; ntp_setServer; ntp_timeZoneOfs. The device then sends 0x1C with 8 bytes to sync the clock. [Elektroda, tplewa, post #21817552]

What is Tuya and what is TuyaMCU in this context?

Tuya provides IoT modules and a serial protocol between an MCU and a Wi‑Fi/BLE module. Here, TuyaMCU frames coordinate time, product info, states, and datapoints between the BK7238 and the display controller. [Elektroda, tplewa, post #21817552]

What is OpenBK/OpenBeken in this thread?

OpenBK is custom firmware for BK72xx chips. It replaces stock Tuya firmware, enabling direct control, MQTT, and NTP time without Tuya Cloud. The author flashed OpenBK and captured TuyaMCU traffic for TH08E. [Elektroda, tplewa, post #21817552]

How can I replicate the author’s OpenBK setup quickly?

  1. startDriver TuyaMCU.
  2. startDriver tmSensor.
  3. startDriver NTP, then set ntp_setServer and ntp_timeZoneOfs. This sequence produced valid Product, McuConf, and Date frames in captured logs. [Elektroda, tplewa, post #21817552]

Do I need to join Tuya Cloud for sensor readings?

No. With OpenBK + TuyaMCU, the device exchanges frames locally. The author even tested after removing the sensor from the Tuya account, validating standalone behavior via serial logs. [Elektroda, tplewa, post #21817552]

What statistic from the captures helps troubleshooting?

Date frame length is exactly 8 bytes, and Cached DP 0x90 returns 4 bytes. Use these lengths to validate parsers and checksums during debugging. [Elektroda, tplewa, post #21817552]

What edge case should I watch for during pairing or resets?

After repeated QueryInitStatus (0x08) with invalid timestamps, the unit can loop Heartbeats and stall time updates. Ensure NTP runs and that you send a correctly packed 0x1C frame. [Elektroda, tplewa, post #21817552]

Why do I see VER 0x03 from the MCU and VER 0x00 from Wi‑Fi replies?

The logs show MCU-to-module frames labeled VER=03 and module replies labeled VER=00. Parsers should treat version fields per direction to avoid mismatches. [Elektroda, tplewa, post #21817552]

Can TH08C’s button change format without firmware edits?

Yes. TH08C uses button click counts to toggle 12/24‑hour and °C/°F at the device level. That behavior appears independent of OpenBK in the thread description. [Elektroda, tplewa, post #21817552]

What’s a safe starting point for decoding these frames?

Log Heartbeat→Product→McuConf→WifiState→Date sequence, then add 0x90 handling. Verify LEN fields (8 for Date, 4 for 0x90) and checksum before higher‑level parsing. [Elektroda, tplewa, post #21817552]

What does a successful time set look like in hex?

Example: 55 AA 00 1C 00 08 01 1A 01 17 0A 34 21 05 ... . That payload encodes day, month, year, hour, minute, and second, confirming valid Date delivery. [Elektroda, tplewa, post #21817552]
Generated by the language model.
%}