Raspberry Pi 3B+ 802.15.4/6LoWPAN Setup

From Embedded Lab Vienna for IoT & Security
Revision as of 13:10, 28 November 2023 by TBuchi (talk | contribs)
Jump to navigation Jump to search

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

Description

Install Raspbian on Raspberry Pi 3B+

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):

Raspberry-pi-802.15.4-radio module.jpgRaspberry-pi-802.15.4-radio connected.jpg

  • 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

WPAN interface configuration