logo elektroda
logo elektroda
X
logo elektroda

[BL602] Elivco smart plug with energy monitor BL0937 RMC004

sverd2 24729 84

TL;DR

  • An Elivco RMC004 Wi‑Fi smart plug from AliExpress was opened and examined, revealing a BL602 controller, BL0937 energy monitor, and BP2525 power supply.
  • The PCB was removed by desoldering it from the plug pins, then traces were followed with a multimeter to map the BL602 GPIO assignments.
  • The relay is marked for 16A max even though the plug is rated for 20A max, raising a safety and sizing question.
  • BL602 firmware flashing works, and the LED, relay, and button respond with GPIO20, GPIO2, and GPIO22 configured correctly.
  • BL0937 energy monitoring still does not show up, despite identifying CF1 on GPIO3, CF on GPIO14, and SEL on GPIO21.
Generated by the language model.
ADVERTISEMENT
📢 Listen (AI):
  • #31 20730653
    p.kaczmarek2
    Moderator Smart Home
    Posts: 14444
    Help: 650
    Rate: 12414
    Follow the guide and just ask here if any question arises.

    It should work, maybe the pinout will be different, but the QFN package of BL602 is well documented so you can just investigate the tracks on the PCB to locate RX, TX, etc...
    Helpful post? Buy me a coffee.
  • ADVERTISEMENT
  • #32 20730733
    viol_ten0q
    Level 6  
    Posts: 14
    okay, so I tried to disassemble the whole thing and it seems like without a hot air station, it's going to be impossible to work it. May I ask again about changing the chip altogether? I can destructively remove BL602 with my current soldering setup but would like to replace it with another chip if possible. What options do I have?
  • #33 20730739
    p.kaczmarek2
    Moderator Smart Home
    Posts: 14444
    Help: 650
    Rate: 12414
    It's the same pinout as TYWE2S, so ESP02 will most likely match, but may require soldering an extra resistor or two, I am not sure.
    ESP-02S module with a silver chip and several pins.
    Still, I'd suggest to try flashing BL602 first.
    Helpful post? Buy me a coffee.
  • #34 20731039
    viol_ten0q
    Level 6  
    Posts: 14
    p.kaczmarek2 wrote:
    It's the same pinout as TYWE2S, so ESP02 will most likely match, but may require soldering an extra resistor or two, I am not sure.
    ESP-02S module with a silver chip and several pins.
    Still, I'd suggest to try flashing BL602 first.


    Thank you for the info and encouragement. I was able to wiggle the bl602 board out with some elbow grease.. now I just need to properly install the wires. Will report back with the results.
  • #35 20731242
    p.kaczmarek2
    Moderator Smart Home
    Posts: 14444
    Help: 650
    Rate: 12414
    Hmmm why not just desolder the whole board? We have tutorial where we've desolder the module of the same shape... not BL602 but physically the same board:


    Helpful post? Buy me a coffee.
  • #36 20731810
    viol_ten0q
    Level 6  
    Posts: 14
    p.kaczmarek2 wrote:
    Hmmm why not just desolder the whole board? We have tutorial where we've desolder the module of the same shape... not BL602 but physically the same board:




    Oh I did desolder the whole board out... the board was attached to the plug terminals by solder. It didn't help me get access to the pads on the back though by the way it was set up.

    I was able to solder 5 wires (4 in the picture - pls don't judge me on the solder job :) ) to the back side of the module, now I likely need to solder two wires to the bottom of the module for power and ground since the ones on the back will be used to set boot pin to high?

    I also realised that I don't have a USB to TTL adapter so I want to order some from Aliexpress. Do you have a suggestion as to which one should I get?
    Close-up of a circuit board with soldered wires and pin labels.
  • #37 20732063
    p.kaczmarek2
    Moderator Smart Home
    Posts: 14444
    Help: 650
    Rate: 12414
    viol_ten0q wrote:

    I was able to solder 5 wires (4 in the picture - pls don't judge me on the solder job :) ) to the back side of the module, now I likely need to solder two wires to the bottom of the module for power and ground since the ones on the back will be used to set boot pin to high?

    I am not sure what do you mean - you need to solder 5 wires in total, there is no need to solder VDD and GND twice.

    viol_ten0q wrote:

    I also realised that I don't have a USB to TTL adapter so I want to order some from Aliexpress. Do you have a suggestion as to which one should I get?
    Close-up of a circuit board with soldered wires and pin labels.

    I am using CH340, the one with voltage levels selection
    Helpful post? Buy me a coffee.
  • #38 20732089
    viol_ten0q
    Level 6  
    Posts: 14
    p.kaczmarek2 wrote:

    I am not sure what do you mean - you need to solder 5 wires in total, there is no need to solder VDD and GND twice.


    https://youtu.be/bs0ylC6xRs0

    In this video, it looks like the vcc and boot on the back were connected via a resistor and the main power supply was used to power the module itself?
  • ADVERTISEMENT
  • #39 20732142
    p.kaczmarek2
    Moderator Smart Home
    Posts: 14444
    Help: 650
    Rate: 12414
    This is because main power supply was 12V there and I needed to get 3.3V to connect to boot via resistor. In your case, there is 3.3V everywhere so there is no need for separate connection.
    Helpful post? Buy me a coffee.
  • #40 20732186
    viol_ten0q
    Level 6  
    Posts: 14
    p.kaczmarek2 wrote:
    This is because main power supply was 12V there and I needed to get 3.3V to connect to boot via resistor. In your case, there is 3.3V everywhere so there is no need for separate connection.


    So I can just connect boot to vcc and connect that wire to the adapter’s 3v3?
  • #41 20732267
    p.kaczmarek2
    Moderator Smart Home
    Posts: 14444
    Help: 650
    Rate: 12414
    I am always connecting boot to vcc via 10k resistor, just to be sure, but apart from that, yes.
    Helpful post? Buy me a coffee.
  • #42 20732269
    viol_ten0q
    Level 6  
    Posts: 14
    p.kaczmarek2 wrote:
    I am always connecting boot to vcc via 10k resistor, just to be sure, but apart from that, yes.


    Cool thank you. Ill do that after the adapters arrive and will report back here.
  • ADVERTISEMENT
  • #43 20732598
    p.kaczmarek2
    Moderator Smart Home
    Posts: 14444
    Help: 650
    Rate: 12414
    Well, there are other options, if you are in hurry. Do you maybe happen to have Arduino or NodeMCU available? That could be used as USB to UART bridge.
    Helpful post? Buy me a coffee.
  • #44 20732952
    viol_ten0q
    Level 6  
    Posts: 14
    p.kaczmarek2 wrote:
    Well, there are other options, if you are in hurry. Do you maybe happen to have Arduino or NodeMCU available? That could be used as USB to UART bridge.


    Nice. I was able to use Arduino as the usb-ttl adapter but now getting errors trying to flash the chip using bldevcube

    attaching pictures of connections and log from the utility.

    Screenshot of Bouffalo Lab Dev Cube software showing BFLB IMG LOAD SHAKEHAND FAIL error. Close-up of an Arduino board with wires connected to a small electronic module. Arduino with connected USB-TTL adapter and wires against a keyboard background.

    I have made sure using continuity check that all the wires are attached as they should be.
    Attachments:
    • log.txt (6.88 KB) You must be logged in to download this attachment.
  • ADVERTISEMENT
  • #45 20733220
    p.kaczmarek2
    Moderator Smart Home
    Posts: 14444
    Help: 650
    Rate: 12414
    I am not BL602 expert but I get that error when connection is wrong. So...
    - try to swap RX with TX
    - make sure that Boot is pulled high when you connect VDD (if you connect VDD first, and then pull boot high, it won't work)
    - try lower baud rate
    - try to shorten your wires
    - make sure that 3.3V is connect to the chip (if there is no power, it won\'t flash)
    Helpful post? Buy me a coffee.
  • #46 20733239
    viol_ten0q
    Level 6  
    Posts: 14
    p.kaczmarek2 wrote:
    I am not BL602 expert but I get that error when connection is wrong. So...
    - try to swap RX with TX
    - make sure that Boot is pulled high when you connect VDD (if you connect VDD first, and then pull boot high, it won't work)
    - try lower baud rate
    - try to shorten your wires
    - make sure that 3.3V is connect to the chip (if there is no power, it won\'t flash)


    So, I broke one of the chips when I ripped the boot pad off so that went in the trash. I disassembled another same model ewelink plug and soldered wires again.. this time I was able to do it without having to take the module out.

    - Tried swapping rx and tx as there were suggestions on this forum elsewhere to do so.. didn't work.
    - I have taken off the insulation of the 3v3 wire in the middle and connected it BOOT wire with a 10k resistor in between, so a single wire goes into 3v3 in Arduino. That is correct, yeah?
    - lowered baud rate to 57600 as suggested by some PineCone forum
    - I shortened the wires by a few cms for the soldering on the new chip
    - didn't get you there.. how do I ensure that? If it helps, 3v3 on module is connected to 3v3 on Arduino and the chipset's LED is blinking.
  • #47 20733249
    p.kaczmarek2
    Moderator Smart Home
    Posts: 14444
    Help: 650
    Rate: 12414
    is the Atmega on Arduino put into RESET state?
    Helpful post? Buy me a coffee.
  • #48 20733259
    viol_ten0q
    Level 6  
    Posts: 14
    p.kaczmarek2 wrote:
    is the Atmega on Arduino put into RESET state?


    Yeah I connected RESET with GND as was mentioned in the guides to turn Arduino to USB-TTL adapter. I guess I will have to wait for the proper TTL converter to give it another shot...
  • #49 20733292
    p.kaczmarek2
    Moderator Smart Home
    Posts: 14444
    Help: 650
    Rate: 12414
    Hmm... disconnect boot from VDD, then reconnect power. Are you getting anything on UART? You should get a debug log from original BL602 firmware.
    Helpful post? Buy me a coffee.
  • #50 20733457
    viol_ten0q
    Level 6  
    Posts: 14
    p.kaczmarek2 wrote:
    Hmm... disconnect boot from VDD, then reconnect power. Are you getting anything on UART? You should get a debug log from original BL602 firmware.


    When I press “Log” in the DevCube window it still throws errors “file not available” etc I tried a different arduino nano - didn’t work. Resoldered wires, changed rx tx etc but no luck. Tried to do it without boot attached to 3v3 and then it attached without the resistor but no luck there either. Could it also be that this new setup where the module is still installed in the mainboard is creating issues? That it’s somehow shorting some pins down the line etc?
  • #51 20744239
    viol_ten0q
    Level 6  
    Posts: 14
    While I was waiting for the UART USB converter from Ali, I found that the Flipper Zero I had also can be used as a ttl converter. I used that and it flashed successfully! Currently waiting for the glue to dry to actually plug the plug and see if it works.

    Thanks for the help.
  • #52 20744322
    p.kaczmarek2
    Moderator Smart Home
    Posts: 14444
    Help: 650
    Rate: 12414
    Well, Flipper Zero is certainly the most expensive USB to UART converter I've heard about, but as it looks like it also does the trick. So, good job, keep us updated, I will try to help if any issue arise.
    Helpful post? Buy me a coffee.
  • #53 20744331
    viol_ten0q
    Level 6  
    Posts: 14
    Haha yeah it’s expensive but I had it already so just one more use for it.

    Unfortunately after successful flash, I removed all the soldered wires and then plugged the socket into the outlet but I never got the openbeken AP. Now I’m banging my head against the desk for taking the wires off too soon. Will try to solder them on again and see if I can still detect and reflash or if I killed the chip again. :)
  • #54 20744714
    p.kaczmarek2
    Moderator Smart Home
    Posts: 14444
    Help: 650
    Rate: 12414
    The BL602 UART port is used for both flashing and debug log output, so if you keep programmer connected you can see what's going on and detect any potential issues early.

    The BK7231 platform is different in that manner, on BK7231 you have UART1 for flashing and separate UART2 for debug log.
    Helpful post? Buy me a coffee.
  • #55 20855548
    kajet1916
    Level 9  
    Posts: 23
    Hi, Any news with BL0937 driver for BL602?
  • #56 20856005
    romanfarki
    Level 6  
    Posts: 7
    >>20731039
    could you post some instructions on how you did it, I'm also interested in replacing the chip completely
    Does the consumption monitor work for you?
    what are the pins for connection?
    could you send yaml ?

    Added after 10 [hours] 44 [minutes]:

    >>20385949
    whis pad on smart plug is relay ?

    rest pins i have already conected ..

    please help me :D
  • #57 20857070
    p.kaczmarek2
    Moderator Smart Home
    Posts: 14444
    Help: 650
    Rate: 12414
    The relay pad can change between device models. I'd suggest checking it with multimeter or just experimenting in Tasmota itself. There are not many options to choose from
    Helpful post? Buy me a coffee.
  • #58 20869179
    hojnikb
    Level 12  
    Posts: 45
    Rate: 2
    kajet1916 wrote:
    Hi, Any news with BL0937 driver for BL602?

    +1

    I have the same device and i'm wondering as well.
  • #59 20909548
    atomiquepingouin
    Level 4  
    Posts: 10
    hi I can't flash my bl602. I have this error:
    [19:09:08.960] - shake hand fail
    [19:09:08.960] - Load helper bin time cost(ms): 3193.40771484375
    [19:09:08.960] - {"ErrorCode":"0003","ErrorMsg":"BFLB LOAD HELP BIN FAIL"}
    [19:09:08.960] – Burn Retry
    [19:09:08.960] - 0
    [19:09:08.961] - Burn return with retry fail

    but i can open UART
  • #60 20909569
    p.kaczmarek2
    Moderator Smart Home
    Posts: 14444
    Help: 650
    Rate: 12414
    Did you correctly connect BOOT pin?
    Helpful post? Buy me a coffee.
📢 Listen (AI):

Topic summary

✨ The discussion revolves around the Elivco smart plug model RMC004, which incorporates a BL602 microcontroller and a BL0937 energy monitoring IC. Users report challenges with the energy monitoring functionality, primarily due to the absence of a necessary interrupt counter in the BL602 driver for the BL0937. Some users have successfully opened the plug and attempted to modify the firmware, while others have suggested replacing the BL602 with an ESP-02S module for better compatibility. Calibration of the energy monitoring feature is also highlighted as essential for accurate readings. Recent updates indicate that the OpenBL602 firmware now supports the BL0937, although users still report issues with accuracy and functionality. Various methods for opening the plug and flashing the firmware are discussed, including using Arduino as a USB-TTL adapter and troubleshooting connection issues.
Generated by the language model.

FAQ

TL;DR: OpenBeken v1.17.421 adds BL0937 energy-meter support for BL602-based Elivco RMC004 plugs, cutting voltage error to under 1 % after calibration [Elektroda, Mad_Maxs, post #20923215] “Calibration is necessary” [Elektroda, p.kaczmarek2, post #20923577]

Why it matters: You can now get accurate, cloud-free power monitoring on a $10 smart plug.

Quick Facts

• Rated load: 16 A relay on EU RMC004, despite 20 A label [Elektroda, sverd2, post #20357626] • Energy IC: BL0937, ±0.5 % active-power accuracy (typical) [BL0937 Datasheet, 2020] • Wi-Fi SoC: Bouffalo BL602L20 @ 192 MHz [Elektroda, p.kaczmarek2, post #20359721] • Latest supported firmware: OpenBeken 1.17.421 or newer [Elektroda, Mad_Maxs, post #20923215] • Typical flashing baud rate: 115 200 bps (fallback to 57 600 if handshake fails) [Elektroda, p.kaczmarek2, post #20733220]

What hardware is inside the Elivco RMC004 smart plug?

The EU version uses a BL602L20 Wi-Fi module, a BL0937 energy-meter IC and a BP2525 power supply. The relay is Songle-branded, rated 16 A, while the case is labelled 20 A [Elektroda, sverd2, post #20357626]

Is it safe to draw 20 A through this plug?

No. The internal relay is specified for 16 A; exceeding it risks overheating and contact welding. Keep continuous loads ≤ 16 A (≈ 3.5 kW at 230 V) [Elektroda, sverd2, post #20357626]

How accurate are the readings after calibration?

Users report < 1 % voltage error and < 3 % current error after single-point calibration with a resistive load [Elektroda, hojnikb, post #20923833] The BL0937 chip itself is specified at ±0.5 % for active power [BL0937 Datasheet, 2020].

Which GPIO mapping works for the SM-028 V1.3 red PCB?

• Relay GPIO2 • LED (active-low) GPIO20 • Button GPIO22 • BL0937 CF1 GPIO3, CF GPIO14, SEL GPIO21 [Elektroda, Raufaser, post #21016900]

How do I flash OpenBeken to the BL602 module?

  1. Solder wires to 3.3 V, GND, RX, TX and BOOT; pull BOOT high via 10 kΩ.
  2. Connect a 3.3 V USB-TTL (CH340) at 115 200 bps.
  3. Use BLDevCube → UART → Load & Burn the latest BL602 build. [Elektroda, p.kaczmarek2, post #20732063]

Handshake fail during flashing—what now?

Swap RX/TX, ensure BOOT is high before power-up, shorten wires, and lower baud to 57 600. Damaged BOOT pads can be bypassed by soldering to the R2 resistor pad on the same trace [Elektroda, atomiquepingouin, post #20912543]

How do I calibrate the BL0937 in OpenBeken?

Open WebApp → Tools → Energy Cal. Enter a known mains voltage (e.g., 230 V) and known load wattage, press “Set & Save”. Calibration values are stored in flash [Elektroda, p.kaczmarek2, post #20923577]

Can I replace the BL602 module with an ESP-02S?

Yes. The footprint matches TYWE2S/ESP-02S. You may need to add bias resistors, then flash ESPHome/Tasmota. “Replacing it with ESP-02S is also a good idea” [Elektroda, p.kaczmarek2, post #20386004]

What’s the simplest way to open the plug without damage?

Clamp the body, then cut 1.5 mm below the seam with a Dremel or < 1 mm metal-saw blade, making a 360° cut ~1.5 mm deep [Elektroda, P0intLess, post #20617278]

Edge case: no Wi-Fi AP after a ‘successful’ flash.

Keep the UART connected and watch boot logs; missing GPIO config often blocks startup. Use GPIO Doctor to identify correct pins, then set Relay/LED/Button roles and reboot [Elektroda, p.kaczmarek2, post #20917935]

What voltage does the factory firmware report?

Uncalibrated plugs reported 260–270 V on 235 V mains, an error of about 12 % [Elektroda, hojnikb, post #20923500] Calibration removes this offset.
Generated by the language model.
ADVERTISEMENT