logo elektroda
logo elektroda
X
logo elektroda

Flashing Beca BAC-002 Thermostat with OpenBK and Adding Sensor

shakin89 3594 25

TL;DR

  • Plans to flash a Beca BAC-002 thermostat with OpenBK and modify it with a directly soldered temperature/humidity sensor.
  • The thermostat exists in two hardware versions, using either a WB3S or CB3S Wi-Fi chipset, and the mod aims to read relay state too.
  • Local-Tuya mapping already identifies dPID 1, 2, 3, 4, 5, 6, 102, and 103 for power, temperatures, modes, lock, HVAC, and fan control.
  • The main open questions are whether OpenBK flashing works on both chip versions and whether the relay state can be exposed through the added sensor mod.
Generated by the language model.
ADVERTISEMENT
📢 Listen (AI):
  • Hi all, i would like to flash my thermostat with openbk.
    There are several version of this thermostat.
    The oldest has a WB3S chipset inside.
    The newest has a CB3S chipset.
    I would also like to add a temperature/humidity sensor to the wifi chip soldering it directly on the board and i'd like to know the state of the relay (on or off) with this little mod (Link)
    Control panel of a Beca Smart thermostat with LCD screen and touch buttons. Thermostat circuit board with CB3S chip. Thermostat circuit board with visible CB3S chipset.
    Close-up of CB3S module on a circuit board. View of an open thermostat with visible electronic components on a circuit board. Close-up of the inside of a thermostat with visible relays and other electronic components. Close-up of the internal components of a thermostat with three HUI KE relays mounted on a circuit board. Close-up of the internal electronic circuit of a thermostat with visible components on a green board.

    I've already the thermostat working with local-tuya, an integration for home assistant that doesn't rely on tuya cloud but thermostats aren't disconnected from the cloud.
    So these are dpID the thermostat is using.

    Spoiler:
    name: BAC-002 Thermostat (C) - WB3S chip
    primary_entity:
    entity: climate
    dps:
    - id: 1
    type: boolean
    name: power
    mapping:
    - dps_val: false
    value: "off"
    hidden: true
    - id: 2
    type: integer
    name: temperature
    unit: C
    range:
    min: 10
    max: 70
    mapping:
    - scale: 2
    - id: 3
    type: integer
    name: current_temperature
    unit: C
    mapping:
    - scale: 2
    - id: 4
    type: string
    name: operation_mode
    mapping:
    - dps_val: "0"
    value: program
    icon: mdi:calendar
    - dps_val: "1"
    value: manual
    icon: mdi:hand-pointing-up
    hidden: true
    - id: 5
    type: boolean
    name: preset_mode
    mapping:
    - dps_val: true
    value: eco
    - dps_val: false
    value: comfort
    - id: 102
    type: string
    name: hvac_mode
    mapping:
    - dps_val: "0"
    value: cool
    icon: mdi:snowflake
    - dps_val: "1"
    value: heat
    icon: mdi:wheather-sunny
    - dps_val: "2"
    value: fan_only
    icon: mdi:fan
    - id: 103
    type: string
    name: fan_mode
    mapping:
    - dps_val: "0"
    value: auto
    icon: mdi:fan-auto
    - dps_val: "1"
    value: high
    icon: mdi:fan-speed-3
    - dps_val: "2"
    value: medium
    icon: mdi:fan-speed-2
    - dps_val: "3"
    value: low
    icon: mdi:fan-speed-1
    secondary_entities:
    - entity: light
    name: Display
    category: config
    deprecated: climate hvac_mode
    dps:
    - id: 1
    type: boolean
    name: switch
    mapping:
    - dps_val: true
    icon: "mdi:led-on"
    - dps_val: false
    icon: "mdi:led-off"
    - entity: lock
    name: Child Lock
    category: config
    dps:
    - id: 6
    type: boolean
    name: lock
    mapping:
    - dps_val: true
    icon: "mdi:hand-back-right-off"
    - dps_val: false
    icon: "mdi:hand-back-right"
    - entity: select
    name: Operation Mode
    dps:
    - id: 4
    type: string
    name: option
    mapping:
    - dps_val: "0"
    value: Program
    - dps_val: "1"
    value: Manual

    Cool? Ranking DIY
    About Author
    shakin89
    Level 3  
    Offline 
    shakin89 wrote 6 posts with. Been with us since 2024 year.
  • ADVERTISEMENT
  • #2 20896307
    p.kaczmarek2
    Moderator Smart Home
    Posts: 14580
    Help: 654
    Rate: 12604
    Hello, this should be easily doable, we actually already had a similiar topic here:
    https://www.elektroda.com/rtvforum/topic4003974.html
    Have you seen that?

    The topic above even includes the relay status read mod, I think.

    Still, I can guide you step by step through the procedure, if you want. So, let's start by making 2MB flash backup of the device. Do you know how to do that? Here are some resources:
    https://github.com/openshwprojects/BK7231GUIFlashTool
    https://www.youtube.com/@elektrodacom
    Keep in mind that with TuyaMCU you may need to temporary cut the UART connection from the MCU for the time of the flashing.
    Helpful post? Buy me a coffee.
  • ADVERTISEMENT
  • #3 20897613
    shakin89
    Level 3  
    Posts: 6

    First of all, thank you for all your effort on this project and thank you for your reply.
    I'm aware of the other thread, I've already studied it. I will try to backup the device and to flash the new firmware.
    I'm waiting for the pogo pin cable adapter to arrive, I have to flash a bunch of devices (7 devices) and I think it will be simpler to use pogo pin with a 3D printed adapter to keep them in place, instead of soldering all cables to every chip.

    I will update this thread during this week, after I receive all the components.
    Thanks in advance
    Have a nice day.
  • #4 20897615
    p.kaczmarek2
    Moderator Smart Home
    Posts: 14580
    Help: 654
    Rate: 12604
    Let's start with flashing and configuring one device, we need to test the whole setup first. I am not sure if just having pogo pins solves all problems, because you still may need to cut the connection to the MCU. Alternatively, you can find MCU datasheet and try to put it in the RESET state.
    Helpful post? Buy me a coffee.
  • #5 20908394
    shakin89
    Level 3  
    Posts: 6
    Sorry for late reply, very busy week.
    Yesterday i had some spare time. I've desoldered two resistor which communicate with MCU.
    No luck with pogo pins, so i've soldered four wires to wifi chip.
    At first attempt i've backed up the memory of the original wifi chip and flashed OpenBK7231N_QIO_1.17.406.bin.
    Everything was successful.
    It was late so i didn't go on, and shut down everything.
    This morning i've tried to read obk config, buth with no success.

    I've tried to desolder wires and connect everything up to the mains, but still no wifi hotspot comes up.
    So soldered again wires to 3.3V, GND RX1 and TX1.
    Trying to backup again but everytimes the backup starts, fails at somepoing
    Reading 0x10000... CheckRespond_FlashRead4K: ERROR
    Failed! There was no result to save.

    I've already tried to desolder wires and resolder them a few times, with no luck.
    Any help would be appreciated.
  • #6 20908698
    p.kaczmarek2
    Moderator Smart Home
    Posts: 14580
    Help: 654
    Rate: 12604
    OBK config will not help for TuyaMCU device. What does the TX2 log output say?
    Helpful post? Buy me a coffee.
  • #7 20909063
    shakin89
    Level 3  
    Posts: 6
    Well, i don't see any output connecting on tx2.
    I'm using putty in serial mode to see if there is an output, am i doing wrong?
    i'm using this as usb-uart adapter. Hope it is good.

    p.s. sorry for my noob question, it's my first time.
  • #8 20909105
    p.kaczmarek2
    Moderator Smart Home
    Posts: 14580
    Help: 654
    Rate: 12604
    how do you power your device, can you make a photo of connections?"
    Helpful post? Buy me a coffee.
  • #9 20909148
    shakin89
    Level 3  
    Posts: 6
    Close-up of an electronic module labeled CB3S on a circuit board.
    This is how i am powering the device. Now i'm trying to use a usb-esp01 adapter, to see if it helps. Now the led screen of the thermostat powers up. but still not getting the hotspot or web interface.
    cannot see it pop up in the router asking for an ip.


    this is what i've used til now.
    TX to RX1
    RX to TX1
    3V3 to pin 8
    GND to pin 9
    USB to TTL adapter with pin labels.

    P.S. i am trying even with an external power supply, but with no luck. I've attempted to reflash the firmware but at the end it gave me CRC error.

    is the chip still good? or i've messed it up?
  • #10 20909568
    p.kaczmarek2
    Moderator Smart Home
    Posts: 14580
    Help: 654
    Rate: 12604
    You are using your USB to UART converter incorrectly. You should use jumper to connect 3.3V to VCC on USB to UART converter to select 3.3V voltage levels and power the device externally from a reliable 3.3V source. This USB to UART converter will not provide enough current for flashing. Alternatively, you can get 5V from USB and connect it to the input of AMS1117-3.3V LDO regulator on the device board (if present) to get a stable 3.3V for WiFi module.

    Have you watched any of our BK7231 flashing tutorials on Youtube?
    https://www.youtube.com/@elektrodacom
    We just have a lot of them.
    This playlist (look for BK7231):
    https://www.youtube.com/watch?v=L6d42IMGhHw&list=PLzbXEc2ebpH0CZDbczAXT94BuSGrd_GoM
    Helpful post? Buy me a coffee.
  • #11 20915193
    shakin89
    Level 3  
    Posts: 6
    Hi,
    sorry for late reply. I haven't been able to flash new firmware. i will try to do it in a few days.
    During the first attempt, I have been able to backup the original flash. if you want it i can attach it.

    Meanwhile i've been able to flash another thermostat using tuyacloudcutter. It is functioning and now i have to configure pins on the esp web interface.

    i've been able to dissect the dump obtaining the storage json.
    I posted it to github tuyacloudcutter to make a new profile
  • ADVERTISEMENT
  • #12 21391966
    potl12
    Level 3  
    Posts: 6
    Hi all, i want to "hi-jack" this post to post my first response on the forum. I just finished flashing 11 of these units with a simple pogo-pin set-up so if anyone needs some easy solution to flash these units let me know.

    The problem I'd like to ask advice on here is if anybody knows how to connect an external sensor. My thermostats are mounted fairly close to the fan-coils and the blowing of hot air affects the sensor (which is directly on the touch panel). It would be much better to have an external sensor somewhere else. I was wondering if I could swap out the sensor in the bottom with another one. Please see the image of the most recent bht-002 pcb here:

    Image of bht-002 circuit board.

    thanks!
  • #13 21391977
    p.kaczmarek2
    Moderator Smart Home
    Posts: 14580
    Help: 654
    Rate: 12604
    Some Tuya thermostats support connecting external sensor out of the box, is it the case here? Do you have a manual?

    If not, then we will have to try more DIY approach, but there is one problem - sensor is connected to the MCU and not to WiFi module, so we don't have control over the reading process..

    Added after 33 [seconds]:

    Or maybe the MCU has a dpID for calibration? I saw it available once or twice.
    Helpful post? Buy me a coffee.
  • #14 21391982
    potl12
    Level 3  
    Posts: 6
    yeah this one does not support an external sensor out of the box so i'll probably have to go for the DIY approach. Please see the manual attached.
    I'm also posting the firmware backup for the other user who messaged me so we have a future reference for all.

    Edit: There is a dpID but it would be a guess as to what value I would need to set that?
    Attachments:
    • original-thermostat-firmware-112024.bin (2 MB) You must be logged in to download this attachment.
    • BAC-002 WIFI.pdf (14.05 MB) You must be logged in to download this attachment.
  • #15 21391983
    p.kaczmarek2
    Moderator Smart Home
    Posts: 14580
    Help: 654
    Rate: 12604
    Do you have it still paired with App? Does it have a calibration option there?

    Added after 43 [seconds]:

    EDIT: There is calibration mentioned in manual.
    Helpful post? Buy me a coffee.
  • #16 21391984
    potl12
    Level 3  
    Posts: 6
    >>21391983 No i never paired it with the app to begin with unfortuantely, but there is a menu setting. It's also visible in the manual
  • #17 21392001
    p.kaczmarek2
    Moderator Smart Home
    Posts: 14580
    Help: 654
    Rate: 12604
    Hm ok, we have a backup so we also can do dpID extraction, maybe @divadiow can also help. There are also some dpIDs in the first post.
    Helpful post? Buy me a coffee.
  • #18 21392023
    divadiow
    Level 38  
    Posts: 5027
    Help: 438
    Rate: 891
    Code: Text
    Log in, to see the code


    Code: JSON
    Log in, to see the code


    Code: Text
    Log in, to see the code


    combined:

    Code: JSON
    Log in, to see the code
  • #19 21392025
    p.kaczmarek2
    Moderator Smart Home
    Posts: 14580
    Help: 654
    Rate: 12604
    No calibration?
    Helpful post? Buy me a coffee.
  • #20 21392026
    potl12
    Level 3  
    Posts: 6
    So what are you saying is to try to use the temperature compensation dpID to "mimic" an external sensor by modifying what the internal sensor read? I've not seen this value being exposed by the tuya mcu.

    See here what the MCU reports through the HomeAssistant <-> ESPHome/Libretiny firmware I installed:
    
    [C][tuya.climate:336]: Tuya Climate 'Thermostat'
    [09:34:57][C][tuya.climate:338]:   Switch has datapoint ID 1
    [09:34:57][C][tuya.climate:341]:   Active state has datapoint ID 102
    [09:34:57][C][tuya.climate:344]:   Target Temperature has datapoint ID 2
    [09:34:57][C][tuya.climate:347]:   Current Temperature has datapoint ID 3
    [09:34:57][C][tuya.climate:352]:   Eco has datapoint ID 5
    [09:34:57][C][tuya.sensor:029]: Tuya Sensor 'Temperature'
    [09:34:57][C][tuya.sensor:029]:   Device Class: 'temperature'
    [09:34:57][C][tuya.sensor:029]:   State Class: ''
    [09:34:57][C][tuya.sensor:029]:   Unit of Measurement: '°C'
    [09:34:57][C][tuya.sensor:029]:   Accuracy Decimals: 1
    [09:34:57][C][tuya.sensor:030]:   Sensor has datapoint ID 3
    [09:34:57][C][tuya.sensor:029]: Tuya Sensor 'Temperature (external)'
    [09:34:57][C][tuya.sensor:029]:   Device Class: 'temperature'
    [09:34:57][C][tuya.sensor:029]:   State Class: ''
    [09:34:57][C][tuya.sensor:029]:   Unit of Measurement: '°C'
    [09:34:57][C][tuya.sensor:029]:   Accuracy Decimals: 1
    [09:34:57][C][tuya.sensor:030]:   Sensor has datapoint ID 102
    [09:34:57][C][tuya.sensor:029]: Tuya Sensor 'Valve'
    [09:34:57][C][tuya.sensor:029]:   State Class: ''
    [09:34:57][C][tuya.sensor:029]:   Unit of Measurement: ''
    [09:34:57][C][tuya.sensor:029]:   Accuracy Decimals: 0
    [09:34:57][C][tuya.sensor:030]:   Sensor has datapoint ID 104
    [09:34:57][C][tuya.switch:068]: Tuya Switch 'Lock'
    [09:34:57][C][tuya.switch:070]:   Icon: 'mdi:lock'
    [09:34:57][C][tuya.switch:090]:   Restore Mode: always OFF
    [09:34:57][C][tuya.switch:024]:   Switch has datapoint ID 6
    [09:34:57][C][tuya.select:042]: Tuya Select 'Scheduled programming'
    [09:34:57][C][tuya.select:042]:   Icon: 'mdi:calendar'
    [09:34:57][C][tuya.select:043]:   Select has datapoint ID 4
    [09:34:57][C][tuya.select:044]:   Options are:
    [09:34:57][C][tuya.select:047]:     0: Use scheduled programs
    [09:34:57][C][tuya.select:047]:     1: Manual control
    ...
    [09:34:57][C][tuya:041]: Tuya:
    [09:34:57][C][tuya:056]:   Datapoint 1: switch (value: OFF)
    [09:34:57][C][tuya:058]:   Datapoint 2: int value (value: 39)
    [09:34:57][C][tuya:058]:   Datapoint 3: int value (value: 36)
    [09:34:57][C][tuya:062]:   Datapoint 4: enum (value: 1)
    [09:34:57][C][tuya:056]:   Datapoint 5: switch (value: OFF)
    [09:34:57][C][tuya:056]:   Datapoint 6: switch (value: OFF)
    [09:34:57][C][tuya:062]:   Datapoint 102: enum (value: 1)
    [09:34:57][C][tuya:062]:   Datapoint 103: enum (value: 0)
    [09:34:57][C][tuya:074]:   Product: 'N8bUqOZ8HBQjU0K04.0.1'
    ...
    [09:34:59][D][tuya:343]: Datapoint 3 update to 36
    [09:34:59][D][climate:396]: 'Thermostat' - Sending state:
    [09:35:00][D][climate:399]:   Mode: OFF
    [09:35:00][D][climate:401]:   Action: OFF
    [09:35:00][D][climate:404]:   Fan Mode: AUTO
    [09:35:00][D][climate:410]:   Preset: NONE
    [09:35:00][D][climate:419]:   Current Temperature: 18.00°C
    [09:35:00][D][climate:425]:   Target Temperature: 19.50°C
    ```
    
  • #21 21392029
    divadiow
    Level 38  
    Posts: 5027
    Help: 438
    Rate: 891
    >>21392025
    Screenshot of a device log showing various events without visible DP ID.

    not seeing dpID for that
  • ADVERTISEMENT
  • #22 21392038
    insmod
    Level 31  
    Posts: 1388
    Help: 164
    Rate: 432
    Maybe dpId will show if manually calibrated on device itself?
    Such was the case on my WT-100 thermostats.
  • #23 21392046
    p.kaczmarek2
    Moderator Smart Home
    Posts: 14580
    Help: 654
    Rate: 12604
    Well, if there is no calibration available, the best you can do is to use existing sensor with some extra wires and hope that they will not introduce too much interference and resistance... you can give it a go on the table... depends on how far you need to move the sensor.

    Added after 3 [minutes]:

    Here is temperature calibration packet for WT200-16A-W:
    
    Temp calibration to 0.3:
    
    Sent by WiFi module:
    55 AA	00	06		00 08	1302000400000003	29	
    HEADER	VER=00	SetDP		LEN	dpId=19 Val V=3		CHK	
    

    Temperature sensor calibration kits with packaging and cables.
    and for WT50-WH-3A and WT100-WH-3A dpID seems the same.
    Four images showing different temperature calibration devices, including AVATTO models WT200-16A-W and WT50-WH-3A with instructions.
    Helpful post? Buy me a coffee.
  • #24 21392061
    potl12
    Level 3  
    Posts: 6
    thanks for your extensive reply but I'm unsure if I understand what you mean. Would you mean resolder a wired sensor in place of the existing one?
    Another thought I had but this goes probably outside of the scope of this discussion is make a custom climate component in home assistant that would just use another sensor as input instead of the bht one.
  • #25 21395148
    potl12
    Level 3  
    Posts: 6
    >>21392046 Hey, i was womdering if you maybe have some more info on this. I'm not really sure what you mean with the info you posted. thanks :-)
  • #26 21398125
    tomik67
    Level 12  
    Posts: 111
    Rate: 11
    >>20896307 I see that the thermostats have shown up again, the BHT-002 equivalents with a 3.3V MCU which means that deriving the relay switching signal/information is easier, no need to lower the voltage for the CB3S pin.
    These resistors are just jumpers (0)
📢 Listen (AI):

Topic summary

✨ The discussion focuses on flashing Beca BAC-002 thermostats, which come in versions with WB3S and CB3S chipsets, using OpenBK firmware. Users share experiences with backing up and flashing the 2MB flash memory of the WiFi module, highlighting challenges such as UART connection handling, power supply issues, and CRC errors during flashing. A pogo-pin setup with a 3D-printed adapter is suggested for easier flashing of multiple units. The relay status reading mod is referenced from a similar thread. Attempts to read OBK configuration on TuyaMCU devices are unsuccessful due to MCU communication constraints. Powering the device correctly with a stable 3.3V source and proper USB-UART adapter configuration is emphasized.

Regarding adding an external temperature/humidity sensor, the thermostats do not support external sensors natively, as the sensor is connected to the MCU, not the WiFi module. Calibration options exist in the device menu but not via the app, and datapoint IDs (dpIDs) for temperature compensation are discussed as a possible workaround to mimic external sensor input by adjusting internal sensor readings. Users consider DIY approaches such as resoldering wires to relocate the sensor or creating custom Home Assistant climate components to use alternative sensors. Examples of temperature calibration packets and dpID usage from similar thermostats (WT200-16A-W, WT50-WH-3A, WT100-WH-3A) are provided. The CB3S chipset version allows easier relay signal derivation due to its 3.3V MCU logic level.

Overall, the thread provides practical guidance on flashing procedures, hardware modifications for sensor integration, and firmware configuration challenges for Beca BAC-002 thermostats with OpenBK firmware.
Generated by the language model.

FAQ

TL;DR: For owners flashing 7-11 Beca BAC-002/BHT-002 thermostats, "start with one device" is the safest rule: make a full 2MB backup, isolate the TuyaMCU, and use a stable 3.3V supply because a USB-UART adapter alone may fail during flashing. This FAQ shows how to flash OpenBK, recover from read errors, and handle relay-state or sensor mods without damaging the board. [#20897615]

Why it matters: These thermostats look simple, but one wrong power or UART setup can leave a flashed board with no hotspot, no web UI, and unreliable backups.

Option Main advantage Main risk Best use
BK7231GUIFlashTool over UART Full backup and direct OpenBK flashing You may need to isolate the MCU and provide external 3.3V Repairable, repeatable bench work
Tuya Cloudcutter No UART soldering on supported units No guaranteed full dump path in this thread Faster conversion of another compatible unit

Key insight: The biggest failure point was not OpenBK itself. It was powering and wiring the Wi-Fi module correctly while temporarily separating it from the thermostat MCU.

Quick Facts

  • The BAC-002 dump discussed in the thread uses a 2MB flash backup workflow before writing OpenBK7231N_QIO_1.17.406.bin, so backup comes before experimentation. [#20896307]
  • The thermostat’s Wi-Fi module was flashed through RX1, TX1, 3.3V, and GND, with users specifically citing pins 8 and 9 for power and ground on the module footprint. [#20909148]
  • Power datapoints identified in the thread include dpID 1 for power, 2 for target temperature, 3 for current temperature, 102 for HVAC/operation mode, and 103 for fan speed. [#21392023]
  • One user reported successfully flashing 11 units with a simple pogo-pin setup, but the thread still warns that pogo pins alone do not remove the need to isolate the MCU path. [#21391966]
  • On newer equivalent boards with a 3.3V MCU, relay-state sensing is easier because there is no need to reduce voltage for the CB3S pin used to derive relay information. [#21398125]

How do I flash a Beca BAC-002 or BHT-002 thermostat with OpenBK on a WB3S or CB3S module without damaging the board?

Flash it by backing up first, isolating the MCU, and using a stable 3.3V supply. 1. Remove the two 0Ω links or other UART path jumpers that connect the Wi-Fi module to the thermostat MCU. 2. Read a full 2MB dump before writing OpenBK. 3. Power the module externally at 3.3V and connect RX1/TX1 only after confirming the UART wiring. The thread’s expert advice was: "Let’s start with flashing and configuring one device." That reduces risk before repeating the process on 7 or more boards. [#20897615]

What is TuyaMCU, and how does it change the way a Beca thermostat is flashed and configured in OpenBK?

TuyaMCU changes the job because the thermostat logic runs on a separate MCU, not on the Wi-Fi chip alone. "TuyaMCU" is a serial control architecture that lets a main thermostat MCU exchange datapoints with the Wi-Fi module, which means flashing OpenBK does not automatically expose native GPIO behavior or standard OpenBK config pages. That is why the thread says OBK config will not help much on this device class, and why datapoint mapping matters more than raw pin roles after flashing. [#20908698]

Why does a BK7231 flash backup fail with errors like "CheckRespond_FlashRead4K: ERROR" after an apparently successful first read?

That error usually means the module is no longer being powered or isolated correctly for a stable second read. In the thread, the first backup succeeded, but later reads failed after rewiring, desoldering, and reconnecting the thermostat. The strongest root cause discussed was inadequate current from the USB-UART setup, plus possible UART contention from the main MCU if isolation was not maintained. A CRC error during reflashing pointed to the same class of instability: power or connection faults, not a proven dead BK7231 module. [#20909568]

What's the correct way to power a CB3S or WB3S thermostat during flashing if a USB-UART adapter cannot supply enough current?

Power the Wi-Fi module from a reliable external 3.3V source, not from the USB-UART adapter alone. The thread states that this adapter will not provide enough current for flashing. Set the adapter’s logic level to 3.3V with its jumper, then power the thermostat board separately. An alternative shown in the thread is feeding 5V from USB into the board’s AMS1117-3.3V regulator input, if that LDO is present, to obtain a stable 3.3V rail for the CB3S or WB3S module. [#20909568]

How can I make a full 2MB flash backup of a Beca BAC-002 thermostat before installing OpenBK?

Make the backup over UART before writing any firmware. 1. Disconnect or cut the MCU-to-Wi-Fi UART path temporarily. 2. Wire GND, 3.3V, RX, and TX to the Wi-Fi module and keep power stable. 3. Use BK7231GUIFlashTool to read the full 2MB flash and save the dump before flashing OpenBK. The thread explicitly recommends starting with a 2MB backup and points to BK7231GUIFlashTool as the resource for doing it. [#20896307]

Why might an OpenBK-flashed thermostat stop showing its Wi-Fi hotspot or web interface after rebooting?

It may lose the hotspot because the module is not booting correctly after flash, not because OpenBK always failed. In the thread, the thermostat worked after the first flash, then showed no hotspot after power-down and rewiring. The likely causes were unstable 3.3V power, bad UART connections, or a flashing session corrupted by low current, later confirmed by read failures and a CRC error. On this TuyaMCU thermostat, the absence of the OpenBK page does not prove the board is dead, but it does signal a boot or power problem. [#20909148]

Which is the better approach for these thermostats: flashing with BK7231GUIFlashTool over UART or using Tuya Cloudcutter?

UART flashing is the better documented path in this thread if you want a full backup and controlled recovery. BK7231GUIFlashTool was recommended first because it supports the 2MB dump and direct OpenBK flashing. Tuya Cloudcutter did work on another thermostat in the same family, but the thread presents it as an additional success, not the main step-by-step method. Use UART when you need repeatable bench workflow and a saved original dump; use Cloudcutter when a supported unit flashes cleanly and you accept a less hardware-centric path. [#20915193]

What is a dpID in Tuya devices, and how do I identify the BAC-002 thermostat datapoints for power, target temperature, current temperature, mode, and fan speed?

A dpID is the thermostat’s named control or telemetry field on the Tuya serial link. "dpID" is a Tuya datapoint identifier that maps one function, such as power or temperature, to a numeric ID exchanged between the MCU, app, and Wi-Fi module, usually with a type like bool, value, enum, or raw. In this BAC-002 thread, dpID 1 is power, 2 is target temperature, 3 is current temperature, 4 is schedule/manual mode, 102 is operation mode, and 103 is fan speed. [#21392023]

How do I temporarily isolate the Wi-Fi module from the main MCU when flashing a Tuya thermostat, and which resistors or jumpers usually need to be removed?

Temporarily isolate it by removing the UART link components between the main MCU and the Wi-Fi module. The user in the thread desoldered two resistors that handled MCU communication, and a later post clarifies those parts are simply 0Ω jumpers. Once removed, the Wi-Fi module can be accessed directly over RX and TX for backup or flashing. Restore them after testing if you need the original serial link again. On newer equivalent boards, that same 3.3V MCU arrangement also simplifies relay-state pickup. [#21398125]

Why would TX2 show no serial log output on a flashed thermostat, and what wiring or baud-rate mistakes should I check first?

No TX2 log usually means the board is powered wrongly or the serial pins are not the ones actually active in your setup. Check three things first: 1. The module has a stable 3.3V supply. 2. TX and RX are crossed correctly on the right UART pads. 3. The MCU is not still loading or blocking the serial line. In the thread, the expert response did not blame PuTTY first; it asked how the device was powered and requested a wiring photo, which points to hardware setup as the main failure source. [#20909105]

How can I read the relay on/off state from a Beca thermostat after flashing OpenBK, including the common hardware mod mentioned in the thread?

Read the relay state by tapping the relay-drive signal with the hardware mod already referenced in the thread. The opening post links to an earlier mod specifically intended to expose relay on/off status, and a later post adds that newer equivalent boards use a 3.3V MCU, making the pickup easier because you do not need to reduce the voltage for the CB3S input. On older layouts, the same signal may need level care before it reaches the Wi-Fi module GPIO. [#21398125]

What is the difference between WB3S and CB3S in Beca thermostats, and how does that affect flashing and relay-state sensing?

The thread treats WB3S as the older module and CB3S as the newer one, but the flashing principles stay the same: backup first, isolate the MCU, and use stable 3.3V power. The practical relay-state difference appears on newer equivalent boards with a 3.3V MCU, where deriving the relay signal is easier and no level reduction is needed for the CB3S pin. So the important difference in this thread is less about firmware steps and more about how safely you can sense board-level signals. [#21398125]

How can I add an external temperature or humidity sensor to a Beca BAC-002/BHT-002 thermostat if the original sensor is connected to the MCU instead of the Wi-Fi module?

You cannot add it cleanly through OpenBK alone if the sensor is wired to the thermostat MCU. The thread states the main limitation clearly: the onboard sensor is connected to the MCU, not to the Wi-Fi module, so the flashed Wi-Fi side does not control that reading path. Your practical options are hardware rework on the original sensor connection, using compensation logic elsewhere, or building a Home Assistant-side control workaround. The thread does not confirm any direct humidity-sensor add-on path to the BAC-002/BHT-002 MCU. [#21391977]

What are the practical options for compensating for bad temperature readings when the thermostat is mounted near a fan coil, such as calibration dpIDs, rewiring the onboard sensor, or handling it in Home Assistant?

Use calibration if the thermostat exposes it; otherwise relocate the sensor electrically or compensate in Home Assistant. In this thread, no calibration dpID was found in the extracted BAC-002 datapoint list, even though the manual mentioned calibration. The fallback advice was to extend or relocate the existing sensor with wires and test whether added resistance or interference remains acceptable on the bench. A third option raised by the user was a custom Home Assistant climate entity that uses another sensor instead of the thermostat’s built-in reading. [#21392046]

What's the best pogo-pin setup for flashing multiple Beca thermostats reliably, and when do I still need to solder wires instead?

A pogo-pin jig is the best scaling method, but only after one thermostat has been fully proven. One user planned a 3D-printed pogo-pin adapter for 7 devices, and another later reported flashing 11 units with a simple pogo-pin setup. Even so, the thread shows pogo pins do not solve everything. You may still need to remove the MCU jumpers, hold alignment firmly, or solder wires when pogo contact is unstable or when you need guaranteed UART access during backup and recovery. [#21391966]
Generated by the language model.
ADVERTISEMENT