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?
- Make a full 2 MB SPI-flash backup using tuya-cloud-cutter or BKWriter [Elektroda, MnM1, post #20839054]
- Erase flash, then write the OpenBeken .bin (bk7231n-OBK-r1.17.764).
- Verify checksum, power-cycle, connect to the OBK AP. Restore the backup the same way if needed.
Which GPIO drives the cool-white LEDs?
GPIO6 (BK7231N pin P6) is configured as PWM and controls all CW LEDs simultaneously [Elektroda, MnM1, post #20839555]
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]
How do I identify the data line on the PCB?
Trace from CBU pin 2 (P16/SPI_MOSI) to the unmarked black buffer IC; this line feeds the SM16703P strip [Elektroda, p.kaczmarek2, post #20838996]
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].