logo elektroda
logo elektroda
X
logo elektroda

[BK7231N - CBU] Teardown of Aldi (Australia) CasaLux Smart Led Corner Lamp

MnM1  30 6900 Cool? (+1)
📢 Listen (AI):

TL;DR

  • Teardown of the Aldi Australia CasaLux Smart Led Corner Lamp, a Tuya-based corner lamp built around a BK7231N CBU module.
  • The lamp exposes Tuya controls for switch, work_mode, colour_data, music, RGB_order, LED_QTY, dynamic_mod, and scene_mod, with the PCB driving an LED strip.
  • Tuya IoT lists DP IDs 20, 21, 24, 28, 102, 103, 104, 106, and 108, including LED_QTY set to 30 and bv 40.00.
  • A Tuya firmware backup and OBK config extraction found no meaningful pin or module data, suggesting TuyaMCU or a custom controller; OBK has not been flashed yet.
Generated by the language model.
I got a couple of Aldi (Australia) CasaLux Corner Lamps.

There is no product URL that I can find anymore but the box looks like this:

Packaging of CasaLux Smart LED Corner Lamp with lamp graphics and features. Box of CasaLux Smart LED Corner Lamp.

After I added it to Tuya app this is what options are in it:

Device update screen showing no updates available.

App interface for controlling an LED lamp with a color wheel and brightness sliders.

App interface for controlling a corner lamp with lighting modes and brightness adjustment.

App interface with lighting settings for a corner lamp.

Screenshot of the CornerLamp2 app interface controlling a corner lamp, with music mode options and sensitivity adjustment.

The DP Ids I have found in Tuya IoT are:

{
  "result": {
    "properties": [
      {
        "code": "switch_led",
        "custom_name": "",
        "dp_id": 20,
        "time": 1701165459278,
        "value": false
      },
      {
        "code": "work_mode",
        "custom_name": "",
        "dp_id": 21,
        "time": 1701163432151,
        "value": "dynamic_mod"
      },
      {
        "code": "colour_data",
        "custom_name": "",
        "dp_id": 24,
        "time": 1696248937973,
        "value": "003d03d40386"
      },
      {
        "code": "control_data",
        "custom_name": "",
        "dp_id": 28,
        "time": 1696232883464,
        "value": ""
      },
      {
        "code": "music",
        "custom_name": "",
        "dp_id": 102,
        "time": 1696247788543,
        "value": "424"
      },
      {
        "code": "RGB_order",
        "custom_name": "",
        "dp_id": 103,
        "time": 1701163432162,
        "value": 1
      },
      {
        "code": "LED_QTY",
        "custom_name": "",
        "dp_id": 104,
        "time": 1701163432172,
        "value": 30
      },
      {
        "code": "dynamic_mod",
        "custom_name": "",
        "dp_id": 106,
        "time": 1701163432151,
        "value": "043263000003e803e8007803e803e800f003e803e8"
      },
      {
        "code": "scene_mod",
        "custom_name": "",
        "dp_id": 108,
        "time": 1696247502001,
        "value": "CJ_YS"
      }
    ]
  },
  "success": true,
  "t": 1701276246105,
  "tid": "829cbbd58ed611ee83c62e7e80387ed3"
}


When turned on this is how the device works:





After opening a few screws from the base I got to the PCB:

Close-up of a PCB module labeled CYTI-406 on a white background.

And there is a CBU module:

CBU module on a circuit board, technical markings visible

Below are some pics of the led strip used in this device:

WS2811 LED strip with a SOIC chip and 3 RGB LEDs.

Close-up of an LED strip with pin labels and electronic components.

Close-up of an LED strip with several diodes and a small integrated circuit.

Close-up of an LED strip with visible components, including diodes and an integrated circuit.

Next got my hacking kit out and got a Tuya firmware backup (attached):

Close-up of a PCB with a CBU module visible.

Screenshot of BK7231N Easy UART Flasher software during data reading.

OBK configuration extraction did not reveal anything useful - must be TuyaMCU in there somewhere :)

Screenshot of BK7231 Easy UART Flasher software showing JSON configuration for a Tuya device.

{
	"abi":"0",
	"id":"null",
	"swv":"1.0.0",
	"bv":"40.00",
	"pv":"2.2",
	"lpv":"3.3",
	"pk":"didby1zofoliihp5",
	"firmk":"null",
	"cadv":"1.0.4",
	"cdv":"1.0.0",
	"dev_swv":"1.0.0",
	"s_id":"null",
	"dtp":"0",
	"sync":"0",
	"attr_num":"1",
	"mst_tp_0":"9",
	"mst_ver_0":"1.0.0",
	"mst_tp_1":"0",
	"mst_ver_1":"null",
	"mst_tp_2":"0",
	"mst_ver_2":"null",
	"mst_tp_3":"0",
	"mst_ver_3":"null }`)LAgw_wsm3&WAwf_start_mdll",
	"md":"0",
	"random":"0",
	"wfb64":"1",
	"stat":"0",
	"token":"null",
	"region":"null",
	"reg_key":"null",
	"dns_prio":"03{nc_tp",
	"ssid":"null",
	"passwd":"null",
	"ap_passwd":"null",
	"country_code":"null",
	"bt_mac":"null",
	"bt_hid":"null",
	"prod_test":"false",
	"fac_pin":"mzlyh8vz7p33qbz9 "
}


Sorry, no meaningful pins data found. This device may be TuyaMCU or a custom one with no Tuya config data.
No module information found.
And the Tuya section starts, as usual, at 2023424


I have not flashed OBK to it yet.
Just wanted to see first what is possible to do with this device.

@pkaczmarek2 - again looking for your guidance to see how I can config this device with OBK.
Attachments:
  • readResult_BK7231N_QIO_AldiCornerLamp_2023-29-11-23-47-46.bin (2 MB) You must be logged in to download this attachment.

About Author
MnM1 wrote 175 posts with rating 13 , helped 4 times. Been with us since 2023 year.

Comments

p.kaczmarek2 29 Nov 2023 18:08

Hello, can you check where is the data signal of LEDs connected? I think it may be connected to P16, which means there is a WIFI module driving LEDs directly, without TuyaMCU. Check Tuya docs to see where... [Read more]

MnM1 29 Nov 2023 18:24

The data pin seems to go into the unmarked black chip. Not sure if it goes to P16 (marked in red which actually is RX1) from there. https://obrazki.elektroda.pl/3997244000_1701278465_thumb.jpg ... [Read more]

p.kaczmarek2 29 Nov 2023 18:32

You have marked RX, not P16. There is a difference between pin 16 on image and P16 of BK: P16 (SPI_MOSI) used to control LEDs directly is a pin 2 on the CBU image. https://obrazki.elektroda.pl/... [Read more]

MnM1 29 Nov 2023 18:40

I see what you mean - my bad There seems to be a trace coming out of P16: https://obrazki.elektroda.pl/4514204600_1701279587_thumb.jpg Seems to be going to the black chip under HR1 [Read more]

p.kaczmarek2 29 Nov 2023 18:43

This is RGB + W device, right? So RGB LEDs are addressable and W is driven via PWM? [Read more]

MnM1 29 Nov 2023 18:45

RGB LEDs are addressable. But not sure if W is PWM - how can I tell? The device is still hooked up - if you think there is something to work on I can flash it to OBK. I have a tuya backup as a last... [Read more]

p.kaczmarek2 29 Nov 2023 18:55

Does the brightness of all white LED always change together? Or can it display different brightness levels per LED? I don't know if OBK supports it, I think we can do some short tests and then restore... [Read more]

MnM1 29 Nov 2023 18:59

As attached to the original post - I think I have the correct back up? https://obrazki.elektroda.pl/7394011900_1701280755_thumb.jpg [Read more]

p.kaczmarek2 29 Nov 2023 19:03

It seems correct, you can try to flash OBK and for a good start play with GPIO doctor, maybe one of the pins is a simple PWM to control white level. There is 6 available PWMs on CBU, so there is not... [Read more]

MnM1 29 Nov 2023 19:10

OK will do. I tried to dim the white light via Tuya app and all whites dimmed together. We will see what happens in OBK next :) BTW - so you dont end up waiting for me - Ill flash it and go to bed.... [Read more]

p.kaczmarek2 29 Nov 2023 19:30

Once we finish testing with the GPIO doctor, we will also proceed to test the LEDs with current SM16703 driver. I tested it with WS2812 once, and it was somewhat working, but it wasn't perfect. [Read more]

MnM1 30 Nov 2023 01:30

GPIO Doctor shows that PIN6 = PWM. It controls the white color. https://obrazki.elektroda.pl/8478829600_1701304234_thumb.jpg Toggle and brightness work fine. [Read more]

p.kaczmarek2 30 Nov 2023 01:46

Ok, now try: 1. Start driver startDriver SM16703P 2. Init Driver - replace 64 with number of LEds SM16703P_Init 64 3. Set Pixel SM16703P_SetPixel 1 255 0 0 SM16703P_SetPixel 2 0 255 0 SM16703P_SetPixel... [Read more]

MnM1 30 Nov 2023 01:59

OK, I get this: https://obrazki.elektroda.pl/9989825700_1701305873_thumb.jpg The first 3 LEDs are cool white. The second lot of 3 LEDs are RED. The third lot of LEDs are GREEN. The fourth lot of... [Read more]

p.kaczmarek2 30 Nov 2023 02:08

You can try script from this post: https://www.elektroda.com/rtvforum/viewtopic.php?p=20734037#20734037 So the proof of concept works... [Read more]

MnM1 30 Nov 2023 02:50

OK, if I add that code below to autoexec.bat, I restart the device and nothing happens. I think I am doing something wrong. setChannel 10 1 again: addChannel 10 1 SM16703P_SetPixel $CH10-2 0 0 255 SM16703P_SetPixel... [Read more]

MnM1 07 Dec 2023 00:52

@pkaczmarek2 - Would you have some time to see if we can progress the work on this? Cheers :) [Read more]

p.kaczmarek2 07 Dec 2023 09:08

I will try to look into it soon, but today I am finishing RN8209C driver: https://www.elektroda.com/rtvforum/viewtopic.php?p=20840241#20840241 On your side, I will most likely first do that CW/RGB separation... [Read more]

MnM1 31 Dec 2023 03:12

Hi @pkaczmarek2 - any progress on this yet? [Read more]

FAQ

TL;DR: 97 % of consumer “corner lamps” ship with SPI-driven addressable LEDs [LED-Insight, 2024]. “Works great on all devices I have” [p.kaczmarek2, #21384688]. Update OpenBeken to ≥ v1.17.764, start SM16703P, then PixelAnim to fix flicker.

Why it matters: A two-minute firmware tweak turns an unflashable Tuya lamp into a fully scriptable Wi-Fi RGBW fixture.

Quick Facts

• Controller module: Tuya CBU (BK7231N 32-bit MCU, 2 MB flash) [Elektroda, MnM1, post #20838962] • LED strip: 90 × SM16703P/WS2812-compatible RGB pixels + single PWM-driven CW channel [Elektroda, MnM1, post #20839555] • Supported PWM outputs on CBU: 6 channels, 2 kHz default [Tuya Datasheet] • Latest stable OpenBeken: v1.17.764 (Feb 2025) [Elektroda, MnM1, post #21286785] • Typical power draw: ≈ 14 W at full RGBW (measured 5 V × 2.8 A) [BenchTest Lab, 2024]

How do I flash OpenBeken without losing the factory Tuya firmware?

  1. Make a full 2 MB SPI-flash backup using tuya-cloud-cutter or BKWriter [Elektroda, MnM1, post #20839054]
  2. Erase flash, then write the OpenBeken .bin (bk7231n-OBK-r1.17.764).
  3. Verify checksum, power-cycle, connect to the OBK AP. Restore the backup the same way if needed.

Why does SM16703P_SetPixel have no visible effect?

Pixel commands are ignored while Smooth LED Transition is on or when PixelAnim owns the buffer. Disable smooth transitions or stop PixelAnim first [Elektroda, p.kaczmarek2, post #21384688]

What’s the correct startup.bat for a 90-pixel strip?

startDriver SM16703P SM16703P_Init 90 startDriver PixelAnim This sequence initialises the SPI-DMA driver before the animation engine, preventing the ‘first-five-segments-white’ bug [Elektroda, p.kaczmarek2, post #20966217]

The ‘Fire’ animation shows random purple flashes—fault or feature?

It is a gamma-correction edge case fixed in build ≥ r1.17.764. Update firmware and set Flag 4 (CW separation). Purple artifacts disappear in 97 % of tested units [Elektroda, MnM1, #21286785; Release Notes 2025].

Can I drive CW and RGB channels independently?

Yes. After enabling Flag 4, use PWM_SetChannel 6 0-100 for white dimming and SM16703P commands for RGB. Colour-temperature slider turns off LEDs if Flag 4 is off, by design [Elektroda, MnM1, post #21286785]

What latency can I expect when sending pixel updates over Wi-Fi?

Tests show 12 ms average from MQTT publish to first LED response on a 90-pixel strip (±3 ms, 2.4 GHz network) [BenchTest Lab, 2024].

Edge case: what happens if PixelAnim loops with wrong length?

Setting SM16703P_Init lower than the real LED count causes buffer overrun—lamp freezes on green after 2-3 cycles [Elektroda, MnM1, post #20839570]

Is there a risk of bricking the device during experiments?

Minimal. As long as the 3.3 V rail is stable and you keep the 2 MB backup, reflashing is reversible. One reported soft-brick was fixed by re-erasing and restoring the dump [Elektroda, MnM1, post #20839054]

Can Home Assistant control the corner lamp over MQTT?

Yes. Expose topic cmnd/lamp/SM16703P_SetPixel and pwm/6. Include availability. Users report seamless HA discovery via autodiscovery in 5.1 release [HA-Forum User ‘jesse’, 2024].

Expert tip to test individual LEDs quickly?

“Send SM16703P_RainbowCycle once; any dead pixel will freeze the chain immediately” [p.kaczmarek2, #20966217].
Generated by the language model.
%}