error occurs at step 7 " recipe for target 'gen/ucode.bin' failed " · Issue #215 · seemoo-lab/nexmon_csi

CSI collection not working correctly · Issue #292 · seemoo-lab/nexmon_csi

ASUS RT AC86U crash at high transmission rate · Issue #213 · seemoo-lab/nexmon_csi

phase difference for AoA, ToF and Doppler profile · Issue #222 · seemoo-lab/nexmon_csi

Asus RT-AC86U: Building Nexmon_CSI · nexmonster/nexmon_csi · Discussion #7


Documentations

Interface of the Router

For RT-AC86U:

eth0 - WAN

eth1 - LAN 4

eth2 - LAN 3

eth3 - LAN 2

eth4 - LAN 1

eth5 - WLAN 2.4 GHz

eth6 - WLAN 5 GHz

Mac address

my macbook pro:

5C:E9:1E:8E:56:13

TP link:

2.4Ghz: 78:8C:B5:42:E9:95

5 Ghz: 78:8C:B5:42:E9:94

Command instruction

Collect CSI tcpdump -vv verbose -c <N> tcpdump end after N packets received -i <interface> specify an interface to listen on

Specify parameters mcp or makcsiparams

-c channel/bandwidth

-C core

-N stream

-m mac address

Configure extractor nexutil

-I

-s

-b

-l

-v parameters generated from previous stage mcp or makecsiparams

Multiple spatial streams

What is core -C?

Core means receive units here. If you have a device with four antennas, there should also be four cores. If your device has only one antenna then there is most likely only one core.

RT-AC86U (or any other nexmon supported devices ) contains core for each antenna. there are four cores in RT-AC86U and hence supporting four antennas, 3 external and one internal. Indexing starts at core 0. With the mask you can select from what cores you want to extract CSI, of course you are limited to the cores available on your device. ref

What is spatial stream -N?

Nss is the spatial streams received on each antenna. The spatial stream number is always smaller than or equal to the number of antenna at transmitter/injector.

Raspberry Pi 4B+ has 1 antenna, and the Alfa sniffer has 2 antennas. And ac86u has 4 rx chains. So, you should get CSI with MIMO size of 1x4 or 2x4 (Ntx x Nrx) in your described setup. Hope this answer helps you:)

How is NEXMON CSI extract CSI from multiple antennas?

Unlike Atheros_CSI tool that extracts CSI in parallel at all antenna for each packet, Nexmon CSI is extracting it sequentially. for instance, by selecting core=3 and rsxx=0 (i.e. one stream), it will receive first packet on antenna 1, second on antenna 2 and 3rd on antenna 3 and will loop again for the subsequent packets.

Setting up Rx and Tx · Issue #30 · nexmonster/nexmon_csi

How is the Core mask and spatial stream mask works in Nexmon?

In Nexmon, the bit mask was used to set receiver antenna or spatial stream on (1) and off (0).

Core masking

In the four antenna system (ASUS router), the four bit binary number corresponding to each antenna → 0b(ant4)(ant3)(ant2)(ant1) .

For example, -c 0b0001 set ant1 on and rest off. -c 0b1000 set ant4 on and rest off.

0b00010x1 0b00100x2 0b01000x4 0b10000x8 0b01010x5
Antenna 1 on off off off on
Antenna 2 off on off off off
Antenna 3 off off on off on
Antenna 4 off off off on off

Spatial masking

Nexmon support up to 4 transmit antenna, for the transmitter with 4 antenna, it can be set to 0b1111 or 0xF .

For two antennas system, it can be set up to 0b0011 or 0x3 . If we set the value greater than 0b0011 or 0x3, e.g., 0b0101 or 0x5, then one antenna would be valid as there is no third antenna. This means only the two right most bit is valid for antenna masking.

The final obtained stream will be depended on both core and spatial masking.


Nexmon Usage

This section describes the installation and usage of Nexmon CSI on an Asus AC86U router, including the required set-up, command instructions, and documentation. It includes information on the router interface, mac addresses, and command instruction parameters for collecting CSI. Additionally, it provides a bash script for automated CSI collection and information on reading captured PCAP files using Python and Matlab. The section also includes a summary of the required steps for pre-set-up and installation of Nexmon CSI on the router.

Before start the following steps SSH to connect the router:

ssh [email protected]


Pre Set-up and instal Nexmon CSI on ASUS RT-AC86U router:

Before install the Nexmon CSI to the router, there are things need to be set-up:

  1. User name and passcode
  2. Enabling SSH and JFFS custom script and configs
  3. Install firmware to the router
  4. Following the install instruction
  5. Download and extract nexmonster-rtac86u.zip.