WiLink Troubleshooting

From Texas Instruments Wiki
Jump to: navigation, search


This wiki applies to troubleshooting the WiLink 8 module on a Linux host platform, and is divided into the following sections:

  1. WLAN (Wi-Fi) Troubleshooting
  2. Bluetooth/Bluetooth Low Energy Troubleshooting

For questions or feedback about this page, please visit the WiLink E2E forums.

NOTE: More information can be found on the WiLink E2E FAQ.

Wi-Fi(R) Troubleshooting

Q: How do I know if Wi-Fi is functional?
A: Bring up the WLAN interface and perform a scan using the “iw” utility:

ifconfig wlan0 up

You should see a message like the below:

wlcore: PHY firmware version: Rev
wlcore: firmware booted (Rev

Next perform a scan and look for scan results:

iw wlan0 scan | grep SSID
        SSID: IOP_035
        SSID: Demo_24
        SSID: externalhotspot84

If any errors were encountered, follow the steps below:

1.Check your device configuration.
  • Did you remember to use the configure-device.sh script upon initialization?
NOTE: This script is located at /usr/share/wl18xx/configure-device.sh
  • Make sure you are using the proper .ini file to match your needs.
For more information, see this document.
2.Try to reproduce on 1-2 other platforms.
3.Try to reproduce the issue with the latest firmware and software driver version possible (currently R8.6).
4.Try to reproduce with ELP (Enhanced Low Power mode) disabled.
  • To disable ELP:
iw wlan0 set power_save off
echo 0 > /sys/kernel/debug/ieee80211/phy0/wlcore/sleep_auth
5.Try to reproduce with a different peer vendor.
  • For STATION/CLIENT mode - try with a different Access Point vender
  • For Access Point (AP) mode - try with a different Station vendor
  • For Peer to Peer (P2P) mode - try with a different P2P vendor

If still not resolved, find your specific case below:

Q: I am able to bring the interface up using ifconfig but when performing a scan I see a driver crash log.
A: Ensure that you are receiving interrupts from the wl18xx device. This can be done using the following command:

cat /proc/interrupts | grep wl18xx

You should see the following output, or something similar: </pre>

54:         15  44e07000.gpio  27 Edge      wl18xx


If the WL_IRQ pin is configured correctly, you should see a number higher than "0" as shown above. If the value is zero, please re-visit your board device tree file and make sure the WL_IRQ GPIO is muxed correctly and no errors are seen when loading the “wlcore_sdio” module.

For more information on the DTS, see the WL18xx Platform Integration Guide.

Q: I’ve checked that I have the right pins are connected and MUXed, but still the WLAN interface does not work.

A: Make sure the power-on and reset sequences are followed based on the design guidelines in the datasheet. In other words, VBAT/VIO voltages and the slow clock (32kHz) must be stable prior to WLAN_EN being engaged.

Once WL_IRQ is reading as a logic ‘0’, the module is awake. When the IRQ is triggered for the first time, the host can start communication over the SDIO interface.

Q: I’ve confirmed the power-up and reset sequences are being followed, but the WLAN interface is still not working. A: Make sure a WLAN card is detected during device enumeration. If the platform integration was done according to the hardware spec guide/platform integration guide, an SDIO device should be detected during kernel boot. Please review your kernel boot log and look for the following message:

[   18.538564] mmc1: new high speed SDIO card at address 0001

Q: I’ve confirmed that the WLAN device is being detected on the SDIO interface, but WLAN is still not working.
A: Make sure that the WLAN drivers are loaded, either as backports using the WL8 software build process in the WL18xx processor wiki, or built inside the kernel (in case using a kernel version >= 4.1)

You should see the following modules loaded when using the “lsmod” command:

Module                  Size  Used by
wl18xx                 83954  0 
wlcore                186624  1 wl18xx
mac80211              479316  2 wl18xx,wlcore
cfg80211              397999  3 mac80211,wl18xx,wlcore
wlcore_sdio             7829  0 

Q: Yes, I do have the modules built but I still do not see the interface up when using ifconfig, instead I am seeing the following error message:
SIOCGIFFLAGS: No such device
A: This error indicates that the modules are not loaded properly. Try to insert the modules manually and look for errors during the modules loading.

Bluetooth(R)/BLE Troubleshooting

Q: Why does Bluetooth® pairing intermittently fail while playing music?
A: There is a tradeoff between bandwidth allocation for paging and for activities such as music streaming. If pairing is intermittently failing, you may want to increase the page timeout to 10.24 seconds as opposed to 5.12 seconds, as an example. Alternatively, there is a vendor-specific HCI command called “HCI_VS_Configure_DDIP” that allows the user to configure bandwidth allocation as a percentage for different activities. Either of these methods could increase the success rate of connection, but experimenting between the two under specific conditions would be the best route.

The recommended configuration for the DDIP command is the following:

Send_HCI_VS_Configure_DDIP 0xFD55, 0x46, 0x46, 0x02, 0x07, 0x02, 0x01, 0x01, 0xff, 0xff

For more information on the DDIP command, see this document.

Q: Why is my WiLink™ 8 device not responding to an incoming Bluetooth® connection from a remote device?
A: This might be due to bandwidth limitations from high-bandwidth consuming operations such as music (A2DP), voice, etc. To improve performance, the “Send_HCI_Write_Pagescan_Activity 0x0800, 0x1200” may be used to decrease the interval (default is 1.28 seconds) or increase the window.

Another alternative option would be to use the “Send_HCI_Write_Page_Scan_Type 0x01” command and use an interlaced scan instead of a standard scan.

HCITester (Windows PC) or SS1Tool (Linux host) are used to run these commands. To download HCITester tool for Windows, click here: http://www.ti.com/tool/wilink-bt_wifi-wireless_tools

Q:What causes a page timeout error?
A:The default page lasts 5.12 seconds. If a page timeout error has been received, that means the device did not receive a response in this timeframe. See the previous question for a possible resolution to this error.

Q: What causes a report connection timeout?
A:In most cases, a connection timeout is a peer issue. At a minimum, Bluetooth® firmware logs can tell some of the story, but for a full picture, air capture (Bluetooth® sniffer) is required.