/wiced-history

Public versions of WICED since 2.4.0

Primary LanguageCOtherNOASSERTION

=====================================================================
Broadcom WICED Software Development Kit 3.7.0 - README
=====================================================================

The WICED SDK provides a full compliment of application level APIs, 
libraries and tools needed to design & implement secure embedded wireless
networking applications. 

Major features of the WICED SDK include ...
  - Low-footprint embedded Wi-Fi Driver with Client (STA), softAP and Wi-Fi Direct
  - Wi-Fi <-> Bluetooth SmartBridge 
  - Various RTOS/TCP stack options including
    - ThreadX/NetX (IPv4), ThreadX/NetX Duo (IPv6), FreeRTOS/LwIP (IPv4)
  - Support for various Broadcom Wi-Fi & combo chips
    - BCM4390 Integrated Apps + Wi-Fi SoC
    - BCM4390X (43909, 43907 and 43903) Integrated Apps + Wi-Fi SoC
    - BCM43362 Wi-Fi SoC
    - BCM43364 Wi-Fi SoC
    - BCM43341 Wi-Fi SoC
    - BCM43438 Wi-Fi SoC
    - BCM43341 Wi-Fi + Bluetooth combo SoC
  - Support for various MCU host platforms
    - ST Microelectronics : STM32F2xx, STM32F4xx
    - Atmel : AT91SAM4S16B
    - Freescale : K61
    - NXP : LPC17xx, LPC18xx
  - RTOS & Network abstraction layer with a simple API for UDP, TCP, HTTP, HTTPS communications
  - SSL/TLS Security Library integrated with an HTTPS library for secure web transactions
  - WICED Application Framework including Bootloader, OTA Upgrade and Factory Reset
    - Second flavor of OTA and Factory Reset (called OTA2)
  - Automated Wi-Fi Easy Setup using one of several methods
    - SoftAP & Secure HTTP server
    - Wi-Fi Protected Setup
    - Apple Wireless Accessory Configuration (WAC) Protocol
  - Simple API to provide access to MCU peripherals including UART, SPI, I2C, Timers, RTC, ADCs, DACs, etc
  - Support for multiple toolchains including GNU and IAR
  - Support for Apple AirPlay and HomeKit
 
The WICED SDK release is structured as follows:
  apps          : Example & Test Applications
  doc           : API & Reference Documentation
  include       : WICED API, constants, and defaults 
  libraries     : Bluetooth, daemons, drivers, file systems, inputs, and protocols
  platforms     : Evaluation board support package, including Eval Board and Module Schematics
  resources     : Binary and text based objects including scripts, images, and certificates
  tools         : Build tools, compilers, debugger, makefiles, programming tools etc.
  tools/drivers : Drivers for WICED evaluation boards
  WICED         : WICED core components (RTOS, Network Stack, Wi-Fi Driver, Security & Platform libraries)
  WICED/WWD     : The WICED Wi-Fi Driver (equivalent to the Wiced directory in previous SDK-1.x releases) 
  README.txt    : This file
  CHANGELOG.txt : A log of changes for each SDK revision
 

Getting Started
---------------------------------------------------------------------
If you are unfamiliar with the WICED SDK, please refer to the 
WICED Quickstart Guide located here: <WICED-SDK>/doc/WICED-QSG2xx-R.pdf
The WICED Quickstart Guide documents the process to setup a computer for
use with the WICED SDK, IDE and WICED Evaluation Board. 

The WICED SDK includes lots of sample applications in the <WICED-SDK>/Apps directory.
Applications included with the SDK are outlined below.

 apps/demo : Demonstration Applications
   - Applications demonstrating how to integrate various WICED API features 
   
 apps/snip : Application Snippets
   - Various applications to demonstrate usage of individual WICED APIs        

 apps/test : Test & Utility Applications
   - console      : Provides various test features including Iperf for throughput testing 
   - mfg_test     : Manufacturing Test application to enable radio performance and certification testing

 apps/waf  : WICED Application Framework
   - bootloader   : Bootloader application used in conjunction with the WICED Application Framework
   - sflash_write : Serial flash application used to write data into external serial flash
   
 apps/wwd : Wiced Wi-Fi Driver Applications to demonstrate advanced usage of the low layer Wi-Fi driver
    
To obtain a complete list of build commands and options, enter the following text in the
base WICED SDK directory on a command line:
$> make

To compile, download and run the Wi-Fi scan application on the Broadcom BCM943362WCD4 evaluation platform, 
enter the following text on a command line (a period character is used to reference applications 
in sub-directories) :
$> make snip.scan-BCM943362WCD4 download run

The default RTOS and Network Stack components are defined in the WICED configuration makefile  
at <WICED-SDK>/tools/makefiles/wiced_config.mk. The default I/O bus component is defined in the platform
makefile at <WICED-SDK>/platforms/<Platform>/<Platform>.mk. Defaults may be bypassed by specifying the 
component as part of the build string if desired as shown in the following example.
$> make snip.scan-BCM943362WCD4-FreeRTOS-LwIP-SDIO download run
       
Source code, headers and reference information for supported platforms are available 
in the <WICED-SDK>/platforms directory. Source code, headers, linker scripts etc that 
are common to all platforms are available in the <WICED-SDK>/WICED/platform directory.


Supported Features
---------------------------------------------------------------------
Wi-Fi & Bluetooth SmartBridge Features
 * Scan and associate to Wi-Fi access points
 * Authenticate to Wi-Fi Access Points with the following security types:
   Open, WEP-40, WEP-104, WPA (AES & TKIP), WPA2 (AES, TKIP & Mixed mode)
 * AP mode with support for security types : Open, WPA, WPA2
 * Concurrent AP & STA mode (AP mode limited to 3 concurrent connected clients)
 * Wi-Fi Direct
 * WPS 1.0 & 2.0 Enrollee & Registrar (Internal Registrar only)
 * Wi-Fi APIs : Network keep alive, packet filters
 * Host <-> Wi-Fi SDIO & SPI interface
 * Bluetooth SmartBridge with multiple connections including the
   following features: Whitelist, Bond Storage, Attribute Caching, 
   GATT Procedures, Configurable Maximum Concurrent Connections, Directed 
   Advertisements, Device address initialisation, Passkey entry
 * Host <-> Wi-Fi via Memory to Memory DMA engine

Bluetooth Features
 * Bluetooth Dual-mode stack support - classic BR/EDR and BLE modes
   - Also available BLE-only stack library with reduced memory footprint
 * Generic Attribute (GATT) profile
   - Sample BLE applications - Hello sensor and Proximity reporter
 * A2DP v1.2 (Advanced Audio Distribution Profile)
   - A2DP Sink Functionality
   - SBC Decoder
 * AVRCP (Audio/Video Remote Control Profile)
   - AVRCP Controller v1.3
   - AVRCP Target v1.5 (Absolute Volume)
 * Man-Machine-Interface via buttons
   - AVRCP play/pause/Skip-forward/Skip-backward
   - A2DP Volume Up/Down
 * SDAP (Service Discovery Application Profile)
 * GAP (Generic Access Profile)


RTOS & Network Stack Support
 * FreeRTOS / LwIP    (full source)
 * ThreadX  / NetX    (object file; free for use with WICED *ONLY*)
 * ThreadX  / NetXDuo (object file; free for use with WICED *ONLY*)

Networking Features (IPv4 & IPv6)
 * ICMP (Ping)
 * ARP
 * TCP
 * UDP 
 * IGMP (Multicast)
 * IPv6 NDP, Multicast
 * DHCP (Client & Server)
 * DNS (Client & Redirect Server)
 * mDNS/DNS-SD Zeroconf Network Discovery (Broadcom Gedday)
 * TLS1.0/1.1/1.2 (object file with host abstraction layer; free for use with WICED *ONLY*)
 * HTTP / HTTPS (Client & Server)
 * SNTP
 * SMTP
 * SSDP

Application Features
 * Apple AirPlay (requires Apple authentication co-processor; available to Apple MFi licensees *ONLY*) 
 * Apple HomeKit (available to Apple MFi licensees *ONLY*)
 * Apollo Wireless Audio distribution
 * Bluetooth Audio
 * Peripheral interfaces
   * GPIO
   * Timer / PWM
   * UART
   * SPI
   * I2C
   * RTC (Real Time Clock)
 * Xively "Internet of Things" protocol
 * COAP (Constrained Application Protocol)
 * MQTT (MQ Telemetry Transport) with AWS sample application

* WICED Application Framework
   * Bootloader
   * Device Configuration Table (region in flash to store AP, security credentials, TLS certs, serial number, Wi-Fi country code, etc)
   * OTA upgrade
   * Factory reset
   * Automated configuration via softAP & webserver
   * Apple Wireless Accessory Configuration (WAC) protocol (available to Apple MFi licensees *ONLY*)
   * System Monitor to manage the watchdog

Toolchains
 * GNU make
 * IAR

Hardware Platforms
 BCM43362
   * BCM943362WCD4  : Broadcom WICED Module with STM32F205 MCU mounted on BCM9WCD1EVAL1
   * BCM943362WCD6  : Broadcom WICED Module with STM32F415 MCU mounted on BCM9WCD1EVAL1
   * BCM943362WCD8  : Broadcom WICED Module with Atmel SAM4S16B MCU mounted on BCM9WCD1EVAL1
   * BCM9WCDPLUS114 : WICED+ Eval Board (includes BCM43362+STM32F205 WICED+ Module and BCM20702 Bluetooth module)
   * BCM9WCD1AUDIO  : Broadcom WICED Audio Evaluation Board (includes BCM43362, STM32F415, WM8533 audio DAC, and BCM20702 Bluetooth module)
 BCM943364
   * BCM943364WCD1  : Broadcom WICED Module with STM32F215 MCU mounted on BCM9WCD1EVAL1
   * BCM943364WCDA  : Broadcom WICED Module with Atmel SAM4S16B MCU mounted on BCM9WCD1EVAL1
 BCM943341
   * BCM943341WCD1  : Broadcom BCM43341-based WICED Module with STM32F417 MCU mounted on BCM9WCD5EVAL1
 BCM94343X
   * BCM943438WCD1  : Broadcom BCM43438-based WICED Module with STM32F411 MCU mounted on BCM9WCD9EVAL1
   * BCM94343WWCD1  : Broadcom BCM4343W-based WICED Module with STM32F411 MCU mounted on BCM9WCD9EVAL1
   * BCM94343WWCD2  : Broadcom BCM4343W-based WICED Module with STM32F412 MCU mounted on BCM9WCD9EVAL1
 BCM4390
   * BCM94390WCD2   : Broadcom BCM4390 SiP-based WICED Module on BCM9WCD3EVAL1
 BCM4390X
   * BCM943907WAE2_1     : Broadcom BCM43907WCD2 SiP-based WICED Module on BCM943907WAE_1
   * BCM943909WCD1_3     : Broadcom BCM43909 SiP-based WICED Module on BCM943909WCDEVAL_2
   * BCM943907AEVAL1F_1  : Broadcom BCM43907WLCSPR SiP-based WICED Module on BCM943907AEVAL1F_1
   * BCM943907WAE_1      : Broadcom BCM43907WCD2 SiP-based WICED Module on BCM943907WAE_1
   * BCM943903WCD1_1     : Broadcom BCM43903 SiP-based WICED Module on BCM9WCD8EVAL1
   * BCM943903PS         : Broadcom BCM43903 Postage Stamp WICED Module on BCM943903WCD2_1
   * BCM943907WCD1       : Broadcom BCM43907WCD1 SiP-based WICED Module on BCM943909WCDEVAL_2
   * BCM943907WCD2       : Broadcom BCM43907WCD2 SiP-based WICED Module on BCM943909WCDEVAL_2

Known Limitations & Notes
---------------------------------------------------------------------

 * Description - WLAN WPS Enrollee association failure
   Workaround  - None
   Resolution  - Targeting to be fixed in the next SDK release

 * Description - Switching back and forth between two A2DP smartphone devices may result in audio not being heard properly
   Workaround  - None
   Resolution  - Targeting to be fixed in the next SDK release

 * Description - With display enabled on 43907WAE running dual_hf_a2dp app, device may reset when selecting a new track from the source playlist during streaming.
   Workaround  - None
   Resolution  - Targeting to be fixed in the next SDK release

 * Description - Bluetooth pairing/connection interoperability issues with BTW and Samsung Galaxy S6
   Workaround  - None
   Resolution  - Targeting to be fixed in the next SDK release

 * Description - Track info update may not be reliable with A2DP and Airplay streaming on 43907WAE with display enabled
   Workaround  - None
   Resolution  - Targeting to be fixed in the next SDK release

 * Description - Intermittent failures during WLAN TCP Tx/Rx throughput tests on BCM94390x platforms
   Workaround  - None
   Resolution  - Targeting to be fixed in the next SDK release

 * Description - TCP Bidirectional WLAN low throughput/stability issues on BCM4343x and 4390x
   Workaround  - None
   Resolution  - Targeting to be fixed in the next SDK release

 * Description - BCM43438 P2P Group Client fails to associate with Group Owner
   Workaround  - None
   Resolution  - Targeting to be fixed in the next SDK release

 * Description - Enterprise Security PEAP Authentication failure to IAS and ACS Radius Servers
   Workaround  - None
   Resolution  - Targeting to be fixed in the next SDK release

 * Description - Enterprise security not supported on 4390x platforms.
   Workaround  - None
   Resolution  - Targeting to be fixed in the next SDK release

 * Description - Factory reset failure after OTA upgrade on 43907 platform
   Workaround  - None
   Resolution  - Targeting to be fixed in the next SDK release

 * Features not yet supported in WICED-SDK-3.7.0
   - IAR Embedded Workspace native support

   - WAC procedure is not supported for AP mode with WEP security

   * Platform Restrictions:
       BCM943341WCD1
         - Wi-Fi Direct not support
         - SPI bus not supported
       BCM4390WCD2
         - Wi-Fi Direct not supported
         - WPS may timeout with some access points
     
   * Wi-Fi Powersave (1)
       The WLAN chip requires an external 32kHz sleep clock input during powersave.
       Platforms that do not support Wi-Fi powersave (per the table above) are
       not capable of driving the WLAN sleep clock. An external 32kHz clock is 
       required for these platforms.


 * libc does not include support for printing uint64_t (long long)
   
 * RTOS detection may cause OpenOCD to crash in the following situation:
     GDB has an elf containing a known RTOS loaded, and your app is using the 
     RTOS memory for other purposes. This situation may occur while debugging 
     the bootloader
     SOLUTION : Remove " -rtos auto " from the <WICED-SDK>/Tools/OpenCD/OpenOCD 
                .cfg file that matches your hardware debugger 
                (ie. BCM9WCD1EVAL1.cfg for WICED Evaluation Boards) 

 * For the 43362, AP mode when running with Wi-Fi Direct is limited to 2 STA clients

 * P2P feature
     If the board's MAC address is locally administered then it needs to be modified
     to become a global address or P2P will not initialize.
     First build the application using the SDK, then find the
     generated_mac_address.txt file and modify the MAC address.
     Ex: Change text "macaddr=02:0A:F7:9c:76:f2" to "macaddr=00:0A:F7:9c:76:f2"
 
Tools
---------------------------------------------------------------------
The GNU ARM toolchain is from Yagarto, http://yagarto.de

Programming and debugging is enabled by OpenOCD, http://openocd.berlios.de

The standard WICED Evaluation board (BCM9WCD1EVAL1) provides two physical 
programming/debug interfaces for the STM32 host microprocessor: USB-JTAG and direct 
JTAG. The WICED Evaluation board driver additionally provides a single USB-serial 
port for debug printing or UART console purposes.

The USB-JTAG interface is enabled by the libftdi/libusb open source driver,
http://intra2net.com/en/developer/libftdi. 
The direct JTAG interface works with third party JTAG programmers including 
Segger, IAR J-Link and Olimex ARM-USB-TINY series. OpenOCD works with the libftdi/libusb 
USB-JTAG driver shipped with the WICED SDK and commercially available JTAG drivers 
available from third party vendors.

Building, programming and debugging of applications is achieved using either a 
command line interface or the WICED IDE as described in the Quickstart Guide.

Instructions to use the IAR toolchain are provided in a README located in the 
following directory: <WICED-SDK>/Tools/IAR 

                     
WICED Technical Support
---------------------------------------------------------------------
WICED support is available on the Broadcom forum at http://forum.broadcom.com/forum.php 

Sign-up is a two-step process: Firstly, sign up to the general Broadcom support 
forum, then apply to be a member of the WICED User Group. Be sure to identify 
yourself to the forum moderator, access to the WICED forum is restricted to 
bona-fide WICED customers only.

Broadcom provides customer access to a wide range of additional information, including 
technical documentation, schematic diagrams, product bill of materials, PCB layout 
information, and software updates through its customer support portal. For a CSP account, 
contact your Broadcom Sales or Engineering support representative.

                     
Further Information
---------------------------------------------------------------------
Further information about WICED and the WICED Development System is
available on the WICED website at http://broadcom.com/wiced or
by e-mailing Broadcom support at support@broadcom.com