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.
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?
This should work so long as everything is connected correctly
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
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.