logo elektroda
logo elektroda
X
logo elektroda

[CB3S/BK7231N] Appio 9620 roller blinds/curtains controller - firmware change and GPIO export from T

p.kaczmarek2  0 2046 Cool? (+3)
📢 Listen (AI):

TL;DR

  • Appio 9620 curtain controller was flashed from Tuya firmware to OpenBeken on a CB3S/BK7231N module.
  • RX, TX, GND and 3.3V were soldered in, and BK7231GUIFlashTool automatically detected the Tuya configuration after a power cycle.
  • The board uses a BK7231N chip, two JY32FNH-SH-DC5V-A relays, and a DP1801-based flyback power supply.
  • The flasher exported GPIOs for relay 1 on P6, relay 3 on P8, Wi‑Fi LED on P14, and buttons on P24, P7, and P26.
  • Firmware upgrade succeeded, but final roller-blind setup stayed untested because no motorized curtains were available.
Generated by the language model.
Appio 9620 curtain controller touch plate with packaging
Today we are changing the firmware of the Appio 9620 curtain controller; OpenBeken I`m uploading it here not for myself, but at the reader`s request, I don`t even have motorized curtains yet, but maybe someday... we`ll also check whether automatic GPIO configuration/detection can handle the roller shutter controller.

Purchase Appio 9620
The product was purchased in our country from a distributor, it is much faster, we often get it in our hands literally within 2 days:
Offer of shutter switches on an online store page.
The product is not that expensive, the price is similar to ordinary triple switches, it is only PLN 80. Specification:
Table with parameters of the Lumenix switch.
Appio 9620 curtain control panel with leaflet and packaging.
Description of calibration in Tuya, but this does not apply to us because we will change the load:
Installation and calibration instructions for a Tuya curtain switch.
Actual packaging including leaflet and kit contents:
Box of Appio 9620 touch controller on wooden background Appio 9620 touch switch packaging on a wooden table Installation instruction leaflet for curtain controller on a wooden surface. Installation guide for Appio 9620 shutter controller on a wooden background
Appio 9620 controller panel on a wooden surface with four touch buttons.


Appio 9620 interior
You just need to pry the front:
View of Appio 9620 WiFi Wall Light Switch with a yellow screwdriver beside it. Open Appio 9620 shutter controller showing PCB and buttons.
You can already see that it is inside CB3S . It`s also interesting that we have a buzzer here, but no RF system... maybe we can use it somehow?
CB3S module on a circuit board Interior of Appio 9620 curtain controller showing CB3S module. Close-up of CB3S module on the circuit board of Appio 9620 controller Close-up of a PCB with a CB3S module. Close-up of a PCB with a CB3S module. Close-up of a PCB with CB3S module.
Out of curiosity, let`s take a look at the board with the power supply and relays:
Circuit board inside Appio 9620 curtain controller Appio 9620 curtain controller housing with visible interior.
To remove the PCB, you need to unscrew the screws from the PCB and the screws from fastening the cables:
Interior of the Appio 9620 curtain controller with visible electronic components. Interior of the Appio 9620 controller showing electronic components.
We have two JY32FNH-SH-DC5V-A relays for 10A each and a simple flyback power supply:
Close-up of the Appio 9620 controller circuit board Interior of Appio 9620 curtain controller with relays and capacitor. Interior of the Appio 9620 curtain controller showing electronic components. Close-up of the interior of the Appio 9620 controller with visible relays and a capacitor. Interior of the Appio 9620 curtain controller showing electronic components, including JY32FNH-SH-DC5V-A relays. Interior of the Appio 9620 controller showing a PCB with relays and capacitors.
The power supply is based on DP1801:
DP1801B specification sheet.
Below is an example application:
Typical application circuit of DP1801 chip
A classic layout in IoT devices. I see it everywhere, almost as often as the non-isolated buck converter, which is almost as popular in other "smart" products.

Appio 9620 firmware change
According to the flasher instructions:
https://github.com/openshwprojects/BK7231GUIFlashTool
If you have any questions, you can also visit our YT channel:
https://www.youtube.com/@elektrodacom
We solder RX, TX, GND and 3.3V:
Experimental connection with Appio 9620 controller.
After a power cycle, the flasher detects configurations:
Screenshot showing Tuya device configuration in JSON format.
JSON Tuya detected by flasher:
Code: JSON
Log in, to see the code

OBK configuration generated by the importer: https://openbekeniot.github.io/webapp/templateImporter.html
Code: JSON
Log in, to see the code

Verbal description:

Device seems to be using CB3S module, which is BK7231N chip.
- Relay (channel 1) on P6
- Relay (channel 3) on P8
- WiFi LED on P14
- Button (channel 1) on P24
- Button (channel 2) on P7
- Button (channel 3) on P26

Unfortunately, I don`t have roller blinds myself, so I`ll have to refer them to another thread for the final configuration. Please refer to: Teardown of a Smart Life Curtain (Shutter) switch, Flashing, Configuring and setting up with HA

Summary
Firmware upgrade was fully successful a our flasher correctly decoded the Tuya configuration and showed us what GPIOs the relays, buttons and LEDs are on. I did not perform any further configuration and installation of the curtains, so the topic is not closed yet, but at most this will be done by the target recipient of the device and perhaps then we will also report on the forum as a separate topic.
This does not change the fact that I am satisfied with the flashing itself. In the times of Tuya, for only ESP8266 GPIO, I had to guess manually...

About Author
p.kaczmarek2
p.kaczmarek2 wrote 14611 posts with rating 12629 , helped 655 times. Been with us since 2014 year.

Comments

FAQ

TL;DR: For Appio 9620 owners flashing OpenBeken, the thread maps 2 relays rated 10A each and confirms: "firmware upgrade was fully successful." It solves the practical problem of moving a CB3S/BK7231N curtain controller from Tuya firmware to an exported OpenBeken GPIO template using BK7231GUIFlashTool. [#20950117]

Why it matters: This gives you a repeatable path from teardown to pin mapping, which is the hardest part of converting a shutter controller.

Aspect Appio 9620 finding Compared option
Power stage Simple flyback supply based on DP1801 Non-isolated buck used in many other smart products
GPIO setup Auto-detected by BK7231GUIFlashTool Manual GPIO guessing on older Tuya devices
Relay hardware 2× JY32FNH-SH-DC5V-A, 10A each Generic switch hardware not identified in-thread

Key insight: The main win is not only flashing. The flasher also decoded the Tuya JSON and exported usable GPIO assignments for relays, buttons, and the WiFi LED, which removes most of the trial-and-error stage.

Quick Facts

  • The controller uses a CB3S module with a BK7231N chip, and the generated OpenBeken template names the device Appio 9620 Shutter Controller. [#20950117]
  • The teardown found 2 relays, model JY32FNH-SH-DC5V-A, each marked 10A, on the mains-side board. [#20950117]
  • The power supply is described as a simple flyback supply based on DP1801, not a non-isolated buck converter. [#20950117]
  • The local purchase price shown in the thread is PLN 80, described as similar to an ordinary triple switch. [#20950117]
  • The flash wiring shown uses RX, TX, GND, and 3.3V, and the author notes the unit was delivered locally in about 2 days. [#20950117]

How do I flash OpenBeken onto an Appio 9620 curtain controller with a CB3S/BK7231N module using BK7231GUIFlashTool?

You flash it by wiring the CB3S board to a serial flasher over 3.3V UART. 1. Open the front panel and access the module pads. 2. Solder RX, TX, GND, and 3.3V. 3. Power-cycle the board and let BK7231GUIFlashTool detect the configuration, then import the exported template into OpenBeken. The thread reports a fully successful firmware change and successful Tuya GPIO decoding after the power cycle. [#20950117]

What GPIO pins does the Appio 9620 use for the relays, buttons, and WiFi LED after Tuya config detection?

The imported OpenBeken template maps the Appio 9620 to P6 relay, P8 relay, P14 WiFi LED, P24 button, P7 button, and P26 button. In template form, those are shown as Rel;1 on 6, Rel;3 on 8, WifiLED_n;0 on 14, Btn;1 on 24, Btn;2 on 7, and Btn;3 on 26. That mapping came directly from the flasher’s Tuya JSON import path. [#20950117]

What is the CB3S module in the Appio 9620, and how is it related to the BK7231N chip?

The CB3S in this controller is the plug-in Wi-Fi module, and the thread identifies it as using a BK7231N chip. "CB3S" is a Tuya module that provides wireless control and exposes GPIOs, while BK7231N is the actual SoC inside that module. The OpenBeken template generated in the thread explicitly lists chip: BK7231N and board: CB3S. [#20950117]

What is BK7231GUIFlashTool, and how does it auto-detect Tuya GPIO configuration on BK7231 devices?

BK7231GUIFlashTool is the flashing utility used here to read configuration data and prepare OpenBeken setup for BK7231 devices. In this Appio 9620 case, the author power-cycled the board, the tool detected the Tuya configuration, and it exposed pins for relays, buttons, and the network LED. The output included raw Tuya JSON and an imported OpenBeken JSON template, which avoided manual pin guessing. [#20950117]

Why does the Appio 9620 show relay channels as P6 and P8 with buttons on P24, P7, and P26 in the imported OpenBeken template?

It shows those exact pins because the flasher decoded the device’s Tuya configuration and exported them into the OpenBeken template. The detected JSON includes rl1_pin: 6, rl3_pin: 8, bt1_pin: 24, bt2_pin: 7, bt3_pin: 26, and netled1_pin: 14. OpenBeken then converts that data into human-readable labels such as Rel, Btn, and WifiLED_n. [#20950117]

What steps are needed to open the Appio 9620 and remove the PCB without damaging the front panel or cable terminals?

You start by prying off the front, then remove the PCB only after loosening both board screws and cable-fastening screws. The thread states: open the unit by prying the front panel, then unscrew the PCB mounting screws and the screws that clamp the cables. That order matters because the terminal fasteners hold the board mechanically as well as electrically. [#20950117]

How should I configure OpenBeken for a roller shutter or curtain controller after flashing an Appio 9620?

Use the exported GPIO mapping first, then finish shutter-specific setup in a separate OpenBeken curtain guide. This thread stops after successful flashing and pin export, so it does not provide a final working motor profile. It confirms only the detected hardware map, including 2 relays and 3 buttons, and explicitly redirects readers to another shutter setup thread for the final configuration stage. [#20950117]

Where can I find the final roller blind or curtain setup guidance for OpenBeken if the Appio 9620 flashing thread stops after GPIO export?

You should use the linked follow-up thread titled “Teardown of a Smart Life Curtain (Shutter) switch, Flashing, Configuring and setting up with HA.” The Appio 9620 post says the author did not own roller blinds and therefore did not complete the final OpenBeken curtain setup on this device. In other words, this post covers flashing and GPIO export, while the linked thread covers the final shutter configuration workflow. [#20950117]

What does the Tuya JSON detected by the flasher tell me about travel calibration, reverse control, and stop button behavior on the Appio 9620?

It tells you the firmware stored shutter-specific behavior flags before flashing. The JSON shows travel_calibra1: 3, reverse_ctrl1: 8, travel_t1: 10, trav_t_set: 10, and stop_bt_en: true. That means the stock Tuya profile includes travel timing and calibration fields, a reverse-control parameter, and explicit stop-button support. The thread does not decode each value semantically beyond showing the raw export. [#20950117]

How does the Appio 9620 power supply based on the DP1801 work, and what safety precautions matter when probing it?

It uses a simple flyback mains power supply built around DP1801, so you should treat the board as a live mains device during probing. "Flyback power supply" is an AC-DC converter topology that transfers energy through a transformer in pulses, giving simple low-power conversion and better isolation than a non-isolated buck design. The thread shows this supply on the relay board and contrasts it with non-isolated buck converters seen in many smart switches. [#20950117]

What relays are used inside the Appio 9620, and how suitable are the JY32FNH-SH-DC5V-A 10A relays for curtain or blind motors?

The controller uses two JY32FNH-SH-DC5V-A relays, each marked 10A, which matches a two-direction motor controller layout. They are suitable in the sense that the product is built around them for up/down switching, but the thread gives no motor power, inrush, or cycle-life data. So you can confirm the relay model and rating, but not a validated motor compatibility envelope from this post alone. [#20950117]

OpenBeken auto GPIO detection vs manual GPIO guessing on older Tuya devices — which approach is better when converting a shutter controller?

Auto GPIO detection is better here because it turned a trial-and-error job into a direct import. The author says the flasher correctly decoded the Tuya configuration and adds that, in older ESP8266-era Tuya work, GPIOs often had to be guessed manually. For a shutter controller, that matters because wrong relay or button mapping can break direction control and stop behavior. [#20950117]

Why might the Appio 9620 include a buzzer but no RF section, and how could that buzzer be used after flashing custom firmware?

The hardware includes a buzzer even though the author saw no RF section, but the thread does not document any implemented use for it. The author explicitly notes the buzzer as interesting and asks whether it could be used somehow after flashing. That makes the buzzer a visible but unconfigured hardware feature in this teardown, not a confirmed OpenBeken function on the Appio 9620. [#20950117]

What is a flyback power supply, and how is it different from the non-isolated buck converters often found in smart switches?

A flyback supply stores and transfers energy through a transformer, while a non-isolated buck reduces voltage directly without transformer isolation. In this thread, the Appio 9620 uses a DP1801-based flyback and the author calls it a classic IoT layout. He also notes that non-isolated buck converters are common in other smart products, making this a different mains-power design choice. [#20950117]

What should I check if BK7231GUIFlashTool detects the CB3S configuration but my Appio 9620 still does not control the curtain motor correctly after flashing?

Check the imported GPIO roles first, then verify shutter-specific configuration in the follow-up guide. The critical pins are P6 and P8 for relays, P24/P7/P26 for buttons, and P14 for the WiFi LED. Also review the exported Tuya behavior fields such as reverse_ctrl1, travel_t1, and stop_bt_en. The edge case in this thread is clear: flashing succeeded, but final curtain operation was not validated on a real blind. [#20950117]
Generated by the language model.
%}