Difference between revisions of "Raspberry Pi 3B+ 802.15.4/6LoWPAN Setup"
Jump to navigation
Jump to search
Line 77: | Line 77: | ||
=== MANUAL WPAN interface configuration === | === MANUAL WPAN interface configuration === | ||
'''Sources/Links: see References:[[WPAN interface configuration]]''' | '''Sources/Links: see References:[[#WPAN interface configuration]]''' | ||
* Configure the default PAN ID of RIOT-OS/SAMR21-xpro: <code>0x23</code> | |||
* Configure the default channel ID of RIOT-OS/SAMR21-xpro: <code>26</code> | |||
ip link set lowpan0 down | |||
ip link set wpan0 down | |||
iwpan phy phy0 set channel 0 26 # same network ID and channel as RIOT default | |||
iwpan dev wpan0 set pan_id 0x23 # same network ID and channel as RIOT default | |||
ip link add link wpan0 name lowpan0 type lowpan | |||
ip link set wpan0 up | |||
ip link set lowpan0 up | |||
* Afterwards the <code>lowpan0</code> interface on Raspberry has a link-local IPv6 address: | |||
root@raspberrypi:~# ip a | |||
1: lo: [...] | |||
2: eth0: [...] | |||
3: wlan0: [...] | |||
4: wpan0: <BROADCAST,NOARP,UP,LOWER_UP> mtu 123 qdisc pfifo_fast state UNKNOWN group default qlen 300 | |||
link/ieee802.15.4 36:3a:07:cc:65:41:2b:31 brd ff:ff:ff:ff:ff:ff:ff:ff | |||
5: lowpan0@wpan0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1280 qdisc noqueue state UNKNOWN group default qlen 1000 | |||
link/6lowpan 36:3a:07:cc:65:41:2b:31 brd ff:ff:ff:ff:ff:ff:ff:ff | |||
inet6 fe80::343a:7cc:6541:2b31/64 scope link | |||
valid_lft forever preferred_lft forever | |||
== Used Hardware == | == Used Hardware == | ||
Line 100: | Line 124: | ||
=== WPAN interface configuration === | === WPAN interface configuration === | ||
* https://linux-wpan.org/documentation.html | |||
* https://www.linuxjournal.com/content/low-power-wireless-6lowpan-ieee802154-and-raspberry-pi | |||
* http://morschi.com/2017/04/05/hands-on-riot-6lowpan/ | |||
[[Category:Documentation]] | [[Category:Documentation]] |
Revision as of 13:10, 28 November 2023
Summary
Information on how to setup a Raspberry Pi 3B+ for 802.15.4 radio/6LoWPAN communication by utilizing an Openlabs 802.15.4 radio module.
This was tested successfully with Raspbian 10 (Buster) and Raspbian 11 (Bullseye). I assume it is also working on the latest Raspbian 12 (Bookworm).
Requirements
- Raspberry Pi 3B+ ([[1]])
- Operating system: Raspberry Pi OS (Raspbian)
- Openlabs 802.15.4 radio module: https://openlabs.co/store/Raspberry-Pi-802.15.4-radio
Description
Install Raspbian on Raspberry Pi 3B+
- Use Raspberry Pi Imager
- Optional: Download Raspbian/Raspberry Pi OS from https://www.raspberrypi.com/software/operating-systems/
Preparation of Raspbian
Access the Raspberry Pi by attaching it via HDMI to a monitor. After enabling SSH it is possible to connect via SSH/terminal (default credentials are pi:raspberry).
- (Optionally) Change keyboard setting to "German" and reboot:
sudo dpkg-reconfigure keyboard-configuration
- Activate and start SSH on Raspberry:
sudo systemctl start ssh sudo systemctl enable ssh
- Upgrade of Raspbian:
sudo apt update && sudo apt upgrade
Enable support for IEEE 802.15.4/LoWPAN devices
- Plug the OpenLabs 802.15.4 radio module directly onto pins 15-26 of the Raspberry's P1 header (in the middle):
- There is an existing overlay for this transceiver shipped with Raspbian, should be in
/boot/overlays/at86rf233-overlay.dtb
or/boot/overlays/at86rf233.dtbo
:
ls /boot/overlays/at86rf233.dtbo
- Enable transceiver by modifying the
/boot/config.txt
file and reboot:
Installation of Linux WPAN tools
Sources/Links: see References:#Linux WPAN tools
- First install
git
and clone the wpan-tools Repository:
sudo apt install git sudo mkdir /opt/src sudo chown pi /opt/src cd /opt/src git clone https://github.com/linux-wpan/wpan-tools
- Install some required packages before building the wpan-tools:
sudo apt install dh-autoreconf libnl-3-dev libnl-genl-3-dev
- Configure, build and install wpan-tools:
cd /opt/src/wpan-tools ./autogen.sh ./configure CFLAGS='-g -O0' --prefix=/usr --sysconfdir=/etc --libdir=/usr/lib make sudo make install
- Verification/test of wpan-tools installation:
iwpan dev
MANUAL WPAN interface configuration
Sources/Links: see References:#WPAN interface configuration
- Configure the default PAN ID of RIOT-OS/SAMR21-xpro:
0x23
- Configure the default channel ID of RIOT-OS/SAMR21-xpro:
26
ip link set lowpan0 down ip link set wpan0 down iwpan phy phy0 set channel 0 26 # same network ID and channel as RIOT default iwpan dev wpan0 set pan_id 0x23 # same network ID and channel as RIOT default ip link add link wpan0 name lowpan0 type lowpan ip link set wpan0 up ip link set lowpan0 up
- Afterwards the
lowpan0
interface on Raspberry has a link-local IPv6 address:
root@raspberrypi:~# ip a 1: lo: [...] 2: eth0: [...] 3: wlan0: [...] 4: wpan0: <BROADCAST,NOARP,UP,LOWER_UP> mtu 123 qdisc pfifo_fast state UNKNOWN group default qlen 300 link/ieee802.15.4 36:3a:07:cc:65:41:2b:31 brd ff:ff:ff:ff:ff:ff:ff:ff 5: lowpan0@wpan0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1280 qdisc noqueue state UNKNOWN group default qlen 1000 link/6lowpan 36:3a:07:cc:65:41:2b:31 brd ff:ff:ff:ff:ff:ff:ff:ff inet6 fe80::343a:7cc:6541:2b31/64 scope link valid_lft forever preferred_lft forever
Used Hardware
Courses
- IT-Security master's programme: Mobile and Embedded Security ILV
References
Linux WPAN tools
- https://github.com/RIOT-OS/RIOT/wiki/How-to-install-6LoWPAN-Linux-Kernel-on-Raspberry-Pi
- https://github.com/RIOT-Makers/wpan-raspbian/wiki/Create-a-generic-Raspbian-image-with-6LoWPAN-support
- https://github.com/RIOT-Makers/wpan-raspbian/wiki/Spice-up-Raspbian-for-the-IoT