logo elektroda
logo elektroda
X
logo elektroda

Cozylife DS-1211AN 3Gang Touch Switch: 1MB BL602L10 [XT-BL12][DT-BL12] - Images, Firmware & Boot

divadiow 6774 132
Best answers

How can I get OpenBK/OpenBL602 running on this Cozylife DS-1211AN with a 1 MB BL602L10 chip?

Yes — the thread ended up showing that OpenBK/OpenBL602 can run on the 1 MB BL602L10, but you need the 1 MB-aware SDK/build path and a matching partition layout [#21438533][#21439639] The key fix was enabling `CONFIG_BL602_USE_1M_FLASH := 1`; once that was set, the device booted and EasyFlash worked [#21438533][#21438595] A tester confirmed a 1 MB BL602L10 device flashed successfully, joined Wi‑Fi, and saved settings using the `partition_cfg_1M_miegapele.toml` partition file plus the PR 1534 build artifact [#21456497] The stock 1 MB layout was a problem because its PSM partition was only 8 KB, which was too small for this firmware and caused boot/init/config-save issues; the revised layout used a larger PSM and adjusted/removing other partitions as needed [#21431575][#21442160] Later replies also noted that the 1 MB build works on 2 MB devices too, and that the standard release was later reported to boot on 1 MB hardware as well [#21619453][#21798426]
Generated by the language model.
ADVERTISEMENT
  • #91 21471074
    divadiow
    Level 38  
    Posts: 4850
    Help: 421
    Rate: 854
    >>21470955

    unpaired boot log. both same SDK, dates, firmware version 1.1.1, product ID p93sfg
    Code: Text
    Log in, to see the code


    Added after 2 [minutes]:

    this bulb has same product ID but came with 2mb DT-BL200 module https://www.elektroda.com/rtvforum/topic4039283.html
    which you also said looks identical in your message to me

    Added after 3 [minutes]:

    what module does your have?

    Added after 3 [minutes]:

    added to flashdumps as CozyLife_RGBCWW-CFA60-18W-E27-BL602L10_p93sfg_1.1.1.bin https://github.com/openshwprojects/FlashDumps/tree/main/IoT/BL602
  • ADVERTISEMENT
  • Helpful post
    #92 21471144
    niterian
    Level 9  
    Posts: 12
    Help: 3
    Rate: 6
    >>21471074 >>21471074
    divadiow wrote:
    what module does your have?

    I haven't desoldered the module, so I can't read the label behind.
    It looks exactly like DT-BL200 and the main PCB even has the same label XLD-QFLWP-YT2.1.


    Small printed circuit board with various electronic components on a white background.
    Green printed circuit board with electrical circuits.


    EDIT: better closeup


    Close-up of an electronic component with a visible integrated circuit and capacitors.
  • ADVERTISEMENT
  • #93 21471152
    divadiow
    Level 38  
    Posts: 4850
    Help: 421
    Rate: 854
    ah yes OK. ta
  • ADVERTISEMENT
  • #94 21594766
    divadiow
    Level 38  
    Posts: 4850
    Help: 421
    Rate: 854
    Wondering if 1mb BL602 is working well enough to be included in releases with maybe just a couple of the basic features plus the temp sensor drivers seen in TH01 with 1mb chip @p.kaczmarek2 🤔
  • Helpful post
    #95 21594772
    p.kaczmarek2
    Moderator Smart Home
    Posts: 14408
    Help: 650
    Rate: 12345
    I would love to include it, but I don't have 1MB version of BL602, so I need you or someone else to give a greenlight and point me towards to PR to merge. Who should we ping?

    You'd also need to add separate file to builds, like I did for BK7231M, etc.
    Helpful post? Buy me a coffee.
  • #96 21594867
    divadiow
    Level 38  
    Posts: 4850
    Help: 421
    Rate: 854
    Ok. I'll look through some posts, ping some people and try 1mb myself when I can. I should have a couple of modules
  • #97 21598537
    divadiow
    Level 38  
    Posts: 4850
    Help: 421
    Rate: 854
    @niterian @minusync @vinibali @Vdragonb @maxim2002 @arphenon assuming you were successful flashing and setting up @miegapele's BL601L10 build for 1MB BL602, how have you found it? All working?

    I note this from an earlier post:

    insmod wrote:
    But what would be the purpose for using it?
    There is no deep sleep implemented for BL602.
    There is no PinDeepSleep for BL602, which is what should be used when sensor is 8310/8315.
    Without those, batteries will be drained very quickly.


    So, I guess battery life on the Cozylife temp/hum devices is not good, assuming standard batteries are in use. Did @insmod add pindeepsleep recently to BL602? I can't find the comment I thought I saw it mentioned in.
  • Helpful post
    #98 21598541
    insmod
    Level 31  
    Posts: 1353
    Help: 160
    Rate: 425
    >>21598537
    No, i added it to XRs.
    Currently PinDeepSleep is supported only by Beken and XR-family.
    Normal DeepSleep is for Beken, ESP and XR
  • Helpful post
    #99 21598546
    p.kaczmarek2
    Moderator Smart Home
    Posts: 14408
    Help: 650
    Rate: 12345
    1MB BL602 was seen also in light switches.
    Helpful post? Buy me a coffee.
  • ADVERTISEMENT
  • #102 21599122
    divadiow
    Level 38  
    Posts: 4850
    Help: 421
    Rate: 854
    >>21598820

    ah OK. that's a shame. I assume powersave 1 didn't help? I wonder if any changes to BL602 code since the PR build, which is a few months old now, would make any difference. Wasn't powersave broken initially with new SDK?
  • #103 21599155
    p.kaczmarek2
    Moderator Smart Home
    Posts: 14408
    Help: 650
    Rate: 12345
    @niterian why not just limit brightness at 90% of original value? I can help with LED driver if that's not supported
    Helpful post? Buy me a coffee.
  • #104 21609797
    vinibali
    Level 8  
    Posts: 19
    Rate: 1
    >>21598537
    Both 1MB and 2MB BL602s are supported with the latest binaries?
  • #105 21609804
    divadiow
    Level 38  
    Posts: 4850
    Help: 421
    Rate: 854
    2mb is supported in general release. 1mb is a WIP/unknown not available in releases tab. Can be tested with https://github.com/openshwprojects/OpenBK7231T_App/actions/runs/13334744916?pr=1534
    Attachments:
    • partition_cfg_1M_miegapele (1).zip (561 Bytes) You must be logged in to download this attachment.
    • OpenBK7231T_App_1534_merge_be321015279b_OpenBL602.zip (1.78 MB) You must be logged in to download this attachment.
  • #106 21609891
    divadiow
    Level 38  
    Posts: 4850
    Help: 421
    Rate: 854
    refreshing my memory on this build with DT-BL12 before I find a home for it in a plug
    initial boot after flash
    Code: Text
    Log in, to see the code


    Cozylife DS-1211AN 3Gang Touch Switch: 1MB BL602L10 [XT-BL12][DT-BL12] - Images, Firmware & Boot

    I wonder if the toml could be tweaked further and if @insmod's LFS revisions since could be adapted for a tiny LFS
    Cozylife DS-1211AN 3Gang Touch Switch: 1MB BL602L10 [XT-BL12][DT-BL12] - Images, Firmware & Boot
  • #107 21618756
    divadiow
    Level 38  
    Posts: 4850
    Help: 421
    Rate: 854
    @miegapele if you have time would you mind merging changes into your 1mb flash build so a new build runs please?
  • #108 21619453
    miegapele
    Level 16  
    Posts: 173
    Help: 15
    Rate: 29
    There is nothing to merge. The only change required is in sdk
    The 1MB build works on 2MB devices too. I do not have 1MB device.
    There is some user reports that wifi connectivity is bad for 1MB devices. I have 2MB module which also has bad wifi, but I'm not sure why
  • #109 21619463
    p.kaczmarek2
    Moderator Smart Home
    Posts: 14408
    Help: 650
    Rate: 12345
    Then we need to build OBK variant with CONFIG_BL602_USE_1M_FLASH defined I guess
    https://github.com/search?q=repo%3Aopenshwpro...enBL602+CONF_BL602_USE_1M_FLASH&type=code
    Helpful post? Buy me a coffee.
  • Helpful post
    #111 21619943
    insmod
    Level 31  
    Posts: 1353
    Help: 160
    Rate: 425
    Deep sleep + pindeepsleep test (only GPIO7 and GPIO8, need both gpio only and gpio with timer, check if gpio wakeup works with timer and timer without triggering gpio)
    and 1M partition file (need to check if LFS works, no media partition but OTA partition with 0xB000 size)
    [pt_table]
    #partition table is 4K in size
    address0 = 0xE000
    address1 = 0xF000
    
    [[pt_entry]]
    type = 0
    name = "FW"
    device = 0
    address0 = 0x10000
    size0 = 0xDC000
    address1 = 0xEC000
    size1 = 0xB000
    # compressed image must set len,normal image can left it to 0
    len = 0
    
    [[pt_entry]]
    type = 4
    name = "PSM"
    device = 0
    address0 = 0xF7000
    size0 = 0x5000
    address1 = 0
    size1 = 0
    # compressed image must set len,normal image can left it to 0
    len = 0
    
    [[pt_entry]]
    type = 7
    name = "factory"
    device = 0
    address0 = 0xFC000
    size0 = 0x4000
    address1 = 0
    size1 = 0
    # compressed image must set len,normal image can left it to 0
    len = 0
    Attachments:
    • dev_20250729_061854.rar (1.7 MB) You must be logged in to download this attachment.
  • #112 21619955
    divadiow
    Level 38  
    Posts: 4850
    Help: 421
    Rate: 854
    yay.

    flashed OK.

    it boots but does the thing playing with the 2mb bin +1mb bldc toml used to do and stop at the ENV start address is 0x00000000, size is 20480 bytes point.

    Code: Text
    Log in, to see the code


    Added after 3 [minutes]:

    same result with miegapele 1mb toml and OpenBL602_dev_20250729_061854.bin
    Bouffalo Lab Dev Cube interface with firmware loaded and process completed
  • #113 21619957
    insmod
    Level 31  
    Posts: 1353
    Help: 160
    Rate: 425
    Did you flash it to 1mb board?
    Then SDK patch would be needed (probably just enable it by default, since it was mentioned that it works on 2mb)
    ENV start address is 0 because it is addr on partition, not directly on flash.
  • #114 21619960
    divadiow
    Level 38  
    Posts: 4850
    Help: 421
    Rate: 854
    insmod wrote:
    Did you flash it to 1mb board?

    yes. to DT-BL12 above

    Added after 3 [minutes]:

    to 4mb BL602 with your 1mb toml posted above
    Code: Text
    Log in, to see the code


    Added after 10 [minutes]:

    insmod wrote:
    Deep sleep + pindeepsleep test (only GPIO7 and GPIO8, need both gpio only and gpio with timer, check if gpio wakeup works with timer and timer without triggering gpio)
    and 1M partition file (need to check if LFS works, no media partition but OTA partition with 0xB000 size)


    these are 2 tests? deep sleep test then separately 1mb LFS toml for use with miegapele's 1mb binary?
  • #115 21619967
    insmod
    Level 31  
    Posts: 1353
    Help: 160
    Rate: 425
    >>21619960
    Sleep only for now. Partition won't work yet.

    [pt_table]
    #partition table is 4K in size
    address0 = 0xE000
    address1 = 0xF000
    
    [[pt_entry]]
    type = 0
    name = "FW"
    device = 0
    address0 = 0x10000
    size0 = 0xDC000
    address1 = 0
    size1 = 0
    len = 0
    
    [[pt_entry]]
    type = 3
    name = "media"
    device = 0
    address0 = 0xEC000
    size0 = 0xB000
    address1 = 0
    size1 = 0
    len = 0
    
    [[pt_entry]]
    type = 4
    name = "PSM"
    device = 0
    address0 = 0xF7000
    size0 = 0x5000
    address1 = 0
    size1 = 0
    len = 0
    
    [[pt_entry]]
    type = 7
    name = "factory"
    device = 0
    address0 = 0xFC000
    size0 = 0x4000
    address1 = 0
    size1 = 0
    len = 0

    Curious what will happen if OTA is attempted.
  • #116 21620849
    divadiow
    Level 38  
    Posts: 4850
    Help: 421
    Rate: 854
    insmod wrote:
    Curious what will happen if OTA is attempted.


    with that toml and the 1mb miegapele build 1534_merge_be321015279b

    it will do this when trying to OTA to OpenBL602_1534_merge_be321015279b_OTA.bin.xz.ota

    Code: Text
    Log in, to see the code


    then gui dies at malloc fail shortly after OTA attempt
  • #117 21620857
    insmod
    Level 31  
    Posts: 1353
    Help: 160
    Rate: 425
    >>21620849
    Expected, since there is no partition for OTA.
    A check will be needed in OTA code.

    What about deepsleep?
  • #118 21620896
    divadiow
    Level 38  
    Posts: 4850
    Help: 421
    Rate: 854
    insmod wrote:
    What about deepsleep?


    OK. With this flashed
    Screenshot of Bouffalo Lab Dev Cube showing BL602 firmware setup

    initial boot
    Code: Text
    Log in, to see the code


    and then with deepsleep 30 it stops responding to pings straight away and wakes at 30s and wifi back ~39s. brb pindeepsleep

    Added after 57 [minutes]:

    With multilpe Btn role set on P7 AND P8 starting pindeepsleep command results in reboot

    Code: Text
    Log in, to see the code


    single Btn on P7 does wake BL602 on grounding. P8 Btn doesn't seem to be effective though.

    Added after 5 [minutes]:

    But let me try HLK BL module to be sure about P8. P8 leg on Ai-Thinker also doesn't put chip into flash download mode if pulled high, even though the boot button on top of dev board works. The pad is labelled IO8/NC so unsure if it's expected to work.

    Or build fw with a different pin?

    Added after 3 [hours] 7 [minutes]:

    no. no wake on GPIO8 on HLK-B35 in this setup: https://www.elektroda.com/rtvforum/topic4051649.html#21126503
  • #119 21624634
    miegapele
    Level 16  
    Posts: 173
    Help: 15
    Rate: 29
    There seem to be newer version of the bl602 sdk in a branch here. Not sure we need anything there, but maybe somebody wants to take a look.

Topic summary

✨ The discussion focuses on the Cozylife DS-1211AN 3-gang touch wall switch featuring a 1MB BL602L10 Wi-Fi and BLE module, manufactured by Shenzhen Dianling Intelligent Technology Co Ltd. The main challenge is adapting OpenBeken/OpenBL602 firmware, which typically targets 2MB flash BL602 chips, to the 1MB flash variant, as standard builds and tools like OpenBeken do not natively support 1MB BL602L10 devices. Key technical issues include flash memory partitioning, bootloader compatibility, EasyFlash storage initialization, and power supply stability affecting boot loops and Wi-Fi connectivity.

Significant progress was made by creating and testing custom partition table (TOML) files tailored for 1MB flash layouts, notably the partition_cfg_1M_miegapele.toml, which allocates appropriate sizes for firmware, media, PSM, and factory partitions. Firmware builds with specific SDK configurations (e.g., CONFIG_BL602_USE_1M_FLASH and CONFIG_BL602_USE_ROM_DRIVER enabled) successfully boot and run on the 1MB BL602L10, including OpenBK7231T_App builds from GitHub pull requests #1532 and #1534.

Power supply quality and wiring (shorter VCC and ground cables, decoupling capacitors) were critical for stable operation, as the module exhibited boot looping and Wi-Fi instability when powered inadequately or with noisy sources. The GPIO17 pin usage and UART download mode resistor requirements were also discussed for module replacement or debugging.

Wi-Fi connection issues were partially resolved by adjusting router PMF (Protected Management Frames) settings and using simpler passwords. The firmware supports AP mode and basic Wi-Fi functions, though some web API endpoints (e.g., /api/lfs) may be incomplete. The community shared detailed boot logs, flash memory dumps, and PCB images to aid development and testing.

Overall, the topic demonstrates successful adaptation of OpenBL602 firmware to the 1MB BL602L10 module in the Cozylife DS-1211AN switch, with custom partitioning, SDK flags, and power considerations enabling stable boot and Wi-Fi operation, while highlighting ongoing challenges in full feature support and stability.
Generated by the language model.

FAQ

TL;DR: For people flashing OpenBL602 on 1MB BL602L10 modules, the breakthrough was a 1MB flash define plus a custom partition layout; one tester confirmed standard releases now work on 1MB, and another key finding was: "the release for 2mb now works on 1mb too." This solves the classic freeze at EasyFlash init and makes XT-BL12/DT-BL12 practical OpenBeken targets. [#21798426]

Why it matters: This thread turns 1MB BL602L10 devices from borderline unsupported hardware into flashable, usable OpenBL602 targets with known limits.

Option Flash size Status in thread Main limitation
Early stock 1MB BL602L10 1MB Boot freeze / EasyFlash failure Stuck at ENV init without 1MB support [#21431575]
1MB build + custom TOML 1MB Boots and saves settings Tight space, LFS/media/OTA trade-offs [#21438533]
Standard 2MB release 2MB Works normally None specific to flash size in thread [#21609804]
Later standard release on 1MB 1MB Reported working Still flash-layout dependent for advanced features [#21798426]

Key insight: The decisive fix was not firmware size alone. The real blocker was BL602 flash access on 1MB parts, solved by enabling CONFIG_BL602_USE_1M_FLASH and pairing it with a partition layout that gives PSM enough space to save config. [#21438533]

Quick Facts

  • The stock Cozylife DS-1211AN sample used a 1MB BL602L10 module, labelled XT-BL12 / DT-BL12, and originally could not run OpenBeken because earlier builds targeted larger flash layouts. [#21301826]
  • The successful 1MB fix used CONFIG_BL602_USE_1M_FLASH := 1 with a build based on BL IoT SDK 1.6.39, built on February 13, 2025. [#21438533]
  • The commonly reused working 1MB partition gave FW 0xD7000 (~860KB), PSM 0x8000 (32KB), media 0x2000 (8KB), and factory 0x7000 (28KB). The thread rejected the standard 1MB PSM because 8KB was too small for OpenBL602 config writes. [#21432034]
  • BL602 hardware proved power-sensitive on jumper wires: testers reported looping even around 3.5V–3.6V, then stable boot after shortening VCC or ground leads. [#21434069]
  • By January 4, 2026, a maintainer-level thread update stated that the normal 2MB OpenBL602 release also worked on 1MB BL602L10, removing the need for a separate end-user binary in many cases. [#21798426]

How do I flash OpenBL602 onto a 1MB BL602L10 module like the XT-BL12 or DT-BL12 using Bouffalo Lab Dev Cube and a custom TOML partition file?

Use Bouffalo Lab Dev Cube with UART download mode, a 1MB-aware OpenBL602 binary, and a custom partition TOML. 1. Put GPIO8 into download mode and connect UART. 2. In Dev Cube, load the working 1MB TOML and the OpenBL602 image, then flash at 2,000,000 baud if your adapter is stable. 3. Reboot, join the AP, and confirm the boot log shows a valid PSM partition and EasyFlash init. A proven setup used Dev Cube 1.9.0 with a custom 1MB TOML and flashed successfully on BL602L10 bulbs without desoldering the module. [#21456497]

Why did OpenBL602 originally freeze on 1MB BL602L10 at "ENV start address is 0x00000000" during EasyFlash init, and what change finally fixed it?

It froze because the BL602 SDK was reading 1MB flash parts with the wrong flash-access path during EasyFlash initialization. The visible symptom was boot stopping at ENV start address is 0x00000000, even when partition addresses looked correct. The fix was enabling CONFIG_BL602_USE_1M_FLASH := 1, then doing a clean rebuild so the new code path was actually compiled. After that, testers reported normal EasyFlash startup, sector formatting, and successful boot on 1MB parts. An expert summary from the thread was: "CONFIG_BL602_USE_1M_FLASH is what we where after." [#21438533]

What does CONFIG_BL602_USE_1M_FLASH do in the BL602 SDK, and why was it necessary for BL602L10 1MB flash support?

CONFIG_BL602_USE_1M_FLASH switches the SDK to 1MB-compatible flash read logic instead of the default ROM-driver path used on larger parts. The thread found a conditional in the SDK where 1MB builds call a different XIP_SFlash_Read...Ext path. That mattered because standard reads froze during PSM and EasyFlash access on BL602L10. Once enabled, the same firmware could boot on 1MB parts and still worked on at least one 2MB module, so the flag became the practical compatibility switch for BL602L10 support. [#21438486]

What is EasyFlash on BL602, and how does the PSM partition size affect whether OpenBL602 can save Wi-Fi settings and boot counts?

EasyFlash is the BL602 key-value storage layer that saves settings like Wi-Fi credentials, boot counters, and config data inside the PSM partition. "EasyFlash is a flash-resident configuration store that saves persistent key-value settings, using sector-based ENV records and garbage collection." When PSM was only 8KB, OpenBL602 could boot but failed to save larger config changes reliably. A 32KB PSM worked much better, and testers explicitly linked successful setting saves to the larger PSM layout. Small PSM layouts also produced Alloc an ENV failed errors during config writes. [#21440834]

Which 1MB partition TOML layout worked best for OpenBL602 on BL602L10, and why was the standard 1M TOML considered unsuitable?

The most successful 1MB layout used roughly FW 0xD7000, media 0x2000, PSM 0x8000, and factory 0x7000. That layout was repeatedly tested and gave working EasyFlash with saved settings. The standard 1MB TOML was considered unsuitable because it gave PSM only 8KB, which was too small for larger OpenBL602 config writes around 3.6KB. That caused garbage-collection churn, failed ENV allocation, and settings not surviving reboot. Later discussion proposed cleaner variants, but the custom 32KB PSM TOML was the de facto working baseline. [#21432034]

How does a 1MB BL602L10 compare with a 2MB or 4MB BL602 module for running OpenBL602, OTA, LFS, and web features?

A 1MB BL602L10 can run OpenBL602, but it has far less room for OTA, LFS, Berry, and web extras than 2MB or 4MB modules. On 1MB, users had to trade partition space carefully, and LFS was often absent. A later 1MB-oriented build explicitly omitted Berry. OTA without a real second firmware partition failed, and media or LFS often had to be reduced or removed. By contrast, 2MB releases were already normal, and 4MB modules offered much more room for media and storage experiments. One tester estimated about 85.15KB free after a 793,444-byte build in an 860KB firmware partition. [#21438613]

What is PinDeepSleep in OpenBeken/OpenBL602, and why does its absence on BL602 matter for battery-powered temperature and humidity devices?

PinDeepSleep is a low-power wake mechanism that lets a device sleep deeply and wake from a GPIO event. "PinDeepSleep is a wake-on-pin sleep mode that cuts power use between reports, while still allowing a sensor or button GPIO to wake the MCU." Its absence on BL602 matters because battery devices like temperature and humidity sensors then stay in higher-power modes and drain cells much faster. The thread states BL602 had no PinDeepSleep support at that time, while Beken and XR families did. That made 1MB BL602 less attractive for battery-powered TH devices than for mains-powered switches. [#21598541]

Why does a BL602 module sometimes boot loop or behave unstably during Wi-Fi startup when powered on jumper wires or a breakout board?

Because BL602 Wi-Fi startup is sensitive to supply impedance, grounding, and noise on test wiring. Multiple testers saw loops exactly during AP start or flash erase, then fixed them by shortening VCC or ground leads, moving the module back into the original device, or avoiding noisy computer-powered setups. One module looped even around 3.5V–3.6V on bench wiring, then became stable after the VCC wire was shortened. Another tester confirmed stability improved when ground was connected closer to the board. In short, the module may be fine, but jumper-wire power delivery is not. [#21434069]

What wiring and resistor setup should be used to enter BL602 UART download mode with GPIO8, and how can a bad connection leave the module stuck in boot mode?

Use UART plus GPIO8 pulled high for download mode, preferably through a resistor rather than a hard short while experimenting. The thread mentions 10k as a practical pull-up value between 3.3V and IO8, while a NodeMCU-style BL602 board showed a 4.7k path to VDD and about 32k from IO8 to ground. A bad direct connection or damaged pad can leave the module always entering the bootloader, showing no normal firmware logs. One user measured abnormal resistance after forcing GPIO8 and then had to pull 3.3V again just to flash. [#21440301]

When replacing a Cozylife BL602 module with an ESP-12S or ESP-02S, what boot-pin issues like GPIO17 or GPIO0 need to be checked first?

Check whether any BL602 signal maps onto an ESP boot strap pin, especially GPIO0. In this thread, GPIO17 on the original module was called out because, if it drives the equivalent ESP boot path, the transplanted ESP-12S may fail to boot. One user warned that an earlier swap needed about a 1k pull-up from IO0 to 3.3V, otherwise GPIO0 stayed low at boot and the ESP never started. For this Cozylife switch, the safe rule was: trace GPIO17 first, then decide whether the swap is practical. [#21301840]

What caused some 1MB BL602 OpenBL602 builds to connect to an AP but fail during WPA/WPA2 handshake or open-network association?

The failures were inconsistent and looked partly like Wi-Fi stack maturity issues, not only flash size. Testers saw successful AP scan and association, but some WPA/WPA2 attempts stalled on the 4-way handshake, with hostapd reporting repeated EAPOL-Key timeout and deauth reason 15. Open networks also failed in at least one test build. Later discussion suggested PMF or router security settings affected reliability, and one maintainer said changing PMF made connection reliable during porting. So the main cause was unstable or incomplete Wi-Fi behavior in some builds, especially on 1MB test paths. [#21440513]

How should I troubleshoot a 1MB BL602 device that boots OpenBL602 but becomes slow, times out on web requests, or crashes when using the GPIO finder?

Start with power integrity, then test with minimal web load. 1. Reboot and confirm stable free RAM and Wi-Fi association before using the UI. 2. Avoid GPIO finder bursts first, because repeated /api/pins requests caused timeouts and memory drops in the thread. 3. Test from a clean AP setup, short wiring, and a light web session before enabling more features. One user watched free memory fall from about 113,856 bytes to 18,336 bytes, followed by Memory Allocate Failed and a dead web UI. That points to resource exhaustion under load, not a simple flash problem. [#21441931]

If OpenBL602 fits on a 1MB BL602L10, how much flash space is actually left for drivers and features like CHT83xx, Berry, media, or LFS?

Not much is left, so every feature costs something. In one working 1MB setup, the firmware partition was about 860KB, and a tested build size was 793,444 bytes, leaving roughly 85KB headroom. That made small drivers like CHT83xx look realistic, but large extras were harder. Later 1MB-oriented builds explicitly omitted Berry, and LFS was often missing or intentionally disabled. Media also got shrunk to 8KB or even 0KB in experiments. So 1MB BL602 can host core device support, but feature growth is tightly constrained. [#21438613]

What happened when users tried OTA on a 1MB BL602 layout without a proper OTA partition, and what checks would need to be added?

OTA failed and could destabilize the UI when no valid second firmware partition existed. One test tried an OTA file on a 1MB layout without proper OTA support and immediately logged error when get FW partition followed by a dead loop warning. Free memory then fell from about 102,080 bytes to 15,576 bytes, followed by Memory Allocate Failed. The thread conclusion was simple: OTA code needs a partition-existence check before starting the update path on 1MB layouts that do not reserve a real OTA slot. [#21620849]

Where can I find working OpenBL602 binaries for BL602L10 now, and how did support evolve from custom PR builds to standard releases working on 1MB flash too?

Use the normal OpenBL602 release for BL602 now, because the thread’s final update says the standard 2MB release also works on 1MB BL602L10. Support started with custom PR builds, especially the 1MB work around PR 1534, custom TOMLs, and manual SDK changes. Over time, the 1MB flash define became the key compatibility fix, and by January 4, 2026, the thread stated that end users could flash standard OpenBL602 on 1MB modules too. Earlier, the answer was a special PR build; later, it became the normal release path. [#21798426]
Generated by the language model.
ADVERTISEMENT