logo elektroda
logo elektroda
X
logo elektroda

[ESP8266/LM1] LED strip controller with WiFi CCT WF-M2 (or maybe WF-M4 RGB) - interior, Tasmota

p.kaczmarek2 1941 0

TL;DR

  • A WF-M2 LED strip controller for 9-24V was sold as CCT, but the package and internals point to WF-M4-style RGB/CCT hardware.
  • Opening the snap-fit case revealed an ESP8266-based LM1 module, exposed programming pads including IO0, and a transistor bank for the LED channels.
  • The controller is labeled 9-24V 6A, uses A09T/AO3400 transistors, and the manual oddly names the model WF-M4.
  • Flashing Tasmota over esptool.py succeeded, and the housing button still controls the LEDs even if WiFi or the router fails.
  • GPIO tracing mapped Q4 to IO12, Q5 to IO13, and Q6 to IO14, with Q2=IO5 and Q3=IO15 present but unpopulated.
Generated by the language model.
ADVERTISEMENT
Treść została przetłumaczona polish » english Zobacz oryginalną wersję tematu
📢 Listen (AI):
  • [ESP8266/LM1] LED strip controller with WiFi CCT WF-M2 (or maybe WF-M4 RGB) - interior, Tasmota
    Today I will present the inside of another LED strip controller, this time in the CCT version (but is it really?), i.e. allowing control of the white temperature. Of course, you can also change its brightness. I will check what WiFi module is inside, describe the firmware change of this gadget and provide the roles of its GPIO, while also taking into account its related versions with a larger number of transistors.

    Purchase of a controller
    The purchase was sent to me by a reader so that I could change the load, but I know that the product comes from a Polish auction website and cost less than PLN 50:
    [ESP8266/LM1] LED strip controller with WiFi CCT WF-M2 (or maybe WF-M4 RGB) - interior, Tasmota
    Why there is one thing in the title and another in the name of the subject - I don`t know. We definitely bought: WiFi controller WF-M2 LED strip 9-24V 6A
    Quite a poor description:
    [ESP8266/LM1] LED strip controller with WiFi CCT WF-M2 (or maybe WF-M4 RGB) - interior, Tasmota
    So let`s see what we get in the package:
    [ESP8266/LM1] LED strip controller with WiFi CCT WF-M2 (or maybe WF-M4 RGB) - interior, Tasmota [ESP8266/LM1] LED strip controller with WiFi CCT WF-M2 (or maybe WF-M4 RGB) - interior, Tasmota
    There is a CCT, WF-M2 sticker on the packaging, so it seems correct... let`s look at the instructions:
    [ESP8266/LM1] LED strip controller with WiFi CCT WF-M2 (or maybe WF-M4 RGB) - interior, Tasmota
    The manual contains the model WF-M4 - it`s weird.
    Additionally, we see that it needs to be linked to the Open-Lit application, perhaps another Tuya clone?
    And the product itself:
    [ESP8266/LM1] LED strip controller with WiFi CCT WF-M2 (or maybe WF-M4 RGB) - interior, Tasmota [ESP8266/LM1] LED strip controller with WiFi CCT WF-M2 (or maybe WF-M4 RGB) - interior, Tasmota
    Everything is standard here, both the power input (jack socket) and the LED strip output...

    The interior of the WF-M2 (or rather WF-M4)
    There are no screws, just pry the lid with a flat screwdriver:
    [ESP8266/LM1] LED strip controller with WiFi CCT WF-M2 (or maybe WF-M4 RGB) - interior, Tasmota
    At first glance, the WiFi module is not described:
    [ESP8266/LM1] LED strip controller with WiFi CCT WF-M2 (or maybe WF-M4 RGB) - interior, Tasmota
    There are three transistors inside, so I don`t know if it`s really the CCT version... it looks like RGB:
    [ESP8266/LM1] LED strip controller with WiFi CCT WF-M2 (or maybe WF-M4 RGB) - interior, Tasmota [ESP8266/LM1] LED strip controller with WiFi CCT WF-M2 (or maybe WF-M4 RGB) - interior, Tasmota
    On the bottom we have the marking: OPURU_MINI_V20 2007-11-23, you can also see programming pads, including the characteristic IO0 - is it ESP8266?
    [ESP8266/LM1] LED strip controller with WiFi CCT WF-M2 (or maybe WF-M4 RGB) - interior, Tasmota
    I tried to solder it with programming cables, as usual, I described ESP programming on the forum via esptool.py:
    [ESP8266/LM1] LED strip controller with WiFi CCT WF-M2 (or maybe WF-M4 RGB) - interior, Tasmota
    [ESP8266/LM1] LED strip controller with WiFi CCT WF-M2 (or maybe WF-M4 RGB) - interior, Tasmota
    [ESP8266/LM1] LED strip controller with WiFi CCT WF-M2 (or maybe WF-M4 RGB) - interior, Tasmota
    All you need is a USB to UART converter, connecting RX, TX, power supply and IO0 shorted to ground (during booting) to put the ESP in bootloader mode.
    Success! Esptool recognized the system.

    Tasmota I managed to upload it, but the issue of the template remained... I decided to desolder the WiFi module to learn its markings. I applied additional flux and a bit of lead binder to the February:
    [ESP8266/LM1] LED strip controller with WiFi CCT WF-M2 (or maybe WF-M4 RGB) - interior, Tasmota [ESP8266/LM1] LED strip controller with WiFi CCT WF-M2 (or maybe WF-M4 RGB) - interior, Tasmota
    Hot air moves and after a while we have a desoldered module:
    [ESP8266/LM1] LED strip controller with WiFi CCT WF-M2 (or maybe WF-M4 RGB) - interior, Tasmota
    We can also see its outputs, they are signed on the descriptive layer:
    [ESP8266/LM1] LED strip controller with WiFi CCT WF-M2 (or maybe WF-M4 RGB) - interior, Tasmota
    This allowed us to identify the module - after all, it is LM1, its pins are documented on the network:
    WiFi Module LM1 and Pinout Diagram
    I also did a short analysis - where the path leads.
    [ESP8266/LM1] LED strip controller with WiFi CCT WF-M2 (or maybe WF-M4 RGB) - interior, Tasmota
    As you can see, this analysis will also be useful for the RGBCW version. I described all five transistors:
    - Q2 - IO5 (not soldered on this board)
    - Q3 - IO15 (not soldered on this board)
    - Q4 - IO12
    - Q5 - IO13
    - Q6 - IO14
    Additionally, I also mapped the button, but it seems to me that it is not marked correctly in the photo. If I find a moment, I will check the configuration of the bar and update the topic, and if not, you can try to trace the paths.
    Finally, a nice photo taken before soldering the WiFi module into place (pads cleaned):
    [ESP8266/LM1] LED strip controller with WiFi CCT WF-M2 (or maybe WF-M4 RGB) - interior, Tasmota


    Summary
    We bought the CCT version and got rather RGB - but that`s not a problem, it`s just one more transistor. In addition, the standard transistors are A09T, i.e. AO3400, you won`t get much out of them, the WiFi module is fortunately ESP and the programming pads are integrated. The advantage of this WF-M2 (or rather WF-M4) is the button on the housing, which allows us to control the LEDs even when WiFi stops working. In my opinion, this is quite important, because otherwise a router failure will paralyze the entire house, and this would defeat the whole point of playing "smart"? Some time ago, I even manually added buttons to strap controllers manufactured without them, changing the firmware makes this possible.

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

FAQ

TL;DR: For DIY users replacing stock firmware, this 9–24 V, 6 A LED controller hides 3 transistor outputs, and “Success! Esptool recognized the system.” The thread shows how to confirm an LM1/ESP8266 module, enter bootloader mode with IO0 to GND, and map GPIOs for Tasmota on mislabeled WF-M2/WF-M4 hardware. [#20669979]

Why it matters: This FAQ helps you avoid flashing the wrong template when a controller sold as CCT is internally wired more like an RGB variant.

Variant mentioned Label seen Internal clue Likely channel count
WF-M2 CCT Box and sticker Expected 2-channel tunable white 2
WF-M4 Manual Board has 3 fitted output transistors 3
RGBCW-related board layout GPIO analysis 5 transistor positions Q2–Q6 on PCB Up to 5

Key insight: Do not trust the packaging alone. On this controller, the transistor population and GPIO traces reveal the real functional variant faster than the model name does.

Quick Facts

  • Purchase price was stated as less than PLN 50, placing this controller in the low-cost interior lighting category where mislabeled hardware is a practical risk. [#20669979]
  • The housing and listing describe a WF-M2 LED strip controller rated 9–24 V and 6 A, with a DC barrel input and standard strip output terminals. [#20669979]
  • The PCB underside is marked OPURU_MINI_V20 2007-11-23 and includes programming pads, notably IO0, which enabled direct ESP flashing access. [#20669979]
  • The opened unit had 3 fitted transistors and 5 mapped transistor positions overall: Q2=IO5, Q3=IO15, Q4=IO12, Q5=IO13, Q6=IO14. [#20669979]
  • The output transistors were identified as A09T / AO3400 MOSFETs, and the author noted that “you won’t get much out of them,” highlighting output-stage limits. [#20669979]

How can I identify whether a WiFi LED strip controller sold as WF-M2 CCT is actually a WF-M4 RGB version inside?

Open the case and count the fitted output transistors. A true CCT controller usually suggests 2 channels, but this unit had 3 populated transistors, which matched RGB-style hardware more than tunable white. The manual also named WF-M4 while the box said WF-M2, so the internal board was the stronger identifier. [#20669979]

Why would a LED strip controller packaging say WF-M2 while the manual inside refers to WF-M4?

Because the seller package and the included documentation do not appear to match the same hardware variant. The box carried a CCT WF-M2 sticker, but the manual explicitly showed WF-M4, and the PCB had 3 fitted transistor outputs. That combination suggests reused packaging or a shared enclosure across multiple models. [#20669979]

What is the LM1 WiFi module, and how is it related to ESP8266-based LED strip controllers?

LM1 is the WiFi module mounted on this controller, and the thread links it directly to ESP-style flashing pads and ESP bootloader behavior. “LM1 is a Wi‑Fi module that provides wireless control in the LED controller, with documented pins and an ESP-compatible programming interface.” The author confirmed that esptool recognized the chip after wiring RX, TX, power, and IO0. [#20669979]

How do I flash Tasmota onto an LM1 or ESP8266 LED strip controller using esptool.py and a USB-to-UART adapter?

Use a USB-to-UART adapter and boot the module in flash mode. 1. Connect RX, TX, power, and GND to the programming pads. 2. Short IO0 to ground during boot so the ESP enters the bootloader. 3. Run esptool.py, then upload Tasmota after the chip is detected. The thread reports a successful flash, but the GPIO template still needed manual mapping afterward. [#20669979]

Which programming pads do I need to connect on this OPURU_MINI_V20 board to enter ESP8266 bootloader mode?

You need RX, TX, power supply, and GND, plus IO0 pulled to ground during boot. The PCB underside marked OPURU_MINI_V20 exposed these pads clearly enough for direct soldered programming leads. The author specifically called out IO0 as the characteristic pad used to enter ESP bootloader mode. [#20669979]

What is IO0 on an ESP8266 board, and why does it have to be shorted to ground during flashing?

IO0 is the boot-selection pin used to force the ESP into programming mode. “IO0 is an ESP8266 GPIO pin that changes the boot path when grounded at startup, letting the chip enter its serial bootloader for flashing.” In this controller, the author shorted IO0 to GND only during boot, and esptool then recognized the system successfully. [#20669979]

How can I find the correct Tasmota template or GPIO mapping for a WF-M2 or WF-M4 LED strip controller?

Trace the PCB paths from the module pins to each transistor and button. The author desoldered the LM1 module, read the board labels, and mapped transistor outputs as Q2=IO5, Q3=IO15, Q4=IO12, Q5=IO13, and Q6=IO14. That physical trace work is more reliable than trusting the WF-M2 or WF-M4 label when choosing a Tasmota template. [#20669979]

Which GPIOs on the LM1 module control the transistor outputs Q2 to Q6 in this WF-M2/WF-M4 controller?

The mapped outputs were Q2 on IO5, Q3 on IO15, Q4 on IO12, Q5 on IO13, and Q6 on IO14. Only 3 transistor positions were populated in the examined unit, but the PCB layout exposed 5 total output positions. That mapping also makes the analysis useful for related RGBCW-style versions. [#20669979]

Why does this supposed CCT LED controller have three output transistors instead of the two channels normally expected for tunable white?

Because the internal hardware appears closer to an RGB variant than a pure CCT controller. “CCT is a tunable-white LED control category that adjusts white temperature using two channels, usually warm and cool white, rather than three RGB color channels.” This board had 3 populated transistors, so the hardware did not match the expected 2-channel CCT layout. [#20669979]

What is the difference between a CCT LED strip controller and an RGB or RGBCW controller for interior lighting?

A CCT controller targets white-temperature control, while RGB and RGBCW controllers drive more output channels. In the thread, CCT implies 2 white channels, the opened board behaved like a 3-channel RGB layout, and the traced PCB even exposed 5 transistor positions for a related RGBCW-style design. For interior lighting, that channel count determines whether you get tunable white only or color plus white control. [#20669979]

How do I trace PCB paths to map the button and MOSFET outputs on an unknown LED strip controller board?

Follow each copper path from the module pads to the transistor gates and the button pad. The author removed the LM1 module, used the silkscreened outputs to identify pins, and then assigned Q2 through Q6 to IO5, IO15, IO12, IO13, and IO14. He also mapped the button, but noted the photo marking may be wrong, so a final continuity check is still needed. [#20669979]

What is AO3400 or A09T, and how suitable is it as the output transistor in a 9-24V 6A LED strip controller?

A09T was identified by the author as AO3400, the MOSFET used on the output stage. “AO3400 is a MOSFET transistor that switches LED strip channels on the controller board, using small SMD packaging for compact low-voltage power control.” The author’s practical judgment was cautious: on this 9–24 V, 6 A product, “you won’t get much out of them.” [#20669979]

What tools and soldering steps are best for safely desoldering and reinstalling the LM1 WiFi module to read its markings?

Use added flux, a little leaded solder, hot air, and cleaned pads before reinstalling. 1. Wet the module edges with flux and fresh solder. 2. Heat evenly with hot air until the LM1 lifts cleanly. 3. Clean the pads, read the markings, then solder the module back. The author showed the module removed and later photographed the cleaned pads before reassembly. [#20669979]

How does Tasmota compare with the original Open-Lit app firmware for a WiFi LED strip controller like the WF-M2/WF-M4?

Tasmota gives you direct local firmware control, while the stock setup expects pairing with the Open-Lit app. The thread confirms Tasmota flashed successfully, but also shows the main post-flash task: finding the correct GPIO template because the hardware labeling was inconsistent. The original hardware still keeps one practical advantage either way: a physical button on the housing for fallback control. [#20669979]

What troubleshooting steps should I try if esptool.py recognizes the ESP8266 but the LED channels or button still do not work correctly after flashing Tasmota?

Verify the GPIO map before blaming the flash. Start by checking whether your board has 3 populated transistors or more, then match outputs to Q2=IO5, Q3=IO15, Q4=IO12, Q5=IO13, and Q6=IO14. Next, trace the button path because the author warned its photo marking may be incorrect. A successful esptool connection only proves programming access, not that the Tasmota template matches the actual PCB wiring. [#20669979]
Generated by the language model.
ADVERTISEMENT