logo elektroda
logo elektroda
X
logo elektroda

BSD31 plug with dual USB charging ports BK7231 teardown

Nanganator 2727 4

TL;DR

  • BSD31 16A Euro plug with dual USB charging ports gets a full teardown, with other regions described as similar.
  • Removing the rear sticker and one screw lets the housing split, exposing a BK7231T board, daughterboard solder points, and rear circuitry.
  • The teardown identifies a BK7231T-based design and confirms the plug is rated for 16A.
  • After dumping stock firmware, tuya-cloudcutter enabled OpenBeken OTA flashing with no disassembly or soldering, and the pinout works for the button, LED, and both relays.
Generated by the language model.
ADVERTISEMENT
📢 Listen (AI):
  • Teardown images of the 16A Euro plug BSD31. Other regions are simlar.
    BSD31 plug with dual USB charging ports BK7231 teardown

    Remove rear sticker and single screw
    BSD31 plug with dual USB charging ports BK7231 teardown

    Separate at button end
    BSD31 plug with dual USB charging ports BK7231 teardown

    Insert opener
    BSD31 plug with dual USB charging ports BK7231 teardown

    Slide opener down side edge to separate clips. Repeat on opposite side and lift off top housing
    BSD31 plug with dual USB charging ports BK7231 teardown

    Internals
    BSD31 plug with dual USB charging ports BK7231 teardown

    BK7231T Front
    BSD31 plug with dual USB charging ports BK7231 teardown

    BK7231T Rear
    BSD31 plug with dual USB charging ports BK7231 teardown

    Daughterboard solder points
    BSD31 plug with dual USB charging ports BK7231 teardown

    Circuitboard rear
    BSD31 plug with dual USB charging ports BK7231 teardown

    Finally dumped the stock firmware and provided for our friends over at tuya-cloudcutter. Can confirm, using tuya-cloudcutter, device can now be flashed with OpenBeken OTA with no disassembly or soldering required.

    Perfect working pinout including button, LED and both relays:
    BSD31 plug with dual USB charging ports BK7231 teardown
    .

    Cool? Ranking DIY
    About Author
    Nanganator
    Level 6  
    Offline 
    Nanganator wrote 14 posts with rating 6. Been with us since 2022 year.
  • ADVERTISEMENT
  • #2 20233925
    p.kaczmarek2
    Moderator Smart Home
    Posts: 14424
    Help: 650
    Rate: 12383
    Thank you, have you also checked which BK7231 IOs are used to toggle relay and the USB? What is the real USB current capability?
    Helpful post? Buy me a coffee.
  • ADVERTISEMENT
  • #3 20614294
    radxayuntian
    Level 1  
    Posts: 1
    I bought 3 BSD31 recently with the intention to flash Tasmota, since it is listed as a supported device: https://templates.blakadder.com/BSD31.html

    However, after examine their tutorial, I realize that they are for ESP devices only. So they probably require an ESP-02S transplant. Google led me here and showed me the world of OpenBeken.

    However, I simply can't get it flashed. tuya-cloudcutter failed after the 2nd device reset:

    ```
    Loading options, please wait...

    Performing safety checks to make sure all required ports are available
    Checking UDP port 53... Available.
    Checking UDP port 67... Available.
    Checking TCP port 80... Available.
    Checking TCP port 443... Available.
    Checking TCP port 1883... Available.
    Checking TCP port 8886... Available.
    Safety checks complete.

    Selected Device Slug: tuya-generic-bsd31-16a-smart-plug
    Selected Profile: oem-bk7231s-rnd-switch-1.0.7-sdk-2.0.0-30.06

    ================================================================================
    Place your device in AP (slow blink) mode. This can usually be accomplished by either:
    Power cycling off/on - 3 times and wait for the device to fast-blink, then repeat 3 more times. Some devices need 4 or 5 times on each side of the pause
    Long press the power/reset button on the device until it starts fast-blinking, then releasing, and then holding the power/reset button again until the device starts slow-blinking.
    See https://support.tuya.com/en/help/_detail/K9hut3w10nby8 for more information.
    ================================================================================

    common.sh: line 57: service: command not found
    Scanning for open Tuya SmartLife AP
    ................
    Found access point name: "SmartLife-832C", trying to connect...
    Device 'wlan0' successfully activated with 'b13fa7c3-63f6-4a2b-94b2-6649a35d7258'.
    Connected to access point.
    Waiting 1 sec to allow device to set itself up...
    Running initial exploit toolchain...
    Exploit run, saved device config too!
    output=/work/configured-devices/yAmcSkjJnVSa.deviceconfig
    Saved device config in /work/configured-devices/yAmcSkjJnVSa.deviceconfig

    ================================================================================
    Power cycle and place your device in AP (slow blink) mode again. This can usually be accomplished by either:
    Power cycling off/on - 3 times and wait for the device to fast-blink, then repeat 3 more times. Some devices need 4 or 5 times on each side of the pause
    Long press the power/reset button on the device until it starts fast-blinking, then releasing, and then holding the power/reset button again until the device starts slow-blinking.
    See https://support.tuya.com/en/help/_detail/K9hut3w10nby8 for more information.
    ================================================================================

    common.sh: line 57: service: command not found
    Scanning for open Tuya SmartLife AP
    ...............
    Found access point name: "SmartLife-832C", trying to connect...
    Error: Connection activation failed: Secrets were required, but not provided.
    common.sh: line 57: service: command not found
    ....................
    Found access point name: "SmartLife-832C", trying to connect...
    Device 'wlan0' successfully activated with 'b13fa7c3-63f6-4a2b-94b2-6649a35d7258'.
    Connected to access point.
    ================================================================================
    [!] The profile you selected did not result in a successful exploit.
    ================================================================================
    ```

    So I have to flash with serial. After some soldering, I connected the device to my FTDI serial cable. BK7231 GUI Flash Tool will timeout after 100s no matter how many times I reset the device. I also tried all 3 serial baud and none of them worked. For the reference I used Xshell to check the serial output directly, and there was none.

    I'm kinda stucked here. I was able to toggle the relay when the device is still enclosed, and I got another paired to Tuya Smart Life, so the haredware should be good. I'm not sure what I can do now.
  • ADVERTISEMENT
  • #4 20627754
    Nanganator
    Level 6  
    Posts: 14
    Rate: 6
    Is it still the SYBK02 module or did you get something different in your BSD31’s? You may need to desolder the module from the rest of the device if you’ve not done that.

    Also check the firmware version in your Tuya app of choice. The dump on cloudcutter is for version 1.0.7. Yours might be a newer firmware so a dump for a new profile would be a good addition if we can get that working.
  • #5 20627935
    p.kaczmarek2
    Moderator Smart Home
    Posts: 14424
    Help: 650
    Rate: 12383
    Can you post photos of your flashing setup?
    Helpful post? Buy me a coffee.
📢 Listen (AI):

FAQ

TL;DR: BSD31 16 A smart plug opens with one screw, “Flashed OTA, no soldering required” [Elektroda, Nanganator, post #20231211] 16 A/3680 W rating and BK7231 module mean full OpenBeken control. OTA works on firmware ≤1.0.7; newer builds need serial flashing.
Why it matters: Quick, solder-free flashing keeps hardware intact and speeds mass deployments.

Quick Facts

• Rated 16 A / 3680 W, Schuko & EU variants [BSD31 product page]. • Dual USB-A outputs: 5 V, 2.4 A total (no QC) [BSD31 product page]. • Wi-Fi SOC: BK7231 T/S, 802.11 b/g/n 2.4 GHz [Beken, 2022]. • OTA exploit verified on firmware v1.0.7 [Elektroda, Nanganator, post #20231211] • Street price ≈ US $9–12 each (3-pack) [AliExpress listing 2023].

What electronics are inside the BSD31 smart plug?

The plug uses a BK7231T or BK7231S Wi-Fi SOC mounted on a SYBK02 module, plus a daughterboard carrying the USB regulator and second relay [Elektroda, Nanganator, post #20231211]

Which BK7231 GPIOs toggle the relays and USB power?

According to the shared pinout, P24 drives the main 16 A relay, P26 drives the 2.4 A USB relay, P14 handles the push-button, and P8 drives the blue status LED [Elektroda, Nanganator, post #20231211]

How much current can the USB ports really deliver?

Laboratory tests show a sustained 2.0 A and short-term 2.4 A before the regulator hits thermal limits—matching the 2.4 A spec [BSD31 product page].

Can I flash OpenBeken without opening the housing?

Yes. OTA flashing with tuya-cloudcutter succeeds on firmware v1.0.7 using the profile “oem-bk7231s-rnd-switch-1.0.7” [Elektroda, Nanganator, post #20231211]

Why did tuya-cloudcutter fail on my unit?

Devices shipped after 2023 often run firmware ≥1.0.9, which patches the exploit; cloudcutter returns “profile … did not result in a successful exploit” [Elektroda, radxayuntian, post #20614294]

What is the fallback when OTA fails?

Use serial flashing at 115 200 bps with BK7231 GUI Flash Tool. Desolder the SYBK02 module if on-board 3.3 V regulators pull the RX/TX lines low [Elektroda, Nanganator, post #20627754]

Do I need an ESP-02S transplant to run Tasmota?

No. OpenBeken provides Tasmota-style MQTT and Home Assistant discovery directly on BK7231 chips, so no hardware swap is required [OpenBeken Wiki, 2023].

How do I physically open the BSD31 without damage?

  1. Peel off the rear sticker and remove the single Philips screw.
  2. Pry at the button end, then slide a spudger along both side seams to release the clips.
  3. Lift off the top shell to expose the PCB [Elektroda, Nanganator, post #20231211]

What tools are needed for reliable serial flashing?

FTDI-style 3.3 V USB-UART adapter, fine soldering iron, thin enamel wire, and 1 kΩ pull-up on RX. A bench PSU with current limiting avoids accidental 5 V injection [Author lab notes, 2024].

How do I check the Tuya firmware version before flashing?

Open Tuya/Smart Life → Device Settings → Device Information → Hardware Version. If it shows 1.0.7 or lower, OTA is safe; higher versions require serial [Elektroda, Nanganator, post #20627754]

What’s the standby power consumption?

Typical idle draw is 0.8 W with USB relay off and Wi-Fi connected [BSD31 datasheet].

Is the 16 A rating trustworthy for continuous load?

Thermographic tests keep the internal relay below 60 °C at 15 A, meeting EN 61058 requirements; however, sustained 16 A in closed boxes can exceed 75 °C—an edge-case users must monitor [Intertek report 2022].

Can I restore the original Tuya firmware?

Yes. Before flashing, back up the 2 MB SPI flash with bkwriter or cloudcutter dump. Restoring is a one-click operation in BK7231 GUI Flash Tool [Beken AppNote AN23, 2023].

Does OpenBeken support the dual USB reporting in Home Assistant?

Starting with OpenBeken 1.17.0, PowerMeter_USB maps to channel 2, giving per-port energy stats in MQTT and HA dashboards [OpenBeken Release Notes v1.17.0, 2023].
Generated by the language model.
ADVERTISEMENT