Adding a Second Wireless Adaptor to a Raspberry Pi for Network Monitoring

Alasdair Allan
10 min readMar 12, 2018

It used to be a hassle to get a wireless adaptor working with the Raspberry Pi. But these days both the Raspberry Pi 3 and the Raspberry Pi Zero W have one already on board, and getting wireless networking working is much easier.

The Raspberry Pi 3 already has an on-board wireless adaptor.

But what if you want to add a second wireless adaptor in monitor mode?

What is Monitor Mode?

Monitor mode allows a computer with a wireless network interface controller to monitor all traffic received from the wireless network. But unlike the more commonly used promiscuous mode, monitor mode allows packets to be captured without having to associate with an access point or ad-hoc network first.

What Adaptor Should I Use?

If you’re interested in using monitoring mode you’ll need to add a second USB WiFi dongle to your Raspberry Pi since the BCM43438 WiFi chipset used on the Raspberry Pi 3 does not currently support monitoring mode. However additional USB wireless adaptors are cheap and readily available, and if you have a need to, you can easily add more than one.

A Raspberry Pi with two more USB wireless network adaptors.

There are really only two or three chipsets used inside mass market USB wireless adaptors. Unfortunately, you’ll need to be somewhat careful about picking out a wireless adaptor that does support monitoring mode as even seemingly identical adaptors, at least from the outside, may be using completely different chipsets on the inside. However, the adapters are cheap, so if you make a mistake, it’s pretty easy just to buy another. Having another USB wireless dongle in your spares box is always handy.

Some of these chipsets are harder to get working in monitor mode than others. For instance, while the Realtek RTL8188CUS chip can support monitoring, and works out of the box on Raspbian, the default Raspbian drivers don’t support monitoring mode. Getting it working is rather tedious.

You can easily check the chipset of a USB wireless adaptor on most Linux computers by typing

$ lsusb
Bus 001 Device 004: ID 148f:5370 Ralink…