logo elektroda
logo elektroda
X
logo elektroda

Teardown for Artika Skyshade Smart LED Panel (FLP14-SSWTR-C1WH)

ErrorGap  18 8091 Cool? (+15)
📢 Listen (AI):

TL;DR

  • Teardown and reflashing guide for the Artika Skyshade Smart LED Panel (FLP14-SSWTR-C1WH), an RGBWW ceiling light controlled by a BK7231N CBU chip.
  • The panel is opened from the back, then wires are soldered to pins 13, 14, 15, 16, and 18 for UART flashing with OpenBeken.
  • The setup uses OpenBK7231N_QIO_1.17.308 at 115200 baud and maps P6, P7, P8, P23, P24, and P26 to PWM outputs and IR input.
  • After flashing, the light boots as OpenBK7231N_xxxxxxx, accepts Wi‑Fi setup at 192.168.4.1, and retains RGB, warm/cold white, MQTT, Home Assistant, and IR remote control.
  • The original instructions warn against using a hardware dimmer switch, and later hardware revisions may differ from the 2023 Costco units described.
Generated by the language model.
Packaging of Artika Skyshade Smart LED RGBWW.

The Artika Skyshade is an RGBWW Smart LED Panel controlled by a CBU (BK7231N) chip.
It can be flashed with OpenBeken and retain all the functionality of the original firmware - including the use of the Infrared remote - without the need for third-party cloud services


On unboxing. The package comes with the LED panel, IR remote, and some mounting hardware. Per the original instructions, the panel should not be used with a hardware dimmer switch (dimming can be done via software or the remote)

In order to flash firmware, you will need to open the panel and connect a serial cable to various points on the chip. These instructions are based on my own success re-flashing two of this device purchased late 2023 from Costco. It is possible that hardware may change in later revisions of the device.

First, the device will need to opened in order to access the chip.
Place the device face-down (light side down) so that the back screws and metal mounting plate are visible.

Artika Skyshade LED panel with visible metal mounting.

Slide off the mounting plate by pushing it against the direction of the arrow (leftward in the case of the above image)

Next, remove all screws securing the housing, including those which hold the support-rails in place.
Be careful not to strip anything.
Also be careful of the metal section in the lower-left to which the power cables connect. This contains various electronics components and has additional cables which feed into the inside of the unit

Back side of the Artika Skyshade LED panel showing screws and a metal mounting plate.

Once you have removed the screws on either side of the metal section, you will also need to lift it out a bit and then detach the grounding screw which is attached to the power cable

Rear view of the Artika Skyshade LED panel with mounting instructions.

With this done and all screws removed, you can place the support cables out of the way. Flip the inner housing of the unit around (being careful to support the metal section where the cables feed to the inside)

On the inside, you should see the LED's with cables running into the various sections, as well as the main data+power cable running to the board containing the CBU chip

Internal view of the Artika Skyshade LED panel showing LEDs and wiring.



On the board, you will see:
* a cable with connections laberlled 3v3,GND, P24, P26, P6, P7, P8
* The CBU chip
* An infrared sensor with some resistors

Artika Skyshade LED panel with CBU chip and connections.

In order to reprogram the chip, you will need to solder leads onto pins
* 13 (PS-GRND)
* 14 (PS-3v3)
* 15 (TX1)
* 16 (RX1)
* 18 (CEN)

Presumably you will be running these leads to a USB-TTL/UART adaptor. I have read of others having some issues with insufficient current on the 3.3v connector (and thus needing external power) but my own CP2102 adaptor seemed sufficient in this case.

Attach leads to your chip as seen below

PCB with soldered wires connected to the CBU chip.

Close-up of a connected CBU chip in an LED panel.

In my image
* 13 (PS-GRND) = Black
* 14 (PS-3v3) = Yellow
* 15 (TX1) = Orange
* 16 (RX1) = Blue
* 18 (CEN) = RED (in the first picture, skip a pin from the RX connector to reach CEN)

Also, please note that the "TX" connector would connect to the "RX" connection on your adaptor and vice-versa

I also recommend using either a breadboard where you can easily short CEN to GRND or possible a button, as you will need to do this a few times during the flashing process

With this in mind, connect the leads to your TTL/UART adaptor so that
* GRND/Black = Ground
* 3v3/Yellow = 3.3v
* TX1/Orange = RX
* RX1/Blue = TX
* CEN = Initially unconnected, but easily able to short to ground

Now fire up the "BK7231 Easy UART Flasher)

Select the following:
* UART port: [whatever COM your adaptor is connected to)
* Chip Type: BK7231N
* Firmware: Appropriate OpenBeken Firmware, I used OpenBK7231N_QIO_1.17.308 at the time
* Baud rate: 115200 (you may go faster but I find this is a good medium for compatibility and less errors)

BK7231 Easy UART Flasher screen with configuration options

Now assuming everything is connected correctly try to "Do firmware backup (read) only". This will verify you've got a connection to the chip and dump the current firmware. Once you've hit the button in the software and entered a backup filename, briefly short the CEN pin on the chip to GRND in order to put reset the device into programming mode

You should see progress details as the memory is read.

Assuming that goes successfuly, next use "Do firmware write (no backup)" (this is assuming you already have a backup from the previous step and all went well). Short the CEN pin to GRND on the chip again

The software should find the device, begin erasing sectors of the chip and then writing. When done, you should see a message
"Writing file data to chip success"

Your chip has now been reprogrammed. Short CEN to GRND one more time to reboot.

With a phone or laptop, look for a WIFI AP called "OpenBK7231N_xxxxxxx". This will be the flashed device.
Connect to this, then open a browser to http://192.168.4.1

From here, you should be able to configure the device with Wifi credentials for your IoT network and save.
Once you've done that, look for it on your own network and access again with a web browser at whatever IP it gets from DHCP (or static if you assigned one as such).

If that works, you can now disconnect the pins from your serial adaptor - be careful not to short anything by accident - de-solder them from the chip, and close the device back up with all the plates, supports, and screws in place as before.

This is it for the hardware portion. I'll cover software in the next comment.

Added after 19 [minutes]:

Continuing on with how to program the Artika Skyshade, here's what you need to do for the software portion of things.

(p.s. if you haven't done so already, you should have desoldered any pins from your device, put it back together, connected to wifi and mounted it up on a ceiling somewhere with power)

Under Config->Configure General/Flags, set the following flags: 0, 1, 8, 10, 12, 16, 22, 28

Artika Skyshade configuration screen with various flags and setting options.

Under Config->Configure Module
* P6 (PWM0) = PWM 3
* P7 (PWM1) = PWM 2
* P8 (PWM2) = PWM 5
* P23 (ADC3) = IRRecv
* P24 (PWM4) = PWM_n 4
* P26 (PWM5) = PWM 1

Configuration interface for PWM settings on BK7231 chips.

Under Config->Configure MQTT: This will need to be configured for however your own network is setup

At this point, I recommend returning to the main menu and performing a reboot at least once, then testing that on/off functionality plus colors and warm/cold white light from the main menu on the device line up as expected

Assuming that's all good, the last thing to do is to preconfigure some macros for the remote and then connect to your home-automation system, if any

If you are using HomeAssistant, then go to Config->Home Assistant Configuration: CLick "Start Home Assistant Discovery" and if your MQTT settings and networking etc are all correct the device should be found automatically

For the remote, you can hard-code functions by settings them in autoexec.bat (a filename that bring back some memories of the old DOS days)

* From the main menu, go to "Launch Web Application"
* Click on the "Filesystem" menu
* Click "Create File" (name the file autoexec.bat)
* A button for the new file should be visible, click on it
* Enter the following into the textbox and then click "Save" (you can modify these to your preference, but they roughly match the labeled remote functionality except for 'mode' and 'favorite'

addEventHandler2 IR_NEC 0x7E7E 0x32 led_basecolor_rgbcw #FF00000000
addEventHandler2 IR_NEC 0x7E7E 0x1A led_basecolor_rgbcw #00FF000000
addEventHandler2 IR_NEC 0x7E7E 0x33 led_basecolor_rgbcw #0000FF0000
addEventHandler2 IR_NEC 0x7E7E 0x1B led_temperature 154
addEventHandler2 IR_NEC 0x7E7E 0x30 led_nextColor
addEventHandler2 IR_NEC 0x7E7E 0x5 power toggle
addEventHandler2 IR_NEC 0x7E7E 0x19 add_dimmer 10
addEventHandler2 IR_NEC 0x7E7E 0x35 add_dimmer -10
addEventHandler2 IR_NEC 0x7E7E 0x16 add_temperature -25
addEventHandler2 IR_NEC 0x7E7E 0x36 add_temperature 25
addEventHandler2 IR_NEC 0x7E7E 0x18 ClearNoPingTime
addEventHandler2 IR_NEC 0x7E7E 0x37 led_basecolor_rgbcw FF00FF0000


Once that is saved, reboot your device once more. The code into autoexec.bat should load automatically at startup and - if successful - you should be able to point your infrared remote at the (center) of the SkyShade and trigger various functions via the buttons.

That's it for my instructions. You should now have a light that is:
* Reprogrammed with OpenBeken
* Does not require any third-party cloud services
* Is connected to your network
* Works for various RGB colors
* Works for varying degrees of warm/cold light
* Is connected to your MQTT service and HomeAssistant (as applicable)
* Works with the Infrared remote

About Author
ErrorGap wrote 8 posts with rating 16 , helped 2 times. Been with us since 2023 year.

Comments

p.kaczmarek2 30 Dec 2023 12:21

Thank you for the guide. It looks very detailed and useful, especially for our beginners. With a light already configured like this, you can do multiple cool things with that, for example, you can... [Read more]

ErrorGap 31 Dec 2023 08:31

Yes, of course. I'm not sure what the "bDetailed" field is for but I've filled the rest { "vendor": "Tuya", "bDetailed": "1", "name":... [Read more]

p.kaczmarek2 31 Dec 2023 09:19

The bDetailed field is used to feature a detailed and well written reviews, just like yours. You fully deserve having bDetailed set to 1, I will edit your post. I will also add this teardown to our list,... [Read more]

ErrorGap 01 Jan 2024 07:28

If one uses just "PWM" for P24 it will mostly work, but the cold and warm light output will be opposite of what is selected on the slider. Use of PWM_n matches up the "cold" vs "warm" output properly. This... [Read more]

p.kaczmarek2 01 Jan 2024 08:59

Ah, I see, so there is no meaningful data in Tuya Config. Ok, this explains it a bit. I have extracted the binary file you've sent me and confirmed that. There doesn't seem to be any private data, but... [Read more]

VanMak 24 Mar 2024 05:48

Thanks for this great post, I picked up two of these lights in Vancouver, Canada today and have flashed one so far. With the provided config however, Red does not work. Using the web app, Green, Blue,... [Read more]

p.kaczmarek2 24 Mar 2024 09:49

I think you need to change some of the channels here: There is not much options because there is a limited number of PWMs on BK7231 chips, as you can see here: https://obrazki.elektroda.pl/5593201600_1711270097_thumb.jpg... [Read more]

VanMak 24 Mar 2024 15:52

Looks like I'll be guessing pins, I had extracted the config from the factory firmware, both that JSON and the one extracted after flashing don't provide anything useful. Factory: Sorry, no meaningful... [Read more]

p.kaczmarek2 24 Mar 2024 15:59

Ok, but which channel is missing for you? Red? Green? Blue? Warm? Cool? Maybe temporarily enable this flag: 3 [LED][Debug] Show raw PWM controller on WWW index instead of new LED... [Read more]

VanMak 24 Mar 2024 19:16

I think I figured out the problem, and it wasn't with pin assignment. I was using this tool for testing colours: https://obrazki.elektroda.pl/6097407800_1711292836_thumb.jpg And it produced... [Read more]

p.kaczmarek2 24 Mar 2024 19:17

I am glad to hear that the color issue is resolved! You can calibrate colors later if you think they do not match well. Regarding HA, this copy-paste method is obsolete. You can use automatic discovery... [Read more]

divadiow 12 Oct 2024 10:01

linking posts. for ref there's a fw backup for this device here https://www.elektroda.com/rtvforum/viewtopic.php?p=21259793#21259793 [Read more]

Sunrise_Wakeup 10 Jan 2025 01:56

Thank you so much for this guide. I picked 3 of these up at COSTCO (Canada) and have successfully reprogrammed one. This was a huge amount to learn in one day as I've never even used Home Assistant before... [Read more]

p.kaczmarek2 10 Jan 2025 02:01

I'm not sure about IR behaviour itself, but I think we can easily come up with some simple "debouncing" method for the power command itself. I'll look into it tomorrow. That way it will execute command... [Read more]

Sunrise_Wakeup 10 Jan 2025 04:09

Very cool, thanks! I do have one other question - is there a way to make the 1% brightness even lower - basically as low as possible? It would help with the gentle wake up automation I'm trying to get... [Read more]

Sunrise_Wakeup 10 Jan 2025 16:18

I have now opened, reprogrammed, and reassembled three of these panels without any issues. A note about the reset pin - you can get away without soldering it, it works fairly well to just touch a ground... [Read more]

p.kaczmarek2 10 Jan 2025 16:21

I think there is gamma calibration feature than can be used to gain more control over brightness: https://github.com/openshwprojects/OpenBK7231T_App/blob/main/docs/led_gamma_control.md Altough, I didn't... [Read more]

tenantpouter7l 18 Apr 2025 14:06

Any update on this issue? I’m having the same problem with the remote. [Read more]

FAQ

TL;DR: With 5 soldered UART points and one reset short, you can flash this Artika Skyshade panel to OpenBeken; as the guide says, "retain all the functionality", including the IR remote, without third-party cloud services. This FAQ helps DIY users reflash model FLP14-SSWTR-C1WH and configure RGBWW, MQTT, and Home Assistant correctly. [#20880946]

Why it matters: This thread turns a cloud-tied Costco smart ceiling panel into a locally controlled RGBWW light with working IR, MQTT, and Home Assistant support.

Option Control path Cloud required IR remote Notes
Original firmware Vendor app/cloud Yes Yes Factory behavior before reflashing
OpenBeken + web UI/MQTT Local Wi‑Fi + browser/MQTT No Yes Retains RGBWW and remote when configured
OpenBeken + Home Assistant discovery MQTT autodiscovery No Yes YAML paste method is now obsolete

Key insight: P24 must use PWM_n rather than plain PWM on this panel. If you set plain PWM, warm and cold white still work, but the slider direction is reversed. [#20885988]

Quick Facts

  • The successful UART-flash setup used BK7231 Easy UART Flasher, BK7231N chip type, OpenBK7231N_QIO_1.17.308, and 115200 baud on a 3.3 V serial connection. [#20880946]
  • The required solder points are pin 13 = PS-GRND, 14 = PS-3v3, 15 = TX1, 16 = RX1, and 18 = CEN; TX and RX must cross between the panel and USB-TTL adapter. [#20880946]
  • Working OpenBeken flags are 0, 1, 8, 10, 12, 16, 22, 28, and the reported JSON flag value is 272700675 for this device profile. [#20880946]
  • Confirmed module mapping is P6→PWM 3, P7→PWM 2, P8→PWM 5, P23→IRRecv, P24→PWM_n 4, P26→PWM 1 on the CBU / BK7231N board. [#20884378]
  • The panel uses two screw diameters: larger screws go through metal parts or ground points, while smaller screws go only through the white reflector into the bezel. [#21386746]

How do I flash OpenBeken onto an Artika Skyshade Smart LED Panel FLP14-SSWTR-C1WH using BK7231 Easy UART Flasher?

You flash it by opening the panel, wiring a 3.3 V UART adapter to the BK7231N, and using BK7231 Easy UART Flasher. 1. Remove the back plate and housing screws, then solder to pins 13, 14, 15, 16, and 18. 2. In the flasher, choose the COM port, chip type BK7231N, firmware such as OpenBK7231N_QIO_1.17.308, and 115200 baud. 3. Run a backup read first, short CEN to ground to enter programming mode, then write firmware and reboot. After flashing, join the OpenBK7231N_xxxxxxx AP and browse to 192.168.4.1. [#20880946]

Which BK7231N/CBU pins do I need to solder to for UART flashing on the Artika Skyshade, and how should they be wired to a CP2102 USB-TTL adapter?

You need five connections: 13 PS-GRND, 14 PS-3v3, 15 TX1, 16 RX1, and 18 CEN. Wire GND to ground, 3v3 to 3.3 V, panel TX1 to adapter RX, and panel RX1 to adapter TX. Leave CEN normally unconnected, but make it easy to short to ground during reset. One successful setup used a CP2102 adapter, and its 3.3 V output was sufficient without external power on at least two late-2023 Costco units. [#20880946]

What is the CBU module with a BK7231N chip in the Artika Skyshade, and why does it matter for OpenBeken flashing?

“CBU” is a Wi‑Fi module that hosts the BK7231N SoC, handles the panel’s smart control functions, and exposes UART-accessible pins for reflashing. It matters because the Artika Skyshade uses this exact CBU / BK7231N hardware, so you can replace the factory firmware with OpenBeken through serial flashing instead of relying on cloud control. The device JSON posted later also identifies the board as CBU and the chip as BK7231N, confirming the hardware platform. [#20884378]

What is PWM_n in OpenBeken, and why does P24 need PWM_n instead of plain PWM on this RGBWW panel?

“PWM_n” is an inverted PWM output mode that drives a channel with reversed logic, changing how duty cycle maps to actual LED output. P24 needs PWM_n 4 because this Artika Skyshade channel is electrically inverted relative to the others. If you configure P24 as plain PWM, the light still mostly works, but the warm and cold white control becomes reversed. Using PWM_n restores the expected slider behavior for this RGBWW panel. [#20885988]

Why do the warm and cold white sliders act backwards on the Artika Skyshade unless P24 is set to PWM_n?

They act backwards because the P24 white channel is inverted on this panel. With plain PWM on P24, the light output works, but the selected warm/cold direction does not match the slider. Setting P24 = PWM_n 4 flips that channel’s logic and makes the cold and warm outputs line up correctly with the UI. This was explicitly confirmed after testing the device with both mappings. [#20885988]

What OpenBeken flags and pin assignments are needed to make RGBWW output and IR receive work correctly on the Artika Skyshade FLP14-SSWTR-C1WH?

Use flags 0, 1, 8, 10, 12, 16, 22, 28 and map the pins exactly as follows: P6 = PWM 3, P7 = PWM 2, P8 = PWM 5, P23 = IRRecv, P24 = PWM_n 4, P26 = PWM 1. That combination enables RGBWW output and the IR receiver on the flashed Artika Skyshade. After saving, reboot at least once and verify on/off, color mixing, and warm/cold white from the main menu before adding remote macros or Home Assistant. [#20880946]

Why might red show up as yellow when testing colors on an OpenBeken-flashed Artika Skyshade, and how can I verify whether the issue is pin mapping or the web UI test tool?

Red can appear as yellow if you test with the wrong web UI control, even when the pin map is correct. In one March 24, 2024 test, the first color tool produced yellow instead of red, but the alternate tool worked correctly, confirming the mapping was fine. To verify, compare both UI controls and then test raw channels if needed. If one interface fails and the other works, suspect the test tool before changing PWM assignments. [#21017768]

How can I use the LED debug flag in OpenBeken to identify swapped or missing PWM color channels on a BK7231N light?

Enable flag 3 to expose the raw PWM controller on the main web page. That replaces the newer RGB/CW picker with per-channel controls, so you can test each PWM line directly and see which channel is swapped, missing, or reversed. This method is useful when extracted Tuya data is empty and you must verify mapping manually. It was suggested specifically for this BK7231N Artika panel during troubleshooting. [#21017750]

Why does BK7231 Easy UART Flasher sometimes report no meaningful Tuya pin data for this device, and what can I do when Tuya config extraction is empty?

It reports no meaningful Tuya pin data because this device does not expose usable module information in the extracted config. The thread shows messages such as “Sorry, no meaningful pins data found” and “No module information found” for both factory and OpenBeken backups. When that happens, use the working manual pin map from the guide, or methodically test PWM channels with the LED debug flag instead of waiting for automatic extraction. [#21017738]

How do I set up the Artika Skyshade IR remote in OpenBeken with autoexec.bat and addEventHandler2 IR_NEC commands?

Create autoexec.bat in the OpenBeken filesystem and place the posted addEventHandler2 IR_NEC commands inside it. The example maps codes like 0x32 to red, 0x1A to green, 0x33 to blue, 0x5 to power toggle, and 0x19 / 0x35 to dimmer changes. Save the file, then reboot once more so the commands load at startup. After that, aim the IR remote at the center of the Skyshade and test each button. [#20880946]

What is autoexec.bat in OpenBeken, and how is it used to load IR remote macros at startup?

“autoexec.bat” is a startup script file that OpenBeken reads on boot, letting you preload commands, event handlers, and device-specific automations automatically. On this panel, it is used to store addEventHandler2 IR_NEC lines for the remote. You create it from Launch Web Application → Filesystem → Create File, save the command list, and reboot. If the file loads correctly, the IR remote starts triggering the assigned functions after each startup. [#20880946]

Home Assistant MQTT discovery vs pasting YAML into configuration.yaml: which setup should I use for an OpenBeken light today?

Use automatic MQTT discovery, not pasted YAML. The thread states that the copy-paste configuration.yaml method is now obsolete. For this light, go to Config → Home Assistant Configuration and click Start Home Assistant Discovery after MQTT is configured correctly. If networking and broker settings are valid, Home Assistant should find the device automatically without manual YAML edits. [#21018053]

How can I make the Artika Skyshade's 1% brightness even dimmer for a sunrise alarm, and does OpenBeken gamma calibration help?

Use OpenBeken gamma calibration if 1% is still too bright. A user asked for a level below 1% for a sunrise alarm, and the reply pointed to the gamma calibration feature as the available way to gain finer low-end brightness control. The maintainer had not personally used it, so treat it as a tuning option rather than a guaranteed fix. It is the thread’s only concrete path for making the panel dimmer at the bottom of the range. [#21386750]

What’s the best way to handle the Artika Skyshade remote power button flashing issue caused by repeated IR presses or missing debouncing in OpenBeken?

Avoid power toggle for now and map separate buttons to power off and power on if the panel flashes. One user reported that the remote power key caused repeated flashing, and a short hold could trigger multiple state changes. The maintainer suspected missing debouncing and proposed a method that would execute only on the first press while ignoring repeats, but no finished fix was posted later in the thread. That makes manual remapping the best confirmed workaround here. [#21385943]

What assembly and safety tips matter when opening and reassembling the Artika Skyshade panel, including screw sizes, ground connections, safety cables, and avoiding hardware dimmer switches?

Keep screw types separated, preserve every ground connection, and do not use this panel with a hardware dimmer switch. The package instructions warn against hardware dimmers, and the teardown adds several assembly cautions: remove the grounding screw from the power-cable section, support the metal power section while the housing is open, and note that the panel uses two screw sizes. Larger screws go through metal supports or ground points; smaller screws go only into the white reflector and bezel. Mark the safety cable screw locations before reassembly to avoid mistakes. [#21386746]
Generated by the language model.
%}