# Mm-iot-sdk-2\_5\_2-esp32: Cannot find mf10220 BCF in the SDK

**URL:** <https://community.morsemicro.com/t/mm-iot-sdk-2-5-2-esp32-cannot-find-mf10220-bcf-in-the-sdk/117>\
**Category:** Embedded\
**Created:** [October 22, 2024, 2:38am UTC](https://community.morsemicro.com/t/mm-iot-sdk-2-5-2-esp32-cannot-find-mf10220-bcf-in-the-sdk/117 "2024-10-22T02:38:00Z")\
**Posts on this page:** 10\
**Page:** 1

<div class="post-metadata">

**Author:** ![Axel](https://sea1.discourse-cdn.com/flex001/user_avatar/community.morsemicro.com/axel/32/44_2.png) [@Axel](https://community.morsemicro.com/u/Axel)\
**Post date:** [October 22, 2024, 2:38am UTC](https://community.morsemicro.com/t/mm-iot-sdk-2-5-2-esp32-cannot-find-mf10220-bcf-in-the-sdk/117/1 "2024-10-22T02:38:01Z")

</div>

I’m testing AsiaRF MM610X-H06 board using mm-iot-sdk-2\_5\_2-esp32.

According to information provided by AsiaRF, this board is using mf10220.bcf.  
But I cannot find the **mf10220** BCF in the SDK.  
Can someone help to address this issue?

---

<div class="post-metadata">

**Author:** ![Zandr](https://sea1.discourse-cdn.com/flex001/user_avatar/community.morsemicro.com/zandr/32/42_2.png) [@Zandr](https://community.morsemicro.com/u/Zandr)\
**Post date:** [October 22, 2024, 6:41pm UTC](https://community.morsemicro.com/t/mm-iot-sdk-2-5-2-esp32-cannot-find-mf10220-bcf-in-the-sdk/117/2 "2024-10-22T18:41:08Z")

</div>

Axel-

BCF files are specific to the indiviual module and should be provided by the module vendor.

Let me know if you aren’t able to get the BCF from them and I can follow up with our contacts.

-Zandr

---

<div class="post-metadata">

**Author:** ![Axel](https://sea1.discourse-cdn.com/flex001/user_avatar/community.morsemicro.com/axel/32/44_2.png) [@Axel](https://community.morsemicro.com/u/Axel)\
**Post date:** [October 23, 2024, 12:04am UTC](https://community.morsemicro.com/t/mm-iot-sdk-2-5-2-esp32-cannot-find-mf10220-bcf-in-the-sdk/117/3 "2024-10-23T00:04:06Z")

</div>

Hi Zandr,

I cannot get the BCF file.  
Please help me to get it.  
Also note I’m testing on ESP32S3.

Thank you,  
Axel.

---

<div class="post-metadata">

**Author:** ![Zandr](https://sea1.discourse-cdn.com/flex001/user_avatar/community.morsemicro.com/zandr/32/42_2.png) [@Zandr](https://community.morsemicro.com/u/Zandr)\
**Post date:** [October 23, 2024, 8:39pm UTC](https://community.morsemicro.com/t/mm-iot-sdk-2-5-2-esp32-cannot-find-mf10220-bcf-in-the-sdk/117/4 "2024-10-23T20:39:52Z")

</div>

That file is available In our GitHub BCF repository. Version 2.5.2 of the IoT SDK uses version 1.11.4 of the Morse Micro firmware, so the correct BCF binaries are in this release: [Release Morse Micro 1.11.4 release · MorseMicro/bcf\_binaries · GitHub](https://github.com/MorseMicro/bcf_binaries/releases/tag/v1.11.4)

Note that these are .bin files, and you will need to use the script in tools/buildsystem/convert-bin-to-mbin.py to create the required .mbin version of the BCF file.

---

<div class="post-metadata">

**Author:** ![Axel](https://sea1.discourse-cdn.com/flex001/user_avatar/community.morsemicro.com/axel/32/44_2.png) [@Axel](https://community.morsemicro.com/u/Axel)\
**Post date:** [October 23, 2024, 11:12pm UTC](https://community.morsemicro.com/t/mm-iot-sdk-2-5-2-esp32-cannot-find-mf10220-bcf-in-the-sdk/117/5 "2024-10-23T23:12:18Z")

</div>

Hi Zandr,  
Thanks, but I cannot find the script in tools/buildsystem/convert-bin-to-mbin.py in  
bcf\_binaries github or in mm-iot-sdk-2\_5\_2-esp32.

---

<div class="post-metadata">

**Author:** ![Axel](https://sea1.discourse-cdn.com/flex001/user_avatar/community.morsemicro.com/axel/32/44_2.png) [@Axel](https://community.morsemicro.com/u/Axel)\
**Post date:** [October 24, 2024, 3:30am UTC](https://community.morsemicro.com/t/mm-iot-sdk-2-5-2-esp32-cannot-find-mf10220-bcf-in-the-sdk/117/6 "2024-10-24T03:30:28Z")

</div>

Hi Zandr,

One more question:  
In mm-iot-sdk-2.4.5-esp32, take bcf\_mf08251.mbin.o as an example:  
$ file framework/mm\_shims/bcf\_mf08251.mbin.o  
framework/mm\_shims/bcf\_mf08251.mbin.o: ELF 32-bit LSB relocatable, Tensilica Xtensa, version 1 (SYSV), not stripped

I would expect to get similar file for mf10220, something like bcf\_mf10220.mbin.o  
But I’m not sure if the convert-bin-to-mbin.py can generate this file because it should be ELF for Tensilica Xtensa.  
(I still cannot find convert-bin-to-mbin.py, so I cannot verify it now.)

---

<div class="post-metadata">

**Author:** ![matt](https://avatars.discourse-cdn.com/v4/letter/m/a6a055/32.png) [@matt](https://community.morsemicro.com/u/matt)\
**Post date:** [October 24, 2024, 5:35am UTC](https://community.morsemicro.com/t/mm-iot-sdk-2-5-2-esp32-cannot-find-mf10220-bcf-in-the-sdk/117/7 "2024-10-24T05:35:41Z")

</div>

Hi Axel,

Do you have access to mm-iot-sdk-2.5.2 (the non ESP32 variant)? You can find the `convert-bin-to-mbin.py` tool in the `framework/tools/buildsystem` directory of that package.

As you note, we have provided the BCFs for ESP32 in object format. If you want to convert your own BCF to this format you can use objcopy. In doing this, you need to ensure that there are two symbols in the object: `bcf_binary_start` and `bcf_binary_end`. Try the following steps and let us know if it works for you:

1. Rename your BCF to `bcf.mbin`
2. Execute:

```auto
xtensa-esp32s3-elf-objcopy -I binary -O elf32-xtensa-le -B xtensa bcf.mbin bcf.mbin.o --redefine-sym _binary_bcf_mbin_start=bcf_binary_start --redefine-sym _binary_bcf_mbin_end=bcf_binary_end --rename-section .data=.rodata,contents,alloc,load,readonly,data

```

If you then run xtensa-esp32s3-elf-objdump -t bcf.mbin.o you should see `bcf_binary_start` and `bcf_binary_end` in the symbol table. If not, then you may need to check the arguments to `--redefine-sym`.

---

<div class="post-metadata">

**Author:** ![Axel](https://sea1.discourse-cdn.com/flex001/user_avatar/community.morsemicro.com/axel/32/44_2.png) [@Axel](https://community.morsemicro.com/u/Axel)\
**Post date:** [October 24, 2024, 6:01am UTC](https://community.morsemicro.com/t/mm-iot-sdk-2-5-2-esp32-cannot-find-mf10220-bcf-in-the-sdk/117/8 "2024-10-24T06:01:23Z")

</div>

Hi @matt

My ubuntu version: Ubuntu 24.04.1 LTS

I have download the mm-iot-sdk-2.5.2 (the non ESP32 variant).  
But I hit error when executing  
./framework/tools/setupscripts/ubuntu-setup.sh

E: Unable to locate package libncurses5  
An error occurred and the requested operation did not complete  
(Can I bypass this error? or some other package can be use instead in Ubuntu24.04?)

Also note: I hit below error:  
$ ./framework/tools/buildsystem/convert-bin-to-mbin.py -h  
Traceback (most recent call last):  
File “/home/axel/git/mm/mm-iot-sdk-2\_5\_2/./framework/tools/buildsystem/convert-bin-to-mbin.py”, line 21, in   
from elftools.elf.elffile import ELFFile  
ModuleNotFoundError: No module named ‘elftools’

---

<div class="post-metadata">

**Author:** ![Axel](https://sea1.discourse-cdn.com/flex001/user_avatar/community.morsemicro.com/axel/32/44_2.png) [@Axel](https://community.morsemicro.com/u/Axel)\
**Post date:** [October 24, 2024, 6:56am UTC](https://community.morsemicro.com/t/mm-iot-sdk-2-5-2-esp32-cannot-find-mf10220-bcf-in-the-sdk/117/9 "2024-10-24T06:56:36Z")

</div>

@Zandr @matt

Thanks for your help.  
Fixed ModuleNotFoundError: No module named ‘elftools’ issue by installing python3-pyelftools package.  
I can generate the bcf\_mf10220.mbin.o now.

$ file framework/mm\_shims/bcf\_mf10220.mbin.o  
framework/mm\_shims/bcf\_mf10220.mbin.o: ELF 32-bit LSB relocatable, Tensilica Xtensa, version 1 (SYSV), not stripped

$ xtensa-esp32s3-elf-objdump -t framework/mm\_shims/bcf\_mf10220.mbin.o

framework/mm\_shims/bcf\_mf10220.mbin.o: file format elf32-xtensa-le

SYMBOL TABLE:  
00000000 g .rodata 00000000 bcf\_binary\_start  
000000f8 g .rodata 00000000 bcf\_binary\_end  
000000f8 g _ABS_ 00000000 \_binary\_bcf\_mbin\_size

---

<div class="post-metadata">

**Author:** ![matt](https://avatars.discourse-cdn.com/v4/letter/m/a6a055/32.png) [@matt](https://community.morsemicro.com/u/matt)\
**Post date:** [October 24, 2024, 11:02pm UTC](https://community.morsemicro.com/t/mm-iot-sdk-2-5-2-esp32-cannot-find-mf10220-bcf-in-the-sdk/117/10 "2024-10-24T23:02:58Z")

</div>

Great. Thanks for the update.
