Wi-Fi Combo Forum Discussions
This Forum warrants a thread specifically for those wishing to use WiFi SoCs and/or WICED SDK/APIs on Linux. So, here it is.
I have been wondering if a Linux port of the WICED SDK exists? Have an email into Broadcom about this and will update this post after I hear from them.
Read an interesting post in this forum (http://community.broadcom.com/message/1447#1447) that WICED SDK was created to deal with "non-Linux" based uCs and O/Ss, pointing out that a opensource Broadcom WiFi Linux Driver already exists (brcmfmac and brcmsmac). This got me thinking.
I was about to try and port the WICED SDK to Raspbian Linux (custom linux distribution for Raspberry Pi EVB which is based on the BCM2835).
Here are some thoughts on what may be to gained from a WICED Linux port versus a standard Linux WiFi SoC driver on a Linux platform:
1) O/S independence for your application code (by using the WWD (WICED WiFi Driver) layer). Then, later on, it would be easier to migrate from Linux to an RTOS of your choosing (FreeRTOS and ThreadX are available by default).
2) Looking at "..Wiced-SDK-2.4.0WICED-SDKDocWICED-SDK-Software-Stack.pdf":
a) Is OTA ("Over The Air" upgrade) suppored with the standard open source Broadcom Linux driver (which the open source community turned into a "brcmfmac" driver for SDIO and USB interfaces)?
b) Do the following WICED APIs (not sure yet if they work through WWD calls) have equivalent Linux APIs/calls?:
Note: I know Linux does have APIs and drivers for all of the following. But, you may have to do extra work to use APIs different than those defined in the WICED SDK?
1. MCU powersave
2. Wi-Fi Powersave (I have heard that the Linux driver has issues with low power stuff, maybe it has been fixed already?)
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.
3. I2C API
4. ADC/PWM API
Does anyone know if a WICED SDK porting guide exists? If not, I may try and create one and post it.
Show LessThe WICED SDK includes an open source build system and toolchain based on GNU make (native IAR support coming soon!).
http://www.broadcom.com/products/wiced/wifi/
When is native IAR support scheduled to be available?
Show LessHi,
If i would like to debug the entire system memory usage, how would i do that? I was not able to find related API or defines that enable me to get or print logs that shows current system memory status.
Thanks in Advance.
Show LessRSSI or Received Signal Strength Indicator is the measurement of the power present in a received radio signal.
Use the wiced_wifi_get_associated_client_list( ) function to get the list of stations connected to the WICED SoftAP. The MAC address of each connected client is stored in a wiced_mac_t type structure.
wiced_mac_t is defined as:
typedef struct
{
uint8_t octet[6]; /**< Unique 6-byte MAC address */
} wiced_mac_t;
The mac address can then be passed to the function wiced_wifi_get_ap_client_rssi( ):
int32_t rssi = 0;
int client_number = 0;
wiced_result_t result;
struct
{
int count;
wiced_mac_t mac_list[MAX_SOFT_AP_CLIENTS];
} client_info;
/* Get the list of the stations connected to Wiced soft AP */
result = wiced_wifi_get_associated_client_list( &client_info, sizeof(client_info) );
if ( result == WICED_SUCCESS )
{
for ( client_number=0; client_number < client_info.count; client_number++ )
{
/* Get the RSSI of every client currently connected to the soft AP */
result = wiced_wifi_get_ap_client_rssi(&rssi, &client_info.mac_list[client_number]);
if ( result == WICED_SUCCESS )
{
WPRINT_APP_INFO(("| %d | %02x:%02x:%02x:%02x:%02x:%02x | %3lddBm |\r\n",
client_number,
client_info.mac_list[client_number].octet[0],
client_info.mac_list[client_number].octet[1],
client_info.mac_list[client_number].octet[2],
client_info.mac_list[client_number].octet[3],
client_info.mac_list[client_number].octet[4],
client_info.mac_list[client_number].octet[5],
rssi ));
}
}
}
API Details:
wiced_result_t wiced_wifi_get_associated_client_list ( void * client_list_buffer, uint16_t buffer_length ) | ||
Gets information about associated clients. Note: Only applicable if softAP interface is up | ||
Parameters | I/O | Description |
client_list_buffer | out | Pointer to a buffer that will be populated with a variable length structure defined by wiced_maclist_t. |
buffer_length | in | Length of the buffer. |
Return | WICED_SUCCESS if client list retrieval is successful. |
wiced_result_t wiced_wifi_get_ap_client_rssi( int32_t* rssi, wiced_mac_t* client_mac_addr ) | ||
Retrieve the latest RSSI value of the AP client. | ||
Parameters | I/O | Description |
rssi | out | Latest RSSI of the client. |
client_mac_addr | in | Mac address of the AP client |
Return | WICED_SUCCESS if RSSI is successfully retrieved. |
Use wiced_wifi_get_associated_client_list() to get the list of stations connected to the WICED soft AP. The MAC address of each connected client is stored in a wiced_mac_t type structure.
wiced_mac_t is defined as:
typedef struct
{
uint8_t octet[6]; /**< Unique 6-byte MAC address */
} wiced_mac_t;
Here's sample code:
struct
{
int count;
wiced_mac_t mac_list[MAX_SOFT_AP_CLIENTS];
} client_info;
result = wiced_wifi_get_associated_client_list( &client_info, sizeof(client_info) );
The mac address can be derived from client_info.mac_list[client_number].octet[0-5]
Show LessI have BCM9WCDPLUS114 board, it have embedded a Bluetooth module.
Im interested in this BT module, can I purchase this module from Broadcom or your distributor? Whats the P/N?
Show Less