logo elektroda
logo elektroda
X
logo elektroda

[BK7231N/CB2L;BK7231T/WB2L] BPA800/RGBW/2 Feit Light Bulbs Teardown And Flashing OpenBK

rezident624 3114 3

TL;DR

  • Feit Electric BPA800/RGBW/2 smart bulbs from Costco turned out to have two hardware variants under the same item number: type A and type B.
  • Opening the diffuser base exposed WB2L (BK7231T) in type A and CB2L (BK7231N) in type B, with the module model visible even though it could not be removed.
  • Type A reported Tuya firmware 2.9.15, while type B reported 1.2.16, and flashing used CloudCutter on Ubuntu 22.04 with Docker and Git.
  • OpenBK7231T_UG and OpenBK7231N_UG firmware binaries were renamed for the BK7231T and BK7231N targets, then flashed by selecting the matching Tuya firmware version.
  • After importing the extracted Tuya GPIO config into OpenBeken, the bulbs worked locally over Wi‑Fi without the cloud, but wrong SSID or password requires a reset.
Generated by the language model.
ADVERTISEMENT
📢 Listen (AI):
  • Description

    I bought several Feit Electric Smart Bulbs from Costco around Summer 2021 (BPA800/RGBW/2), item 1528975. This year I finally had time to set them up for the upcoming Halloween.

    Packaging of two Feit Electric smart bulbs with remote control features.

    Turns out there are two types of light bulbs, even though item numbers are identical:
    - 228-21-17 (type A)
    - 228A-21-30 (type B)
    Feit Electric smart bulb with printed model and feature information. Feit Electric smart bulb on a carpeted background.

    Light bulbs can be opened using a utility knife, cutting and prying around the diffuser base.
    I could not remove the module, but the model can be clearly seen. It's WB2L (BK7231T) for type A, and CB2L (BK7231N) for type B.
    Interior of a smart bulb with visible CB2L module. Interior of a Feit Electric bulb showing LED lights and a WB2L chip.

    Flash OpenBeken

    The best way to flash OpenBeken without worrying about software issues is to use live CD. In this guide, Ubuntu 22.04 is used.

    Pair the light bulbs

    After pairing with Tuya Android app, it can be seen (see screenshots) that type A uses firmware version 2.9.15, type B uses version 1.2.16.

    Device update screen showing no updates available. Device update screen showing no available updates for main and MCU modules version 2.9.15.

    Prepare Ubuntu

    - Flash Ubuntu 22.04 to USB stick or other storage media;
    - Boot a live CD system and open terminal;
    - Install Docker using the official guide;
    - Install git using:
    Code: Bash
    Log in, to see the code

    - Clone cloudcutter and change to the new folder:
    Code: Bash
    Log in, to see the code


    Flash new firmware

    - Download the latest OpenBK UG firmware bin files from the releases page, like OpenBK7231T_UG_<version>.bin and OpenBK7231N_UG_<version>.bin and place them into custom-firmware subfolder, rename adding _bk7231t.ug.bin and _bk7231n.ug.bin to the end, correspondingly;
    - From the opened terminal, call:
    Code: Bash
    Log in, to see the code

    - Select Flash 3rd Party Firmware;
    - Select From firmware version and name;
    - Select 2.9.15 - BK7231T for type A and 1.2.16 - BK7231N for type B;
    - Select the latest firmware bin file you put into custom-firmware subfolder earler;
    - Follow the instructions to finish the process.

    Connect light bulb to home WiFi network

    - Connect to the light bulb using its WiFi network (after the flashing, you might need to restart WiFi on the linux machine), it's named like OpenBK7231X_XXXXXXXX;
    - Open the browser and go to 192.168.4.1;
    - Go to Config, Configure WiFi and change SSID and password (double check that this information is correct, you won't be able to connect and need to reset the settings otherwise);
    - Wait until the light bulb connects to the home network, find its IP address (e.g., from the router settings), and open it in the browser.

    Configure the light bulb

    Since no predefined config is available for those light bulbs, we can follow the guide.
    - Click on Launch Web Application and go to Flash tab;
    - Click Download Tuya GPIO Config from 0x1EE000. This will start download of a config binary file, which can then be found in the downloading folder;
    - Config can be extracted from the binary using BK7231 GUI Flash Tool. Download the zip file from GitHub releases page and extract it;
    - Since by default Mono is not installed in Ubuntu, install it using the official guide;
    - Run mono BK7231Flasher.exe;
    - Go to Extract Config from Tuya binary tab and mouse drop the extracted config binary file there;
    - There are two views of the extracted configuration - json and text description. Copy json and past it to light bulb's web application, Import tab;
    - Check the generated script and click Clear OBK and apply new script from above to apply the settings;
    - Check if the light bulb can be controlled via its web interface.

    Now the light bulb is flashed with the new firmware and independent from the cloud.

    Cool? Ranking DIY
    About Author
    rezident624
    Level 4  
    Offline 
    rezident624 wrote 3 posts with rating 5, helped 1 times. Been with us since 2023 year.
  • ADVERTISEMENT
  • #2 20832029
    p.kaczmarek2
    Moderator Smart Home
    Posts: 14512
    Help: 651
    Rate: 12517
    Very nice and detailed guide, thank you for submitting it. Can you also include the OBK JSON template that can be found in the Web App, so I can add this device to devices list?

    PS: Keep in mind that there is also a WB2L_M1, which is, suprisingly, BK7231N-based.
    Helpful post? Buy me a coffee.
  • ADVERTISEMENT
  • #3 20832834
    rezident624
    Level 4  
    Posts: 3
    Help: 1
    Rate: 5

    Sure!

    Config for type A:
    Code: JSON
    Log in, to see the code

    And for type B:
    Code: JSON
    Log in, to see the code


    Let me know if you need more details or have any questions.

    Regarding WB2L_M1 - haven't seen any. Looks like there are just two different configurations among all the light bulbs I bought.
📢 Listen (AI):

FAQ

TL;DR: Two Feit BPA800/RGBW/2 bulb variants share one item number, and "there are two types of light bulbs" with different Tuya modules. This FAQ helps OpenBeken users identify WB2L/BK7231T vs CB2L/BK7231N bulbs, choose the right CloudCutter profile, and import the correct GPIO template after flashing. [#20830261]

Why it matters: One Costco bulb model sold under a single SKU can require different firmware, different flashing profiles, and different JSON pin maps.

Variant Internal module Chip Tuya firmware seen CloudCutter choice
Type A WB2L BK7231T 2.9.15 2.9.15 - BK7231T
Type B CB2L BK7231N 1.2.16 1.2.16 - BK7231N

Key insight: Do not trust the retail item number alone. Open the bulb or verify the Tuya firmware version first, because Type A and Type B use different Beken chips and different OpenBeken templates.

Quick Facts

  • The same Feit Electric BPA800/RGBW/2 retail item was reported in two hardware revisions: 228-21-17 and 228A-21-30. [#20830261]
  • The bulb opens by cutting and prying around the diffuser base with a utility knife; the module label then identifies WB2L or CB2L. [#20830261]
  • OpenBeken setup starts from the bulb AP at 192.168.4.1, then moves to Config → Configure WiFi to join the home network. [#20830261]
  • Both shared JSON templates map 5 PWM pins, but the channel order differs between BK7231T/WB2L and BK7231N/CB2L. [#20832834]

How do I identify whether a Feit Electric BPA800/RGBW/2 bulb uses a WB2L (BK7231T) module or a CB2L (BK7231N) module?

Identify it by opening the bulb and reading the module marking. The thread reports Type A bulbs as WB2L with BK7231T and Type B bulbs as CB2L with BK7231N. You can also cross-check in the Tuya app: Type A showed firmware 2.9.15, while Type B showed 1.2.16. The retail item number alone is not enough, because both variants were sold as BPA800/RGBW/2. [#20830261]

What is OpenBeken, and why do people flash it onto Feit smart bulbs instead of keeping the Tuya firmware?

OpenBeken is replacement device firmware that runs on Beken-based smart devices, letting users control the bulb without Tuya cloud dependence. In this thread, the stated goal was to make the bulb "independent from the cloud" after flashing and local configuration. People use it to move Wi-Fi setup, GPIO mapping, and device control into the OpenBeken web interface instead of the Tuya app. [#20830261]

How can I safely open a Feit BPA800/RGBW/2 smart bulb to inspect the module inside?

Open it by cutting and prying around the diffuser base with a utility knife. The thread says the bulb can be opened this way, and that the module model becomes visible even if you cannot fully remove it. Work slowly around the seam so you can read whether the board is marked WB2L or CB2L. [#20830261]

What firmware versions were reported for the two Feit BPA800/RGBW/2 bulb variants in the Tuya app, and how do those versions affect CloudCutter flashing?

The thread reports 2.9.15 for the WB2L BK7231T bulb and 1.2.16 for the CB2L BK7231N bulb. Those versions matter because CloudCutter uses them as the flashing profile selector. Choose the profile that matches both the firmware version and the chip family, or you risk using the wrong exploit path and firmware target. [#20830261]

What is Tuya CloudCutter, and how does it work for flashing BK7231T and BK7231N devices without soldering?

Tuya CloudCutter is a flashing toolchain that installs third-party firmware onto compatible Tuya devices over software, not wire soldering. The thread uses it from Ubuntu with Docker and git, then selects Flash 3rd Party Firmware and a matching device profile. In this workflow, it targets both BK7231T and BK7231N bulbs by matching the Tuya firmware version shown in the app. [#20830261]

How do I set up Ubuntu 22.04 Live USB with Docker and git to flash a Feit BK7231 bulb using tuya-cloudcutter?

Use a 3-step setup. 1. Flash Ubuntu 22.04 to a USB drive and boot the live system. 2. Install Docker from the official guide, then run sudo apt install git;. 3. Clone CloudCutter with git clone --depth 1 https://github.com/tuya-cloudcutter/tuya-cloudcutter.git && cd tuya-cloudcutter;. This thread recommends a live CD approach to avoid software issues on the host system. [#20830261]

What is the correct way to rename OpenBK7231T_UG and OpenBK7231N_UG firmware files for the custom-firmware folder in CloudCutter?

Rename the downloaded OpenBeken binaries by adding _bk7231t.ug.bin for BK7231T builds and _bk7231n.ug.bin for BK7231N builds. Place both renamed files in the custom-firmware subfolder before launching CloudCutter. The thread specifically points to the latest OpenBK UG release files as the starting point. [#20830261]

When flashing a Feit BPA800/RGBW/2 bulb, how do I choose between the 2.9.15 BK7231T profile and the 1.2.16 BK7231N profile in CloudCutter?

Choose the profile that matches the bulb variant you verified. Type A uses WB2L with BK7231T, so select 2.9.15 - BK7231T. Type B uses CB2L with BK7231N, so select 1.2.16 - BK7231N. Do not choose by product name alone, because both variants share the same Feit BPA800/RGBW/2 branding. [#20830261]

After flashing OpenBeken, how do I connect to the bulb's OpenBK7231X access point and move it onto my home Wi-Fi network?

Use this 3-step process. 1. Join the bulb AP named like OpenBK7231X_XXXXXXXX; you may need to restart Wi-Fi on Linux first. 2. Open 192.168.4.1 in a browser. 3. Go to Config → Configure WiFi, enter SSID and password, then find the bulb's new IP in your router and reopen it there. [#20830261]

How can I download the Tuya GPIO config from 0x1EE000 and import it into the OpenBeken web app for a Feit RGBW bulb?

Do it from the OpenBeken web interface after the bulb is online. Click Launch Web Application, open the Flash tab, and use Download Tuya GPIO Config from 0x1EE000. Then extract the config from the downloaded binary, copy the JSON view, and paste it into the web app Import tab before applying the generated script. [#20830261]

What is BK7231 GUI Flash Tool used for when extracting a Tuya config binary, and why is Mono needed on Ubuntu to run it?

BK7231 GUI Flash Tool is a desktop utility that extracts configuration data from the Tuya binary you downloaded from 0x1EE000. The thread uses its Extract Config from Tuya binary tab to get JSON for OpenBeken import. Mono is needed on Ubuntu because the tool is run there with mono BK7231Flasher.exe, not as a native Linux binary. [#20830261]

How do the OpenBeken JSON templates differ between the Feit BPA800/RGBW/2 type A WB2L BK7231T bulb and the type B CB2L BK7231N bulb?

They differ mainly in chip, board, and PWM channel order. Type A declares chip: BK7231T, board: WB2L, with pins 6/7/8/24/26 mapped to PWM 1/4/5/3/2. Type B declares chip: BK7231N, board: CB2L, with the same five pins mapped to PWM 3/5/4/2/1. Both templates keep the same vendor name, product name, and image link. [#20832834]

WB2L vs WB2L_M1 vs CB2L — what are the differences between these Tuya modules, and which BK7231 chip does each one use?

WB2L and CB2L were directly observed in these Feit bulbs, while WB2L_M1 was mentioned as an edge case. "WB2L_M1 is a Tuya module variant that changes the board designation, while still using a Beken-family Wi-Fi SoC in some devices." In this thread, WB2L was tied to BK7231T, CB2L was tied to BK7231N, and a moderator noted that WB2L_M1 can also be BK7231N-based. [#20832029]

Why might a freshly flashed OpenBeken bulb not reconnect after entering Wi-Fi credentials, and what troubleshooting steps help recover it?

The most likely cause is wrong Wi-Fi credentials. The thread explicitly warns to double-check SSID and password, because a bad entry can block reconnection and force a settings reset. Another practical issue is that the Linux machine may need a Wi-Fi restart before you can rejoin the bulb AP after flashing. [#20830261]

What is the OpenBeken Web App device template or JSON format, and how can I submit a new Feit bulb configuration to the device list?

The OpenBeken device template is a JSON description that names the vendor, board, chip, keywords, image, wiki link, and per-pin functions such as PWM channels. In this thread, the template was requested so the device could be added to the list, and complete JSON was posted for both bulb variants. A later post also linked an OpenBeken Web App pull request, showing the submission path continues through the project tooling. [#21308600]
Generated by the language model.
ADVERTISEMENT