Seeed Studio WiFi Halow Module (Quectel FGH100M-H) integration on Luckfox Pico Mini B

Hello,

We are currently porting linux morse_driver (v1.15) into Luckfox Pico Mini B (NAND version) SDK (Kernel 5.10). The SDK uses Buildroot for build system. I was able to patch the kernel, ported the fghm100 (with reference from Quectel linux porting guide docs) to the Luckfox SDK. The driver could be loaded using insmod, Chip ID using SPI was detected, but it failed when read/write BCF to the module. I use mm6108.bin firmware from https://github.com/MorseMicro/firmware_binaries/releases/download/v1.15.3/morsemicro-fw-rel_1_15_3_2025_Apr_16.tar (v1.15) and BCF file from morse-firmware/bcf/quectel/bcf_fgh100mhaamd.bin at main · MorseMicro/morse-firmware · GitHub (Quectel FGH100M-H BCF), but I found errors SPI. I tried several BCF and firmware combinations:

  1. mm6108.bin (fw v1.15 from morsemicro-fw-rel_1_15_3_2025_Apr_16 release) and bcf_fgh100mhaamd.bin (from morse-firmware repo)
  2. mm6108.bin (fw v1.15 from morsemicro-fw-rel_1_15_3_2025_Apr_16 release) and bcf_fgh100maamd.bin (from morse-firmware repo)
  3. mm6108.bin (fw v1.15 from morsemicro-fw-rel_1_15_3_2025_Apr_16 release) and bcf_fgh100maamd.bin (from Quectel - 21 Mar 2024)
  4. mm6108.bin(from Quectel - 21 Mar 2024) and bcf_fgh100maamd.bin (from Quectel - 21 Mar 2024)

Option 1:

Option 2:

Option 3:

Option 4:

See the driver configuration below:

Could you give insight or guideline how to solve this?

Here is the SPI init success reading chip and the rest of init sequence (deleted bcf_default, just to show SPI chip id init):

Hi @xflash

  1. mm6108.bin (fw v1.15 from morsemicro-fw-rel_1_15_3_2025_Apr_16 release) and bcf_fgh100mhaamd.bin (from morse-firmware repo)

This is a correct BCF and firmware combination for that module. From the error log shown, this is throwing EPROTO (-71). This indicates some sort of bus failure. Either the signal integrity is poor, or more likely, the chip hasn’t reset correctly before trying to bring it up.
Note that the chip shares SDIO and SPI lines. So to use SPI, a special init sequence must occur before performing an insmod. An example of this script is available in our OpenWrt package feed here - morse-feed/kernel/morse-bundle/files/morse/scripts/chipreset.sh at 463c63c8b26fe5a10022714f1907a4ae8a3607ef · MorseMicro/morse-feed · GitHub . For SPI this is basically just pulling the reset line low for 50ms. Then unlatching it so it goes high for a pullup. Then inserting the module.

  1. mm6108.bin (fw v1.15 from morsemicro-fw-rel_1_15_3_2025_Apr_16 release) and bcf_fgh100maamd.bin (from morse-firmware repo)

This one is complaining about not having an AU region in the BCF regulatory sections. This would be because the Quectel FGH100MAAMD is an EU specific module. The US/AU module here is FGH100MABMD

  1. mm6108.bin (fw v1.15 from morsemicro-fw-rel_1_15_3_2025_Apr_16 release) and bcf_fgh100maamd.bin (from Quectel - 21 Mar 2024)

FW manifest pointer not set typically means the firmware version and the bcf version do not match. Given the date you’ve given for the BCF, not surprising here.

  1. mm6108.bin(from Quectel - 21 Mar 2024) and bcf_fgh100maamd.bin (from Quectel - 21 Mar 2024)

Same as above. Except this is a little more surprising.

I would stick to using option 1, and identifying why the bus isn’t functioning. A logic analyzer capture of the SPI lines, busy, wake, and reset will be helpful here.

Hi @ajudge,

Noted. I will try to test the option 1 first, and see if the issues come from the SPI lines. The power save mode was disabled upon driver compilation.

Hi @ajudge ,

For Luckfox Pico Mini B (Rockchip RV1103), does it also need the SPI Support for Rockchip 3288 enabled?

I wouldn’t expect it too, no. Unless the RV1103 is using the same SPI block as the 3288