Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Table of Contents

H&D-Wireless Wi-Fi Module

The Trizeps VIII Mini is available with H&D Wireless SPB228 Wi-Fi Module.
It includes a powerful Marvell 88W997 chipset capable of 802.11 a/b/g/n/ac, 2×2 Wave2 MU-MIMO, Bluetooth BT 5 Classic, and LE.

Please also view the documentation from H&D Wireless regarding implementing the driver into the OS.

i.e. for Yocto

H&D Wireless supplies a Yocto-recipe.

  1. Unpack meta-spb228-pcie-uart-32.tar.gz to your <project-dir>/<build-dir>/sources/-directory.

  2. Add

    Code Block
    BBLAYERS +=  " ${BSPDIR}/meta-spb228-pcie-uart-32 "

    to your <project-dir>/<build-dir>/conf/bblayers.conf

  3. Run bitbake

Create wpa_supplicant.conf

Code Block
$ sudo -i
# wpa_passphrase "<your ssid>" "<your passphrase>" > /etc/wpa_supplicant/wpa_supplicant.conf

Power-Up Interface

Code Block
$ ifconfig mlan0 up

Scan and Connect to Wi-Fi Network

Simple Scan

Code Block
$ iw mlan0 scan

Connect manually using wpa_cli

Start wpa_supplicant:

Code Block
$ wpa_supplicant -Dnl80211 -imlan0 -c/etc/wpa_supplicant.conf &

...

The mlan0 interface needs to be assigned an IP address, to have it functional. Either through DHCP or manually.

Get

...

BT running

Prerequisites

The onboard WiFi/Bluetooth BT module on Trizeps VIII Mini/Trizeps VIII Plus is connected via UART, so all communication is handled by the HCI UART driver, which must be compiled with support for the Marvell protocol. Add the following to your kernel-config:

...

The user-space programs for Bluetooth BT are in a package called bluez. In Debian and it's derivates you can install it by

...

Code Block
IMAGE_INSTALL += "bluez"

to your image recipe.

Startup

First of all the kernel module must be loaded and the Bluetooth BT device must be attached to the appropriate UART:

...

This attaches UART3 to any Bluetooth BT interface found with a baudrate of 115200 and hardware flow control.

Important: In difference to the Trizeps VIII Mini, the Trizeps VIII Plus uses UART4 for BluetoothBT, so the hciattach must be changed to:

Code Block
$ sudo hciattach /dev/ttymxc3 any 115200 flow

Configuration

After this, you can start the Bluetooth BT interface

Code Block
$ sudo hciconfig hci0 up

...

Code Block
$ bluetoothctl
Agent registered
[bluetoothbl....th]#

You can scan for available devices

Code Block
[bluetoothbl.....th]# scan on
Discovery started
[CHG] Controller 78:C4:0E:A0:0F:80 Discovering: yes
[NEW] Device C0:8C:71:4D:4B:23 Telefon
[bluetoothbl.....th]# scan off
Discovery stopped
[CHG] Controller 78:C4:0E:A0:0F:80 Discovering: no

and list the devices found

Code Block
[bluetoothbl......th]# devices
Device C0:8C:71:4D:4B:23 Telefon
[DEL] Device C0:8C:71:4D:4B:23 Telefon

The most important command:

Code Block
[bluetoothbl.....th]# help
Menu main:
Available commands:
-------------------
advertise                                         Advertise Options Submenu
scan                                              Scan Options Submenu
gatt                                              Generic Attribute Submenu
list                                              List available controllers
show [ctrl]                                       Controller information
select <ctrl>                                     Select default controller
devices                                           List available devices
paired-devices                                    List paired devices
system-alias <name>                               Set controller alias
reset-alias                                       Reset controller alias
power <on/off>                                    Set controller power
pairable <on/off>                                 Set controller pairable mode
discoverable <on/off>                             Set controller discoverable mode
agent <on/off/capability>                         Enable/disable agent with given capability
default-agent                                     Set agent as the default one
advertise <on/off/type>                           Enable/disable advertising with given type
set-alias <alias>                                 Set device alias
scan <on/off>                                     Scan for devices
info [dev]                                        Device information
pair [dev]                                        Pair with device
trust [dev]                                       Trust device
untrust [dev]                                     Untrust device
block [dev]                                       Block device
unblock [dev]                                     Unblock device
remove <dev>                                      Remove device
connect <dev>                                     Connect device
disconnect [dev]                                  Disconnect device
menu <name>                                       Select submenu
version                                           Display version
quit                                              Quit program
exit                                              Quit program
help                                              Display help about this program
export                                            Print evironment variables

Leave it with:

Code Block
[bluetoothbl....th]# exit
$

Bluetooth BT devices can also be managed by bluetoothd witch is configured by files in /etc/bluetoothbl....th. Nevertheless the kernel module must be loaded and the UART must be attached in some init-script that is executed before bluetoothd is started. Otherwise it will refuse to start.

Notes

Enable & Disable WLAN function of the Device

GPIO3_17 ( GPIO81; see Using a GPIO in Linux) can be used to enable and disable the WLAN function.
Set GPIO high to enable; set GPIO low to disable WLAN function.