IPv6 over Bluetooth Smart (Low Energy)

Cross-compilation tested on Ubuntu 14.10 with kernel 3.18. Tested routers:

  • ASUS RT-N16
  • x86_64 (Virtual Box)
  • Bluetooth 4.0 USB dongle
  • trunk (CC 3.18)

Kernel modules→Other Modules:

  • kmod-6lowpan
  • kmod-bluetooth
  • kmod-bluetooth_6lowpan

Kernel modules→USB support:

  • kmod-usb-core
  • kmod-usb-ohci
  • kmod-usb2


  • bluez-libs


  • bluez-utils

Below procedure shows how to establish a connection with Bluetooth Smart device (with IPv6 stack software) and do a ping. Note that router has to have Bluetooth Smart chip or dongle connected to USB.

Load 6LoWPAN module:

modprobe 6lowpan
modprobe bluetooth_6lowpan

Set PSM channel as 0x23 (35):

echo 35 > /sys/kernel/debug/bluetooth/6lowpan_psm

Look for available HCI devices:


Reset HCI device - e.g. hci0 device:

hciconfig hci0 reset

Read 00:AA:BB:XX:YY:ZZ address of bluetooth device:

hcitool lescan

Connect to the device:

echo "connect 00:AA:BB:XX:YY:ZZ 1" > /sys/kernel/debug/bluetooth/6lowpan_control

Check if connection has been established:


Try to ping device using its link-local address, e.g. on bt0 interface:

ping6 -I bt0 fe80::2AA:BBFF:FEXX:YYZZ
This website uses cookies. By using the website, you agree with storing cookies on your computer. Also you acknowledge that you have read and understand our Privacy Policy. If you do not agree leave the website.More information about cookies
  • Last modified: 2018/03/03 20:13
  • by bobafetthotmail