Update on BD-SDMAC WiFi/BT module

Published on May 11, 2017

Archived Notice

This article has been archived and may contain broken links, photos and out-of-date information. If you have any questions, please Contact Us.

// We introduced the Silex QCA9377-based BD-SDMAC few months ago and have some updates to provide.

BD-SDMAC

802.11 AC + BT4.1 BD-SDMAC module First, it is recommended to read our previous blog post which gives all the module details:

As a reminder, the module is supported in the following OSes:

  • Android
  • Ubuntu
  • Debian
  • Yocto
  • Buildroot

What's new?

Supported platforms

After several successful designs using this module, we decided to offer a variant of the following platforms with BD-SDMAC instead of the TiWi-BLE:

Note that the price stays the same for the "_QCA" variants although it now offers dual-band + AC support.

Software update

Projects based on this module were for both Android and Linux which allowed to extensively test the software in real condition.This process allowed us to fix a few bugs and provide better software support:

  • WiFi MAC addresses can now easily be set from kernel command-line
  • Same goes for BT MAC address on Android (see ro.boot.btmacaddr)
  • Debug messages now stripped not to spam on serial connection
  • Fixed build with GCC6+
  • Firmware update to v2.1.3
  • Bluetooth LE Advertising testing

This latter feature will be described in the next section since many customers have been asking about it.

Bluetooth LE Advertising

The BD-SDMAC is the first module we've successfully used BLE advertising.For Android, an API is provided for it as well as some samples apps that can be used as-is:

Our latest Android Nougat blog post shares the apk files used for testing with some screenshots:

As for Linux, here are some samples commands tested on a Yocto build to send advertising packets (credits to this stackoverflow thread).

  • First setup the BT
echo 0 > /sys/class/rfkill/rfkill0/state
sleep .5
echo 1 > /sys/class/rfkill/rfkill0/state
/usr/libexec/bluetooth/bluetoothd &
hciattach -t 30 /dev/ttymxc2 qca 2000000 flow &
hciconfig hci0 up
  • Then prepare the packet
hcitool -i hci0 cmd 0x08 0x0008 10 02 01 1a 0c ff 18 01 48 45 4c 4c 4f 57 4f 52 4c 44
  • Finally allow advertising packets and incoming connections
hciconfig hci0 leadv 0
  • You can then disable advertising if needed
hciconfig hci0 noleadv

 For any further information, feel free to contact us at info@boundarydevices.com.