Error: 407 Malformed BCF file (invalid header)

Hi,

Apologies if this is a noob question but I could not find any resources discussing this issue. I am following the getting started guide for my MM6108-EKH05 board. I compiled the ping example using PlatformIO and it all worked OK but I could see that no country_code was set in the serial output. Hence, I updated my confih.hjson to add the “AU” country code and programmed this into my hardware with “program-configstore.py”. Now I get this error when I run the ping example:

E 407 Malformed BCF file (invalid header)

!! BCF metadata retrival failed !!
Morselib version: 2.8.2
Morse firmware version: 0.0.0
Morse chip ID: 0x0000

I am wondering if maybe my firmware on the MM6108 module needs to be updated as maybe it is behind the current SDK that I used to program the flash. However, I can’t find anywhere that tell me how to load the firmware from the SDK (which I am assuming the .mbin file).

Interestingly, I do see that programming has succeed when I check with program-configstore:

2025-08-20 17:06:39 INFO: Attempting to auto-detect platform
2025-08-20 17:06:39 INFO: Found matching entry for stm32u585.cpu.
2025-08-20 17:06:39 INFO: Supported platforms: [‘mm-mm6108-ekh05’, ‘mm-mm6108-ekh05-sdio’, ‘mm-mm8108-ekh05’, ‘mm-mm8108-ekh05-sdio’]
2025-08-20 17:06:39 INFO: Loading config for platform stm32u585.cpu
2025-08-20 17:06:42 INFO: Dumping contents of config store

Partition 1 (current)

Version 2

Key Value
iperf.mode udp_server
iperf.server 192.168.1.1
iperf.port 5001
iperf.amount -10
ping.target 192.168.1.1
ping.count 10
ping.interval 1000
ping.size 56
wlan.ssid MorseMicro
wlan.password 12345678
wlan.security sae
ip.dhcp_enabled false
ip.ip_addr 192.168.1.2
ip.netmask 255.255.255.0
ip.gateway 192.168.1.1
ip6.autoconfig true
wlan.country_code AU

Any help / suggestions would be greatly appreciated.

Thanks,

Paul

As so often happens, you post a query and then make progress almost instantly! I re-read the getting started guide and found that I had missed the step of uncommenting the bcf entry in the hjson file:

"files" : {
    /* The Board Configuration File (BCF) is a configuration file for the Morse Micro
     * chip that provides board-specific information and is required for the system to
     *  .... */
    // "bcf_file": "$MMIOT_ROOT/morsefirmware/bcf_mf08551.mbin"

Fixing this up resolved the problem. The next curiosity is that the ping example worked before I did the upload of a new configuration but it didn’t seem to include any BCF. But that is a different issue that I don’t really need to understand

1 Like