Raspberry Pi 5 Seedstudio XIAO Halow (Qeutecel FGH100M-H

I’ve followed the instructions in the Build Thread: HaLow for Raspberry Pi OS thread and started out using the same pin mappings specified in the morse-spi.dts file. I’m completely new to this subject and thought the same pin mappings should work even though I’m using the Seedstudio Xiao Halow carrier board.

I did find error messages though

[ 4.735228] Morse Micro Dot11ah driver registration. Version 0-rel_mm8108_2_0_0_2026_Apr_21
[ 4.735231] channelization_scheme = 3 (IEEE802.11-REVmf)
[ 5.139765] morse micro driver registration. Version 0-rel_mm8108_2_0_0_2026_Apr_21
[ 5.139850] morse_spi spi0.0: morse_of_probe: Reading gpio pins configuration from device tree
[ 5.139876] Resetting Morse Chip
[ 5.159894] Done
[ 5.210190] Adding 2097136k swap on /var/swap. Priority:-2 extents:2 across:2228208k SS
[ 5.240133] morse_spi_find_token failed
[ 5.240137] morse_spi_cmd53_read failed
[ 5.240139] morse_spi spi0.0: spi: cmd53_read fn=1 0x00004d20:4 r=0x10050002 b=0xffffffff (ret:-71)
[ 5.240144] morse_spi spi0.0: morse_spi_reg32_read failed (errno=-71)
[ 5.240146] morse_spi spi0.0: morse_chip_cfg_set_and_validate: Failed to access HW (errno:-5)
[ 5.240148] morse_spi spi0.0: morse_chip_cfg_set_and_validate failed: -5
[ 5.240163] morse_spi_probe: probe failed (ret:-5)
[ 5.240165] morse_spi spi0.0: probe with driver morse_spi failed with error -5

In searching the forums I found this issue that looks simular

My original wiring was
Reset gpio5
wakeup gpio3
spi_int gpio25
spi_cs gpio8
busy gpio7
spi_mosi gpio10
spi_miso gpio9
spi_clk gpio11

I have wired my module using 4cm dupont wires and based on the support threads probably need to solder these up.

In looking that this support thread, it suggested two pin changes, which I tried and have the same errors in the log file. Upon re-reading the support thread it seems the two pin changes are not relavent here.

I’ve tried lower the spi frequence which hasn’t made any difference. Other than soldering the leads, what else should I be looking at to resolve?

Hi @Kenbsherman

This should work so long as everything is connected correctly :slight_smile:

This looks similar to a bug identified internally which only surface on a small set of hardware, but could be impacted by drive strength configuration, capacitance on the reset line and so on.

Basically, can you apply the following change to the Morse Micro driver source and recompile? This more forcefully asserts the nRESET line.

diff --git a/hw.c b/hw.c
index 763b2c919..0c3de3ec0 100644
--- a/hw.c
+++ b/hw.c
@@ -226,7 +226,9 @@ int morse_hw_reset(int reset_pin)

        pr_info("Resetting Morse Chip\n");
        gpio_direction_output(reset_pin, 0);
-       mdelay(20);
+       mdelay(10);
+       gpio_direction_output(reset_pin, 1);
+       mdelay(10);
        /* setting gpio as float to avoid forcing 3.3V High */
        gpio_direction_input(reset_pin);
        pr_info("Done\n");

I updated the hw.c file , recompiled and installed and the error messages did not change.
The seedstudio board side of the wired connections didn’t seem solid so I soldered those sides on and double checked the wiring.

I do see some different messages.

[ 4.665053] Morse Micro Dot11ah driver registration. Version 0-rel_mm8108_2_0_0_2026_Apr_21
[ 4.665062] channelization_scheme = 3 (IEEE802.11-REVmf)
[ 5.001060] Adding 2097136k swap on /var/swap. Priority:-2 extents:2 across:2228208k SS
[ 5.083921] morse micro driver registration. Version 0-rel_mm8108_2_0_0_2026_Apr_21
[ 5.084008] morse_spi spi0.0: morse_of_probe: Reading gpio pins configuration from device tree
[ 5.084036] Resetting Morse Chip
[ 5.104055] Done
[ 5.115372] Bluetooth: BNEP (Ethernet Emulation) ver 1.3
[ 5.115378] Bluetooth: BNEP filters: protocol multicast
[ 5.115383] Bluetooth: BNEP socket layer initialized
[ 5.184334] uaccess char driver major number is 509
[ 5.184455] morse_io: Device node ‘/dev/morse_io’ created successfully
[ 5.203620] morse_spi spi0.0: Loaded firmware from morse/mm6108.bin, size 459124, crc32 0x51d355b9
[ 5.212018] morse_spi spi0.0: Loaded BCF from morse/bcf_fgh100mhaamd.bin, size 1251, crc32 0x941b2a82
[ 5.337819] Bluetooth: hci0: BCM: features 0x2f
[ 5.339142] Bluetooth: hci0: BCM43455 37.4MHz Raspberry Pi 3±0190
[ 5.339144] Bluetooth: hci0: BCM4345C0 (003.001.025) build 0382
[ 5.339431] Bluetooth: hci0: BCM: Using default device address (43:45:c0:00:1f:ac)
[ 5.356415] Bluetooth: MGMT ver 1.23
[ 5.360453] NET: Registered PF_ALG protocol family
[ 5.568438] macb 1f00100000.ethernet eth0: PHY [1f00100000.ethernet-ffffffff:01] driver [Broadcom BCM54213PE] (irq=POLL)
[ 5.568448] macb 1f00100000.ethernet eth0: configuring for phy/rgmii-id link mode
[ 5.571705] macb 1f00100000.ethernet: gem-ptp-timer ptp clock registered.
[ 5.599439] brcmfmac: brcmf_cfg80211_set_power_mgmt: power save enabled
[ 5.823695] morse_spi spi0.0: Incompatible FW version: (Driver) 57.3.0, (Chip) 56.3.0
[ 5.823703] morse_spi spi0.0: morse_firmware_prepare failed: -1
[ 5.824114] morse_spi_probe: probe failed (ret:-1)
[ 5.824119] morse_spi spi0.0: probe with driver morse_spi failed with error -1

the firmware came from git clone GitHub - MorseMicro/morse-firmware · GitHub --branch 1.16
morse drivers from git clone GitHub - MorseMicro/morse_driver · GitHub

also
kbsherman@pi5:~ $ cat /etc/modprobe.d/morse.conf
options morse bcf=bcf_fgh100mhaamd.bin

there’s a thread on Incompatible, Chip and Driver that makes a few suggestions but it’s not clear to me if these suggestions make sense.

I rolled back the changes to hw.c and the error messages stay the same.

I am powering the morse module with 3.3v. I’ve seen some other threads suggesting 5 volts but the seed studio spec calls out 3.3v.

Looks like the main problem is a firmware / driver mismatch.
@ajudge I took a look at the firmware and driver repo and the version numbers in github don’t align with the dmesg versions. What’s the best way to resolve?

@ajudge I came across the github notes about releases and checked out the 1.17.9 tag, recompiled and that solved my problem.

I’m running headless and just took a bit to figure out how to set the country code. I’ve got my halowlink2 router showing up as a ssid for wlan1 so tomorrow try to connect.

1 Like

Sorry for the late reply here. Glad you got it resolved!

Yes the errors shown are a firmware version mismatch. I’m a bit surprised though as if you had taken the firmware binaries from the latest of morse-firmware/firmware at main · MorseMicro/morse-firmware · GitHub this should be correct for 2.0.0.