I've been working on a custom LuCI module specifically for the MT7996 tri-band WiFi 7 chip on BPI-R4. It adds a dedicated Network > WiFi 7 page with tabs designed around the MT7996/MLD specifics that the standard LuCI wireless page doesn't handle well.
Overview — Live MLD link cards showing channel, bandwidth, TX power, channel utilization per link. SKU regulation status banner.
MLD config — Edit MLD SSID/password/encryption. MLO enable/disable with reboot warning. Per-link addresses and TX max.
Radio — Channel, HT mode, vif_txpower per radio. Country + sku_idx always written together (as they should be). DFS channel labels, lpi_enable, background_radar.
Networks — Add/Remove legacy networks with smart defaults per band (6G enforces SAE automatically). Advanced settings expandable.
Stations — Live client list showing both MLD clients (ap_mld_1) and legacy clients per band (phy0.0/1/2-ap0). WiFi mode badges (BE/AX/AC/N/G).
Diagnostics — Firmware version, sku_disable status, txpower_info per band, per-link current TX power, DFS status, MAT table.
It is specifically designed for the MTK SDK WiFi stack and will not work correctly with mainline OpenWrt — the interface naming, MLD configuration and hostapd parameters differ significantly.
Hardware tested:
BPI-R4 (MT7988A / Filogic 880)
MT7996 tri-band (2.4G + 5G + 6G)
OpenWrt 25.12-SNAPSHOT
LuCI 26.118.65222~15aabe7
This is alpha — works on my hardware but needs broader testing. Especially interested in:
Does it work on your BPI-R4?
What's missing or broken?
UI suggestions?
Feedback via GitHub Issues or here in the thread. Thanks!
After the alpha release and valuable community feedback, I'm happy to announce v2.1.0 RC of luci-app-wifi7.
This is a significant update — the module has grown from a basic MLD overview into a comprehensive MT7996 management interface covering nearly everything the MTK SDK exposes to userspace.
Requires MTK SDK (e.g. woziwrt/bpi-r4-deploy). Will not work on mainline OpenWrt.
luci-app-wifi7 is a WiFi management interface — it requires at least one WiFi radio to be useful. If your device has no WiFi module, there would be nothing to manage. You might want to check your device specifications first
Due to the custom MTK SDK kernel, standard OpenWrt kmod packages are not compatible — they must be compiled as part of the build.
You can add any package to your own build by following Part C — Fork and customize in the README. Add CONFIG_PACKAGE_kmod-usb-serial-ch341=y to my_defconfig-universal, trigger the workflow, and you get your own release with the module included.
Hello! I’ve been actively following the r4-deploy repository and would like to contribute by adding a configuration for the Fibocom FM350. I used wifimgr_universal as a base and added the following supplementary packages:
I managed to get it running, but unfortunately, I can't receive data from the modem to access the internet. I can see the modem transmitting data (TX), but the RX data remains at zero. I’m almost certain the issue lies in some missing packages and resulting routing problems.
Could you please share what other changes you made to get the FM350 working? I tried your BPI-R4-25.12-MLO-RC4_FM-350GL firmware, and it worked perfectly.
I haven’t heard a single word from the master "BRUDA" since March 24... Doesn’t anyone wonder where he is? Even just a quick “hello” from my friend would make me happy.
Good day, woziwrt.
I did it according to your instructions: I added the necessary packages to my_defconfig-universal: kmod-nf-conntrack-netlink, kmod-nft-queu, kmod-nft-nat, kmod-nft-compat, kmod-nft-tproxy, kmod-nft-socket, then I created my own release, but the necessary there are no packages in it, how to add them correctly/Create it?
Your description of the "DIP switch reference" does not correctly specify the position for the "SD card" - 1 1
Thank you for pointing out the issues in the README. Since the git repository is currently undergoing constant development, the README is out of date and contains errors that will be fixed gradually as development progresses. If you are using a fork of the latest commits, you must apply custom configuration changes in the my_defconfig-wifimgr-universal file before running the GitHub runner.I apologize for any inconvenience or inaccuracies.