# Linux TX Power Max Reported Value for MM8108

**URL:** <https://community.morsemicro.com/t/linux-tx-power-max-reported-value-for-mm8108/1420>\
**Category:** Software\
**Created:** [February 26, 2026, 3:09pm UTC](https://community.morsemicro.com/t/linux-tx-power-max-reported-value-for-mm8108/1420 "2026-02-26T15:09:39Z")\
**Posts on this page:** 10\
**Page:** 1

<div class="post-metadata">

**Author:** ![TechGuy](https://sea1.discourse-cdn.com/flex001/user_avatar/community.morsemicro.com/techguy/32/694_2.png) [@TechGuy](https://community.morsemicro.com/u/TechGuy)\
**Post date:** [February 26, 2026, 3:09pm UTC](https://community.morsemicro.com/t/linux-tx-power-max-reported-value-for-mm8108/1420/1 "2026-02-26T15:09:39Z")

</div>

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:

```auto
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

---

<div class="post-metadata">

**Author:** ![ajudge](https://avatars.discourse-cdn.com/v4/letter/a/c2a13f/32.png) [@ajudge](https://community.morsemicro.com/u/ajudge)\
**Post date:** [March 4, 2026, 7:21am UTC](https://community.morsemicro.com/t/linux-tx-power-max-reported-value-for-mm8108/1420/2 "2026-03-04T07:21:15Z")

</div>

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 ☹ ☹ . See [mac80211 subsystem (basics) — The Linux Kernel documentation](https://www.kernel.org/doc/html/latest/driver-api/80211/mac80211.html#c.ieee80211_conf) and [mac80211 subsystem (basics) — The Linux Kernel documentation](https://www.kernel.org/doc/html/latest/driver-api/80211/mac80211.html#c.ieee80211_ops)

---

<div class="post-metadata">

**Author:** ![bigboy061293](https://avatars.discourse-cdn.com/v4/letter/b/2acd7d/32.png) [@bigboy061293](https://community.morsemicro.com/u/bigboy061293)\
**Post date:** [March 4, 2026, 5:30pm UTC](https://community.morsemicro.com/t/linux-tx-power-max-reported-value-for-mm8108/1420/3 "2026-03-04T17:30:14Z")

</div>

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

---

<div class="post-metadata">

**Author:** ![ajudge](https://avatars.discourse-cdn.com/v4/letter/a/c2a13f/32.png) [@ajudge](https://community.morsemicro.com/u/ajudge)\
**Post date:** [March 5, 2026, 12:22am UTC](https://community.morsemicro.com/t/linux-tx-power-max-reported-value-for-mm8108/1420/4 "2026-03-05T00:22:02Z")

</div>

> [@bigboy061293](#):
>
> Could you recommend me the best configuration for this MM8108 with in the mesh mode?

I will answer this question in your other thread 🙂

> [@bigboy061293](#):
>
> If yes, can you recommed what is the correct one to serve my purpose?

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?

---

<div class="post-metadata">

**Author:** ![bigboy061293](https://avatars.discourse-cdn.com/v4/letter/b/2acd7d/32.png) [@bigboy061293](https://community.morsemicro.com/u/bigboy061293)\
**Post date:** [March 5, 2026, 2:32am UTC](https://community.morsemicro.com/t/linux-tx-power-max-reported-value-for-mm8108/1420/5 "2026-03-05T02:32:39Z")

</div>

Many thanks for your supports!

> [@ajudge](#):
>
> 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?

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).

 ![image](https://us1.discourse-cdn.com/flex001/uploads/morsemicro/original/1X/9446e7c031a4279b97b1b02d75066c9b5ba7327e.png)

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

> **[GitHub - MorseMicro/openwrt](https://github.com/MorseMicro/openwrt/tree/2.9-dev)**
>
> 2.9-dev

Can you please to have a look?

---

<div class="post-metadata">

**Author:** ![ajudge](https://avatars.discourse-cdn.com/v4/letter/a/c2a13f/32.png) [@ajudge](https://community.morsemicro.com/u/ajudge)\
**Post date:** [March 5, 2026, 2:52am UTC](https://community.morsemicro.com/t/linux-tx-power-max-reported-value-for-mm8108/1420/6 "2026-03-05T02:52:33Z")

</div>

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

---

<div class="post-metadata">

**Author:** ![bigboy061293](https://avatars.discourse-cdn.com/v4/letter/b/2acd7d/32.png) [@bigboy061293](https://community.morsemicro.com/u/bigboy061293)\
**Post date:** [March 6, 2026, 6:35pm UTC](https://community.morsemicro.com/t/linux-tx-power-max-reported-value-for-mm8108/1420/7 "2026-03-06T18:35:39Z")

</div>

Dear @ajudge

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

```auto
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

```

---

<div class="post-metadata">

**Author:** ![ajudge](https://avatars.discourse-cdn.com/v4/letter/a/c2a13f/32.png) [@ajudge](https://community.morsemicro.com/u/ajudge)\
**Post date:** [March 10, 2026, 4:27am UTC](https://community.morsemicro.com/t/linux-tx-power-max-reported-value-for-mm8108/1420/8 "2026-03-10T04:27:22Z")

</div>

Unfortunately 24 dBm is the highest you will see reported. See [a bit further up where I explain why this is happening](https://community.morsemicro.com/t/linux-tx-power-max-reported-value-for-mm8108/1420/2)

---

<div class="post-metadata">

**Author:** ![TechGuy](https://sea1.discourse-cdn.com/flex001/user_avatar/community.morsemicro.com/techguy/32/694_2.png) [@TechGuy](https://community.morsemicro.com/u/TechGuy)\
**Post date:** [June 11, 2026, 7:17pm UTC](https://community.morsemicro.com/t/linux-tx-power-max-reported-value-for-mm8108/1420/9 "2026-06-11T19:17:02Z")

</div>

@ajudge can you provide more detail about the claim that Linux propagates the value around in dBm - I am not sure if this is the case? The value I think is consistently handled in mBm (milli dBm = dBm \* 100) though the entire stack. Maybe there is something in the Morse driver but it looks like it uses txpower\_mbm to me.

Please also provide more details about the fact that the configuration in the BCF to meet some internal SEM production limits reduces the final dBm , and how we would decipher or decode from the BCF or otherwise what this fractional loss is?

---

<div class="post-metadata">

**Author:** ![ajudge](https://avatars.discourse-cdn.com/v4/letter/a/c2a13f/32.png) [@ajudge](https://community.morsemicro.com/u/ajudge)\
**Post date:** [June 11, 2026, 10:36pm UTC](https://community.morsemicro.com/t/linux-tx-power-max-reported-value-for-mm8108/1420/10 "2026-06-11T22:36:23Z")

</div>

@TechGuy I’m referring to the mac80211/driver interface. Checking the links I provided

From [mac80211 subsystem (basics) — The Linux Kernel documentation](https://www.kernel.org/doc/html/latest/driver-api/80211/mac80211.html#c.ieee80211_ops)

> get\_txpower  
> get current maximum tx power (in dBm) based on configuration and hardware limits

And from [mac80211 subsystem (basics) — The Linux Kernel documentation](https://www.kernel.org/doc/html/latest/driver-api/80211/mac80211.html#c.ieee80211_conf)

> power\_level  
> requested transmit power (in dBm), backward compatibility value only that is set to the minimum of all interfaces

I figured maybe this was a documentation gaff, but our driver’s implementation of these ops is performing MBM\_TO\_DBM when getting the txpower: [morse\_driver/mac.c at 7a636e45833a5855bab20da72eb037562578c866 · MorseMicro/morse\_driver · GitHub](https://github.com/MorseMicro/morse_driver/blob/7a636e45833a5855bab20da72eb037562578c866/mac.c#L3945)

And DBM\_TO\_MBM when configuring the power [morse\_driver/mac.c at 7a636e45833a5855bab20da72eb037562578c866 · MorseMicro/morse\_driver · GitHub](https://github.com/MorseMicro/morse_driver/blob/7a636e45833a5855bab20da72eb037562578c866/mac.c#L3925)
