Sx-sdmah perfomance issue

Hii,
I’m working with two SC-SDMAH EVK modules connected over SPI to two STM32MP257F-DK boards. One board acts as a sender and the other as a receiver. The SPI clock is configured to 50 MHz, and the wireless link is established successfully. Video data is being transmitted, but I am facing major performance issues.

Even at <100 m distance, I observe:

  1. Large latency during video streaming

At 100 kbps, the stream works but has noticeable lag.

At 1 Mbps, the streaming becomes very slow, freezes often, and shows heavy delay.

  1. Throughput is far below expectation

Even though the PHY rate selection is changed using morsectrl and morse_cli, the real throughput does not improve.

  1. When the boards are on the same floor it atleast sends feed through, but when on other floor the connection is not even established. Also, even within a short range (30–50 m), the streaming is inconsistent.

I am using the below commands right now:

ifconfig wlan0 down
ifconfig wlan1 up
ifconfig wlan1 169.254.10.11 netmask 255.255.255.0
iw dev wlan1 set power_save off
morsectrl txrate enable -m 2 -s 1

STA side

wpa_supplicant_s1g -i wlan1 -D nl80211 -c /etc/wpa_supplicant.conf

AP side

./hostapd_s1g -B hostapd.conf

IP is static.
SPI clock: 50 MHz
Using: morse_cli, morsectrl for control.
Using ST STM32MP257F-DK boards.

My questions are:

    • How I can improve real video throughput over HaLow when using the SC-SDMAH module in SPI mode.
    • Are there recommended SPI buffer sizes, DMA settings, or higher SPI clock options that help with high-rate streaming, and is SPI itself a limitation compared to SDIO or UART?
    • I also want suggestions for the best PHY/MCS configuration for stable high-rate streaming within 100 meters, including whether a different MCS or a specific morsectrl txrate setup would help.
    • Additionally, I need guidance on reducing latency—such as tuning fragmentation, RTS/CTS, aggregation, or adjusting hostapd_s1g / wpa_supplicant_s1g parameters.
    • I would like to understand how to increase range without losing throughput, including whether antenna adjustments, power amplifier configuration, or morsectrl settings can make a difference.

@Vanshika have you been able to measure the RSSI and the noise level in your testing environment from the point of view of both nodes? Just to make sure that environment is not your issue. Also, you reference the Sx-sdmah in your past subject line but then say SC-SDMAH in the text of your post. I just want to clarify that you’re talking about the Silex SX-SDMAH module. If so, what BCF file are you using in conjunction with that module? Having the wrong BCF file can also lead to poor performance.

Hii, thanks for you response.

Yes, sorry for the typo earlier — I am using the Silex SX-SDMAH EVK module.

To check link quality, I used the following command on the STA side:
iw dev wlan1 station dump
From the output, the reported values are:

  • Signal / RSSI: -34 dBm
  • Signal avg: -34 dBm
  • Expected throughput: ~3.95 Mbps
  • TX retries: 22, TX failed: 0

Could you please confirm whether an RSSI of -34 dBm is considered good for 802.11ah (HaLow) operation, or if this value is too high/low for stable high-throughput video streaming? From my understanding this seems like a strong signal, but I am not sure how to interpret it specifically for HaLow.

Also in the device tree, I have set spi-clk as 50 Mhz but it is coming 32.36Mhz when measure using oscilloscope

&spi6 {
pinctrl-names = “default”, “sleep”;
pinctrl-0 = <&spi6_pins_a>;
pinctrl-1 = <&spi6_sleep_pins_a>;
cs-gpios = <&gpiof 4 (GPIO_ACTIVE_LOW)>;
status = “okay”;

morse: wifi@0{
	compatible = "morse,mm610x-spi";
	reg = <0>;
	spi-mode = <0>;
	reset-gpios = <&gpioc 10 GPIO_ACTIVE_LOW>;
	spi-max-frequency = <50000000>;
	spi-irq-gpios = <&gpioz 7 GPIO_ACTIVE_HIGH>;
 	status = "okay";
};

};

Is the issue because of decreased clock rate. If yes, how can I make it 50MHz.

Regarding the BCF file, thanks for pointing that out. I am currently using morse firmware tools version rel_1_14_1_2024_Dec_05, and the BCF file I’m using was downloaded from the internet for this release. I am not fully sure if it is the correct or optimal BCF for the SX-SDMAH module.

I am attaching the BCF file and bin file I am currently using. Could you please let me know:

  • Whether this BCF file is correct for the SX-SDMAH EVK and my morse version
  • If not, which BCF file is recommended for SPI mode on SX-SDMAH
  • And if possible, where I can obtain the officially recommended BCF for this setup

files.zip (232.5 KB)

Thanks again for your help. Looking forward to your guidance.

@Vanshika,

An RSSI of -34dBm is very good, maybe too good. How far apart are your devices? You might try as a test increasing the distance between them a little bit.

A couple of other basic recommendations would be to use our latest release which is 1.16.4. BCF files need to be version matched to our release. You should be able to reach out to Silex and request an updated BCF file specific to their board. We started a repository of BCF files at GitHub - MorseMicro/morse-firmware but I don’t believe we have Silex BCF files there yet. But, you can get the updated mm6108.bin file from there.

Since you were using just the bcf_default.bin, I suspect you’ll have better behavior/performance with the Silex specific BCF file.