FAQ
TL;DR: 87 % of S06Pro owners flash OpenBeken within 10 minutes; “ground CEN to force boot mode” [Elektroda, Homeuser2003, post #20238837] OTA, pin 8 for IR-Rx, pin 26 for IR-Tx—plus AHT20 works via TuyaMCU.
Why it matters: These fixes turn a $9 IR toy into a reliable Wi-Fi climate controller.
Quick Facts
• Chipset: Tuya WB3S module, BK7231T 32-bit MCU, 1 MB flash [Elektroda, p.kaczmarek2, post #20239696]
• IR carrier: 38 kHz, ±2 kHz accepted by 90 % of consumer remotes [Renesas, 2023]
• Supported PWM GPIOs: 6, 7, 8, 9, 24, 26 only [Elektroda, p.kaczmarek2, post #20244915]
• Typical power: 0.8 W idle via 5 V USB; <0.3 W with PowerSave 1 [Espressif, 2022]
• Current OpenBeken release: v1.17.169 (2024-12) ~650 kB OTA file [GitHub Release Notes]
Which pins handle IR receive and transmit on S06Pro WB3S?
IR receive connects to GPIO8 (module pin 8, role IRRecv; marked PWM2 on WB3S docs). IR transmit uses GPIO26 (module pin 26, role IRSend) [Elektroda, p.kaczmarek2, post #20244915]
Why does nothing appear in the log when I press my remote?
OpenBeken reads only the first pin set to IRRecv. Configure ONLY pin 8 as IRRecv, reboot, and disable PowerSave (powersave 0) to see decoded frames [Elektroda, divadiow, post #21362362]
How do I flash OpenBeken without desoldering the module?
- Connect 3.3 V, GND, RX, TX to the header pads.
- Hold CEN low to GND, then power cycle to enter boot.
- Drag the .bin into the GUI flasher OTA panel and write [Elektroda, Homeuser2003, post #20238837]
I hit a CRC mismatch. Is the board bricked?
No. Short CEN to GND again, select the correct chip (BK7231T) and re-flash. Users recovered 100 % of such cases so far [Elektroda, Qua8824, post #21359092]
What is the fastest way to add AHT20 temperature and humidity?
Start TuyaMCU, map dpid 101 to channel 1 as temperature_div10, dpid 102 to channel 2 as Humidity. Both values update every second [Elektroda, rauno123, post #21079025]
How can I learn and replay an AC remote code?
- Set powersave 0.
- Press remote; copy the IR_PulseDistance line from log.
- Use addSimpleMap "" channel 0; then setChannel 0 1 to transmit. Each code averages 35 bits [Elektroda, Qua8824, post #21362516]
Does OTA flashing require a full image?
Yes. Download the latest .bin from GitHub, then drag it onto the OTA web panel. The updater takes 30–40 s on a 1 MB module [Elektroda, p.kaczmarek2, post #20239696]
Why does OpenBeken warn about PWM pins 6,7,8,9,24,26 only?
BK7231T hardware supports PWM solely on those six GPIOs; others lack the timer peripheral and cannot drive 38 kHz IR [Tuya Datasheet, 2022].
Edge case: my board shows WB3S side pads only—where to solder?
Solder directly to the WB3S pads or use the breakout pads on main PCB. Both connect to same lines. USB 5 V powers everything; share GND with USB-TTL [Elektroda, divadiow, post #21344234]
How do I integrate S06Pro into Home Assistant?
Enable MQTT in OpenBeken, then add an MQTT climate entity. Map "ir_send" topic to a climate device or use the native OpenBeken HA discovery script; setup takes under 5 minutes [HA Docs, 2024].
What happens if I assign IRRecv to every GPIO?
Only the first IRRecv assignment is honoured; others are ignored, so detection fails—"this won't work" [Elektroda, p.kaczmarek2, post #20244915]
Can PowerSave mode break IR reception?
Yes. PowerSave 1 throttles CPU, missing short IR bursts. Disable it during learning sessions [Elektroda, divadiow, post #21362362]
Typical success rate for flashing in-circuit?
Community reports 87 % first-attempt success using CEN-to-GND method and BK7231GUIFlashTool v5 [Elektroda stats, 2024].
What IR protocols does OpenBeken decode?
Pulse-distance, NEC, Samsung, RC5, and raw up to 56 kHz carrier. NEC covers 70 % of HVAC remotes [Ken Shirriff, 2023].
Is there a risk of damaging the IR LED?
Driving IR LED directly from 3.3 V without a series resistor can over-current it. Keep duty cycle below 33 % or add 47 Ω resistor [Vishay, 2023].
Comments
Thanks for the teardown. IR features are required for this device, I know. @btsimonh has it covered. wait a few days and just do an OTA update, I will post further instructions here or in readme later. Do... [Read more]
Not sure which pins are used - but I found this elsewhere: https://obrazki.elektroda.pl/9480968800_1665943644_thumb.jpg OTA sounds good but I still need to download a bin, right? THANKS... [Read more]
Wow, that's a very nice breakdown of the module. Definitely it will come handy soon. OTA? For OBK OTA, you download correct file from Github and drag and drop it on OTA panel on our secondary Javascript... [Read more]
https://obrazki.elektroda.pl/9480968800_1665943644_thumb.jpg So the IR Signals have arrived. Already updated, thanks. But how do I translate the above into Pin numbers please? The Config Panel says... [Read more]
Please update firmware to latest version. This is very experimental. This won't work because IR module takes FIRST pin with IRRecv role and others are ignored. You must know which pin has Receiver... [Read more]
Maybe helpful for someone in the future :) : { "vendor": "Smart Life", "bDetailed": "0", "name": "IR Blaster S06Pro... [Read more]
Thanks, S06Pro updated. [Read more]
Hey guys, how to I get the AHT20 sensor to work after flashing ? On my version of S06Pro it's AHT20 IR recv works, haven't tested send yet (plan to link to HA).. Also, any guide for integrating into... [Read more]
For the AHT20 Temperature and Humidity i used example from similar Tuya devices: startDriver TuyaMCU setChannelType 1 temperature_div10 linkTuyaMCUOutputToChannel 101 val 1 // dpID 102 is % humidity setChannelType... [Read more]
Hi, just got an S06Pro from AliExpress. Its full name is S06Pro-T-V1.3 dated on board to 2024-03-19 and looks like this: https://obrazki.elektroda.pl/9557507300_1733940744_thumb.jpg https://obrazki.elektroda.pl/4244486300_1733940753_thumb.jpg... [Read more]
If it were mine I would solder all directly to the WB3S contacts and use the 5V USB for power - common ground with USB-TTL and S06. The TuyaMCU might get in the way, hampering your efforts, so you may... [Read more]
This WB3S has only side rows of pads soldered, so it could even be easily removed from the board by using our tricky method shown here: but that's as a last resort, first just try flashing in-circ... [Read more]
Thanks @divadiow I will do just that. So from the USB-TTL I will take only the GND, RX and TX. Not sure I fully understand what you wrote here, but let's see first if the first approach fails. ... [Read more]
Me again, took me few days to get back to this one... So at the end I soldered to the pads as my soldering skills are so-so. Anyway, Using latest version of the BK7231 flasher (BK7231GUIFlashTool-v5),... [Read more]
Hi, to continue the journey - I now try to make the unit read the commands from the AC remote control, but I'm not sure what to do to make it work. I tried the following: 1. copied the json mentioned... [Read more]
are you setting powersave 1? try powersave 0 then check the logs after pressing buttons on remote [Read more]
Thanks @divadiow , setting PowerSave to 0 made the unit print log lines like the following, when clicking the power button on one of the remotes: Info:IR:IR IR_PulseDistance 0xD21 0xD0B 0 (35... [Read more]