IntroductionThe blog is to run BlueZ stack on a linux host machine to initialize Cypress Bluetooth Controller, which is connected to Ubuntu machine t...
The blog is to run BlueZ stack on a linux host machine to initialize Cypress Bluetooth Controller, which is connected to Ubuntu machine through UART transport. The blog contains the necessary packages to install, the commands to be send to configure the Ubuntu Host
-- CYW920706WCDEVAL Board (recommended to download an empty Application)
-- Linux System/ Linux Machine (preferably Ubuntu)
Setting up the Host Machine
1. Plugging in the board
Plug in the CYW920706WCDEVAL board to the Host Linux Machine(in my case i used a Ubuntu Laptop). Check the dmesg logs to see the device files generated to which the UART transport has bound. In my case, the CYW920706WCDEVAL board had a PUART and HCI UART. Hence, the dmesg displayed two device files.
Eg: dmesg log for enumeration
If the dmesg logs didn't display the device files to which the board had bound, then it could be because the fdti LKM(loadable Kernel Module) was not loaded in the kernel during boot. You could manually add it using the following command.
>>> modprobe ftdi_sio
Check whether the VID and PID parameters of the USB device is getting added to the following file
else add the PID and VID to the file the following location.
Once done with the download, check whether the Bluetooth adapter is unblocked.
>>> rfkill list all
>>> rfkill unblock all
Check the status of the corresponding systemd(system daemon) service:
>>>systemctl status bluetooth.service
The daemon can be reloaded with the following commands:
>>>systemctl restart bluetooth
3. HCI UART bring-up
Use hciattach command to attach the serial device via HCI UART to the BlueZ stack.
>>>sudo hciattach /dev/ttyUSB0 -t 10 any 115200 noflow nosleep
The hciattach utility tries to send a HCI reset to the device via the HCI UART. Check the dmesg logs to see the status of HCI reset. If a reset timeout is happening, do a manual reset of the device while the reset commands are being send to the device by the host machine.
Once successful, you are ready to send the hci command using the hcitool utility.
The following picture shows dmesg logs for hciattach. Here, timeout is happening when host tries to send a HCI reset. This can be resolved by manually resetting the device.
Use the following command to check the hci devices
The following diagram shows the commands to send to determine whether the device has been attached to the hci interface generated in the host.
It also gives further details like the BD address and the traffic the is going in the BT device.
For scanning LE devices:
>>> hcitool -i hci1 lescan
LE SCAN initiated in the interface hci1 created for the new device.
HCI command Injection
For sending specific HCI commands, use the following format:
>>>hcitool cmd <ogf> <ocf> [parameters]
eg: Write Local Name Command (ocf :HCI_Write_Local_Name -- 0x0013 & ogf: 0x03 )
For HCI Control and Baseband commands <ogf> is 0x03
(ABCD -- 0x41 0x42 0x43 0x44 )
The following picture show the usage of the hcitool cmd
Package Versionv5.4.18-2020_0925Release Date2020-09-25DescriptionYocto is a widely used custom embedded Linux distribution creation tool. The Yocto pr...
Yocto is a widely used custom embedded Linux distribution creation tool. The Yocto project provides a flexible set of tools and a space where embedded developers worldwide can share technologies, software stacks, configurations, and best practices to create tailored Linux images for embedded and IoT devices, or anywhere a customized Linux OS is needed. This release allows you to enable the Cypress Wi-Fi connectivity software in your Yocto projects, making it easier than ever to get started quickly with the Cypress connectivity software.
IntroductionThis Blog gives an insight into compilation of Fmac source for an android platform.ProcedureCross-compilation tool for building the fmac s...
This Blog gives an insight into compilation of Fmac source for an android platform.
Cross-compilation tool for building the fmac source for android is obtained by fetching the Android NDK package. The Native Development Kit (NDK) along with the Android studio is a set of tools that allow you to leverage C and C++ code in your Android apps. You can use it either to build from your own source code, or to take advantage of existing prebuilt libraries.
However the toolchain provided in the package can be used independently for compiling the FMAC source.
Download the NDK package for your machine type from the following link:
Multiple regulatory and wireless test tools exist from Cypress, module partners and third parties which can help customers get to production. These to...
Multiple regulatory and wireless test tools exist from Cypress, module partners and third parties which can help customers get to production. These tools are required for testing on both RTOS and Linux/Android based customer platforms. The tools themselves often exist as either firmware that runs within the customer’s embedded design, or, as a client that runs on the customer’s PC and utilizes an interface exposed on the customer design; several choices below contain both elements.
The following is a list of the most common tools used by Cypress Wi-Fi/Combo and Bluetooth standalone customers:
WL Client utility which interfaces to MFG FW externally through a Linux or PC host
Cypress WLAN client utility (“WL”) is intended for developers who are evaluating and/or testing the Cypress CYW43xx combo and embedded Wi-Fi chip solutions. The WL Client is provided in binary within the FMAC/Linux release and runs from a terminal emulation program (e.g. bash) that is connected to the Android or Linux device's console port. Under RTOS, the provided x86 based executable (WICED/ModusToolbox/STM CubeMX) runs on a PC via a command shell and communicates to the target platform over a standard connection provided on the device under test. Note that for a non-standard Linux and Android platform, the source needs to be re-compiled by Cypress or the module partner for the target ARM Cortex A-Class platform. Often, a successful recompile of WL is not possible and it is advised for the field team to work with the business unit to process an SLA (Software License Agreement) and NDA (Non-Disclosure Agreement) so that WL source can be provided to the customer. Note that the version of WL provided must match the release of the MFG FW being utilized for the testing.
Manufacturing and Test Application (“MFG FW”)
MFG FW runs on the customer design (Wi-Fi Radio) as an embedded application and processes the full suite of “WL” Wi-Fi configuration and test commands sent by the WL Client. Under the Linux/FMAC platform, MFG FW is provided by the module partner. Under RTOS, MFG FW source is provided within the WICED SDK and can be recompiled for other ARM Cortex M-Class processor platforms such at ModusToolbox and ST Micro’s CubeMX. Work is underway to evaluate new methods of distribution for this tool, including a version which eliminates the need for a client. Note that the MFG FW version being used must match the release of WL being utilized for the testing.
WICED Manufacturing Bluetooth Test (“WMBT”)
WICED based Bluetooth testing over HCI on both standalone Bluetooth controllers and Wi-Fi/Bluetooth Combo devices. The WICED Manufacturing Bluetooth test tool (WMBT) is used to test and verify the RF performance of the Cypress SoC Bluetooth BR/EDR/LE devices under WICED. For LE tests, standard procedures from the Bluetooth Core Specification are utilized and support for vendor specific commands (VSCs) is also included. Each test sends a Host Controller Interface (HCI) or WICED HCI command from an application (running on PC) to the device (running an application setup to process the commands) and then waits for an HCI Command Complete event from the device. Within WMBT under WICED, all ancillary dependencies on files such the HCD are handled within the SDK itself.
OS agnostic (Linux/RTOS) graphical user interface (GUI) version of WMBT. As such, is also used to test and verify the RF performance of the Cypress SoC Bluetooth BR/EDR/LE devices. For LE tests, standard procedures from the Bluetooth Core Specification are utilized and support for vendor specific commands (VSCs) is also included. Each test sends a Host Controller Interface (HCI) command from an application (running on PC) to the device (running an application setup to process the commands) and then waits for an HCI Command Complete event from the device. Note that within CyBluetool, all ancillary dependencies on files such the HCD are handled externally and module partners will provide the necessary files to their customers for the specific module under test.
CySmart is a Bluetooth LE host emulation tool for Windows PCs. The tool provides an easy-to-use Graphical User Interface (GUI) to enable customers to test and debug their Bluetooth LE peripheral applications. Requiring a Cypress BLE dongle to emulate a host device in the GAP central role, the tool supports device discovery, connection establishment, pairing and bonding, and provides the ability to access the Generic Attribute Profile (GATT) server database for the PRoC BLE, PSoC4 BLE and the PSoC6 BLE devices as well as the EZ-BLE family of modules.
HCITool Similar to Cypress’ own CyBluetool, HCITool is BlueZ’s (Third Party) OS agnostic HCI based Bluetooth configuration and test tool. Like the other Bluetooth tools described earlier, the tool also requires access to an HCI port on the customer design to send/receive both standard HCI and VSC commands. Very popular choice on Linux and RTOS based customer platforms.
Cypress is responsible for the maintenance and support of the Cypress based tools. Third parties assume a similar responsibility for their own tools, and Cypress may provide user guides for these tools if it benefits customers. Except for third-party tool, Cypress also is responsible for the distribution of all Bluetooth based configuration and test tools noted in the previous section (i.e. Websites, within SDKs/Software Releases, etc.). Cypress relies on module partners and our own FAEs to distribute MFG FW and the WL Client to their customers.
In addition to the tools noted above, there are multiple documents available from Cypress and our module partners that customers can leverage to navigate the regulatory/test process.
Some of the more utilized documents include:
Cypress Wi-Fi Regulatory Manual: https://www.cypress.com/file/453451/download Comprehensive Regulatory Guide which includes a regulatory power template that customers should fill out with their designated test house and submit to Cypress L1 after first consulting the module partner they’ve selected. OTP Programming and NVRAM Development in SDIO Mode: https://www.cypress.com/documentation/application-notes/an214808-otp-programming-and-nvram-development-sdio-mode Describes the method for creating an nvram.txt file, which is then used to test a new board design, optimize NVRAM values, and program the one-time programmable (OTP) nonvolatile memory in a device that uses a WLAN SDIO host interface. Customers should consult with their module partner and regulatory house before modifying any of the values within the nvram.txt file. WICED™ Manufacturing Test User Guide: https://www.cypress.com/file/385966/download For customers going into production, this document explains how to setup production and regulatory testing under WICED by processing WL commands. Commonly used in conjunction with the WL Tool for Embedded 802.11 Systems guide below.
WL Tool for Embedded 802.11 Systems: CYW43xx Technical Information:https://community.cypress.com/docs/DOC-2360 Also for customers going into production, this guide provides a detailed WL command reference which can be leveraged under both Linux/Android and RTOS platforms.
HCI-Based Bluetooth Testing https://community.cypress.com/docs/DOC-19558 The purpose of this document is to demonstrate the use of common HCI commands needed for Bluetooth radio testing using third-party tool like BlueZ’s HCITool. Note that the commands contained within this document are intended for use with Cypress' own Bluetooth BR/EDR and BLE Controllers and not our competitors devices.
In addition to the list above, there are also regulatory/test documents included within software releases/SDKs (WMBT for Bluetooth testing), provided by third party tool/stack vendors such as BlueZ (HCITool for BT testing)
Cypress or the module partner remains responsible for the regulatory/test documents each produces and provides to customers. Each party provides feedback to one another on the respective documentation, which provides a path for continuous improvement.
Package Versionv5.4.18-gamera-android-rc2Release Date2020-07-17DescriptionCypress’ first Android release for the broad market based on the Google 2019...
Cypress’ first Android release for the broad market based on the Google 2019 Android 10 release. This release has been qualified on the NXP iMX8 platform. Customers wishing to leverage the Android Open Source Platform now have an out of the box Android solution for Cypress’s connectivity parts.
Cypress’ connectivity software solutions for Arm® Cortex-A class host processors are designed to support your product’s lifecycle journey from design ...
Cypress’ connectivity software solutions for Arm® Cortex-A class host processors are designed to support your product’s lifecycle journey from design and part selection through product maintenance, including complex regional radio spectrum regulatory compliance and Wi-Fi Alliance interoperability certifications you need to bring your product to the market quickly.
Package Versionv5.4.18-2020_0625Release Date2020-06-25DescriptionYocto is a widely used custom embedded Linux distribution creation tool. The Yocto pr...
Yocto is a widely used custom embedded Linux distribution creation tool. The Yocto project provides a flexible set of tools and a space where embedded developers worldwide can share technologies, software stacks, configurations, and best practices to create tailored Linux images for embedded and IoT devices, or anywhere a customized Linux OS is needed. This release allows you to enable the Cypress Wi-Fi connectivity software in your Yocto projects, making it easier than ever to get started quickly with the Cypress connectivity software. Bluetooth in Yocto will be released in the near future.