logo elektroda
logo elektroda
X
logo elektroda

Tuya/IHSENO T1-U-HL Soil Tester Sensor: BK7238, MindMotion 32G0001 TuyaMCU, HGSEMI C5551 Analysis

divadiow  9 837 Cool? (+3)
📢 Listen (AI):
Tuya T1-U-HL module with labeled signal and power pins

Here I'll present my findings with a new Tuya device based on the Beken BK7238 MCU, packaged as a Tuya T1-U-HL module. For more general information relating to the T1 series and BK7238 uses see:

T1, T1-M, T1-3S Tuya BK7238 module datasheet, pinout and flashing, Home Assistant
NiceMCU XH-WB3S BK7238 Flashing, Testing, Pinout, Development, Porting
NiceMCU XH-WB3S BK7238 tutorial - quickstart, flashing, sensors, MQTT and Home Assistant
NiceMCU BK7238/T1 IR remote control support presentation tutorial - Home Assistant automations

This is a 'Soil Tester Sensor' from Ali Express.
Screenshot of Tuya soil sensor product page showing device, app, and function icons


Soil moisture sensor with package and user manual on a wooden table Side of green packaging box showing Zigbee 3.0, WiFi, and Bluetooth icons. Green box labeled “Take Good Care of Every Plant” lying on wooden surface. Smart sensor package label with manufacturer info and barcode Green box labeled “Soil Tester Sensor” with product model WF-TR-1 and barcode. Green soil moisture sensor box with specs list and QR codes

After popping off the battery cover, just 4 small cross-head screws allow for the removal of half the case

Close-up of a probe-style soil sensor with a plastic casing White sensor with plastic casing and metal probe lying on a wooden surface Soil sensor with white plastic housing and black probe, placed on wooden background Disassembled soil sensor case with battery holder and screws on wooden surface Open soil sensor case showing two AA battery slots with springs and cover Disassembled soil sensor with battery compartment open and terminals exposed Opened soil sensor with white casing and exposed battery compartment White plastic sensor with a button on top, lying on a wooden surface

to reveal the main module - the T1-U-HL, a 16kb MindMotion MM32G0001 Arm Cortex-M0 TuyaMCU (also seen here) and an HGSEMI C5551 WSAH SOIC8 chip.

Tuya T1-U-HL module and components on IHSENO TY_WiFi_Soil_V1 sensor PCB Tuya T1-U-HL module and IC on PCB of IHSENO TY WiFi Soil V1 device Close-up of PCB with push button, HGSEMI C5551 chip, and SMD components. Close-up of PCB with MM32G0001 chip and Tuya T1-U-HL module with exposed test pads

Unfortunately, the back of the PCB cannot be examined without de-soldering the battery terminals. There was little to be gained, however.

Bottom of black PCB with green wire and visible copper traces

T1-U-HL details - https://developer.tuya.com/en/docs/iot/T1-U-HL-Module-Datasheet?id=Kdfp5j893qwxg

Top view of Tuya T1-U-HL module with pin numbers and size measurements Bottom view of T1-U-HL module with labeled pins and mechanical dimensions

Pin No.SymbolI/O typeDescription
1P14I/OA normal GPIO pin, corresponding to Pin 19 on the IC. It can be reused as SPI_SCK.
2P16I/OA normal GPIO pin, corresponding to Pin 20 on the IC. It can be reused as SPI_MOSI.
3P23I/OA normal GPIO pin, corresponding to Pin 16 on the IC.
4P22I/OA normal GPIO pin, corresponding to Pin 15 on the IC.
5ADCI/OAn ADC pin, corresponding to P20 (Pin 13) on the IC.
6RX2I/OUART_RX2, corresponding to P1 (Pin 30) on the IC.
7TX2I/OUART_TX2 to print logs, corresponding to P0 (Pin 31) on the IC.
8P24I/OSupport hardware PWM4, corresponding to Pin 17 on the IC.
9P9I/OSupport hardware PWM3, corresponding to Pin 27 on the IC.
10P26I/OSupport hardware PWM5, corresponding to Pin 23 on the IC.
11P6I/OSupport hardware PWM0, corresponding to Pin 24 on the IC.
12P8I/OSupport hardware PWM2, corresponding to Pin 26 on the IC.
13GNDPGround pin.
143V3P3.3V power pin.
15TX1I/OUART_TX1 to send user data, corresponding to P11 on the IC (corresponding to Pin 29 on the IC).
16RX1I/OUART_RX1 to receive user data, corresponding to P10 on the IC (corresponding to Pin 28 on the IC).
17P28I/OA normal GPIO pin, corresponding to Pin 12 on the IC.
18CENI/OThe reset pin, active low, and pulled up internally. It is compatible with the designs of other modules. Corresponding to Pin 11 on the IC.
19P21I/OA normal GPIO pin, corresponding to Pin 14 on the IC.
20P17I/OA normal GPIO pin, corresponding to Pin 22 on the IC. It can be reused as SPI_MISO.
21P15I/OA normal GPIO pin, corresponding to Pin 21 on the IC. It can be reused as SPI_CS


Tuya T1-U-HL module with labeled signal and power pins

Feeding 3V through the batters terminals and from TX2 the boot log is captured at 115200 baud:
Code: Text
Log in, to see the code


Unfortunately, the MindMotion MCU gets in the way of any flash read efforts on RX1/TX1, even with the MCU Nrst held low, so the module had to be hot air gun removed for flashing away from the MCU.

Sensor with Tuya T1-U-HL module wired to programmer via test leads

Tuya T1-U-HL module with BK7238 MCU attached to a test board Close-up of PCB with TY_WiFi_Soil_V1 module and components under green coatingTuya T1-U-HL module with test wires soldered, placed on a blue surface

Easy Flasher reads whole flash successfully in BK7238 mode

Screenshot of BK7231 Easy UART Flasher showing “Reading success!” message
Code: Text
Log in, to see the code


As a precaution a backup is also taken with BKFIL
Code: Text
Log in, to see the code


Code: Text
Log in, to see the code





Regarding the TSSOP20 MM32 MCU (datasheet attached) we read this overview
Code: Text
Log in, to see the code


Comparison table of MM32G0001 microcontrollers highlighting TSSOP20 variant

And to put how it connects to the 4 test pads and to the T1-U-HL in context:
Close-up of PCB with Tuya module and labeled MM32G0001 microcontroller pins.

Maybe I should have another go at reading the flash with J-Link, I appear to have been unsuccessful with the other device.



With the backup flashed to the NiceMCU and setup to talk to the Tuya Module Debugging Assistant with product ID rknwi0ctbbghzgla we can pair it with the Tuya app to check firmware versions, device appearance, options and readings

View of MCU simulation in Tuya Module Debugging Assistant with diagnostic data

It seems it's just a glorified temperature and humidity sensor.

App screen showing successful addition of a soil sensor to Tuya systemApp screen showing soil sensor with 0% humidity and 0.0°C temperature readings Mobile app screenshot showing humidity graph for 2025/08/11 App settings screen showing battery level at 0% Device update screen indicating no updates available

with the Tuya app linked to a dev account we can retrieve the dpIDs, needed for OpenBK7238 setup
Code: JSON
Log in, to see the code


which when made pretty:

Code: JSON
Log in, to see the code


Interesting, separate dpIDs for Fahrenheit and a switcher dpID. I don't see a change function in the app. The manual offers no clues.
Tuya soil tester sensor manual with functions and app QR codes Soil sensor user manual with device diagram and usage instructions




OpenBK7238 flashed over the top of factory firmware. I chose to overwrite the bootloader because keeping the factory BL meant OTA updates were not successful.

Screenshot of Easy UART Flasher showing successful BK7238 flash operation

PCB and module cleaned up. Excess solder removed with solder braid.

T1-U-HL module next to TY_WiFi_Soil_V1 PCB, pads and microchips visible

It appears the top two pads are only there to secure module to PCB - no traces on either side. It looks like P21 goes somewhere but I've yet to get any continuity to any component.

With the module soldered back in and OBK unconfigured, you get 20s from button-push wake-up until the MCU withdraws power from the T1 module. This gives just about enough time to navigate to the web app, create autoexec and set a starting script

With a basic starter:
Code: Text
Log in, to see the code


I get no readings and no response to tuyaMcu_sendQueryState. Flag 26 ([UART] Use alternate UART for BL0942, CSE, TuyaMCU, etc) toggled doesn't change that.

This is where I will pause to investigate TuyaMCU comms to the NiceMCU with TMDA and to research the HGSEMI chip.

About Author
divadiow
divadiow wrote 3765 posts with rating 642 , helped 314 times. Live in city Bristol. Been with us since 2023 year.

Comments

divadiow 11 Aug 2025 22:07

TMDA says it is receiving a heartbeat from the NiceMCU https://obrazki.elektroda.pl/6584532900_1754942580_bigthumb.jpg but OBK doesn't log a valid heartbeat ExtraDebug:TuyaMCU:TuyaMCU heartbeat_valid... [Read more]

p.kaczmarek2 14 Aug 2025 09:46

Very nice analysis, here's some little info from me - as far as I know, tuyaMcu_sendQueryState is only for core TuyaMCU (non-battery powered). So it is fully expected for battery powered (tmSensor) to... [Read more]

divadiow 14 Aug 2025 10:21

OK sure, but on NiceMCU with no tmsensor running I would expect to see TuyaMCU responses in OpenBK7238 log. No heartbeat or any commands manually sent from TMDA are shown as received. [Read more]

p.kaczmarek2 14 Aug 2025 10:29

If the device is using Battery Powered Tuya Serial Protocol, then it will not reply to classic TuyaMCU driver. tmSensor (Battery Powered Tuya Protocol) is different, and, as far as I remember, the MCU... [Read more]

divadiow 14 Aug 2025 10:33

but to be sure OBK7238 itself works alright with TuyaMCU I switched to NiceMCU and TMDA. BK-N dev receives commands OK, BK7238 does not. Same autoexec on both. No tmsensor running, only TuyaMCU. [Read more]

p.kaczmarek2 14 Aug 2025 10:48

So you are saying that you are sending non-battery powered commands from TMDA? That could mean UART driver is not working correctly in BK7238 build. [Read more]

divadiow 14 Aug 2025 10:54

yes sir. take soil sensor out of the equation. take battery tmsensor out of the equation = OBK7238 doesn't seem to receive responses from TuyaMCU simulator whereas OBK7231 does. I can do it again to... [Read more]

divadiow 21 Aug 2025 21:27

back again. NiceMCU / Tuya Module Debugging Assistant TX/RX over P0/P1: TuyaMCU driver only. TMDA acknowledges heartbeats and will send query state response to BK7238 but BK7238 only prints this... [Read more]

divadiow 24 Aug 2025 17:14

Info:TuyaMCU:Received: 55 AA 03 01 00 46 7B 22 70 22 3A 22 72 6B 6E 77 69 30 63 74 62 62 67 68 7A 67 6C 61 22 2C 22 76 22 3A 22 31 2E 30 2E 30 22 2C 22 6D 22 3A 31 2C 22 6D 74 22 3A 31 2C 22 6E 22 3A 30... [Read more]

%}