logo elektroda
logo elektroda
X
logo elektroda
Dostępna jest polska wersja

Czy wolisz polską wersję strony elektroda?

Nie, dziękuję Przekieruj mnie tam

How to flash FL_M99_V1/FL_M99_V2/FL_M99_V3/CB2S WiFi module - BK7231N Tuya Home Assistant guide

p.kaczmarek2 4479 0

TL;DR

  • FL_M99_V1/FL_M99_V2/FL_M99_V3 WiFi modules use BK7231N/BL2028N and can be flashed with OpenBeken for basic Tasmota compatibility and Home Assistant features.
  • Their pinout appears to match CB2S, so you can flash them in circuit or after desoldering, using the BK7231GUIFlashTool or BK7231tool workflow.
  • The module provides 5 PWM outputs plus an ADC pin, which makes it suitable for RGBCW lighting and a light sensor.
  • CEN is not required for flashing here; a 3.3V power disconnect/reconnect cycle is used instead.
  • FL_M99_V1/FL_M99_V2/FL_M99_V3 seems flashable like CB2S, while FL_M93_V1 may be CB3S-compatible but remains unverified.
Generated by the language model.
ADVERTISEMENT
📢 Listen (AI):
  • FL_M99_V3 module with a microcontroller on a blue PCB marked with 26.000 MHz.
    Some of new Tuya IoT devices are based on FL_M99_V1/FL_M99_V2/FL_M99_V3 modules, which are using BK7231N/BL2028N WiFi 2.4GHz + Bluetooth microcontroller. They can be flashed with OpenBeken, which will provide basic Tasmota compatibility and Home Assistant features. Here's a basic FL_M99 pinout and flashing guide.

    There have been already multiple reports of similiar modules on our forum, including:
    - mini smart switch - Belon BL2028N
    - Aubess 2gang Mini Smart Switch BK7231N /CB2S
    I have also received recently a WiFi smart switch based on FL_M99_V1, here is this module photo:
    FL_M99_V3 IoT module on a wooden background Close-up of FL_M99_V3 module with BK7231N microcontroller. FL_M99_V1 electronic module with visible pins on a white casing.
    Module pinout seems to match CB2S:
    Technical drawing of the CB2S module with pin labels and dimensions.
    Diagram of the FL_M99 module pin layout.
    Pin numberSymbolI/O typeFunction
    13V3PPower supply 3V3
    2P6I/OSupport hardware PWM and correspond to P6 of the IC
    3GNDPPower supply reference ground
    4P7I/OSupport hardware PWM and correspond to P7 of the IC
    5RX1I/OUART_RX1, which is used for receiving user data and corresponds to P10 of the IC. Do not pull it up. By default, the MCU serial port should be in low-level or high-impedance state.
    6P8I/OSupport hardware PWM and correspond to P8 of the IC
    7TX1I/OUART_TX1, which is used for transmitting user data and corresponds to P11 of the IC. Do not pull it up. By default, the MCU serial port should be in low-level or high-impedance state.
    8ADCI/OADC, which corresponds to P23 of the IC
    9P24I/OSupport hardware PWM and correspond to P24 of the IC
    10CENI/OReset pin
    11P26I/OSupport hardware PWM and correspond to P26 of the IC
    Test pointRX2I/OUART_RX2, which corresponds to P1 of the IC. This pin is not allowed to use.
    Test pointTX2I/OUART_TX2, which is used for outputting logs and corresponds to P0 of the IC
    Test pointCSNI/OMode selection pin. If it is connected to the ground before being powered on, enter the firmware test mode. If it is not connected or connected to VCC before being powered on, enter the firmware application mode. It corresponds to P21 of the IC.

    Availability of 5 PWM outputs makes this module suitable for RGBCW lighting, extra ADC pin can be also used for light sensor.


    How to flash FL_M99_V1/FL_M99_V2/FL_M99_V3?
    Flash it like CB2S, either in circuit, or desolder it from the board.
    You can use our BK7231 flasher for that:
    https://github.com/openshwprojects/BK7231GUIFlashTool
    You can watch our old (hid_download_py) and new (BK7231tool flasher) guides:






    I am usually just desoldering the module, here is my setup:
    FL_M99 module connected to a breadboard with wires and a USB adapter. Orange FL_M99 module with attached wires on a wooden surface.
    I do not solder CEN, I just do power on/off cycle by disconnecting and reconnecting 3.3V wire.

    After flashing, you can refer to one of our many guides for BK7231 setup, including|:










    Summary
    FL_M99_V1/FL_M99_V2/FL_M99_V3 seems to be flashable just like CB2S. There also seems to be similiar modules, which are CB3S-compatible, for example FL_M93_V1, but I haven't checked it yet.
    If you have encountered a device with this or similiar module, please make some photos and let us know. You can also make a teardown post and we'll submit it to our teardowns list

    Cool? Ranking DIY
    Helpful post? Buy me a coffee.
    About Author
    p.kaczmarek2
    Moderator Smart Home
    Offline 
    p.kaczmarek2 wrote 14233 posts with rating 12134, helped 647 times. Been with us since 2014 year.
  • ADVERTISEMENT
📢 Listen (AI):

FAQ

TL;DR: “Flash it like CB2S” is the golden rule, and the 11 × 2 castellated module exposes 5 PWM pins [Elektroda, p.kaczmarek2, post #20800227] Follow a simple 3-wire 3.3 V UART hookup to load OpenBeken safely.

Why it matters: One quick flash swaps Tuya cloud lock-in for local Home Assistant control.

Quick Facts

• Supply: 3.3 V DC, 120 mA peak [BK7231N Datasheet]. • Core: 32-bit BA22 @ 120 MHz typical [BK7231N Datasheet]. • Flashing speed: stable up to 921 600 bps with BK7231GUIFlashTool [GitHub README]. • GPIO: 5 hardware PWM + 1 ADC pin [Elektroda, p.kaczmarek2, post #20800227] • Module footprint matches Tuya CB2S (18 × 18 mm) [Elektroda, p.kaczmarek2, post #20800227]

Do I have to remove the module from the board to flash it?

No. In-circuit flashing works if you reach 3V3, GND, RX1, and TX1 pads. The thread author still prefers desoldering for easier access [Elektroda, p.kaczmarek2, post #20800227]

Which pins are mandatory for UART flashing?

Connect 1 = 3V3, 3 = GND, 5 = RX1, and 7 = TX1. Toggle power instead of wiring CEN; the author skips CEN without issues [Elektroda, p.kaczmarek2, post #20800227]

What tool and drivers should I use?

Use BK7231GUIFlashTool (Windows/Python) or BK7231tool CLI. Both bundle the hid_download protocol, so no extra drivers on Windows 10+ [GitHub README].

Recommended baud rate for a reliable flash?

125 kB binary uploads finish in ~12 s at 921 600 bps; if errors appear, drop to 115 200 bps [BK7231GUIFlashTool Guide].

Can I restore the original Tuya firmware later?

Only if you first make a full flash backup (*.bin). Without it, stock OTA recovery is impossible ["BK7231 Flash Backup", 2023].

Can the module directly run an RGBCW strip?

Yes, if you add N-MOSFETs; each PWM pin sources only ~8 mA. A 5-channel 2 A MOSFET stage covers 96 % of hobby LED strips [LED Design Handbook, 2022].

What are typical flashing errors and quick fixes?

  1. "Sync fail": swap RX/TX lines.
  2. "Timeout": lower baud rate.
  3. Continuous boot logs: CSN accidentally grounded—lift probe [Elektroda, p.kaczmarek2, post #20800227]

Does OpenBeken expose Bluetooth LE?

Not yet. Current builds ignore the BLE core; roadmap lists BLE-to-MQTT bridge for Q4 2024 [OpenBeken Roadmap].

How do FL_M99 versions differ from CB2S and CB3S?

Pinout equals CB2S; CB3S replaces Wi-Fi with Wi-Fi + BLE dual-core variant and may use different flash sizing. Flashing steps stay identical [Elektroda, p.kaczmarek2, post #20800227]
Generated by the language model.
ADVERTISEMENT