Linux TX Power Max Reported Value for MM8108

Using the MM8108 in Ubuntu Linux with the Morse Driver from the Morse Github, it seems that perhaps the max we can see the tx_power is 24dBm as reported by the command below:

root@noble-venice:~# iw dev wlan0 info
Interface wlan0
ifindex 4
wdev 0x1
addr 0c:bf:74:00:27:10
ssid HaLow-WPA2
type AP
wiphy 0
channel 124 (5620 MHz), width: 20 MHz, center1: 5620 MHz
txpower 24.00 dBm
multicast TXQ:
qsz-byt qsz-pkt flows drops marks overlmt hashcol tx-bytes tx-packets
0 0 0 0 0 0 0 0 0
root@noble-venice:~#

Is it safe to assume, that even if I set the tx_power to 2600 (26dbm max advertised tx power on mm8108 datasheet) with the command:

iw dev wlan0 set txpower fixed 2600

Is it safe to assume, I will never see 26dBm reported in Linux due to the txpower being variable based on MCS rate?

Is 24dBm truly the max I will ever see reported back from Linux?

And please confirm in standard Linux the iw command above is the proper way to adjust tx power and not doing it through some other mean like morse_cli , etc

Hi @TechGuy

And please confirm in standard Linux the iw command above is the proper way to adjust tx power and not doing it through some other mean like morse_cli , etc

iw is the correct command to set the txpower.

Is it safe to assume, I will never see 26dBm reported in Linux due to the txpower being variable based on MCS rate?

As MCS increases, you will see reduced txpower. I don’t believe the runtime power (as MCS changes) will be reported back - it is the maximum power for the configured channel which is reported back.

… (26dbm max advertised tx power on mm8108 datasheet) …

Is 24dBm truly the max I will ever see reported back from Linux?

Good question! I’ve notified the team about the 26 dBm value in the module datasheet, it may need to be tightened. The number is used in the datasheet when referring to the capabilities of the MM8108 chip itself. Losses in the module, as well as configuration in the BCF to meet some internal SEM production limits reduce this value.

For this module, the BCF is limiting the value to 24.75, but the Linux kernel APIs propagate power around in dBm - so the value is being truncated :frowning: :frowning: . See mac80211 subsystem (basics) — The Linux Kernel documentation and mac80211 subsystem (basics) — The Linux Kernel documentation

Dear @ajudge

I am using the Pi CM4 with BCF bcf_mf15457.bin. The device is VT-USB-AH-8108 from Vantron

It seems to be limited at 21 dBm when I try to set by uci or iw command

I would like to reach the maximum MM8108 TX power. Can I modify the file /etc/config/wireless to change the BCF to one among these files:

bcf_aw_hm593.bin
bcf_boardtype_0802.bin
bcf_boardtype_0a02.bin
bcf_fgh100mabmd.bin
bcf_mf08651_jp.bin
bcf_mm_hl1.bin
mm8108b2-flm-rl.bin
bcf_aw_hm593_4v3.bin
bcf_boardtype_0804.bin
bcf_default.bin
bcf_fgh100mhaamd.bin
bcf_mf08651_us.bin
bcf_mm_hl1_4v3.bin
mm8108b2-rl.bin
bcf_aw_hm677.bin
bcf_boardtype_0807.bin
bcf_failsafe.bin
bcf_fgh100mjaamd.bin
bcf_mf15457.bin
mm6108-tlm.bin
mm8108b2-tlm-rl.bin
bcf_boardtype_0801.bin
bcf_boardtype_0a01.bin
bcf_fgh100maamd.bin
bcf_mf08651_4v3_us.bin
bcf_mf28551.bin
mm6108.bin

found in /lib/firmware/morse

If yes, can you recommed what is the correct one to serve my purpose?

Moreover, my appplication is mesh network between 2-5 devices in very long range and open space condition. Target speed is minimum 2.5Mbps

Could you recommend me the best configuration for this MM8108 with in the mesh mode?

Many thanks.

Vu

I will answer this question in your other thread :slight_smile:

I do not recommend changing BCFs. None of these are designed for the module you are using and you will likely see significantly reduced performance (if it functions at all), and module damage by using an incorrect BCF.

I’m surprised you’re only seeing 21 dBm. That module should be reporting back 24 dBm by default. Did the driver/firmware come from the Morse Micro repositories?

Many thanks for your supports!

The default BCF that I found in /etc/config/wireless is bcf_mf15457.bin and it is 22dBm (sorry that I made mistake in the previous post) , 8Mhz, Channnel (Country US).

I am not sure where the /firmware comes from but this is the repo I clone to build on the CM4:

Can you please to have a look?

Higher bandwidth settings will reduce the power to meet regulatory requirements and/or IEEE limits.

You might want to consider moving to a 4MHz channel for other reasons anyway (as discussed in your thread). Setting to 4MHz channel 16 should report back 24 dBm

Dear @ajudge

I changed to 4MHz, Channel 16 as you recommend but it is still reported at 24dBm

root@OpenWrt:~# uci set wireless.radio1.txpower=24
root@OpenWrt:~# uci commit
root@OpenWrt:~# reload_config
root@OpenWrt:~# iwinfo
phy1-ap0  ESSID: “12345678”
Access Point: DA:3A:DD:8D:07:74
Mode: Master  Channel: 1 (2.412 GHz)  HT Mode: HT20
Center Channel 1: 1 2: unknown
Tx-Power: 31 dBm  Link Quality: unknown/70
Signal: unknown  Noise: unknown
Bit Rate: unknown
Encryption: WPA3 SAE (CCMP)
Type: nl80211  HW Mode(s): 802.11ac/b/g/n
Hardware: 02D0:A9A6 0000:0000 [Cypress CYW43455]
TX power offset: none
Frequency offset: none
Supports VAPs: no  PHY name: phy1

wlan0     ESSID: “12345678”
Access Point: D8:3A:DD:8D:07:74
Mode: Mesh Point  Channel: 16 (910.000 MHz)  HT Mode: HT40
Center Channel 1: 16 2: unknown
Tx-Power: 22 dBm  Link Quality: unknown/70
Signal: unknown  Noise: -91 dBm
Bit Rate: unknown
Encryption: WPA3 SAE (CCMP)
Type: dot11ah  HW Mode(s): 802.11ah
Hardware: USB 325B:8100 [Morse Micro USB-MM810x]
TX power offset: none
Frequency offset: none
Supports VAPs: yes  PHY name: phy0

Unfortunately 24 dBm is the highest you will see reported. See a bit further up where I explain why this is happening