logo elektroda
logo elektroda
X
logo elektroda

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

MnM1 6900 30

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.
ADVERTISEMENT
📢 Listen (AI):
📢 Listen (AI):

Topic summary

✨ The discussion focuses on the teardown and firmware customization of the Aldi (Australia) CasaLux Smart LED Corner Lamp based on the BK7231N CBU module. The lamp features addressable RGB LEDs controlled via the P16 (SPI_MOSI) pin on the BK7231N WiFi module, with an additional white (W) LED channel likely driven by PWM on GPIO6. Initial analysis confirmed the RGB LEDs are addressable (using SM16703P or WS2812B drivers), while the white LEDs dim simultaneously, indicating a single PWM channel. Firmware flashing to OpenBeken (OBK) was performed to enable custom LED control and scripting. Early tests showed partial success with LED color setting and pixel animation, but some issues remained with color consistency and white LED behavior, especially when adjusting color temperature flags. The SPI DMA driver bug affecting LED stability was fixed in later firmware versions (e.g., 1.17.764), improving LED control reliability. Ongoing troubleshooting involves verifying LED control commands, scripting for pixel animations, and separating cold white (CW) and RGB LED control. The community seeks detailed device schematics and reproduction steps to resolve remaining issues. The project demonstrates advanced reverse engineering and firmware development for smart lighting devices using BK7231N modules and OpenBeken firmware.
Generated by the language model.

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.
ADVERTISEMENT