logo elektroda
logo elektroda
X
logo elektroda
Dostępna jest polska wersja

Czy wolisz polską wersję strony elektroda?

Nie, dziękuję Przekieruj mnie tam

Uploading OpenBK7231N on the roller shutter controller FS-03W CB2S (BK7231N)

Nargo 2742 22
ADVERTISEMENT
Treść została przetłumaczona polish » english Zobacz oryginalną wersję tematu
  • #1 20787763
    Nargo
    Level 23  
    Posts: 495
    Help: 45
    Rate: 206
    I have acquired such a controller for roller shutters:
    Roller blind controller with manual on a table. Roller blind controller on a table Roller shutter controller on a wooden table. Photo of an electronic controller circuit board on a wooden surface. Side view of a shutter control module.
    I soldered the chip, connected it to the programmer:
    Microcontroller with connected wires on a wooden background. Blue circuit board with various electronic components. Roller shutter controller with connected wires and tools on a table.
    I backed up with BK7231Flasher and started uploading OpenBK7231N_QIO_1.17.291.bin.
    After a while the program dumped me something like this:
    Writing sector 0x00... ok! Writing sector 0x1000... ok! Writing sector 0x2000... ok! Writing sector 0x3000... ok! Writing sector 0x4000... ok! Writing sector 0x5000... ok! Writing sector 0x6000... ok! Writing sector 0x7000... ok! Writing sector 0x8000... ok! Writing sector 0x9000... ok! Writing sector 0xA000... ok! Writing sector 0xB000... ok! Writing sector 0xC000... ok! Writing sector 0xD000... ok! Writing sector 0xE000... ok! failed with serial.BytesToRead 0 (expected 15)
    The beginning of buffer in UART contains  data.
    Writing sector 0xF000... Writing sector 61440 failed!
    Writing file data to chip failed.


    I tried to upload the backup - same thing.

    I tried to upload BK_writer:
    Flash ID:0x00000000
    Time:15.594s
    Speed of Programm:921600bps
    Init...FAILED


    I have no idea.
    Attachments:
    • readResult_BK7231N_QIO_2023-27-10--11-59-04.bin (2 MB) You must be logged in to download this attachment.
  • ADVERTISEMENT
  • #2 20787862
    p.kaczmarek2
    Moderator Smart Home
    Posts: 14622
    Help: 655
    Rate: 12637
    Hello, have you tried reducing the baud rate?
    And maybe hid_download_py will work?
    [youtube]
    https://www.youtube.com/watch?v=0V0kaRVnk18
    [/youtube]





    And also those wires.... It might be worth shortening them a bit. There have already been situations on the forum that it was the length of the wires that got in the way.
    And the power supply on the 3.3V picture comes from some good LDO providing sufficient current or where from?
    Helpful post? Buy me a coffee.
  • #3 20788010
    Nargo
    Level 23  
    Posts: 495
    Help: 45
    Rate: 206
    Only on such a cobweb was it possible to upload this OpenBK7231N_QIO_1.17.11 soft
    Microcontroller connected to a computer via USB cables and electronic wires.

    CRC matches 0x1A2FDBD2!
    Writing file data to chip successs.

    Then I will solder in the circuit and check if it works properly.
  • #4 20788018
    p.kaczmarek2
    Moderator Smart Home
    Posts: 14622
    Help: 655
    Rate: 12637
    Now it would only be useful to know whether using hid_download_py or shortening the wires helped. Hid_download_py miscounts CRC so for N the error can be ignored
    Helpful post? Buy me a coffee.
  • #5 20788025
    Nargo
    Level 23  
    Posts: 495
    Help: 45
    Rate: 206
    Flashing BK7231 Easy UART Flasher.
  • #6 20788029
    p.kaczmarek2
    Moderator Smart Home
    Posts: 14622
    Help: 655
    Rate: 12637
    So did the length of the wires cause a problem though?
    Helpful post? Buy me a coffee.
  • ADVERTISEMENT
  • #7 20788044
    Nargo
    Level 23  
    Posts: 495
    Help: 45
    Rate: 206
    I don't know myself.
    I powered from the programmer to the ESP-01, didn't go. (The previous one did.)
    Powered from the power supply for the contact boards, it did not go.
    Powered from the WEMOSd1Mini, it did not go.
    It only worked on the programmer from the ESP and the power supply from the latter (YP-05).

    And also not versions 1.17.291 and 1.17.15, but versions 1.17.11

    Also black magic is at work, but I have already recently succeeded with Tasmota and the drivers for AHT20.

    EDIT:
    I am looking at the pictures and it appears to me that this module is a mirror image of CB2S on the power side.
  • #8 20788085
    p.kaczmarek2
    Moderator Smart Home
    Posts: 14622
    Help: 655
    Rate: 12637
    Nargo wrote:
    Yes I'm looking at the pictures and it appears to me that this module is a mirror image of the CB2S on the power side.
    Wait, the lettering on the description layer doesn't match those on the Tuya documentation?
    If so then please check how it was soldered! Diagram of the CB2S integrated circuit with labeled pins: CEN, ADC, P8, P7, P6. Diagram of a board with pin labels 3V3, GND, RX1, TX1, P24, P26. Diagram of a board with pin labels 3V3, GND, RX1, TX1, P24, P26. I am familiar with this problem. I have seen a series of devices with CB2S where there was a bad description layer reflected, the pins were wrongly signed, so GND was not GND, and 3.3V was not 3.3V
    Wrong connection of such a module can damage it!
    Please check and verify everything with where the 3.3V and GND on the motherboard.

    Added after 1 [minutes]:

    @Nargo in my opinion you have a module with a badly bounced description layer, in Tuya's documentation there are correct leads, if you haven't burned it yet it's just a fart, thanks to the fact that GPIO has protective diodes to ground and power supply
    Helpful post? Buy me a coffee.
  • ADVERTISEMENT
  • #9 20788094
    Nargo
    Level 23  
    Posts: 495
    Help: 45
    Rate: 206
    You don't start a sentence with "So".
    So I soldered the chip in after programming, it fired up, updated and the relays on P6 and P7 are working, the LED on P24, the button on P26.
    I just can't figure out where the status of the roller shutter buttons appear.
  • #10 20788113
    p.kaczmarek2
    Moderator Smart Home
    Posts: 14622
    Help: 655
    Rate: 12637
    Execute and post the result:
    https://www.youtube.com/watch?v=WunlqIMAdgw
    Helpful post? Buy me a coffee.
  • #11 20788227
    Nargo
    Level 23  
    Posts: 495
    Help: 45
    Rate: 206
    It doesn't go.
    Error message stating that the given binary is an erased flash sector, full of 0xFF. .
  • #12 20788229
    p.kaczmarek2
    Moderator Smart Home
    Posts: 14622
    Help: 655
    Rate: 12637
    Then take the first backup you have and drag and drop it onto the flasher
    Helpful post? Buy me a coffee.
  • #13 20788283
    Nargo
    Level 23  
    Posts: 495
    Help: 45
    Rate: 206
    Failed to extract Tuya keys - magic constant header not found in binary
    It seems that dragged binary is full of 0xff, someone must have erased the flash
    Failed to extract Tuya keys - magic constant header not found in binary
    It seems that dragged binary is full of 0xff, someone must have erased the flash
    Failed to extract Tuya keys - magic constant header not found in binary
    It seems that dragged binary is full of 0xff, someone must have erased the flash
    Failed to extract Tuya keys - magic constant header not found in binary
    Failed to extract Tuya keys - magic constant header not found in binary
    Failed to extract Tuya keys - magic constant header not found in binary
    Failed to extract Tuya keys - magic constant header not found in binary
    .
  • #14 20788292
    p.kaczmarek2
    Moderator Smart Home
    Posts: 14622
    Help: 655
    Rate: 12637
    Open the file in a hex editor. It looks like it is full of 0xff itself. This is not a valid backup.

    Maybe better to use GPIODoctor and by method of elimination check what of the CB2S pins are not used yet. Also delete the ones that are not soldered on the PCB. There won't be many options left.

    And what device model is written on the housing of this relay?
    Helpful post? Buy me a coffee.
  • #15 20788321
    Nargo
    Level 23  
    Posts: 495
    Help: 45
    Rate: 206
    Smart curtain controller model FS-03W with technical specifications and connectors.


    Smart Curtain Controller

    "pins": {
    "6": "Rel;1",
    "7": "Rel;2",
    "10": "dInput_n;1",
    "11": "dInput_n;2",
    "24": "LED_n;3",
    "26": "dInput;0"
    },

    Now still to find how to configure this as a roller shutter controller and it will be GIT.
  • #16 20788350
    p.kaczmarek2
    Moderator Smart Home
    Posts: 14622
    Help: 655
    Rate: 12637
    FS-03W, this is important information. Model name.

    We do not have a ready-made system for roller shutters in the firmware. I do not have roller shutters at my home so I had no way to prepare it. We can either e.g. prepare it together (if you know C or at least want to test a bit) or we can use ready scripts from other users:
    https://www.elektroda.com/rtvforum/topic3972935.html
    Helpful post? Buy me a coffee.
  • ADVERTISEMENT
  • #17 20788804
    Nargo
    Level 23  
    Posts: 495
    Help: 45
    Rate: 206
    This came out of the "first, first" Backup.
    {
    	"rl1_lv":"1",
    	"bt1_pin":"10",
    	"on_off_cnt":"10",
    	"onoff_rst_m":"0",
    	"rl3_pin":"7",
    	"rl3_lv":"1",
    	"onoff_clear_t":"10",
    	"travel_calibra1":"3",
    	"reverse_ctrl1":"8",
    	"net_trig":"4",
    	"dev_ctrl1":"1",
    	"netled1_lv":"0",
    	"jv":"101",
    	"travel_t":"10",
    	"onoff_rst_type":"1",
    	"delay_t":"300",
    	"total_bt_pin":"26",
    	"nety_led":"1",
    	"bt3_lv":"0",
    	"bt1_lv":"0",
    	"bt_reuse":"1",
    	"reset_t":"5",
    	"netled1_pin":"24",
    	"travel_t1":"10",
    	"net_type":"0",
    	"bt3_pin":"11",
    	"module":"CB2S",
    	"percent_ctrl1":"2",
    	"onoff_type":"2",
    	"total_bt_lv":"0",
    	"ch_num":"1",
    	"rl1_pin":"6",
    	"netn_led":"0",
    	"crc":"44",
    	"} ).Agw_wsm{nc_tp":"0",
    	"ssid":"null",
    	"passwd":"null",
    	"md":"0",
    	"random":"0",
    	"wfb64":"1",
    	"stat":"0",
    	"token":"null",
    	"region":"null",
    	"reg_key":"null",
    	"dns_prio":"0 }{uuid",
    	"psk_key":"c1ocYrc0oM3dvMQbOTTu5gHAP1v3HZfSjxgzt",
    	"auth_key":"qGUEHBpOLMAVfZCDHaGLqalmiV6r3WvN",
    	"ap_ssid":"SmartLife",
    	"ap_passwd":"null",
    	"country_code":"null",
    	"bt_mac":"null",
    	"bt_hid":"null",
    	"prod_test":"false",
    	"fac_pin":"enrribhu0xheehid }{nc_tp"
    }
    



    Device configuration, as extracted from Tuya: 
    - Button (channel 1) on P10
    - Relay (channel 3) on P7
    - Pair/Toggle All Button on P26
    - WiFi LED on P24
    - Button (channel 3) on P11
    - Relay (channel 1) on P6
    Device seems to be using CB2S module, which is using BK7231N.
    And the Tuya section starts, as usual, at 2023424
    

    Quote:
    We don't have a ready-made system for roller shutters in the firmware. I do not have roller shutters at my place so I had no way to prepare it. We can either e.g. prepare it together (if you know C or at least want to test it a bit)

    I would be happy to learn new things.
    I can test it as time allows. I used to write something there.
  • #18 20789621
    p.kaczmarek2
    Moderator Smart Home
    Posts: 14622
    Help: 655
    Rate: 12637
    So there was a first-first backup after all, just as I thought. That's good.

    I would like to add this device to https://openbekeniot.github.io/webapp/devicesList.html , could you provide where you bought it, maybe some screenshots from the auction?

    What about the roller shutter controller, what functionalities are needed? Are we trying to do something like in Tasmota?
    Helpful post? Buy me a coffee.
  • #19 20789687
    Nargo
    Level 23  
    Posts: 495
    Help: 45
    Rate: 206
    Auction photo
    Image of a smart curtain switch on an online auction with price and description.

    Link to purchase


    I purchased together with AHT20+BMP280 modules on 14 day delivery. Purchase 8-09-2023 delivery 18-09-2023.

    Functionality-wise, suggesting the current roller shutter controller:
    Zamel SRP-02 controller
    Quote from manual:
    Quote:
    A short press (<2 s) on a transmitter button programmed in local mode,
    or a blind switch (optional), starts the movement of the roller shutter
    in the given direction. Briefly pressing the same button or
    switch again, stops the roller shutter at the set height. Longer pressing
    (>2 s) of the button or switch, activates the comfort mode
    (the roller shutter starts moving in the given direction and stops after the programmed
    time).
    Short pressing of the transmitter button programmed in the central mode
    activates full raising or lowering of the roller shutter.

    Quote:
    Convenience modes allow you to
    set the position of the roller shutter in a fixed
    position (at a fixed height) and
    store this position.
    Flexible modes allow you to
    set the position of the roller shutter in a fixed
    position (at a fixed height) and
    store this position.
  • Helpful post
    #21 20894773
    Nargo
    Level 23  
    Posts: 495
    Help: 45
    Rate: 206
    In view of the FREE day modifying the script from this thread I came up with something like this:
    // Set up Aliases
    alias Set_Stop backlog setChannel 5 0; setChannel 6 0; setButtonColor 3 red; setButtonColor 2 red; setButtonColor 1 red
    alias Set_Finish backlog setButtonColor 2 blue
    alias Start_Opening backlog stopAllScripts; startScript autoexec.bat openSkylight
    alias Start_Closing backlog stopAllScripts; startScript autoexec.bat closeSkylight
    alias Stop_All backlog stopAllScripts; startScript autoexec.bat stopSkylight
    
    // Channel 60 is seconds for power to be applied
    setChannel 60 25
    
    // create GUI buttons for HTTP panel
    startDriver httpButtons
    
    setButtonEnabled 1 1
    setButtonLabel 1 "Open"
    setButtonCommand 1 Start_Opening
    setButtonColor 1 red
    
    setButtonEnabled 2 1
    setButtonLabel 2 "Stop"
    setButtonCommand 2 Stop_All
    setButtonColor 2 red
    
    setButtonEnabled 3 1
    setButtonLabel 3 "Close"
    setButtonCommand 3 Start_Closing
    setButtonColor 3 red
    
    // Hide the default GUI buttons
    setChannelVisible 5 0
    setChannelVisible 6 0
    setChannelVisible 3 1
    
    // Loading Event Handlers
    addChangeHandler Channel1 == 1 Start_Closing
    addChangeHandler Channel2 == 1 Start_Opening
    
    // Close Skylight on power up
    goto stopSkylight
    
    // do not proceed
    return
    
    openSkylight:
    setChannel 6 0
    setButtonColor 3 red
    delay_s 0.1
    toggleChannel 5
    setButtonColor 1 blue
    setChannel 2 0
    delay_s $CH60
    Set_Stop
    Set_Finish
    delay_s 3
    Set_Stop
    return
    
    closeSkylight:
    setChannel 5 0
    setButtonColor 1 red
    delay_s 0.1
    toggleChannel 6
    setButtonColor 3 blue
    setChannel 1 0
    delay_s $CH60
    Set_Stop
    Set_Finish
    delay_s 3
    Set_Stop
    return
    
    stopSkylight:
    Set_Stop
    Set_Finish
    delay_s 3
    Set_Stop
    return


    At the moment I have raising/lowering 100% with stopping at any time from physical buttons as well as from HA

    Channels 1 and 2 physical buttons
    Channels 5 and 6 roller shutter relays
  • #22 20896568
    Nargo
    Level 23  
    Posts: 495
    Help: 45
    Rate: 206
    After testing, it appears that the above code does not work as intended.
    I rewrote everything
    alias akcja1 backlog stopAllScripts; startScript autoexec.bat rusz1
    alias akcja2 backlog stopAllScripts; startScript autoexec.bat rusz2
    alias akcja3 backlog setChannel 6 0; setChannel 5 1; setChannel 10 1; setChannel 60 25 
    alias akcja4 backlog setChannel 5 0; setChannel 6 1; setChannel 10 1; setChannel 60 25
    alias akcja_stop backlog setChannel 6 0; setChannel 5 0; setChannel 10 0; ; setChannel 60 1
    alias akcja50 setChannel 60 7
    
    
    //Channel 1 - wejście 1
    //Channel 2 - wejście 2
    
    //Channel 5 - wyjście 1
    //Channel 6 - wyjście 2
    //Channel 10 - stan 1 jakiekolwiek wyjście ON/ stan 0 jakiekolwiek wyjście OFF
    
    //Channel 60 - czas pełnego otwarcia 25s
    //Channel 60 - czas częściowego otwarcia 8s
    //Channel 60 - czas po zatrzymaniu 1s
    
    addChangeHandler Channel1 == 1 akcja1
    addChangeHandler Channel2 == 1 akcja2
    //Przyciski
    startDriver httpButtons
    
    setButtonEnabled 1 1
    setButtonLabel 1 "Open"
    setButtonCommand 1 akcja1
    setButtonColor 1 "#ff0000"
    
    setButtonEnabled 2 1
    setButtonLabel 2 "Close"
    setButtonCommand 2 akcja2
    setButtonColor 2 "#ff0000"
    
    // nic nie rób 
    goto start
    return
    
    rusz1:
    setButtonColor 1 "#0000ff"
    if $CH10==1 then akcja_stop else akcja3
    delay_s 0.1
    setButtonColor 1 "#ff0000"
    delay_s 1
    if $CH1==1 then akcja50 
    delay_s $CH60
    akcja_stop
    return
    
    rusz2:
    setButtonColor 2 "#0000ff"
    if $CH10==1 then akcja_stop else akcja4
    delay_s 0.1
    setButtonColor 2 "#ff0000"
    delay_s 1
    if $CH2==1 then akcja50 
    delay_s $CH60
    akcja_stop
    return
    
    start:
    akcja_stop
    setButtonColor 1 "#ff0000"
    setButtonColor 2 "#ff0000"
    return

    Now it works as follows:
    Short press (up to 1s) roller shutter up/down 100% (25s)
    Long press (over 1s) roller shutter up/down about 40% (8s)
    Second click with any key during operation stops roller shutter motor.

    As soon as there is enough time before the kids return from school, I will install and check on the roller shutter.
  • #23 21547844
    io2345
    Level 9  
    Posts: 268
    Help: 1
    Rate: 7
    Nargo wrote:

    ...
    Device configuration, as extracted from Tuya:
    - Button (channel 1) on P10
    - Relay (channel 3) on P7
    - Pair/Toggle All Button on P26
    - WiFi LED on P24
    - Button (channel 3) on P11
    - Relay (channel 1) on P6
    Device seems to be using CB2S module, which is using BK7231N.


    What I don't understand: How can the device use P10 and P11, if there are no P10 and 11 on a CB2S available (see Tuya Schematics above in #8)???

Topic summary

✨ The discussion centers on uploading the OpenBK7231N firmware to a roller shutter controller identified as FS-03W CB2S (BK7231N). Initial attempts involved soldering the BK7231N chip and using BK7231Flasher to upload OpenBK7231N_QIO_1.17.291.bin, encountering partial success with sector writes but firmware versions 1.17.291 and 1.17.15 failing, while version 1.17.11 succeeded. Issues with wiring length, power supply sources, and possible reversed pinouts due to mirrored PCB silk-screening were highlighted, emphasizing the risk of incorrect 3.3V and GND connections. Backup dumps initially appeared invalid (filled with 0xFF), but a valid first backup was later recovered, revealing pin assignments for relays, inputs, LEDs, and buttons. The device is a Smart Curtain Controller with pins such as 6 and 7 for relays, 10 and 11 for digital inputs, 24 for LED, and 26 for button input. There is no ready-made roller shutter firmware in OpenBK7231N; users discussed adapting scripts and configurations, including aliases and channel mappings, to replicate roller shutter control functionality similar to commercial controllers like the Zamel SRP-02. The controller was identified as similar to the Spacetronik SL-SC-01 model. Further development involves testing and refining scripts for open, close, and stop commands, with attention to channel assignments and timing parameters. Questions remain about the use of pins 10 and 11, which may not be physically available on the CB2S PCB, indicating possible discrepancies between documentation and hardware. The community suggests using tools like GPIODoctor for pin identification and encourages sharing purchase sources and auction screenshots for device cataloging.
Generated by the language model.

FAQ

TL;DR: If your FS-03W flash fails near sector 0xE000–0xF000, "shorter wires helped" and one working case succeeded only with OpenBK7231N_QIO_1.17.11, not 1.17.15 or 1.17.291. This FAQ helps CB2S/BK7231N users recover flashing, verify mirrored pin labels, and map the shutter controller safely. [#20788044]

Why it matters: A mislabeled CB2S board can make 3.3V and GND appear swapped, causing failed flashing, bad backups, or permanent module damage.

Method / tool Result in thread Practical note
BK7231 Easy UART Flasher Failed at 0xE000/0xF000 first, then succeeded Worked after setup changes and with firmware 1.17.11 [#20788010]
BK_writer Flash ID: 0x00000000, Init...FAILED Strong sign of communication or power problem [#20787763]
hid_download_py Suggested as fallback CRC can be miscounted on BK7231N, so that specific error may be ignorable [#20788018]

Key insight: The most important fix was not the script. It was verifying hardware basics first: power source, wire length, baud rate, and whether the CB2S silkscreen was mirrored before trusting any pin labels. [#20788085]

Quick Facts

  • The first failed flash stopped after Writing sector 0xE000... ok! and then failed at 0xF000, showing UART read mismatch: expected 15 bytes, got 0. [#20787763]
  • One successful upload used OpenBK7231N_QIO_1.17.11; the same user reported 1.17.15 and 1.17.291 did not work in that setup. [#20788044]
  • BK_writer reported 921600 bps with Flash ID: 0x00000000 and Init...FAILED, which points to a broken flash link, unstable power, or incorrect wiring. [#20787763]
  • The recovered FS-03W mapping was: relays on P6 and P7, buttons on P10 and P11, Wi‑Fi LED on P24, and pair/toggle button on P26. [#20788321]
  • The working shutter script used 25 s for full travel, about 8 s for partial travel, and 1 s as the stop timing, with short press for 100% travel and long press for about 40% travel. [#20896568]

1. Why does BK7231 Easy UART Flasher fail around sector 0xE000 or 0xF000 when uploading OpenBK7231N to an FS-03W CB2S roller shutter controller?

It fails there because the UART flash session becomes unstable before the image finishes writing. The reported error was expected 15 bytes, got 0, right after sector 0xE000, and the next write at 0xF000 failed completely. In this thread, unstable wiring, power-source differences, and firmware-version sensitivity were all present, so the failure was not tied to one bad sector alone. [#20787763]

2. How can I successfully flash OpenBK7231N on an FS-03W Smart Curtain Controller with a BK7231N/CB2S module?

Use a minimal, proven setup and verify the board before soldering it back. 1. Shorten UART wires and try a lower baud rate if flashing stalls. 2. Test a stable 3.3V source and do not trust the silkscreen until you confirm GND and 3.3V on the motherboard. 3. If newer images fail, try the exact build that worked here: OpenBK7231N_QIO_1.17.11. That combination produced CRC matches and a successful write. [#20788010]

3. What troubleshooting steps help when BK_writer shows Flash ID 0x00000000 and Init...FAILED on a BK7231N device?

Start with the physical link, because Flash ID 0x00000000 means the flasher is not talking to the flash correctly. Check wire length, reduce baud rate, verify the 3.3V source can hold load, and confirm the module is not wired by a mirrored label. In the thread, the exact BK_writer output appeared with 921600 bps and Init...FAILED, while a different flashing path later worked. [#20787763]

4. How much do wire length, UART baud rate, and 3.3V power source quality affect flashing stability on CB2S/BK7231N modules?

They affect it a lot, and this thread treated them as first-line causes. Shorter wires were explicitly suggested because long jumpers had already caused failures on similar devices. The same discussion also questioned whether the 3.3V rail came from a good LDO with enough current, and suggested lowering baud rate before retrying. [#20787862]

5. BK7231 Easy UART Flasher vs hid_download_py: which is better for recovering or flashing a CB2S-based BK7231N module?

BK7231 Easy UART Flasher was the tool that ultimately worked in this case, while hid_download_py was proposed as a fallback. The thread does not show a successful hid_download_py recovery on this FS-03W, but it does state that BK7231 Easy UART Flasher finally wrote the image successfully. Use hid_download_py when the main UART path keeps failing or when you want another recovery path. [#20788025]

6. What is hid_download_py, and why can its CRC error sometimes be ignored on BK7231N devices?

"hid_download_py" is a flashing utility that communicates with BK chips through a download interface, offering an alternative path when standard UART flashing is unreliable. Its key characteristic in this thread is that it can miscount CRC on BK7231N, so a CRC complaint is not always a real write failure. The expert note was clear: for BK7231N, that CRC error can be ignored. [#20788018]

7. What is GPIODoctor in OpenBeken, and how do you use it to identify unknown button or relay pins on a CB2S board?

"GPIODoctor" is an OpenBeken diagnostic feature that helps identify active GPIO roles by testing or observing pin behavior, especially on boards with unknown mappings. Its key characteristic is narrowing candidates by elimination instead of guessing from labels alone. Here, the recommended method was to exclude pins not soldered on the PCB, then test the remaining CB2S pins until only a few options stayed. [#20788292]

8. How do I verify whether a CB2S module has a mirrored or incorrect silkscreen pinout before soldering 3.3V and GND?

Compare the board’s printed labels against the actual motherboard nets before you power anything. In this thread, the warning was to check where 3.3V and GND really go on the host PCB, because the visible description layer could be mirrored. Do that continuity-style check before soldering, not after a failed flash. [#20788085]

9. Why would a CB2S board label not match Tuya documentation, and how can that damage the module during flashing?

Because some boards were reported with a reflected or bad description layer, so the printed pin names did not match the real electrical pins. The thread states that cases existed where GND was not really GND and 3.3V was not really 3.3V. If you wire power by those wrong labels, you can damage the module during programming. [#20788085]

10. How can I extract Tuya pin configuration and keys from a valid first backup, and what does it mean when the backup is full of 0xFF?

Drag the original, untouched backup into the flasher or inspect it in a hex editor. A valid first backup can reveal Tuya JSON data, pin assignments, keys, and the Tuya section offset; here it exposed the configuration and showed the Tuya section starting at 2023424. A file full of 0xFF means the flash image is erased, so it is not a valid backup and cannot yield keys. [#20788804]

11. Which pins were identified for the FS-03W roller shutter controller in OpenBeken, including relays, buttons, LED, and the pair button?

The identified mapping was relay on P6, relay on P7, button on P10, button on P11, Wi‑Fi LED on P24, and pair/toggle-all button on P26. The user later confirmed practical operation too: relays worked on P6 and P7, LED on P24, and button on P26. That gave a usable OpenBeken base map for the FS-03W. [#20788321]

12. How do I configure an FS-03W in OpenBeken as a roller shutter controller when there is no built-in shutter firmware mode?

Use OpenBeken scripting, because the thread states there was no ready-made roller shutter mode in firmware for this device. The working approach mapped physical buttons to input channels, mapped relays to output channels, and used timing logic to simulate open, close, and stop behavior. That turned the FS-03W into a practical shutter controller without adding native firmware support. [#20788350]

13. What OpenBeken script logic is needed for short-press full travel, long-press partial travel, and stop-on-second-press for roller shutters?

Use change handlers for the two buttons, a state channel to track motion, and one timing channel for travel duration. In the tested script, short press up to 1 s triggered full travel for 25 s, long press over 1 s triggered about 8 s of movement, and a second press during operation stopped the motor. The author reported that this revised logic worked as intended. [#20896568]

14. How does the FS-03W compare with the Zamel SRP-02 in terms of roller shutter functions like comfort mode, central mode, and saved positions?

The FS-03W did not ship with those functions built into OpenBeken, but the thread used the Zamel SRP-02 as the behavior target. The cited SRP-02 model supports short press for motion and stop, long press over 2 s for comfort mode, central-mode full raise/lower, and stored intermediate positions. The FS-03W script reproduced part of that logic through timed movement and stop behavior. [#20789687]

15. Why do Tuya-extracted settings for this CB2S device reference P10 and P11 when standard CB2S pin diagrams seem not to expose P10 and P11?

Because the device data and real board behavior showed P10 and P11 were used, even if the expected CB2S diagram caused confusion. A later poster explicitly questioned this mismatch in 2025, which confirms the discrepancy remained visible. In practice, the thread treated the extracted Tuya mapping and on-device testing as more trustworthy than a generic pin diagram. [#21547844]
Generated by the language model.
ADVERTISEMENT