I have a RPI4 + seeed studio hat (with quectel fgh100mhaad). I am running OpenWrt.
I had a working system (configured for EU) I was able to join and send data.
I had to reflash my SD card after trying to configure my AP as a router. I put the latest mm6108.bin and bcf_fgh100mhaad.bin from main branch of GitHub - MorseMicro/morse-firmware
into /lib/firmware/morse
Altered bcf_default.bin to point to bcf_fgh100mhaad.bin. I get:
I tried various versions of the drivers/bcf (i.e. 1.16, 1.15 etc) no luck.
What in this context is “Driver” and “Chip”. What are those version numbers i.e. 54.0.0 etc
Looking at “WHENCE.md” it looks like I should have bcf_fgh100maamd.bin but as said I have a fgh100mhaamd on my hat so should have bcf_fgh100maamd.bin. Which should I have?
The driver is the Linux device driver (the morse.ko file). The chip is the Wi-Fi firmware. The error indicates that the firmware interface version that the driver and firmware support are not compatible. These numbers are a semantic version.
56.3.0 is the firmware interface version for the 1.16.4 version of firmware available on the link you shared.
54.0.0 is the firmware version used in 1.14.x firmware (and also 1.15.x shares the major version number), so you could try the files on morse-firmware/firmware at 1.14 · MorseMicro/morse-firmware · GitHub and see if that resolves it.
Our latest released OpenWrt version (2.9.3) uses 1.16.4. However, given you are using SeeedStudio hardware, I assume you have taken the OpenWrt image from their fork which will have all of the hardware definitions you require?
If you choose to update to our OpenWrt, you will need to pull in the hardware definitions for the Seeed Studio hat.
Use the BCF that matches your module, or the one the module manufacturer provides to you.
This error will usually occur when the firmware binaries have been downloaded incorrectly. Make sure you’re not accidentally downloading html files from GitHub! How big are the files you have downloaded?
I have flashed my SD card with seeed studio’s version of your OpenWrt repo. Communicates with the module fine, but doesn’t work, i.e. I cannot join a STA to it.
I get the message:
BCF may not be appropriate!
The BCF file on this device must be specified via UCI as the board type isn’t set in the OTP bits. Currently, your HaLow device is using the non-functional failsafe BCF.
Which would indicate it is unable to work at all. Part of the difficulty I can see is that the Seeed distro doesn’t have the UCI utility. I can see 2 options
Try to configure (seeed) OpenWrt by editing configuration files etc. Do you have any info on this?
Use Morse Micro OpenWrt distro, and copy over relevant files i.e.
bcf_mf16858_fgh100mh_v6.3.0.bin
mm6108.bin
I can then do this:
uci set wireless.radio0.bcf=bcf_name.bin
uci commit
reload_config
I am sorry to ask you about hardware that isn’t directly yours. I have tried to contact Seeed but no reply. Any information gratefully received!
Part of the difficulty I can see is that the Seeed distro doesn’t have the UCI utility.
A bit surprising that their OpenWrt fork doesn’t have the uci utility. It should be included by default in any OpenWrt image as it is essential to the parsing of the files in /etc/config.
I can see 2 options
Try to configure (seeed) OpenWrt by editing configuration files etc. Do you have any info on this?
OpenWrt has fairly comprehensive documentation for configuring the files in /etc/config manually. See for example /etc/config/wireless and /etc/config/network. There are some differences in the wireless config to ensure you’re using our software stack instead of the standard wireless software, but we can help with this if you share your configuration files.
In saying all of that, if you’re seeing that error in the UI - it just means the BCF isn’t set. Open /etc/config/wireless and add option bcf 'bcf_mf16858_fgh100mh_v6.3.0.bin to the wifi-device section with option type 'morse'. Once fixing that bcf setting, run reload_config or reboot the devce. Then you should be able to use the UI again to configure the device.
Use Morse Micro OpenWrt distro, and copy over relevant files i.e.
If you choose to do this you should just use the mm6108.bin included in our distribution. Just get an updated BCF (1.16.4) from morse-firmware/bcf/quectel at main · MorseMicro/morse-firmware · GitHub
To actually get our OpenWrt to work on the SeeedStudio hardware, you will also need to update the device tree overlays to ensure the host processor can communicate with our chip.
I think option 1 is an easier place to start, and should just need you to specify the bcf in /etc/config/wireless. I don’t know why this has failed for you though - it should be set to the correct bcf by default.
Thanks. Sorry I should have said. I had done as you suggest i.e. specify /etc/config/wireless. It isn’t set by default and doesn’t work if not. I’m surprised seeed don’t set it by default.