# 6. Lab: Wi-Fi Channel Tool (wifichannel)

WLAN Pi comes with a small CLI tool called `wifichannel`

This tool began as a simple conversion utility, for switching between channel numbers and centre frequencies.

#### Requirements:

* WLAN Pi Go (powered and connected via USB-C)
* SSH capabilites to the WLAN Pi Go (10.42.0.1)

### Channel maths

Query `wifichannel` with the command

```
wifichannel 7
```

The output gives you information about channel 7

{% tabs %}
{% tab title="Is 2.4 GHz channel 6 recommended?" %}

```
wifichannel 6
```

{% endtab %}

{% tab title="Output" %}
` Band: 2.4 GHz Channel: 6 Center freq: 2437 MHz`` `` `**`Recommended: Yes`**
{% endtab %}
{% endtabs %}

{% tabs %}
{% tab title="Is 6 GHz channel 17 a Preferred Scanning Channel (PSC)?" %}

```
wifichannel 17
```

{% endtab %}

{% tab title="Output" %}
` Band: 6 GHz Channel: 17 Center freq: 6035 MHz`` `` `**`PSC: No`**` `` ``Lower 6 GHz `
{% endtab %}
{% endtabs %}

{% tabs %}
{% tab title="What is the centre frequency of channel 60?" %}

```
wifichannel 60
```

{% endtab %}

{% tab title="Output" %}
` Band: 5 GHz Channel: 60`` `` `**`Center freq: 5300`**` `` ``MHz U-NII-2A `
{% endtab %}
{% endtabs %}

{% tabs %}
{% tab title="What channel uses center frequency 6055 MHz?" %}

```
wifichannel 6055
```

{% endtab %}

{% tab title="Output" %}
` Band: 6 GHz`` `` `**`Channel: 21`**` `` ``PSC: Yes Lower 6 GHz `
{% endtab %}
{% endtabs %}

### List all channels

#### Display all 2.4 GHz channels:

```
wifichannel -2
```

#### Display all 5 GHz channels:

```
wifichannel -5
```

#### How would you display all 6 GHz channels?

{% tabs %}
{% tab title="Hint" %}
This command will help you if you are ever in doubts:

```
wifichannel -h
```

{% endtab %}

{% tab title="Answer" %}

```
wifichannel -6
```

{% endtab %}
{% endtabs %}

{% hint style="info" %}
Note the Lower 6 GHz and Upper 6 GHz channels.

In the FCC regulatory domain, we can use the entire band including the lower and upper 6 GHz channels.

In the ETSI and Ofcom regulatory domains, they can only use the Lower 6 GHz channels.
{% endhint %}

### Filter output with Linux filters (grep)

You can filter the output of most command line utilities to make the output more efficient.

#### Example

How many channels in the 2.4 GHz band are 'recommended'?

First, run the command to display all 2.4 GHz channels:

```
wifichannel -2
```

You could count the lines manually, but there is no need. Computers can already do that, really fast.

Using a Linux utility called `grep` we can filter the output to only include lines that match an expression (a particular string or pattern):

```
wifichannel -2 | grep "Yes"
```

{% hint style="info" %}
Be precise with your search terms (strings), capitalisation matters.
{% endhint %}

{% tabs %}
{% tab title="How many channels in the 2.4 GHz band are " %}
Finally, we can simply count the number of lines returned by the command using word count, that command looks like this:

```
wifichannel -2 | grep "Yes" | wc -l
```

***

{% hint style="info" %}
The `wc` command has nothing to do with restrooms 😉\
It stands for "word count" and the `"l"` argument stands signifies lines.
{% endhint %}
{% endtab %}

{% tab title="Answer" %}
`3`

***

{% hint style="info" %}
You already knew that... right.

but... this filtering allows you to quickly get an answer from the output of command line tools.
{% endhint %}
{% endtab %}
{% endtabs %}

### Install wifichannel to your laptop

If you would like, you can install wifichannel on your laptop and use it even more often. [Here are the instructions](https://github.com/jiribrejcha/wifichannel).
