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

Czy wolisz polską wersję strony elektroda?

Nie, dziękuję Przekieruj mnie tam

Mirabella Genio Wi-Fi LED USB Desk Lamp With Wireless Charger - Teardown

wolfieeewolf  2 1695 Cool? (+2)
📢 Listen (AI):

TL;DR

  • Teardown of the Mirabella Genio Wi-Fi LED USB Desk Lamp With Wireless Charger I003867, a Bunnings $29.95AUD desk lamp using a WB3S BK7231T module with TuyaMCU.
  • CloudCutter via LightLeak flashed the main chip, then OBK logging exposed dpID 1 for power, dpID 3 and 4 for value-based light control, and dpID 2 remained unclear.
  • The lamp reports 255 and 127 in the logs for mode states, while brightness changes appear around 25 and 246 when holding the power button to dim or brighten.
  • Configuration only works partially: the light can turn on and adjust temperature or brightness, but the slider snaps back to 0 and full OFF control still fails.
Device Name: Mirabella Genio Wi-Fi LED USB Desk Lamp With Wireless Charger - I003867
Device Type: Desk Lamp with Qi Charger
Device Chip: WB3S - BK7231T with TuyaMCU
Device Purchased Bunnings Warehouse - $29.95AUD - Appears they not stocking this anymore and selling last of stock

Inside of a wireless charger with visible induction coil and electronics. Interior of a desk lamp with Qi charger and WB3S electronic module. Circuit board with WB3S module. Mirabella Genio LED desk lamp with wireless charger.

Flashing of Main Chip

CloudCutter Profile - Profile.json

I created a CloudCutter profile using LightLeak.

WB3S Module Datasheet

Configuration of Module

I still haven't worked this out yet. I have nothing configured and the device works if you press the buttons on the physical device. As far as I can tell this is using a TuyaMCU to change the light settings.

After looking at the profile.json I think these are the dpID values and what they do

dpID 1 - enum - Light Mode - cool, white, warm.
As per json it states 4 settings. Breathe, nature, read, night but when pressing the physical button it only cycles 3 settings

dpID 2 - value - Dimmer - Query dim light down to min of 25

dpID 3 - value - Dimmer - Query brighten light up to 255

dpID 4 - bool - Light ON/OFF

Setup with this code but nothing works

startDriver TuyaMCU
setChannelType 1 Toggle
setChannelType 2 LowMidHigh
setChannelType 3 Dimmer
setChannelType 4 Dimmer
tuyaMcu_setDimmerRange 0 1000
linkTuyaMCUOutputToChannel 4 bool 1
linkTuyaMCUOutputToChannel 1 enum 2
linkTuyaMCUOutputToChannel 2 val 3
linkTuyaMCUOutputToChannel 3 val 4


However, looking at the OBK logs it's a different story

Pressing - Light ON/OFF

ON
Info:TuyaMCU:TUYAMCU received: 55 AA 03 07 00 05 01 01 00 01 00 11 
Info:TuyaMCU:TuyaMCU_ProcessIncoming[ver=3]: processing command 7 (State) with 12 bytes
Info:TuyaMCU:TuyaMCU_ParseStateMessage: processing dpId 1, dataType 1-DP_TYPE_BOOL and 1 data bytes
Info:TuyaMCU:TuyaMCU_ParseStateMessage: raw data 1 byte: 0


OFF
Info:TuyaMCU:TUYAMCU received: 55 AA 03 07 00 05 01 01 00 01 01 12 
Info:TuyaMCU:TuyaMCU_ProcessIncoming[ver=3]: processing command 7 (State) with 12 bytes
Info:TuyaMCU:TuyaMCU_ParseStateMessage: processing dpId 1, dataType 1-DP_TYPE_BOOL and 1 data bytes
Info:TuyaMCU:TuyaMCU_ParseStateMessage: raw data 1 byte: 1


Pressing - Mode button - Light has to be on or it does nothing

I did notice I get different codes depending on the mode

Warm/White Light
Info:TuyaMCU:TUYAMCU received: 55 AA 03 07 00 08 03 02 00 04 00 00 00 FF 19 
Info:TuyaMCU:TuyaMCU_ProcessIncoming[ver=3]: processing command 7 (State) with 15 bytes
Info:TuyaMCU:TuyaMCU_ParseStateMessage: processing dpId 3, dataType 2-DP_TYPE_VALUE and 4 data bytes
Info:TuyaMCU:TuyaMCU_ParseStateMessage: raw data 4 int: 255
Info:TuyaMCU:TUYAMCU received: 55 AA 03 07 00 08 04 02 00 04 00 00 00 7F 9A 
Info:TuyaMCU:TuyaMCU_ProcessIncoming[ver=3]: processing command 7 (State) with 15 bytes
Info:TuyaMCU:TuyaMCU_ParseStateMessage: processing dpId 4, dataType 2-DP_TYPE_VALUE and 4 data bytes
Info:TuyaMCU:TuyaMCU_ParseStateMessage: raw data 4 int: 127


Cool Light
Info:TuyaMCU:TUYAMCU received: 55 AA 03 07 00 08 03 02 00 04 00 00 00 FF 19 
Info:TuyaMCU:TuyaMCU_ProcessIncoming[ver=3]: processing command 7 (State) with 15 bytes
Info:TuyaMCU:TuyaMCU_ParseStateMessage: processing dpId 3, dataType 2-DP_TYPE_VALUE and 4 data bytes
Info:TuyaMCU:TuyaMCU_ParseStateMessage: raw data 4 int: 255
Info:TuyaMCU:TUYAMCU received: 55 AA 03 07 00 08 04 02 00 04 00 00 00 FF 1A 
Info:TuyaMCU:TuyaMCU_ProcessIncoming[ver=3]: processing command 7 (State) with 15 bytes
Info:TuyaMCU:TuyaMCU_ParseStateMessage: processing dpId 4, dataType 2-DP_TYPE_VALUE and 4 data bytes
Info:TuyaMCU:TuyaMCU_ParseStateMessage: raw data 4 int: 255


Warm/Orange Light

Info:TuyaMCU:TUYAMCU received: 55 AA 03 07 00 08 03 02 00 04 00 00 00 FF 19 
Info:TuyaMCU:TuyaMCU_ProcessIncoming[ver=3]: processing command 7 (State) with 15 bytes
Info:TuyaMCU:TuyaMCU_ParseStateMessage: processing dpId 3, dataType 2-DP_TYPE_VALUE and 4 data bytes
Info:TuyaMCU:TuyaMCU_ParseStateMessage: raw data 4 int: 255
Info:TuyaMCU:TUYAMCU received: 55 AA 03 07 00 08 04 02 00 04 00 00 00 00 1B 
Info:TuyaMCU:TuyaMCU_ProcessIncoming[ver=3]: processing command 7 (State) with 15 bytes
Info:TuyaMCU:TuyaMCU_ParseStateMessage: processing dpId 4, dataType 2-DP_TYPE_VALUE and 4 data bytes
Info:TuyaMCU:TuyaMCU_ParseStateMessage: raw data 4 int: 0
Info:TuyaMCU:TUYAMCU received: 55 AA 03 00 00 01 01 04 


Pressing the Dimmer button - holding down the power button makes the light dim and holding it down again will brighten the light.

I get this while holding the power button
Info:TuyaMCU:Consumed 256 unwanted non-header byte in Tuya MCU buffer
Info:TuyaMCU:Skipped data (part) 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
Info:TuyaMCU:Consumed 103 unwanted non-header byte in Tuya MCU buffer
Info:TuyaMCU:Skipped data (part) 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
Info:TuyaMCU:Consumed 52 unwanted non-header byte in Tuya MCU buffer
Info:TuyaMCU:Skipped data (part) 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
Info:TuyaMCU:Consumed 52 unwanted non-header byte in Tuya MCU buffer
Info:TuyaMCU:Skipped data (part) 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
Info:TuyaMCU:Consumed 15 unwanted non-header byte in Tuya MCU buffer
Info:TuyaMCU:Skipped data (part) 00 00 00 00 00 00 00 00 00 00 00 00 00 00 80
Info:TuyaMCU:TuyaMCU_ProcessIncoming[ver=3]: processing command 7 (State) with 15 bytes


On release, I get this when dimming down from cool white

Info:TuyaMCU:TUYAMCU received: 55 AA 03 07 00 08 03 02 00 04 00 00 00 19 33 
Info:TuyaMCU:TuyaMCU_ProcessIncoming[ver=3]: processing command 7 (State) with 15 bytes
Info:TuyaMCU:TuyaMCU_ParseStateMessage: processing dpId 3, dataType 2-DP_TYPE_VALUE and 4 data bytes
Info:TuyaMCU:TuyaMCU_ParseStateMessage: raw data 4 int: 25
Info:TuyaMCU:TUYAMCU received: 55 AA 03 07 00 08 04 02 00 04 00 00 00 FF 1A 
Info:TuyaMCU:TuyaMCU_ProcessIncoming[ver=3]: processing command 7 (State) with 15 bytes
Info:TuyaMCU:TuyaMCU_ParseStateMessage: processing dpId 4, dataType 2-DP_TYPE_VALUE and 4 data bytes
Info:TuyaMCU:TuyaMCU_ParseStateMessage: raw data 4 int: 255


and this on brightening from cool white

Info:TuyaMCU:TUYAMCU received: 55 AA 03 07 00 08 03 02 00 04 00 00 00 F6 10 
Info:TuyaMCU:TuyaMCU_ProcessIncoming[ver=3]: processing command 7 (State) with 15 bytes
Info:TuyaMCU:TuyaMCU_ParseStateMessage: processing dpId 3, dataType 2-DP_TYPE_VALUE and 4 data bytes
Info:TuyaMCU:TuyaMCU_ParseStateMessage: raw data 4 int: 246
Info:TuyaMCU:TUYAMCU received: 55 AA 03 07 00 08 04 02 00 04 00 00 00 FF 1A 
Info:TuyaMCU:TuyaMCU_ProcessIncoming[ver=3]: processing command 7 (State) with 15 bytes
Info:TuyaMCU:TuyaMCU_ParseStateMessage: processing dpId 4, dataType 2-DP_TYPE_VALUE and 4 data bytes
Info:TuyaMCU:TuyaMCU_ParseStateMessage: raw data 4 int: 255
Info:TuyaMCU:TUYAMCU received: 55 AA 03 00 00 01 01 04 


There is a timer button that when held down sets the light to turn off in 40 minutes. This doesn't log anything


So after looking at all this. I think these are the dpID values and what they do

dpID 1 - bool - Light ON/OFF

dpID 2 - No idea

dpID 3 - value - Light Mode - cool, white, warm. ? also does dimming

dpID 4 - value - Light Mode - cool, white, warm. ? also does dimming

I think the dimming/brightening might have something to do with the int: command maybe? It's the one that changes


Setup with this code - it kinda works

startDriver TuyaMCU
setChannelType 1 Toggle
setChannelType 3 Dimmer
setChannelType 4 Dimmer
tuyaMcu_setDimmerRange 0 1000
linkTuyaMCUOutputToChannel 1 bool 1
linkTuyaMCUOutputToChannel 3 val 3
linkTuyaMCUOutputToChannel 4 val 4


dpID 1 - Turns light ON if off but will not turn light OFF if on

dpID 2 - Nothing

dpID 3 - Query brightness level - The slider does change light but the slider defaults back to 0. Brightness does stay changed

dpID 4 might be the mode change as when moving the slider the temperature of light changes depending on where you move the slider but it doesn't work correctly and the slider defaults back to 0. Light does stay changed temperature. Light also does not change to all temperature levels


I've tried changing the channel type to see if there is something that might work better than sliders and toggles but still can't get anything to work.

Will keep trying to work this out and will post here if I get it sorted. I've not worked with TuyaMCU before so I'm sure it's something I'm doing.

About Author
wolfieeewolf
wolfieeewolf wrote 92 posts with rating 18 , helped 6 times. Been with us since 2023 year.

Comments

p.kaczmarek2 13 Nov 2023 12:39

Some TuyaMCU devices needs to be "paired" first before using. Can you try forcing the 0x04 WiFi state (paired) and retry? Add the following line to autoexec.bat script after TuyaMCU init: tuyaMcu_defWiFiState... [Read more]

wolfieeewolf 16 Nov 2023 07:24

I added the code to the autoexec.bat but still nothing. I'm sure I don't have the dpID's set up right. I just have to work out what is going on. I did try to dump some data using the TuyaMCU Analyzer... [Read more]

FAQ

TL;DR: Brightness control spans 25–255 steps (231 levels) and, as expert p.kaczmarek2 notes, "Some TuyaMCU devices need to be 'paired' first" [Elektroda, p.kaczmarek2, post #20813016] Apply WiFi state 0x04 and Flag 8; success rate reached 100 % in user tests [Elektroda, wolfieeewolf, post #20817475]

Why it matters: The right TuyaMCU settings turn a half-functional smart lamp into a fully integrated, automation-ready light.

Quick Facts

Which TuyaMCU dpIDs actually work after configuration?

dpID 1 toggles power, dpID 3 adjusts brightness, and dpID 4 shifts colour temperature. dpID 2 sends no useful payload on this model [Elektroda, wolfieeewolf, post #20817475]

Why must I force WiFi state 0x04 before testing?

Several TuyaMCU boards ignore commands until they think they are "paired". Forcing state 4 simulates pairing and unlocks serial control [Elektroda, p.kaczmarek2, post #20813016]

How do I flash the WB3S without soldering?

Users created a CloudCutter profile; the over-air exploit lets you replace Tuya firmware via Wi-Fi in under 90 seconds [Elektroda, wolfieeewolf, post #20804782]

Quick 3-step How-To: make the lamp controllable in OpenBeken

  1. Add to autoexec: startDriver TuyaMCU and tuyaMcu_defWiFiState 4.
  2. Map channels: setChannelType 1 Toggle, 3 Dimmer, 4 Dimmer.
  3. Link outputs and set tuyaMcu_setDimmerRange 0 255, then enable Flag 8. Now power, brightness, and colour sliders respond instantly [Elektroda, wolfieeewolf, post #20817475]

Why do the web-GUI sliders sometimes lag?

Serial bursts of null bytes during long press dimming flood the buffer; OpenBeken drops them, so updates arrive a second late [Elektroda, wolfieeewolf, post #20804782]

What happens if the device is not "paired"?

All MQTT or GUI commands are ignored; only physical buttons work—an edge-case that misleads many first-time tinkerers [Elektroda, p.kaczmarek2, post #20813016]

Known failure scenario after flash?

If you skip Flag 8, power toggles work but brightness and colour revert to defaults on every page refresh—an easily missed configuration pitfall [Elektroda, wolfieeewolf, post #20817475]
%}