FAQ
TL;DR: 1 MB BL602L10 modules run OpenBeken after setting CONFIG_BL602_USE_1M_FLASH=1
, growing PSM to 32 KB and flashing a 793 kB image—"works on every sample we had" [Elektroda, miegapele, post #21438533] Why it matters: you can free cheap touch-switches and sensors from cloud lock-in with one flash.
Quick Facts
• Flash size: 1 MB (0x100000) [Elektroda, divadiow, post #21301826]
• Working firmware: OpenBL602_1M build 793 kB [Elektroda, maxim2002, post #21438474]
• Required PSM partition: 32 KB @ 0x0F4000 [Elektroda, miegapele, post #21442160]
• Supply voltage: 3.3 – 3.6 V; keep GND & VCC leads < 5 cm [Elektroda, divadiow, post #21434069]
• Typical flash time via DevCube 2 Mbaud: 16–18 s [Elektroda, niterian, post #21456497]
What change finally made 1 MB BL602L10 boot OpenBeken?
Defining CONFIG_BL602_USE_1M_FLASH := 1
switches the SDK to the alternate XIP flash routine (XIP_SFlash_Read_Need_Lock_Ext
). This prevents EasyFlash from hanging at 0xE9000 and lets the board reach Wi-Fi initialisation [Elektroda, maxim2002, post #21438533]
Which partition table should I flash?
Use the 1 MB TOML posted by @miegapele: 64 KB boot+PT, 912 KB FW (0x010000-0x0F3FFF), 32 KB PSM (0x0F4000-0x0F7FFF), 16 KB factory DTB (0x0FC000). 8 KB PSM from the stock 1 MB table is too small and corrupts config saves [Elektroda, miegapele, post #21440834]
Why does the board reboot when I save Wi-Fi?
If PSM is only 8 KB the 3.6 KB config plus garbage–collection fills the sector, EasyFlash triggers GC every save and the watchdog resets. Expanding PSM to 32 KB fixes the loop [Elektroda, maxim2002, post #21438474]
How do I enter UART-download mode safely?
- Hold IO8 high through a 10 kΩ pull-up to 3.3 V. 2. Reset or power-cycle. 3. Release after handshake. Direct 3.3 V without resistor may destroy the internal pull-up; one user measured 133 Ω to GND after such short [Elektroda, chemik_16, post #21440354]
What’s the preferred flashing procedure?
- Pick DevCube 1.9.0, 2 Mbaud, 40 MHz clock. 2. Select the 1 MB TOML and the 1 MB OpenBL602 build (
whole_img.bin & ro_params.dtb
). 3. Erase, program, verify (≈17 s total). Verified SHA equals host value means success [Elektroda, niterian, post #21456497]
My module boots but loops every 3 s—why?
Long, thin supply leads add >100 mV drop during Wi-Fi TX. Shorten VCC/GND to <5 cm or power the module in-circuit. After trimming leads one tester eliminated the loop at 3.55 V [Elektroda, divadiow, post #21434069]
Does deep-sleep work on BL602?
Normal DeepSleep works; PinDeepSleep is not yet ported (available only for BK and XR chips) [Elektroda, insmod, post #21598541] Battery sensors such as TH01 will therefore drain faster than with XR modules.
Open Wi-Fi network won’t connect—edge case?
Yes. Current SDK refuses open (unencrypted) APs; WPA2-PSK connects reliably when 802.11w PMF is “Optional” [Elektroda, maxim2002, post #21441931]
Can I flash 1 MB firmware to a 2 MB module?
Yes. The 1 MB image boots fine on 2 MB BL602; the unused upper flash stays blank. OTA partition is omitted, so remote upgrade is disabled [Elektroda, miegapele, post #21440834]
How much free RAM remains after boot?
With full 1 MB build and Wi-Fi connected the board reports ~113 kB free; worst-case after WebApp stress it dipped to 18 kB before recovery [Elektroda, maxim2002, post #21441931]
Which devices are confirmed to work?
• Cozylife DS-1211AN 3-gang touch switch (replaced DT-BL12) [Elektroda, divadiow, post #21301826] • RGBCWW 18 W E27 bulb with BL602L10 (product p93sfg) [Elektroda, niterian, post #21456497]
‘No enough DESC 2(7)’ appears in log—danger?
It indicates the Wi-Fi driver ran out of TX descriptors during heavy HTTP polling; the stack recovers automatically but may drop the TCP connection [Elektroda, maxim2002, post #21441931] Keep polling intervals >100 ms.
How can I cut heat in the 18 W bulb?
Limit PWM brightness to 90 %. “Even at 90 % the RGBCWW bulb is visually identical but 8 °C cooler” [Elektroda, p.kaczmarek2, post #21599155] Add LED_Map 0 90
in autoexec.
Steps to build your own 1 MB image?
- Checkout OpenBeken dev branch and Bouffalo SDK 1.6.39. 2. In
proj_config.mk
set CONFIG_BL602_USE_1M_FLASH=1
. 3. Place the 1 MB TOML in partition
. Compile with make BL602L10_1M
. Output should be ~793 kB [Elektroda, miegapele, post #21438328]