
The goal of this guide is to turn a Raspberry Pi 3 Model B into a dual-band Wi-Fi access point (AP) that extends your existing Local Area Network (LAN).
While the Pi’s built-in Wi-Fi 4 (802.11n) adapter is convenient, it often lacks the performance needed for modern wireless networks. This guide shows how to overcome that limitation.
We run two Wi-Fi networks simultaneously. The 2.4 GHz band uses the native Broadcom chipset (wlan0, driver brcmfmac). The 5 GHz band runs on an external TP-Link Archer TX20U Plus adapter (wlan1, driver rtl8852au). Here we discuss installation of rtl8852au driver on Raspberry 3B running Debian 13.
Both interfaces are joined through a virtual bridge (br0) linked to the Ethernet port (eth0). This setup allows the Raspberry Pi to act as AP on the 192.168.88.0/24 subnet, providing stable, high-speed connectivity for wireless clients.
We assume that the external adapter's driver has been already compiled and installed. Both wireless interfaces appear as active in the output of ifconfig:
root@rpi3:/# ifconfig wlan0 && ifconfig wlan1

Figure 1 - Wlan0 and Wlan1 interfaces
Hardware and Software:
- Mikrotik
HAP AC3 (802.11ac and 802.11n home router) - 3B Raspberry Pi 3 Model B Rev 1.2
Debian 13.1 Trixie Linux rpi3 6.1.0-40-arm64 #1 SMP Debian 6.1.153-1 (2025-09-20) aarch64 GNU/Linux
hostapd v2.10 - Client:
Debian (bullseye) 5.19.0
The network topology depicted in Figure 2 illustrates the connectivity. AP on Raspberry PI connects to the main router (MikroTik) via interface eth0. The interface eth0 is attached to the bridge br0, along with wlan0 and wlan1 interfaces. Bridge IP address 192.168.88.10 is statically configured on Pi 3.
Hostapd (Host access point daemon) is a user space software access point that is running on Raspberry Pi 3B. It turns network interface cards wlan0 and wlan1 into access points and authentication servers.
The wireless client is connected to one of the wireless network created on AP (Raspberry Pi). The client is running Debian 11 and it obtains its IP address from Mikrotik router.
Figure 2 - Raspberry 3B AP with wlan1 (802.11ac ) and wlan0 (802.11n) networks connected to Mikrotik
1. Hostapd and Bridge Installation
First, install the necessary utilities for network bridging and running the Access Point service.
root@rpi3:/# apt install bridge-utils hostapd
Next, create the virtual bridge interface, br0, which will aggregate eth0, wlan0, and wlan1.
root@rpi3:/# brctl addbr br0
Now, configure the network interfaces file. The physical interfaces must be set to manual. The br0 interface is assigned a static IP address 192.168.99.10/24 on your LAN, acting as the single point of entry for the AP.
root@rpi3:/# vi /etc/network/interfaces
source-directory /etc/network/interfaces.d
auto eth0
iface eth0 inet manual
auto wlan0
iface wlan0 inet manual
auto wlan1
iface wlan1 inet manual
# Creating Bridge 'br0'
auto br0
iface br0 inet static
address 192.168.88.10
netmask 255.255.255.0
gateway 192.168.88.1
bridge_ports eth0
bridge_stp off
bridge_fd 0
bridge_vlan_aware yes
bridge_vlan_filtering yes
2. Creating Config Files for wlan0 and wlan1 Interfaces
We configure two distinct Hostapd files, one for each frequency band and interface.
2.1 Configuration for wlan0 (2.4 GHz / 802.11n)
This file configures the built-in wlan0 chip for 2.4 GHz operation, using 802.11n and a 40 MHz channel width HT40.
root@rpi3:/# vi /etc/hostapd/hostapd-wlan0.conf
# The path for the management control socket for hostapd
ctrl_interface=/var/run/hostapd-wlan0
# The group ID (0 = root) for controlling the interface
ctrl_interface_group=0
# Wireless network interface to be used as an AP
interface=wlan0
# Standard Linux kernel wireless driver interface
driver=nl80211
# Regulatory domain to Slovakia, affecting allowed channels/power
country_code=SK
# The 2.4 GHz band
hw_mode=g
# Primary operating channel to the non-overlapping Channel 6
channel=6
# Enable the 802.11n (Wi-Fi 4)
ieee80211n=1
# Connects the wireless interface to the bridge interface (br0)
bridge=br0
# Requires connected clients to use High Throughput (802.11n) mode
require_ht=1
# Wi-Fi Multimedia (WMM) QoS support
wmm_enabled=1
# WIFI 802.11n capabilities, including 40 MHz channel width (HT40)
ht_capab=[HT40][SHORT-GI-20][DSSS_CCK-40]
# Name of the Wi-Fi network
ssid=test-AP-2.4GHz
# Security protocol WPA2
wpa=2
# Password (Pre-Shared Key) for accessing the network
wpa_passphrase=1234567890
# Key management using WPA Pre-Shared Key
wpa_key_mgmt=WPA-PSK
# Specifies the CCMP (AES) encryption cipher for WPA2
rsn_pairwise=CCMP
2.2 Configuration for wlan1 (5 GHz / 802.11ac)
This configuration utilizes the external TP-Link AX1800 adapter wlan1. We configure it for maximum performance using 802.11ac (Wi-Fi 5) with an 80 MHz channel width.
root@rpi3:/# vi /etc/hostapd/hostapd-wlan1.conf
# Directory for socket
ctrl_interface=/var/run/hostapd-wlan1
# Root has access to hosaped process
ctrl_interface_group=0
# Wifi name
ssid=test-AP-5Ghz
country_code=SK
# WPA security PSK + AES for encryption + password
wpa=2
wpa_key_mgmt=WPA-PSK
rsn_pairwise=CCMP
wpa_passphrase=1234567890
# Default driver
driver=nl80211
# Interface wlan1 and bridge it to br0
interface=wlan1
bridge=br0
# non-DFS 80 MHz channel (149/153/157/161)
channel=149
# Advertise country code SK in to beacon regulatory info
country_code=SK
ieee80211d=1
# DFS radar detection - we do not scan for radar signal
ieee80211h=0
# QoS for 802.11n and 802.11ac
wmm_enabled=1
# a = 5ghz band
hw_mode=a
# HT enabled - 802.11n aka Wifi-4
ieee80211n=1
# 40 HMz channle for 802.11n with seconadry 20MHz channnel about primary channel
ht_capab=[HT40+][SHORT-GI-40]
# Enable VHT - 802.11ac aka Wifi-5
ieee80211ac=1
# VHT channel width 80Mhz
vht_oper_chwidth=1
# freq sequence index (magic value, channel+6 or something)
vht_oper_centr_freq_seg0_idx=155
# vht capabilities
vht_capab=[VHT80]
3. Create System Service
A single systemd service template is created to manage both AP configurations automatically at boot time.
root@rpi3:/# vi /etc/systemd/system/hostapd@.service
[Unit]
Description=Hostapd Service for %I
# Run after netwrok is online a bridge bro is activate
After=network.target network-online.target
Wants=network-online.target
[Service]
Type=simple
# %I is either wlan1 or wlan2
ExecStart=/usr/sbin/hostapd /etc/hostapd/hostapd-%I.conf
Restart=always
[Install]
WantedBy=multi-user.target
Reload the systemd daemon and enable/start both services:
root@rpi3:/# sudo systemctl daemon-reload
root@rpi3:/# sudo systemctl enable hostapd@wlan0
root@rpi3:/# sudo systemctl enable hostapd@wlan1
root@rpi3:/# sudo systemctl start hostapd@wlan0
root@rpi3:/# sudo systemctl start hostapd@wlan1
4. Testing
4.1 Wireless Network Discovery on Client
Verify that both networks are successfully broadcasting beacons using nmcli on the client:

Figure 3 - Checking if Wireless Network Sends Beacon
The AP is broadcasting both SSIDs. Note that wlan1 is operating on Channel 153, the control channel for the 80 MHz block starting at 149.
4.2 Examining Wireless Link Details (iw)
Before diving into raw throughput, it's useful to inspect the actual link parameters established on the Access Point (AP) itself. The iw dev wlan 1 info command confirms the operating channel and bandwidth for the 5 GHz adapter:
root@rpi3:/# iw dev wlan1 info

Figure 4 - Checking Parameters of AP Interface wlan1 (5 GHz / 802.11ac) - AP side
The output confirms the 80 MHz channel width on channel 153, which is key to achieving high 802.11ac (Wi-Fi 5) speeds.
4.3 Performance Test: wlan1 (5 GHz / 802.11ac)
We'll start with the high-speed 5 GHz network. Check the link state on wireless client connected to SSID test-AP-5Gz network:
brezular@freepc:~$ iw wlp0s20f3 link

Figure 5 - Checking speed of SSID test-AP-5GHz on Client - Debian 11
The client is successfully using the 802.11ac VHT (Very High Throughput) mode, advertising a high theoretical maximum connection rate of 866.7 MBit/s (TX bitrate). This is the absolute maximum speed the connection could reach under ideal conditions. In other words, it reflects the link rate, not the actual data throughput.
Next, we run iperf3 from the wireless client to the Raspberry Pi AP (acting as the server at 192.168.88.10):
brezular@freepc:~$ iperf3 -c 192.168.88.10

Figure 6 - Test speed from Wireless client to server (AP) using 802.11ac (wlan1)
The actual sustained TCP throughput is approximately 310 Mbits/sec. This is an excellent result for a Raspberry Pi 3B, demonstrating that the external 802.11ac adapter and the bridge configuration perform very well on the 5 GHz band.
This real-world throughput is approximately 36% of the theoretical 866.7 MBit/s link rate. It is a typical overhead when accounting for Wi-Fi's half-duplex nature, protocol headers, and the limitations of the Raspberry Pi's CPU and internal USB/Ethernet bus.
4.4 Performance Test: wlan0 (2.4 GHz / 802.11n)
Now, let's examine the performance of the built-in 2.4 GHz interface (wlan0). The client's link state is checked again:
brezular@freepc:~$ iw wlp0s20f3 link

Figure 7 - Checking speed of SSID test-AP-2.4GHz on Client - Debian 11
The link rate to the 802.11n network is significantly lower, topping out at 72.2 MBit/s.
Again, we run iperf3 from the wireless client to the Raspberry Pi AP (192.168.88.10):
brezular@freepc:~$ iperf3 -c 192.168.88.10

Figure 8 - Test speed from Wireless client to server (AP) using 802.11n (wlan0)
The sustained TCP throughput on the 2.4 GHz 802.11n network is approximately 46-49 Mbits/sec. This result is typical for the single-stream 802.11n chip on the Raspberry Pi 3B. It is significantly lower than the 310 Mbits/sec achieved on the 5 GHz band.
Conclusion
The project demonstrates that the Raspberry Pi 3B can be effectively transformed into a dual-band Wi-Fi Access Point. We achieved it using a combination of the built-in and a high-performance external USB adapter.

Figure 9 – Speed comparison - built-in Broadcom chip (wlan0, ~49 Mbps) and the TP-Link Archer TX20U Plus (Realtek, wlan1, ~312 Mbps)
The 5 GHz 802.11ac network (wlan1), powered by the TP-Link AX1800 adapter, delivered a massive performance increase. It offered approximately six times the throughput compared to the built-in 2.4 GHz 802.11n network (wlan0).
The key to overcoming the built-in Wi-Fi limitations was adding the dedicated, high-speed 5 GHz adapter. We successfully integrated both the internal and external interfaces into the existing LAN using a Linux bridge (br0) and hostapd.