FAQ
TL;DR: For RMW002 owners, 2 missing parts often explain failures: “the rattle disappeared” after adding C6 = 100 nF and R1 = 100 kΩ. This FAQ shows how to open, flash, map GPIOs, and stabilize BL602L20/SM-028 versions, while warning that identical cases may hide unsupported LN882HK hardware. [#20807168]
Why it matters: The same RMW002 case ships with different chips and pinouts, so correct identification saves hours of failed flashing and unstable relay behavior.
| Version |
Chip |
Open firmware status |
Notes |
| RMW002 SM-028 |
BL602L20 / BL602 |
Supported in thread |
OpenBL602 flashed successfully on multiple units |
| RMW002 variant |
BK7231 |
Often available |
Mentioned as an alternative to BL602 |
| RMW002 lookalike |
LN882HK |
Not supported in thread |
Same outer case, different internals |
Key insight: Do not trust the RMW002 label alone. Check the actual chip and board wiring before flashing, because both GPIO maps and firmware support changed between units.
Quick Facts
- The working BL602 profile from the first report uses GPIO20 = Btn, GPIO21 = Rel, and GPIO22 = WifiLED_n on board SM-028 with chip BL602L20. [#20781275]
- A second verified RMW002 variant uses GPIO3 = TglChanOnTgl, GPIO14 = LED_n, GPIO20 = Button, and GPIO21 = Rel, showing that at least 2 pinouts exist under the same product name. [#20795450]
- Flashing requires a 3.3 V serial setup with labeled rear pads for 3.3V, GND, RX, TX, and Boot; users report the SM-028 often must be removed to reach them. [#20800216]
- Several users fixed relay chatter or phantom switching by populating missing footprints C6 = 100 nF and R1 = 100 kΩ; one report says C6 alone reduced the issue, but a later fix used both parts. [#20859608]
- Price and hardware quality vary sharply: one buyer paid about $2, and another warning notes that BL602 OTA can silently stop once the 1 MB flash limit is reached. [#20860356]
How do I flash OpenBL602 onto the Mini Smart Breaker RMW002 with the BL602L20/SM-028 board?
You flash it through the SM-028 module’s UART pads, not over mains power. 1. Open the clipped case and remove the SM-028 if needed. 2. Solder to the labeled rear pads: 3.3V, GND, RX, TX, and Boot. 3. Use a USB-to-UART adapter and flash OpenBL602, then apply the matching GPIO template. The first successful report used OpenBL602_1.17.282 on a BL602L20-based RMW002 board marked SM-028.
[#20781275]
What is the correct GPIO template for the RMW002 smart breaker on BL602L20, including the relay, button, WiFi LED, and external switch pins?
There is no single correct template for every RMW002. One confirmed BL602L20 template is GPIO20 = Btn;1, GPIO21 = Rel;1, and GPIO22 = WifiLED_n;0. Another confirmed SM-028 variant adds the external switch on GPIO3 = TglChanOnTgl;1 and uses GPIO14 = LED_n;1, with GPIO20 = Btn;1 and GPIO21 = Rel;1. Use the template that matches your traced board, not the product label alone.
[#20795450]
Why do some RMW002 units use a different pinout, such as GPIO3 for TglChanOnTgl and GPIO14 for LED_n, instead of the template from the first post?
They use different pinouts because the same RMW002 marking covers more than one board revision. One user reverse-engineered traces and found GPIO3 for the external switch and GPIO14 for LED_n, while the first post used GPIO22 for WifiLED_n and no external-switch pin. That means the enclosure name stayed the same, but the internal wiring changed. Trace verification is safer than copying the first template blindly.
[#20795350]
What's the easiest way to open the RMW002 plastic case without damaging the clips or the enclosure?
The easiest method is to pry the corners gradually because the case is clipped, not welded or screwed. A later user described four molded plastic corner pins held by friction fit. He loosened one corner slightly with a razor knife, then worked around all four corners until the pins released. Earlier posts also confirm there are no screws and the shell is not glued.
[#20986233]
Which USB-to-UART adapter and wiring do I need to connect to the SM-028 module for flashing, including 3.3V, GND, RX, TX, and Boot?
Use a USB-to-UART adapter such as an FTDI-class serial converter and wire 3.3V, GND, RX, TX, and Boot. The rear side of the SM-028 exposes labeled pads for those five signals, but you must solder to them directly. One user explicitly lists 3.3V, Gnd, RX, TX, and Boot as the required flashing points. Keep the supply at 3.3 V, not mains, during programming.
[#20800216]
Why does the SM-028 BL602 board sometimes need to be desoldered from the main RMW002 PCB before flashing?
It often needs desoldering because the flashing pads are on the rear of the SM-028 module. The module sits against the main PCB, so you cannot reach the labeled 3.3V, GND, RX, TX, and Boot pads cleanly while it remains installed. One successful guide for beginners calls this the main difficulty and says removal is required to access the solder points on the back.
[#20800216]
What is TglChanOnTgl in OpenBeken/OpenBL602, and how is it used to make the RMW002 external switch input S1/S2 work?
"TglChanOnTgl" is an OpenBeken input role that toggles a relay channel when the input changes state, acting as an external wall-switch handler rather than a plain logic input. On the traced RMW002 variant, assigning GPIO3 to TglChanOnTgl made the S1/S2 external switch work. Without that role, users reported the external switch function did not behave like a proper toggle control.
[#20795350]
What is LED_n or WifiLED_n in an OpenBeken GPIO template, and why is the LED logic inverted on some RMW002 boards?
"LED_n" or "WifiLED_n" is an active-low LED assignment that drives a status LED with inverted logic, meaning the LED turns on when the GPIO outputs the opposite electrical level from a normal active-high LED. In this thread, one board used WifiLED_n on GPIO22 with value 0, while another used LED_n on GPIO14 with value 1. That difference reflects hardware wiring changes between revisions.
[#20795450]
How can I stop relay rattling, random switching, or phantom activation on the RMW002 by adding the missing R1 and C6 components?
Populate the missing R1 and C6 footprints. A working fix reported in the thread uses
C6 = 100 nF and
R1 = 100 kΩ, after which contact rattle disappeared when GPIO3 was used in toggle mode. Another later post reports
R1 = 10 kΩ with
C6 = 0.1 mF, but both fixes agree that the missing RC parts around the external-switch input are the key cause. Use the actual empty pads on your board revision.
[#20807168]
Why does GPIO3 configured as TglChanOnTgl cause random relay switching on some RMW002 devices, while dInput works more reliably?
GPIO3 toggles randomly because the external-switch input can float when the supporting RC network is missing. One user says dInput works, but TglChanOnTgl causes random on/off events; that matches other posts showing absent C6 and R1 footprints on some boards. dInput reads the pin, while TglChanOnTgl actively turns edge changes into relay actions, so noise becomes visible as switching. Adding the missing components reduced or removed the false triggers.
[#20866048]
RMW002 with BL602 vs BK7231 vs LN882HK: which version is better for OpenBeken flashing and compatibility?
The safer choice in this thread is BL602 or BK7231, not LN882HK. BL602-based RMW002 units were flashed successfully with OpenBL602, and BK7231 is mentioned as another common OpenBeken-friendly alternative. A later warning says some identical-looking RMW002 units contain LN882HK, which was explicitly described as unsupported. If compatibility matters more than price, confirm the chip before buying or opening the case.
[#20843957]
How can I configure the RMW002 relay to start closed instead of open at power-up using the Startup menu or autoexec.bat?
Set the startup state in the Startup menu, or script it in autoexec.bat. The thread states both options are supported, and autoexec.bat can also add delays if needed. That means you can force the relay closed at boot instead of using the default open state. This is a firmware setting, not a hardware mod.
[#20853244]
Why does SendGet show 'CMD not found' on OpenBL602, and how can I build a BL602 firmware image with SendGet or SendPOST enabled?
SendGet shows “CMD not found” because it was disabled on the BL602 build discussed in the thread. The maintainer says BL602 has only
1 MB flash, versus
2 MB on Beken, so some features are trimmed. To enable SendGet or SendPOST, fork the app, switch the relevant define and makefile options, commit the change, and use the project’s online build system to generate artifacts. BL602 OTA may silently fail if the image grows too large.
[#20871867]
What causes a desoldered SM-028 BL602 module to get stuck in reboot loops or show 'reboot reason POWER_OFF' during flashing, even with a stable 3.3V supply?
The thread points to missing external board conditions, not only bad power. One user tested
3 different power supplies, including a
0–35 V, 2 A lab supply, and still saw reboot loops and “reboot reason POWER_OFF” when the SM-028 was desoldered. The same module worked again after being soldered back into the RMW002. That suggests some removed pull-up, pull-down, or surrounding circuitry on the main board may stabilize the module during normal operation.
[#21007489]
When reading or reflashing a BL602 with a CH340 adapter at 128 speed and there is no handshake, what erase or boot procedure is required?
The thread does not provide a confirmed erase requirement or a tested handshake recovery sequence. It only shows one user asking whether erase is mandatory when a CH340 at speed 128 gives no handshake, with no posted answer afterward. Use the documented Boot-pad flashing method described earlier in the same thread, but treat the handshake issue itself as unresolved here. That is the thread’s hard limit.
[#20872519]
Generated by the language model.