🛠 Passerelle 6LoWPAN : wpan0, lowpan0 et BLE du CC1352P7
Objectifs
Transformer le BeaglePlay en passerelle IP/6LoWPAN : le plan 802.15.4 natif est brut (trames courtes, mtu 123 sur wpan0) ; les modules mac802154 et l'encapsulation 6LoWPAN créent une interface lowpan0 qui transporte de l'IPv6. On empile les modules (bcfserial ou wpanusb selon le firmware du CC1352P7, plus mac802154), on monte l'interface lowpan, et on annonce le préfixe vers le LAN pour que les nœuds 802.15.4 deviennent des hôtes IPv6 à part entière. Le BLE du CC1352P7 reste utilisable en parallèle pour l'appairage.
Matériel
- Un BeaglePlay (firmware wpanusb ou bcfserial sur le CC1352P7)
- Un nœud 802.15.4 (autre BeaglePlay, carte TI, ou nœud compatible)
- Réseau Ethernet côté LAN
Code complet
# Charger la pile (bcfserial OU wpanusb selon le firmware flashé)
sudo modprobe mac802154
sudo modprobe wpanusb # ou : sudo modprobe bcfserial
ip link show wpan0 # mtu 123 = 802.15.4 natif
# Créer l'interface 6LoWPAN par-dessus wpan0
sudo ip link add link wpan0 lowpan0 type lowpan
sudo ip link set wpan0 up
sudo ip link set lowpan0 up
sudo ip -6 addr add fd12:3456:789a::1/64 dev lowpan0
# Rôle de routeur : annoncer le préfixe et forwarder vers eth0
sudo sysctl -w net.ipv6.conf.all.forwarding=1
sudo radvd -C /etc/radvd.conf # préfixe fd12:3456:789a::/64 sur lowpan0
# BLE du CC1352P7 pour l'appairage
bluetoothctl list
Vérification attendue
ip -d link show lowpan0 indique le type lowpan avec link/wpan0 ; le nœud distant, une fois joint, obtient une adresse dans fd12:3456:789a::/64 et répond au ping6 depuis le LAN via la passerelle (forwarding=1). bluetoothctl list montre l'adaptateur BLE du CC1352P7, prouvant que radio 15.4 et BLE cohabitent.
Erreurs fréquentes
- Pinger directement
wpan0avec de gros paquets : mtu 123, l'encapsulation lowpan est justement là pour IPv6 ; ne pas confondre les deux interfaces. - Charger bcfserial et wpanusb en même temps : ils se disputent le même matériel, la pile reste inactive.
- Canal ou PAN ID différents entre passerelle et nœud : le
wpan-pingne passe jamais, vérifier canal et pan_id aveciwpan. - Oublier radvd ou forwarding : le nœud garde une adresse link-local uniquement et reste injoignable depuis le LAN.
- Canal 15.4 qui chevauche le WiFi : le canal 26 recouvre le 802.11, préférer un canal bas propre.
Autres tutoriels pour cette carte
Exemples de code pour cette carte
clignotante.pyPythonbouton-gpio.pyPythoncapteur-i2c.shBashsurveillance-temperature.shBashcapteur-dht11.pyPythonservo-pwm-sysfs.shBash