FAQ
TL;DR: dpID 2 outputs 0-100 % smoke, peaking at 99 % in dense smoke [Elektroda, aleshinalekseya, post #20719757] “Smoke detection is dpID 2, range 0-100” [Elektroda, p.kaczmarek2, post #20719769] Flash only the CB3S; MCU stays stock. Use 9600 bps, battery power, and an OpenBK autoexec.bat to expose smoke & battery in Home Assistant.
Why it matters: Correct mapping avoids false alarms and bricked modules.
Quick Facts
• Wi-Fi module: Tuya CB3S (BK7231T SoC) [Elektroda, arhismece, post #20690604]
• Control MCU: CX32L003F8, UART at 9600 bps [Elektroda, groove6j, post #21436840]
• Smoke value: Integer 0-100 on dpID 2; alarm often starts ≈20 % [Elektroda, aleshinalekseya, post #20719812]
• Battery: 9 V block; dpID 15 gives 0-100 % while dpID 14 reports low/mid/high [Elektroda, aleshinalekseya, post #20719757]
• Street price: US $9–12 on AliExpress (Oct 2023) [AliExpress Listing]
What chips are inside the Tuya Wi-Fi smoke detector?
The radio is a Tuya CB3S module using a BK7231T Wi-Fi/MCU, while smoke processing and power control run on a separate CX32L003F8 ARM-M0 microcontroller [Elektroda, arhismece, post #20690604]
Which UART baud rate should I use to capture TuyaMCU packets?
Most boards ship at 9600 bps; users saw clean traffic and functioning OpenBK integration at that speed [Elektroda, groove6j, post #21436840] A few early samples responded at 115 200 bps, so test both if silent [Elektroda, p.kaczmarek2, post #20803879]
How are the key dpIDs mapped?
dpID 1 = alarm status (0 = alarm, 1 = normal); dpID 2 = smoke concentration 0-100 %; dpID 14 = battery level enum (low/middle/high); dpID 15 = battery percentage 0-100 % [Elektroda, moustic999, post #20723099]
How do I capture dpID changes quickly?
- Leave the 9 V battery in place and wire CB3S GND + RX to a USB-UART.
- Set the terminal to 9600 bps, 8-N-1.
- Start logging, press tamper and test buttons, then stop logging and note which dpID changed [Elektroda, p.kaczmarek2, post #20719397]
Do I power the Wi-Fi module externally during sniffing or flashing?
No. External 3.3 V keeps BK7231T awake while the CX32L003F8 sleeps, so no packets appear. Always power the whole board through its battery terminals for valid communication [Elektroda, p.kaczmarek2, post #20691641]
What autoexec.bat works with OpenBK?
A minimal script is:
startDriver TuyaMCU
startDriver tmSensor
tuyaMCU_setBaudRate 9600
setChannelLabel 2 Smoke
setChannelType 2 SmokePercent
linkTuyaMCUOutputToChannel 2 val 2
setChannelLabel 14 Battery
setChannelType 14 ReadOnlyLowMidHigh
linkTuyaMCUOutputToChannel 14 enum 14
setChannelLabel 15 BatteryPct
setChannelType 15 BatteryPercent
linkTuyaMCUOutputToChannel 15 val 15 [Elektroda, groove6j, post #21436840]
How can I flash CB3S without desoldering it?
Lift or remove resistors R20 and R23 (they sit on CB3S TX/RX lines), connect 3.3 V, GND, TX, RX, then write the BK7231T image. Replace the resistors afterward to restore MCU control [Elektroda, groove6j, post #21436840]
Why did my module’s MAC change to C8:47:8C:00:00:00 after a failed write?
A full flash erase clears RF calibration. Restore the 2 MB backup or inject a valid RF section to regain the real MAC and stable Wi-Fi [Elektroda, wtv, post #20807426]
What happens if I keep the Wi-Fi module powered permanently?
Continuous power drains the 9 V battery in weeks instead of months and prevents the MCU from sleeping, but packets still stop because the MCU does not issue UART commands while asleep [Elektroda, p.kaczmarek2, post #20691641]
Is there a siren-silencer function?
dpID 16 appears to toggle the buzzer; early tests show the alarm muted when 16 is set, but more validation is needed [Elektroda, groove6j, post #21436840]
How long does the 9 V battery last?
Users report a single 9 V block running for roughly 12 months with two alarm tests per month [User logs, 2024]; low battery is flagged when dpID 15 drops below 33 % [Elektroda, aleshinalekseya, post #20719757]
What edge cases can break communication?
- Wrong baud rate—115 200 bps yields gibberish.
- External power—MCU sleeps, UART silent.
- Cleared RF section—module boots with null MAC and no Wi-Fi [Elektroda, p.kaczmarek2, post #20807459]