From 3696cb6563a0d08be94a3e25b4c0f5d7c59abf1a Mon Sep 17 00:00:00 2001 From: darkdrgn2k Date: Sun, 22 Apr 2018 23:22:33 -0400 Subject: [PATCH 1/7] Worksheet Module 3 --- .../worksheet/2-mesh-your-node-wirelessly.md | 59 +++++++++++++++++++ 1 file changed, 59 insertions(+) create mode 100644 module-3/worksheet/2-mesh-your-node-wirelessly.md diff --git a/module-3/worksheet/2-mesh-your-node-wirelessly.md b/module-3/worksheet/2-mesh-your-node-wirelessly.md new file mode 100644 index 0000000..4de306f --- /dev/null +++ b/module-3/worksheet/2-mesh-your-node-wirelessly.md @@ -0,0 +1,59 @@ +Mesh your node wirelessly +=========================== + +## Connecting to your Raspberry Pi + +1. Verify that the Raspberry Pi has the SD card in place. Power on the device and wait for a solid green light with a flashing red light. + +1. Connect your computer's WiFi Client to the Raspberry Pi's WiFi Access Point: + + - SSID: `` + - Password: `password` + +1. Once your computer is connected to the WiFi Access Point, you can access the Raspberry Pi via a Secure Shell (SSH): + + - Host: `.local` (or `10.0.0.1`) + - Username: `root` + - Password: `root` + + On **macOS or Linux** using **Terminal**, enter `ssh root@example.local` followed by the password `root`. + + On **Windows** using the **PuTTY** graphical interface, enter the `Host` and select `SSH` then click `Open` to initiate an SSH session. Enter the `Username` and `Password` when prompted. + +You are now connected to and able to run commands from your Raspberry Pi. The Raspberry Pis are currently not connected to all the other ones in the room. Find a partner and we will manually get the two Raspberry Pis to talk over a mesh with a series of commands provided. For the rest of this activity, we will use `example` to represent one node, and `example2` to represent the other. + +## Determine your interface + +1. Raspberry Pi can prepare interfaces out of order. To make sure we do not accidently change the settings on the node running the Access Point (and disconnect us from the Pi) we will first confirm the interface names. + + **root@example:~#** `iw dev` + + You should see one of the interfaces with `type: AP`. This is your Access Point that you use to conenct to the node wirelessly. + +1. Make note of the interface node that is **NOT** your `AP`. It will most ikely be `wlan1` + +## Creating your mesh + +1. Partner up with some one at the table. You will be a new mesh group. + +1. Decide on a name for your newly formed mesh. Keep it simple and one word. Don't spend to much time on this. + +1. Use the commands provided to create a mesh network between the two nodes. + +* Make sure you use the correct `wlanX` that you noted above. The example uses `wlan1` which may not be accurate. +* Replace **MY_MESH_NAME_HERE** with the mesh name you decided on. +* Give each node a differnt IP address. ie `192.168.0.1` for the first one and `192.168.0.2` for the second etc. + +## Test your mesh + +1. Use `ping` to ping the other connected node and see if it responds. + +1. You can check to see what nodes are connected by using the `iw wlan0 station dump` command. + +## Grow your mesh + +1. Now that you have successfully created your mesh, find another group in your proximity. + +1. Expand your mesh to include the new group. + +1. Now repeat it with another group. From e4092111cd3139070479f56ff4b8e925499e3086 Mon Sep 17 00:00:00 2001 From: darkdrgn2k Date: Mon, 23 Apr 2018 10:43:20 -0400 Subject: [PATCH 2/7] Corrected spelling --- module-3/worksheet/2-mesh-your-node-wirelessly.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/module-3/worksheet/2-mesh-your-node-wirelessly.md b/module-3/worksheet/2-mesh-your-node-wirelessly.md index 4de306f..3b30d45 100644 --- a/module-3/worksheet/2-mesh-your-node-wirelessly.md +++ b/module-3/worksheet/2-mesh-your-node-wirelessly.md @@ -28,21 +28,21 @@ You are now connected to and able to run commands from your Raspberry Pi. The Ra **root@example:~#** `iw dev` - You should see one of the interfaces with `type: AP`. This is your Access Point that you use to conenct to the node wirelessly. + You should see one of the interfaces with `type: AP`. This is your Access Point that you use to connect to the node wirelessly. -1. Make note of the interface node that is **NOT** your `AP`. It will most ikely be `wlan1` +1. Make note of the interface node that is **NOT** your `AP`. It will most likely be `wlan1` ## Creating your mesh -1. Partner up with some one at the table. You will be a new mesh group. +1. Partner up with someone at the table. You will be a new mesh group. -1. Decide on a name for your newly formed mesh. Keep it simple and one word. Don't spend to much time on this. +1. Decide on a name for your newly formed mesh. Keep it simple and one word. Don't spend too much time on this. 1. Use the commands provided to create a mesh network between the two nodes. * Make sure you use the correct `wlanX` that you noted above. The example uses `wlan1` which may not be accurate. * Replace **MY_MESH_NAME_HERE** with the mesh name you decided on. -* Give each node a differnt IP address. ie `192.168.0.1` for the first one and `192.168.0.2` for the second etc. +* Give each node a different IP address. ie `192.168.0.1` for the first one and `192.168.0.2` for the second etc. ## Test your mesh From c2669a18b6f289fbbb1c57708e2dfa7e1777abf1 Mon Sep 17 00:00:00 2001 From: darkdrgn2k Date: Mon, 23 Apr 2018 11:54:05 -0400 Subject: [PATCH 3/7] Building a node Presentation Draft --- module-3/presentation/README.md | 7 +++ module-3/presentation/SUMMARY.md | 11 +++++ module-3/presentation/part-0/README.md | 7 +++ module-3/presentation/part-1/README.md | 1 + .../presentation/part-1/radio-and-waves.md | 48 +++++++++++++++++++ .../presentation/part-1/what-is-in-a-node.md | 31 ++++++++++++ module-3/presentation/part-2/README.md | 1 + .../part-2/connecting-with-wifi.md | 30 ++++++++++++ module-3/presentation/part-2/worksheet.md | 4 ++ module-3/presentation/part-3/README.md | 1 + module-3/presentation/part-4/README.md | 9 ++++ 11 files changed, 150 insertions(+) create mode 100644 module-3/presentation/README.md create mode 100644 module-3/presentation/SUMMARY.md create mode 100644 module-3/presentation/part-0/README.md create mode 100644 module-3/presentation/part-1/README.md create mode 100644 module-3/presentation/part-1/radio-and-waves.md create mode 100644 module-3/presentation/part-1/what-is-in-a-node.md create mode 100644 module-3/presentation/part-2/README.md create mode 100644 module-3/presentation/part-2/connecting-with-wifi.md create mode 100644 module-3/presentation/part-2/worksheet.md create mode 100644 module-3/presentation/part-3/README.md create mode 100644 module-3/presentation/part-4/README.md diff --git a/module-3/presentation/README.md b/module-3/presentation/README.md new file mode 100644 index 0000000..142348d --- /dev/null +++ b/module-3/presentation/README.md @@ -0,0 +1,7 @@ +# Module 3: Building a Node + +1. Recap from last week +1. Parts of a Node and Radio Frequency +1. Meshing your nodes +1. Building your own node +1. Wrap-up & homework diff --git a/module-3/presentation/SUMMARY.md b/module-3/presentation/SUMMARY.md new file mode 100644 index 0000000..0f02e46 --- /dev/null +++ b/module-3/presentation/SUMMARY.md @@ -0,0 +1,11 @@ +# Summary + +* [Recap from last week](part-0/README.md) +* [The Mesh Node](part-1/README.md) + * [What is in a node](part-1/what-is-in-a-node.md) + * [Radio and Waves](part-1/radio-and-waves.md) +* [Your node in a mesh network](part-2/README.md) + * [Connecting with WiFi](part-2/connecting-with-wifi.md) + * [Worksheet](part-2/worksheet.md) +* [Selecting your parts](part-3/README.md) +* [Wrap-up & homework](part-4/README.md) diff --git a/module-3/presentation/part-0/README.md b/module-3/presentation/part-0/README.md new file mode 100644 index 0000000..ff2b174 --- /dev/null +++ b/module-3/presentation/part-0/README.md @@ -0,0 +1,7 @@ +# Recap from last week + +First Week - Using `Raspberry Pis`, we formed a `wireless mesh network`. + +Last week - Using `Raspberry Pis`, we configured a `wired network`. + +This Week - Using `Raspberry Pis`, we configure a `wireless mesh network`. \ No newline at end of file diff --git a/module-3/presentation/part-1/README.md b/module-3/presentation/part-1/README.md new file mode 100644 index 0000000..562d309 --- /dev/null +++ b/module-3/presentation/part-1/README.md @@ -0,0 +1 @@ +# The Mesh Node \ No newline at end of file diff --git a/module-3/presentation/part-1/radio-and-waves.md b/module-3/presentation/part-1/radio-and-waves.md new file mode 100644 index 0000000..9c9883d --- /dev/null +++ b/module-3/presentation/part-1/radio-and-waves.md @@ -0,0 +1,48 @@ +# Radio and Radio Waves + +Radio - the technology of using electromagnetic waves to carry information + +## Properties of waves + +### Frequency +* Measured in Hz (Hertz) or Cycles per second +* We tune the radio to hear other people on the same frequency +### Amplitude +* How much power the wave has +* How loud we are talking +### Polarity +* Which direction is the wave cycling +* Orientation of the antenna is important +### Phase +* The offset of peaks and valleys of two waves +* You add the values at each point to calculate the new amplitude + * Two peeks or valleys - wave is twice as amplitude + * A peek and a valley - amplitude closer to 0 +* Happens when waves bounce of walls + +### Channel Width +* Defines how many frequencies does the signal take up +* Larger channel width provides + * more frequencies + * allows for more data to be sent at once + * susceptible to mode noise + +## Frequency and Channels + +Channels are human defined numbers that point to a specific frequency + +* There are 13 channels defined for WiFi +* In Canada we can only use the first 11 +* First channel starts at 2.412 GHz or 2,412 MHz +* The channels are spaced out by 5 MHz +* Standard WiFi signals use a channel width of 20Mhz +* There are only 3 non overlapping signals in 2.4 GHz range 1,6 and 11 + +## Licensing + +* There are many frequencies that exist in the air +* Most of them are designated to a specific function +* Government agency tasked with controlling them in Canada is the CRTC +* 2.4Ghz and 5.0Ghz do not require any licensing +* Used by many devices not just WiFi +* They look like noise to WiFi diff --git a/module-3/presentation/part-1/what-is-in-a-node.md b/module-3/presentation/part-1/what-is-in-a-node.md new file mode 100644 index 0000000..286f216 --- /dev/null +++ b/module-3/presentation/part-1/what-is-in-a-node.md @@ -0,0 +1,31 @@ +# What is in a node? + +## `Single Board Computer` +* All the components of a computer on one board +* Components include Processors, Memory, Storage, Peripherals +* Smart Phone revolution modernized these types of computers +* In a node it runs our software, processing signals and routes traffic + +## `Storage` +* Many types of storage each good for different reasons +* Some properties to be aware of are + * Format - How the physical device works + * Speed - How fast can is access and store data + * Capacity - How much data can it store + * Endurance - How long can it store it for + +## `Power supply` + * Allow us to power + * Consider what power you have available + * Wall Plug - City's power gird + * Batteries - Stored power from another source + * Solar, Wind, Etc - Alternative sources + +## `Antenna` + * Used to receive and transmit (RX and TX) + * Designed for specific frequency ranges and purpose + +## `Radio` + * We use the 802.11 standard known as "WiFi" + * Radios can come in many formats + * They connect to an Antenna diff --git a/module-3/presentation/part-2/README.md b/module-3/presentation/part-2/README.md new file mode 100644 index 0000000..62a10fc --- /dev/null +++ b/module-3/presentation/part-2/README.md @@ -0,0 +1 @@ +# Hands on Activity \ No newline at end of file diff --git a/module-3/presentation/part-2/connecting-with-wifi.md b/module-3/presentation/part-2/connecting-with-wifi.md new file mode 100644 index 0000000..c823584 --- /dev/null +++ b/module-3/presentation/part-2/connecting-with-wifi.md @@ -0,0 +1,30 @@ +# Connecting with WiFi + +## Infrastructure mode + Most common setup for WiFi +* Router acts as an Access Point (AP) +* Each device connects to it to communicate +* One point of failure, the router + +## Mesh mode + +There are two different modes that we can use to create a mesh + +* IBSS (Independent Basic Service Set) + * Also known as AdHoc + * Much older and more supported +* 802.11s (Mesh Point) + * is a new specification + * Not allot of devices support them + * Many usefull features + + +## Mesh in Linux + +To mesh in Linux you preform the following tasks + +* Turn off the interface - `ip link set dev down` +* Switch to a mesh mode - `iw set type ` +* Turn on the interface ` ip link set dev up` +* Join a frequency and group `iw dev join ` +* Assign an IP address - `ip addr add /24 dev ` diff --git a/module-3/presentation/part-2/worksheet.md b/module-3/presentation/part-2/worksheet.md new file mode 100644 index 0000000..32bf587 --- /dev/null +++ b/module-3/presentation/part-2/worksheet.md @@ -0,0 +1,4 @@ +* Break into groups of 2 +* Configure the two nodes to mesh together +* Assign an ip addresses +* Ping the address diff --git a/module-3/presentation/part-3/README.md b/module-3/presentation/part-3/README.md new file mode 100644 index 0000000..e64d958 --- /dev/null +++ b/module-3/presentation/part-3/README.md @@ -0,0 +1 @@ +# Building your own node \ No newline at end of file diff --git a/module-3/presentation/part-4/README.md b/module-3/presentation/part-4/README.md new file mode 100644 index 0000000..d09ec6d --- /dev/null +++ b/module-3/presentation/part-4/README.md @@ -0,0 +1,9 @@ +# Homework + +Next session we will discuss important factors to consider for deployment and use a mapping activity of the nearby area for planning + +* Watch Meta Mesh quick tour of a mesh networking installation: https://www.youtube.com/watch?v=aLusYsScrv0 (4:03) + * Optionally read "Wireless Networking in the Developing World, Chapter 10: Deployment Planning": http://wndw.net/pdf/wndw3-en/ch10-deployment-planning.pdf +* Optionally watch + * SmartrekTech How to install a Smartrek wireless mesh network for sugar making purposes: https://www.youtube.com/watch?v=eKkVEeVNhm8 (4:31) + * Rural Next Generation Broadband Project: https://www.youtube.com/watch?v=QM7MUWDcNxk (6:12) From d0bedeba18e1c4ee6076b1bfcc762b159876b06a Mon Sep 17 00:00:00 2001 From: darkdrgn2k Date: Mon, 23 Apr 2018 14:51:47 -0400 Subject: [PATCH 4/7] Create configuration-instructions.md --- .../worksheet/configuration-instructions.md | 55 +++++++++++++++++++ 1 file changed, 55 insertions(+) create mode 100644 module-3/worksheet/configuration-instructions.md diff --git a/module-3/worksheet/configuration-instructions.md b/module-3/worksheet/configuration-instructions.md new file mode 100644 index 0000000..3d6da48 --- /dev/null +++ b/module-3/worksheet/configuration-instructions.md @@ -0,0 +1,55 @@ +=Table 1= +``` +ip link set dev wlan1 down +iw wlan1 set type mp +ip link set dev wlan1 up +iw dev wlan1 mesh join MY_MESH_NAME_HERE freq 2412 +ip addr add 192.168.0.1/24 dev wlan1 +``` + +``` +ip link set dev wlan1 down +iw wlan1 set type mp +ip link set dev wlan1 up +iw dev wlan1 mesh join MY_MESH_NAME_HERE freq 5240 +ip addr add 192.168.0.1/24 dev wlan1 +``` + + + +=Table 2= +``` +ip link set dev wlan1 down +iw wlan1 set type mp +ip link set dev wlan1 up +iw dev wlan1 mesh join MY_MESH_NAME_HERE freq 2437 +ip addr add 192.168.0.1/24 dev wlan1 +``` + +``` +ip link set dev wlan1 down +iw wlan1 set type ibss +ip link set dev wlan1 up +iw dev wlan1 ibss join MY_MESH_NAME_HERE 2437 +ip addr add 192.168.0.1/24 dev wlan1 +``` + + +=Table 3= + +``` +ip link set dev wlan1 down +iw wlan1 set type ibss +ip link set dev wlan1 up +iw dev wlan1 ibss join MY_MESH_NAME_HERE 5745 +ip addr add 192.168.0.1/24 dev wlan1 +``` + + +``` +ip link set dev wlan1 down +iw wlan1 set type ibss +ip link set dev wlan1 up +iw dev wlan1 ibss join MY_MESH_NAME_HERE 5180 +ip addr add 192.168.0.1/24 dev wlan1 +``` From 617a527e8679b74b3c8563e103f0ff135646f7d1 Mon Sep 17 00:00:00 2001 From: Benedict Lau Date: Tue, 24 Apr 2018 12:41:59 -0400 Subject: [PATCH 5/7] Update module-3 worksheets --- module-3/worksheet/2-configuration-cards.md | 57 +++++++++++++++++++ .../worksheet/2-mesh-your-node-wirelessly.md | 34 +++++------ .../worksheet/configuration-instructions.md | 55 ------------------ 3 files changed, 75 insertions(+), 71 deletions(-) create mode 100644 module-3/worksheet/2-configuration-cards.md delete mode 100644 module-3/worksheet/configuration-instructions.md diff --git a/module-3/worksheet/2-configuration-cards.md b/module-3/worksheet/2-configuration-cards.md new file mode 100644 index 0000000..203f54a --- /dev/null +++ b/module-3/worksheet/2-configuration-cards.md @@ -0,0 +1,57 @@ +``` +ip link set dev wlanX down +iw wlanX set type mp +ip link set dev wlanX up +iw dev wlanX mesh join MY_MESH_NAME freq 2412 +ip addr add 192.168.0.Y/24 dev wlanX +``` + +--- + +``` +ip link set dev wlanX down +iw wlanX set type mp +ip link set dev wlanX up +iw dev wlanX mesh join MY_MESH_NAME freq 5240 +ip addr add 192.168.0.Y/24 dev wlanX +``` + +--- + +``` +ip link set dev wlanX down +iw wlanX set type mp +ip link set dev wlanX up +iw dev wlanX mesh join MY_MESH_NAME freq 2437 +ip addr add 192.168.0.Y/24 dev wlanX +``` + +--- + +``` +ip link set dev wlanX down +iw wlanX set type ibss +ip link set dev wlanX up +iw dev wlanX ibss join MY_MESH_NAME 2437 +ip addr add 192.168.0.Y/24 dev wlanX +``` + +--- + +``` +ip link set dev wlanX down +iw wlanX set type ibss +ip link set dev wlanX up +iw dev wlanX ibss join MY_MESH_NAME 5745 +ip addr add 192.168.0.Y/24 dev wlanX +``` + +--- + +``` +ip link set dev wlanX down +iw wlanX set type ibss +ip link set dev wlanX up +iw dev wlanX ibss join MY_MESH_NAME 5180 +ip addr add 192.168.0.Y/24 dev wlanX +``` diff --git a/module-3/worksheet/2-mesh-your-node-wirelessly.md b/module-3/worksheet/2-mesh-your-node-wirelessly.md index 3b30d45..dc50206 100644 --- a/module-3/worksheet/2-mesh-your-node-wirelessly.md +++ b/module-3/worksheet/2-mesh-your-node-wirelessly.md @@ -20,39 +20,41 @@ Mesh your node wirelessly On **Windows** using the **PuTTY** graphical interface, enter the `Host` and select `SSH` then click `Open` to initiate an SSH session. Enter the `Username` and `Password` when prompted. -You are now connected to and able to run commands from your Raspberry Pi. The Raspberry Pis are currently not connected to all the other ones in the room. Find a partner and we will manually get the two Raspberry Pis to talk over a mesh with a series of commands provided. For the rest of this activity, we will use `example` to represent one node, and `example2` to represent the other. +You are now connected to and able to run commands from your Raspberry Pi. The Raspberry Pis are currently not connected to all the other ones in the room. Find a partner and we will manually get the two Raspberry Pis to talk over a wireless mesh with a series of commands provided. For the rest of this activity, we will use `example` to represent your node. -## Determine your interface +## Finding your mesh interface -1. Raspberry Pi can prepare interfaces out of order. To make sure we do not accidently change the settings on the node running the Access Point (and disconnect us from the Pi) we will first confirm the interface names. +1. The Raspberry Pi may prepare network interfaces out of order. To make sure we do not accidentally change the settings on the interface running the Access Point (and disconnect us from the Pi) we will first confirm the interface names: **root@example:~#** `iw dev` - You should see one of the interfaces with `type: AP`. This is your Access Point that you use to connect to the node wirelessly. + You should see one of the interfaces with `type: AP`. This is the Access Point that your computer uses to connect to the node wirelessly. -1. Make note of the interface node that is **NOT** your `AP`. It will most likely be `wlan1` +1. Make note of the interface that is _not_ your `AP`. It will most likely be `wlan1`. -## Creating your mesh +## Creating your mesh network -1. Partner up with someone at the table. You will be a new mesh group. +1. Partner up with someone at the table to form a new mesh group. -1. Decide on a name for your newly formed mesh. Keep it simple and one word. Don't spend too much time on this. +1. Decide on a name for your newly formed mesh. Keep it simple and a single word. Don't spend too much time on this. -1. Use the commands provided to create a mesh network between the two nodes. +1. Use the commands provided to create a mesh network between the two nodes, with the following substitutions: -* Make sure you use the correct `wlanX` that you noted above. The example uses `wlan1` which may not be accurate. -* Replace **MY_MESH_NAME_HERE** with the mesh name you decided on. -* Give each node a different IP address. ie `192.168.0.1` for the first one and `192.168.0.2` for the second etc. + * Make sure you use the correct `wlanX` network interface that you noted above. + * Replace `MY_MESH_NAME` with the mesh name you decided on. + * Assign each node a different IP address. For example, `192.168.0.1` for the first and `192.168.0.2` for the second. -## Test your mesh +## Testing your mesh network 1. Use `ping` to ping the other connected node and see if it responds. -1. You can check to see what nodes are connected by using the `iw wlan0 station dump` command. +1. You can check to see what nodes are connected by doing a station dump: -## Grow your mesh + **root@example:~#** `iw wlanX station dump` -1. Now that you have successfully created your mesh, find another group in your proximity. +## Growing your mesh network + +1. Now that you have successfully created your small mesh network, find another group in your proximity. 1. Expand your mesh to include the new group. diff --git a/module-3/worksheet/configuration-instructions.md b/module-3/worksheet/configuration-instructions.md deleted file mode 100644 index 3d6da48..0000000 --- a/module-3/worksheet/configuration-instructions.md +++ /dev/null @@ -1,55 +0,0 @@ -=Table 1= -``` -ip link set dev wlan1 down -iw wlan1 set type mp -ip link set dev wlan1 up -iw dev wlan1 mesh join MY_MESH_NAME_HERE freq 2412 -ip addr add 192.168.0.1/24 dev wlan1 -``` - -``` -ip link set dev wlan1 down -iw wlan1 set type mp -ip link set dev wlan1 up -iw dev wlan1 mesh join MY_MESH_NAME_HERE freq 5240 -ip addr add 192.168.0.1/24 dev wlan1 -``` - - - -=Table 2= -``` -ip link set dev wlan1 down -iw wlan1 set type mp -ip link set dev wlan1 up -iw dev wlan1 mesh join MY_MESH_NAME_HERE freq 2437 -ip addr add 192.168.0.1/24 dev wlan1 -``` - -``` -ip link set dev wlan1 down -iw wlan1 set type ibss -ip link set dev wlan1 up -iw dev wlan1 ibss join MY_MESH_NAME_HERE 2437 -ip addr add 192.168.0.1/24 dev wlan1 -``` - - -=Table 3= - -``` -ip link set dev wlan1 down -iw wlan1 set type ibss -ip link set dev wlan1 up -iw dev wlan1 ibss join MY_MESH_NAME_HERE 5745 -ip addr add 192.168.0.1/24 dev wlan1 -``` - - -``` -ip link set dev wlan1 down -iw wlan1 set type ibss -ip link set dev wlan1 up -iw dev wlan1 ibss join MY_MESH_NAME_HERE 5180 -ip addr add 192.168.0.1/24 dev wlan1 -``` From 7746459568bc9c02a1246a0bd64debbcf638e521 Mon Sep 17 00:00:00 2001 From: Benedict Lau Date: Tue, 24 Apr 2018 12:49:12 -0400 Subject: [PATCH 6/7] Update module-3 lesson plan --- module-3/README.md | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/module-3/README.md b/module-3/README.md index 8c33dc8..87ae866 100644 --- a/module-3/README.md +++ b/module-3/README.md @@ -44,21 +44,21 @@ Group activity to wirelessly mesh with other groups by configuring Raspberry Pis ### Activity -- As a class review the purpose of each command in a sample starter script +- As a class review the purpose of each command in a sample starter script: ``` - ip link set dev wlan1 down - iw wlan1 set type mp - ip link set dev wlan1 up - iw dev wlan1 mesh join MY_MESH_NAME_HERE freq 2412 - ip addr add 192.168.0.1/24 dev wlan0 + ip link set dev wlanX down + iw wlanX set type mp + ip link set dev wlanX up + iw dev wlanX mesh join MY_MESH_NAME freq 2412 + ip addr add 192.168.0.Y/24 dev wlanX ``` - Break into groups of two - Each group needs a pair of Raspberry Pis - Each group will connect to their Raspberry Pi's Host AP and initiate a SSH session - Use ifconfig to identify which wlan interface is which (Hint: look for 10.0.0.1) - Use ifconfig and iw to create a mesh between the nodes with this sample starter script -- Use `iw wlan1 station dump` to see if connections are established -- Use `iperf3 -s` on one node and `iperf3 -c 192.168.1.x` on another node to test the speed across the link +- Use `iw wlanX station dump` to see if connections are established +- Use `iperf3 -s` on one node and `iperf3 -c 192.168.0.Y` on another node to test the speed across the link - Once the nodes are properly meshed, have groups seek out another group that has finished - Work together to integrate all 4 nodes into one mesh - Encourage group to continue to merge meshes until all the groups are meshed into one From 55f9948882d868f014d7c088000084423ee48526 Mon Sep 17 00:00:00 2001 From: Benedict Lau Date: Mon, 30 Apr 2018 20:27:20 -0400 Subject: [PATCH 7/7] Edits to module-3 --- module-3/presentation/README.md | 4 +- module-3/presentation/SUMMARY.md | 8 +-- module-3/presentation/part-0/README.md | 12 +++- module-3/presentation/part-1/README.md | 2 +- .../presentation/part-1/radio-and-waves.md | 48 ++++++++------- .../presentation/part-1/what-is-in-a-node.md | 59 ++++++++++--------- module-3/presentation/part-2/README.md | 2 +- .../part-2/connecting-with-wifi.md | 42 +++++++------ module-3/presentation/part-2/worksheet.md | 6 +- module-3/presentation/part-4/README.md | 14 +++-- 10 files changed, 113 insertions(+), 84 deletions(-) diff --git a/module-3/presentation/README.md b/module-3/presentation/README.md index 142348d..ecd6091 100644 --- a/module-3/presentation/README.md +++ b/module-3/presentation/README.md @@ -1,7 +1,7 @@ -# Module 3: Building a Node +# Module 3: Building a node 1. Recap from last week -1. Parts of a Node and Radio Frequency +1. Parts of a node and radio frequency 1. Meshing your nodes 1. Building your own node 1. Wrap-up & homework diff --git a/module-3/presentation/SUMMARY.md b/module-3/presentation/SUMMARY.md index 0f02e46..76bad42 100644 --- a/module-3/presentation/SUMMARY.md +++ b/module-3/presentation/SUMMARY.md @@ -1,11 +1,11 @@ # Summary * [Recap from last week](part-0/README.md) -* [The Mesh Node](part-1/README.md) +* [Parts of a node and radio frequency](part-1/README.md) * [What is in a node](part-1/what-is-in-a-node.md) - * [Radio and Waves](part-1/radio-and-waves.md) -* [Your node in a mesh network](part-2/README.md) + * [Radio and waves](part-1/radio-and-waves.md) +* [Meshing your nodes](part-2/README.md) * [Connecting with WiFi](part-2/connecting-with-wifi.md) * [Worksheet](part-2/worksheet.md) -* [Selecting your parts](part-3/README.md) +* [Building your own node](part-3/README.md) * [Wrap-up & homework](part-4/README.md) diff --git a/module-3/presentation/part-0/README.md b/module-3/presentation/part-0/README.md index ff2b174..e6faeb5 100644 --- a/module-3/presentation/part-0/README.md +++ b/module-3/presentation/part-0/README.md @@ -1,7 +1,13 @@ # Recap from last week -First Week - Using `Raspberry Pis`, we formed a `wireless mesh network`. +**First Week** -Last week - Using `Raspberry Pis`, we configured a `wired network`. +Using Raspberry Pis, we formed a `wireless mesh network`. -This Week - Using `Raspberry Pis`, we configure a `wireless mesh network`. \ No newline at end of file +**Last week** + +Using Raspberry Pis, we configured a `wired network`. + +**This Week** + +Using Raspberry Pis, we will configure a `wireless mesh network`. \ No newline at end of file diff --git a/module-3/presentation/part-1/README.md b/module-3/presentation/part-1/README.md index 562d309..4e97aff 100644 --- a/module-3/presentation/part-1/README.md +++ b/module-3/presentation/part-1/README.md @@ -1 +1 @@ -# The Mesh Node \ No newline at end of file +# Parts of a node and radio frequency \ No newline at end of file diff --git a/module-3/presentation/part-1/radio-and-waves.md b/module-3/presentation/part-1/radio-and-waves.md index 9c9883d..05983d2 100644 --- a/module-3/presentation/part-1/radio-and-waves.md +++ b/module-3/presentation/part-1/radio-and-waves.md @@ -1,48 +1,56 @@ -# Radio and Radio Waves +# Radio and waves Radio - the technology of using electromagnetic waves to carry information ## Properties of waves ### Frequency -* Measured in Hz (Hertz) or Cycles per second + +* Measured in Hertz (Hz), or cycles per second * We tune the radio to hear other people on the same frequency + ### Amplitude + * How much power the wave has * How loud we are talking + ### Polarity + * Which direction is the wave cycling * Orientation of the antenna is important + ### Phase + * The offset of peaks and valleys of two waves * You add the values at each point to calculate the new amplitude - * Two peeks or valleys - wave is twice as amplitude - * A peek and a valley - amplitude closer to 0 -* Happens when waves bounce of walls + * Two peeks or valleys - wave has double the amplitude + * A peek and a valley - amplitude closer to zero +* Interference happens when waves bounce off walls + +### Channel width -### Channel Width -* Defines how many frequencies does the signal take up -* Larger channel width provides - * more frequencies - * allows for more data to be sent at once - * susceptible to mode noise +* Defines how wide of a frequency band does the signal take up +* Larger channel width: + * Provides more frequencies + * Allows for more data to be sent at once + * Is more susceptible to mode noise -## Frequency and Channels +## Frequencies and channels -Channels are human defined numbers that point to a specific frequency +Channels - human defined numbers that point to a specific frequency * There are 13 channels defined for WiFi * In Canada we can only use the first 11 -* First channel starts at 2.412 GHz or 2,412 MHz +* First channel starts at 2.412 GHz (or 2,412 MHz) * The channels are spaced out by 5 MHz -* Standard WiFi signals use a channel width of 20Mhz -* There are only 3 non overlapping signals in 2.4 GHz range 1,6 and 11 +* Standard WiFi signals use a channel width of 20 Mhz +* There are only 3 non-overlapping signals in the 2.4 GHz range (1, 6, and 11) ## Licensing -* There are many frequencies that exist in the air +* There are many frequencies coexisting in the air * Most of them are designated to a specific function * Government agency tasked with controlling them in Canada is the CRTC -* 2.4Ghz and 5.0Ghz do not require any licensing -* Used by many devices not just WiFi -* They look like noise to WiFi +* 2.4 Ghz and 5.0 Ghz do not require any licensing +* Used by many devices, such as microwave ovens, not just WiFi devices +* They look like noise to WiFi devices \ No newline at end of file diff --git a/module-3/presentation/part-1/what-is-in-a-node.md b/module-3/presentation/part-1/what-is-in-a-node.md index 286f216..18245c4 100644 --- a/module-3/presentation/part-1/what-is-in-a-node.md +++ b/module-3/presentation/part-1/what-is-in-a-node.md @@ -1,31 +1,36 @@ # What is in a node? -## `Single Board Computer` +## Single Board Computer + * All the components of a computer on one board -* Components include Processors, Memory, Storage, Peripherals -* Smart Phone revolution modernized these types of computers -* In a node it runs our software, processing signals and routes traffic - -## `Storage` -* Many types of storage each good for different reasons -* Some properties to be aware of are - * Format - How the physical device works - * Speed - How fast can is access and store data - * Capacity - How much data can it store - * Endurance - How long can it store it for - -## `Power supply` - * Allow us to power - * Consider what power you have available - * Wall Plug - City's power gird - * Batteries - Stored power from another source - * Solar, Wind, Etc - Alternative sources +* Components include processors, memory, storage, peripherals +* Smart phone revolution modernized these types of computers +* A node runs our software, processing signals and routing traffic + +## Storage + +* Many types of storage, each good for different reasons +* Some properties to be aware of: + * Format - how the physical device works? + * Speed - how fast can it access and store data? + * Capacity - how much data can it store? + * Endurance - how long can it store the data for? + +## Power supply + +* Allow us to power the node +* Consider what power you have available: + * Wall plug - city's power gird + * Batteries - stored power from another source + * Solar, wind, etc. - alternative sources -## `Antenna` - * Used to receive and transmit (RX and TX) - * Designed for specific frequency ranges and purpose - -## `Radio` - * We use the 802.11 standard known as "WiFi" - * Radios can come in many formats - * They connect to an Antenna +## Antenna + +* Used to receive (Rx) and transmit (Tx) +* Designed for specific frequency ranges and purposes + +## Radio + +* We use the 802.11 standard known as "WiFi" +* Radios can come in many formats +* They connect to an antenna \ No newline at end of file diff --git a/module-3/presentation/part-2/README.md b/module-3/presentation/part-2/README.md index 62a10fc..b22d5a7 100644 --- a/module-3/presentation/part-2/README.md +++ b/module-3/presentation/part-2/README.md @@ -1 +1 @@ -# Hands on Activity \ No newline at end of file +# Meshing your nodes \ No newline at end of file diff --git a/module-3/presentation/part-2/connecting-with-wifi.md b/module-3/presentation/part-2/connecting-with-wifi.md index c823584..30226f3 100644 --- a/module-3/presentation/part-2/connecting-with-wifi.md +++ b/module-3/presentation/part-2/connecting-with-wifi.md @@ -1,30 +1,36 @@ # Connecting with WiFi ## Infrastructure mode - Most common setup for WiFi + +Most common setup for WiFi: + * Router acts as an Access Point (AP) * Each device connects to it to communicate -* One point of failure, the router +* Single point of failure, the router ## Mesh mode -There are two different modes that we can use to create a mesh +There are two different modes that we can use to create a mesh: -* IBSS (Independent Basic Service Set) - * Also known as AdHoc - * Much older and more supported -* 802.11s (Mesh Point) - * is a new specification - * Not allot of devices support them - * Many usefull features - +* Independent Basic Service Set (IBSS) + * Also known as Ad-hoc + * Much older and more supported +* Mesh Point (802.11s) + * A new specification + * Not many devices support this mode + * Many useful features -## Mesh in Linux +## Meshing in Linux -To mesh in Linux you preform the following tasks +To mesh in Linux you issue the following commands: -* Turn off the interface - `ip link set dev down` -* Switch to a mesh mode - `iw set type ` -* Turn on the interface ` ip link set dev up` -* Join a frequency and group `iw dev join ` -* Assign an IP address - `ip addr add /24 dev ` +* Turn off the interface: + * `ip link set dev down` +* Switch to a mesh mode: + * `iw set type ` +* Turn on the interface: + * `ip link set dev up` +* Join a group at a particular frequency: + * `iw dev join ` +* Assign an IP address: + * `ip addr add /24 dev ` diff --git a/module-3/presentation/part-2/worksheet.md b/module-3/presentation/part-2/worksheet.md index 32bf587..8dde16e 100644 --- a/module-3/presentation/part-2/worksheet.md +++ b/module-3/presentation/part-2/worksheet.md @@ -1,4 +1,6 @@ +# Worksheet + * Break into groups of 2 * Configure the two nodes to mesh together -* Assign an ip addresses -* Ping the address +* Assign IP addresses +* Ping each IP address \ No newline at end of file diff --git a/module-3/presentation/part-4/README.md b/module-3/presentation/part-4/README.md index d09ec6d..f7fd6c1 100644 --- a/module-3/presentation/part-4/README.md +++ b/module-3/presentation/part-4/README.md @@ -1,9 +1,11 @@ # Homework -Next session we will discuss important factors to consider for deployment and use a mapping activity of the nearby area for planning +Next session we will discuss wireless links more extensively, both theoretically and the practical aspects when configuring a wireless mesh network. -* Watch Meta Mesh quick tour of a mesh networking installation: https://www.youtube.com/watch?v=aLusYsScrv0 (4:03) - * Optionally read "Wireless Networking in the Developing World, Chapter 10: Deployment Planning": http://wndw.net/pdf/wndw3-en/ch10-deployment-planning.pdf -* Optionally watch - * SmartrekTech How to install a Smartrek wireless mesh network for sugar making purposes: https://www.youtube.com/watch?v=eKkVEeVNhm8 (4:31) - * Rural Next Generation Broadband Project: https://www.youtube.com/watch?v=QM7MUWDcNxk (6:12) +📝 [A quick tour of a mesh networking installation](https://www.youtube.com/watch?v=aLusYsScrv0) from the [Metamesh YouTube channel](https://www.youtube.com/channel/UCGEnntxbGKMU9J9GIZ1LQUQ) + +_Optionally:_ + +- Read [Wireless Networking in the Developing World](http://wndw.net/pdf/wndw3-en/ch10-deployment-planning.pdf), Chapter 10: Deployment Planning +- Watch [How to install a Smartrek wireless mesh network for sugar making purposes](https://www.youtube.com/watch?v=eKkVEeVNhm8) (4:31) +- Watch [Rural Next Generation Broadband Project](https://www.youtube.com/watch?v=QM7MUWDcNxk) (6:12) \ No newline at end of file