# BW16 2MB Flash Capability

**URL:** <https://forum.amebaiot.com/t/bw16-2mb-flash-capability/4251>\
**Category:** Hardware\
**Tags:** evb-bw16, rtl872xd\
**Created:** [July 19, 2025, 3:00am UTC](https://forum.amebaiot.com/t/bw16-2mb-flash-capability/4251 "2025-07-19T03:00:59Z")\
**Posts on this page:** 7\
**Page:** 1

<div class="post-metadata">

**Author:** ![Benjamin\_Voller-Brow](https://sea2.discourse-cdn.com/flex016/user_avatar/forum.amebaiot.com/benjamin_voller-brow/32/2735_2.png) [@Benjamin\_Voller-Brow](https://forum.amebaiot.com/u/Benjamin_Voller-Brow)\
**Post date:** [July 19, 2025, 3:00am UTC](https://forum.amebaiot.com/t/bw16-2mb-flash-capability/4251/1 "2025-07-19T03:00:59Z")

</div>

Hello Everyone! I am new to BW16 development but have experienced a problem and I can’t seem to troubleshoot around it. I would really appreciate any help! I have the 2MB variant(JLCPCB gave me the wrong one) and my current firmware size is just under 1mb. When I pass 1041148 bytes and increment up to 1045244 bytes my firmware crashes on reset or power cycle(the first opening everything works fine). Please feel free to ask any additional questions you may have. Thanks!

---

<div class="post-metadata">

**Author:** ![Nethercap\_Dev](https://sea2.discourse-cdn.com/flex016/user_avatar/forum.amebaiot.com/nethercap_dev/32/2218_2.png) [@Nethercap\_Dev](https://forum.amebaiot.com/u/Nethercap_Dev)\
**Post date:** [July 20, 2025, 6:57pm UTC](https://forum.amebaiot.com/t/bw16-2mb-flash-capability/4251/2 "2025-07-20T18:57:08Z")

</div>

Normally BW16 firmware uses about 700KB of flash. Are you using PROGMEM data and FlashMemory library at the same time?

---

<div class="post-metadata">

**Author:** ![Benjamin\_Voller-Brow](https://sea2.discourse-cdn.com/flex016/user_avatar/forum.amebaiot.com/benjamin_voller-brow/32/2735_2.png) [@Benjamin\_Voller-Brow](https://forum.amebaiot.com/u/Benjamin_Voller-Brow)\
**Post date:** [July 20, 2025, 7:13pm UTC](https://forum.amebaiot.com/t/bw16-2mb-flash-capability/4251/3 "2025-07-20T19:13:40Z")

</div>

Thank you for your response but sadly I’m not using PROGMEM at all - only the FlashMemory library for runtime data storage. My  
flash storage allocates approximately 40KB total: 4KB for WiFi credentials, 4KB for device settings, and 32KB for profiles (4 slots × 8KB each). The code size difference from the 700KB baseline is probably due to my application logic, libraries (MQTT, BLE, WebSocket), and string literals.

---

<div class="post-metadata">

**Author:** ![Nethercap\_Dev](https://sea2.discourse-cdn.com/flex016/user_avatar/forum.amebaiot.com/nethercap_dev/32/2218_2.png) [@Nethercap\_Dev](https://forum.amebaiot.com/u/Nethercap_Dev)\
**Post date:** [July 21, 2025, 8:22pm UTC](https://forum.amebaiot.com/t/bw16-2mb-flash-capability/4251/4 "2025-07-21T20:22:37Z")

</div>

As i do not know how you initialized your FlashMemory base address, my assumption is your defined FlashMemory base address overlaps with the program code. When you call FlashMemory.begin(), make sure you defined memory address that is not occupied by program code. The example FlashMemory code defined base address at 0x00100000, which is 1,048,576  
th byte, which is really close to your firmware size (1,045,244 byte). You may define safer base address like 0x124F80, which is positioned at 1,200,000 th byte.

---

<div class="post-metadata">

**Author:** ![Benjamin\_Voller-Brow](https://sea2.discourse-cdn.com/flex016/user_avatar/forum.amebaiot.com/benjamin_voller-brow/32/2735_2.png) [@Benjamin\_Voller-Brow](https://forum.amebaiot.com/u/Benjamin_Voller-Brow)\
**Post date:** [July 21, 2025, 9:33pm UTC](https://forum.amebaiot.com/t/bw16-2mb-flash-capability/4251/5 "2025-07-21T21:33:09Z")

</div>

So I just got a response back from the Ameba Team and they said:  
“We use a/b seamless system updates, so you can only use about half capacity of flash chip”, meaning my 2MB board only has 1MB of usable flash and I was exceeding that. Thank you Nethercap\_dev for your support! I was able to get this answer by reaching out to them via WeChat(I am developing for commercial use so that might have been why they set me up with a technician fast).

---

<div class="post-metadata">

**Author:** ![Nethercap\_Dev](https://sea2.discourse-cdn.com/flex016/user_avatar/forum.amebaiot.com/nethercap_dev/32/2218_2.png) [@Nethercap\_Dev](https://forum.amebaiot.com/u/Nethercap_Dev)\
**Post date:** [July 21, 2025, 11:26pm UTC](https://forum.amebaiot.com/t/bw16-2mb-flash-capability/4251/6 "2025-07-21T23:26:48Z")

</div>

I am glad you get support from Ameba Team. Just curious, are you using official SDK or Arduino?

---

<div class="post-metadata">

**Author:** ![Benjamin\_Voller-Brow](https://sea2.discourse-cdn.com/flex016/user_avatar/forum.amebaiot.com/benjamin_voller-brow/32/2735_2.png) [@Benjamin\_Voller-Brow](https://forum.amebaiot.com/u/Benjamin_Voller-Brow)\
**Post date:** [July 22, 2025, 5:27pm UTC](https://forum.amebaiot.com/t/bw16-2mb-flash-capability/4251/7 "2025-07-22T17:27:03Z")

</div>

I’m building on Arduino IDE with this as my board URL:  
[https://github.com/ambiot/ambd\_arduino/raw/master/Arduino\_package/package\_realtek\_amebad\_index.json](https://github.com/ambiot/ambd_arduino/raw/master/Arduino_package/package_realtek_amebad_index.json)
