Wi-Fi Combo Forum Discussions
Hi
I am looking for a module to connect to a USB camera and to stream the video data (or the complete USB protocol?) via network. Some of the modules seem to have Wifi and USB hardware, but how complicated is it to "connect" them to each other? Are there any SDK function you can point me at or even some code samples for something similar?
My intention is to build a head-mounted eye-tracker and I would therefore prefer small and lightweight modules. Do you have any recommendations?
Best
Thomas
Show LessWe are using a murata SN8000 module connected via SDIO operating with 48 Mhz to a Cortex-M3 LPC1837.
We are using a WWD ported from the SDK 3.1.2 (including matching patch from murata).
We are using a custom PCB with SPI Flash, SDRAM, MCU and SN8000.
The MCU is operating at 180 MHz.
We are using an older version of FreeRTOS and LWIP (not taken from the SDK).
The SDIO interrupt has the highest interrupt priority.
The WWD task has the highest task priority.
There should be no long interrupt processing during the test.
During synthetic tests we experience reproducible IOCTL timeouts after WLC_E_LINK and WLC_E_DEAUTH_IND events for some seconds.
We use two devices for this test.
One device (called "AP") repeatedly starts a wireless access point on a random channel, keeps it open for some seconds and closes the AP after some seconds.
The other device (called "STA") tries to connect to the access point and on link loss it always tries to reconnect to the AP.
On a successful connection, our application registers for the WLC_E_LINK and WLC_E_DEAUTH_IND events.
Usually the WWD driver receives the link loss event from the WLAN module when the AP stops and switches to a different channel.
Our code then calls wwd_management_set_event_handler() to unregister from the WLC_E_LINK and WLC_E_DEAUTH_IND events and then wwd_wifi_leave() to disassociate from the AP.
This procedure works in most cases without problems.
If we send lots of UDP datagrams from "AP" to "STA" during the time the access point is started, in rare cases the WLAN module does not respond (WWD_TIMEOUT) to the IOCTLs while handling the LINK_LOSS event.
wwd_management_set_event_handler() and wwd_wifi_leave() both return WWD_TIMEOUT.
Further communication with the WLAN module is possible after some time.
When trying to reconnect to the AP after wwd_wifi_leave() returned with WWD_TIMEOUT (by repeating wwd_wifi_join() until success), the WLAN module sometimes does still not respond to the IOCTLs in wwd_wifi_join() for up to 3-5 seconds (or up to 6 IOCTLs).
After some time the WLAN module starts responding again and returns all "previous" IOCTL responses (wwd_sdpcm_process_rx_packet() reports "Received a response for a different IOCTL - retry" up to 6 times!).
The WLAN module then successfully connnects to the AP again.
How should an application handle link loss events received from the WLAN module?
Are there other events that we could wait for that indicate that the WLAN module
is ready to handle a new connection attempt?
Is our approach of registering the events WLC_E_LINK and WLC_E_DEAUTH_IND for
application purposes ok? Is it ok to unregister these events after one of the
events triggered? Is it ok to call wwd_wifi_leave() afterwards?
More generally speaking:
Are there any known issues that could result in the
WLAN module not responding to IOCTLs for several seconds?
Are there any known issues that could result in multiple replies to IOCTLs being
"stuck" in the WLAN module?
Is there any other way to retrieve a stuck response?
Best Regards,
Michael Liebert
on behalf of David Natwati
Show LessWhile I test AVS in WICED Studio 5.01 using BCM943909WCD1, it fails to start speech request and logs "wiced_audio_init returns 4" as below message.
=============
IPv6 network ready IP: FE80:0000:0000:0000:02A0:50FF:FE7A:89B3
0003 00:00:09.161 Initialize audio PLAYBACK device: ak4954_dac
0004 00:00:09.167 Audio_client: enabling playback support
0005 00:00:09.174 Audio render thread begin
0006 00:00:09.177 Audio client thread begin
0007 00:00:09.181 Begin avs mainloop
0008 00:00:09.185 Connect to host: api.amazon.com, port 443, path /auth/o2/token
0009 00:00:09.192 Attemping DNS lookup for api.amazon.com
0010 00:00:09.347 Using IP address 54.239.29.146
0011 00:00:11.079 Attemping DNS lookup for avs-alexa-na.amazon.com
0012 00:00:11.311 Connecting to 54.239.26.171
0013 00:00:14.283 Establishing downchannel stream...
0014 00:00:14.288 Finished sending downchannel message...
0015 00:00:14.757 Received a header for stream 3, flags 0x04
0016 00:00:14.762 Stream 3 received a response status of 200
0017 00:00:14.768 Sending initial synchronize state...
0018 00:00:20.440 Received a header for stream 5, flags 0x05
0019 00:00:20.445 Stream 5 received a response status of 204
0020 00:00:20.451 Connection to AVS established
0021 00:00:30.347 Starting speech request...
0022 00:00:30.352 wiced_audio_init returns 4
0023 00:00:30.356 Unable to initialize/configure audio RX (4)
0024 00:00:30.361 Unable to start audio RX (4)
0025 00:00:30.365 wiced_audio_init returns 4
0026 00:00:30.369 Unable to initialize/configure audio RX (4)
0027 00:00:30.374 wiced_audio_init returns 4
0028 00:00:30.378 Unable to initialize/configure audio RX (4)
0029 00:00:30.384 wiced_audio_init returns 4
0030 00:00:30.388 Unable to initialize/configure audio RX (4)
0031 00:00:30.393 wiced_audio_init returns 4
0032 00:00:30.397 Unable to initialize/configure audio RX (4)
0033 00:00:30.402 wiced_audio_init returns 4
0034 00:00:30.406 Unable to initialize/configure audio RX (4)
=============
For triggering speech request, I push the button, SW4(PLAY/PAUSE).
What is the cause of this failure and how I can correct it?
Show LessHello All,
We are working on OTA.
We used:
SDK : Wiced SDK 3.7.0-3
App: Snip.OTA_fr
Issue:
1> OTA upgrade fail when ota firmware file size greater than DCT_APP0 size.
Debug:
1> We debug the code, with taking two different ota_firmware file.
a> File 1: size 451KB
Result: OTA Upgrade successfully and worked fine
conclution: ota file1 size less than DCT_APP0 size
DCT_APP0_Size = 462848
File_size = 461612
DCT_APP0_Size > File_size @ Result: Working fine
b> File 2: size 548KB
Result: OTA Upgrade successfully and worked fine
conclution: ota file2 size less than DCT_APP0 size
DCT_APP0_Size = 462848
File_size = 560236
DCT_APP0_Size < File_size @ Result: Fail
c> Debug Code Detail:
File Location: WICED-SDK\libraries\daemons\ota_server
Function: static int process_upgrade_chunk( ota_http_request_message_t* request, wiced_tcp_stream_t* stream, void* arg )
-> After Debugging all this ,
we are facing issue regarding file size
We need help to solve such kind of file size issue ,
so we have some of the doubt:
1> how we can ota upgrade with file size more than OTA_APP0_Size ?
2> Can we increase area of OTA_APP0_size ? if yes so How we can ?
Thanks & Regards,
Chintan Patel
Show LessI tried to make the changes with reference to the link---Creating and/or Editing Debug Configurations .But I am getting error like "no source available".I have attached the screen shot .Can anyone help me how to resolve this issue or else how to setup debug environment completely.
I am using wiced sdk 4.1.0
Show LessI am using the Avnet IoT starterkit containing a module wth BCM4343 + STM32F411.
WICED SDK 4.1 on Windows10.
Is it possible to display the internal module registers by name in the WICED SDK debug environment (ADC, DMA etc)?
The "modules" window in the WICED SDK remains empty, while the original STM and other Eclipse tools allow module register views.
Thanks for any idea on how to implement this feature in the WICED SDK!
Klaus
Show LessToday Cypress announced an updated version of its turnkey development platform for the IoT that simplifies the integration of wireless connectivity into smart home applications. The Wireless Internet Connectivity for Embedded Devices (WICED®) Studio platform now adds iCloud remote access support for Wi-Fi-based accessories that support Apple® HomeKit™. Developers can leverage iCloud support in the WICED software development kit (SDK) and Cypress’ CYW43907 Wi-Fi® MCU to create hub-independent platforms that connect directly to Siri voice control and the Apple Home app remotely.
Learn More: http://www.cypress.com/news/cypress-streamlines-wireless-design-smart-home-applications-addition-icloud-support-iot.
Show LessHi,
We are developing our system on STM32L476G mcu with BCM43438 module. We downloaded WICED Studio, but I can't find any code for BCM4343x + STM32L4xx, (the most similar platform is BCM4343x + STM32F4xx).
After studing WICED Studio, there seems be many platform-dependant files, for example:
WICED\platform\MCU\STM32L4xx\*
WICED\platform\MCU\STM32L4xx\peripherals\*
platforms\BCM43438_STM32L4xx\*
We choose BCM43438 + STM32L4 for the reason of ultra low power consumption, and it is an amazing combination for IOT applications. How can I get these platform-dependant code for STM32L4xx?
Thanks.
Show LessI found that apps/waf/sflash_write frequently fails when building using download_apps on WICED 5.0.0. Unfortunately no error is displayed on the console when this happens, so you would have to look at the build/openocd_log.txt file to see that the file was not completely written. Oddly I noticed that if a system image file had been successfully written to the exact same location previously and hadn't been changed, the file was still bootable when an error occurred that aborted the sflash write. I ended up erasing the the sflash chip after each test and then the system image was not bootable if the sflash write was aborted on the next test. This meant the sflash was not being corrupted, it just wasn't being completely written.
In order to see that the sflash write operation failed on the console, I made changes to the apps/waf/sflash_write/sflash_write.tcl file and to the tools/makefiles/wiced_apps.mk file. I would have liked to have the build process abort displaying an error message when the TCL script failed. The script was already executing exit -1 commands when it aborted, which in my opinion should have caused the build to fail. I couldn't figure out how to get the build to fail on my Windows 10/WICED 5.0 setup. Instead I got the TCL script to display an error message on the console. When wiced_apps.mk runs the TCL script both stdout and stderr are redirected to the log file, so none of the output shows on the console. The TCL script calls the halt command a lot and it sends output to stderr every time. I couldn't figure out how to redirect that output to stdout, so I redirected all output from the TCL script to stderr except for output regarding an error that aborts the program. I used stdout for that. This is obviously backwards. In wiced_apps.mk I only redirect output stderr output from each call of the TCL script to the log file and output to stdout will show up on the console.
In sflash_write.tcl:
I changed all puts "..." calls to puts stderr "..."
Then before each call to exit -1 I added a puts "Sflash write failed! Please try again!"
In wiced_apps.mk:
I changed each of the rules that calls the TCL script so that only stderr(2) was redirected into the log file.
With,
DOWNLOAD_LOG := >> $(OPENOCD_LOG_FILE)
I changed,
$(DOWNLOAD_LOG) 2>&1
into,
2$(DOWNLOAD_LOG)
Example:
FR_APP_DOWNLOAD: $(FR_APP_DOWNLOAD_DEPENDENCY)...
$(call CONV_SLASHES,$(OPENOCD_FULL_NAME)) ... -c "sflash_write_file $(FR_APP)..." -c shutdown $(DOWNLOAD_LOG) 2>&1
became,
FR_APP_DOWNLOAD: $(FR_APP_DOWNLOAD_DEPENDENCY)...
$(call CONV_SLASHES,$(OPENOCD_FULL_NAME)) ... -c "sflash_write_file $(FR_APP)..." -c shutdown 2$(DOWNLOAD_LOG)
The ultimate result of carefully examining the communication between the TCL script and the sflash_write.c app that the script loads and runs in RAM was that a minor change could fix most of the problem. Both the app and the TCL script share access to the same block of RAM that is used for passing information back and forth. In sflash_write.c this is called the data_transfer struct. The struct contains a 16KB data array and meta data describing where and how much of the array should be saved to the sflash. All I had to do was add the volatile keyword to the definition of each meta data data_transfer struct attribute in order to fix most of this problem.
In apps/waf/sflash_write/sflash_write.c:
I replaced,
typedef struct
{
unsigned long size;
unsigned long sflash_address;
unsigned long command;
mfg_spi_flash_result_t result;
unsigned char data[__JTAG_FLASH_WRITER_DATA_BUFFER_SIZE__];
} data_transfer_area_t;
with,
typedef struct
{
volatile unsigned long size;
volatile unsigned long sflash_address;
volatile unsigned long command;
volatile unsigned long result;
unsigned char data[__JTAG_FLASH_WRITER_DATA_BUFFER_SIZE__];
} data_transfer_area_t;
The device I was originally working on had a custom Murata MCU and a Winbond sflash chip. Since it was unlikely Cypress or anyone else was likely to get one of those boards I reproduced the problem on an Inventek ISMART Arduino Shield (ISM43340) with a Macronix sflash chip. The change above completely fixed the problem on the ISMART board, but when I went back to our custom board I still saw sflash errors on rare occasions although it seemed to be a lot less frequently.
Does anyone have any ideas I might try on our original configuration that might get the problem to completely go away?
Show Less