WICED™ Studio Forum Discussions
Browse the Community
Featured Discussions
Simultaneous le and br/ edr controller host bluetooth devices on my bluetooth scan what are they used for and what brands are there out there my neighbors wifi went out and 5 Bluetooth speakers were exposed connected to my iphone
Show Less
Here I make 2 devices talking to each other over mDNS multicast protocol.
Device A:
- WICED SDK 6.6.0 based application runs over 4343WA1 wifi chip. Configured FreeRTOS + LwIP.
- The app joined a multicast group (224.0.0.251) and send a packet of igmp v2 member report.
Device B:
- The app running over Linux Ubuntu 20.04 joined the same multicast group by calling
setsockopt(aSocket, IPPROTO_IP, IP_ADD_MEMBERSHIP, ...);
Upon this condition, the devB sends a query packet to the group and the devA receives it. Then, the devA makes a reply packet and send to the same group, but the devB never receives it. Wireshark has no packet dump for the devA reply packet, either.
I put some debug message at the function wwd_thread_send_one_packet() in WWD/internal/wwd_thread.c and make sure the packet transfer to the WiFi chip done well as expected.
Here is my question that is any reason the WiFi chip doesn't send a multicast packet out to the network?
(added: it seems to be none of multicast transmit packets actually going out to the network. The call wwd_wifi_get_counters( STA, &counters ) returns counters.txmulti unchanged at all.)
Your comment is highly appreciated. Thanks.
Show Less
Hello,
I'm currently working with the CYBT-343026-01 Bluetooth module in my custom PCB design, using a dedicated MCU as the host. I've successfully sent the HCI_RESET command [01 03 0C 00] through HCI UART and received the expected response [04 0E 04 01 03 0C 00].
The goal is to establish Serial Port Profile (SPP) communication from MCU to PC via CYBT-343026-01. However, I am uncertain about the next steps for using the module, and I have the following questions:
- Should I enter the application mode or use Bluetooth HCI Mode Interface?
- How to enter the application mode? Should I follow one of the 2 sequences bellow?
Sequence 1:
- Generate application: Use the ModusToolbox to create the .hex file from the RFCOMM-SPP example.
- Program the module: Use WICED Module Programmer to program the module through a USB-to-UART bridge.
- Run the MCU: Start with “CTS is high after the reset” to “apply any stored configuration”
Sequence 2:
- Generate application: Use the ModusToolbox to create the .hex file from the RFCOMM-SPP example.
- Run the MCU: Start with CTS low after the reset to enter download mode
- Program the module: Follow the "Downloading an application to serial flash" procedure described in AIROC™ HCI UART Control Protocol.
I appreciate any guidance you can share. Thank you in advance for your assistance!
Show LessHello everyone,
I need to work on a legacy product that requires WICED SDK 2.4.1 which requires Java JRE 1.6.0, the thing is that our company does not allow us to install Java so I was looking to use Corretto, but even with Corretto 8 or 21 the install of WICED IDE fails.
The question is, how does WICED IDE installer identifies JAVA as installed in the computer?
BTW, I had to use an old installer since I have not seen any installer published on this site.
Show LessHello,
I opened an old program to update my electronic card by reinstalling WICED Studio 6.6.1.
When attempting to program my card with JTAG , I received the following error message:
"Making snip.scan-BCM943362WCD4.bin
Downloading Bootloader ...
"**** OpenOCD failed - ensure you have installed the driver from the drivers directory, and that the debugger is not running **** In Linux this may be due to USB access permissions. In a virtual machine it may be due to USB passthrough settings. Check in the task list that another OpenOCD process is not running. Check that you have the correct target and JTAG device plugged in. ****"
Downloading DCT ...
"**** OpenOCD failed - ensure you have installed the driver from the drivers directory, and that the debugger is not running **** In Linux this may be due to USB access permissions. In a virtual machine it may be due to USB passthrough settings. Check in the task list that another OpenOCD process is not running. Check that you have the correct target and JTAG device plugged in. ****"
Downloading Application ...
"**** OpenOCD failed - ensure you have installed the driver from the drivers directory, and that the debugger is not running **** In Linux this may be due to USB access permissions. In a virtual machine it may be due to USB passthrough settings. Check in the task list that another OpenOCD process is not running. Check that you have the correct target and JTAG device plugged in. ****"
Resetting target"
Could someone please explain the steps to install or test the setup correctly?
Show LessGreetings,
We're having an issue connecting to SOME of our prototype hardware via Seger JLINK SWD mode. It works fine on some boards but not others. While I cannot yet rule out some manufacturing defect - if there is one its not revealed in a 3d x-ray of the PCBA.
Our problem is described in this thread [CYW43907] MCU JTAG Connect Fail but the answer is not very helpful other than we may be looking in the wrong direction.
To be clear, we're using a Murata 1GC module.
Build options are: JTAG=jlink-native JLINK_PATH="/usr/bin/" JLINK_EXE="JLinkExe" JLINK_INTERFACE=SWD download download_apps
Build machine is linux based - but replicated on a Windows 10 platform (with appropriate changes in above for windows machines.
Error text is:
****** Error: Cortex-A/R (connect): Failed to temporarily halting CPU for reading CP15 registers.
Cannot connect to target.
I've tried using JLinkExe from the command line, on a working target:
sean_fendt@ssf:~/src/tf0001$ JLinkExe -device CYW43907 -if SWD -speed 4000
SEGGER J-Link Commander V6.52e (Compiled Oct 16 2019 12:19:21)
DLL version V6.52e, compiled Oct 16 2019 12:19:11
Connecting to J-Link via USB...O.K.
Firmware: J-Link V9 compiled May 17 2019 09:50:41
Hardware version: V9.30
S/N: 59304943
License(s): GDB
VTref=3.354V
Type "connect" to establish a target connection, '?' for help
J-Link>connect
Device "CYW43907" selected.
Connecting to target via SWD
Found SW-DP with ID 0x5BA02477
CoreSight AP[0]: 0x44770002, APB-AP
ROMTbl 0 [0]: 00001003, CID: B105900D, PID:04-008BBC14 Cortex-R4
Found Cortex-R4 r1p4
4 code breakpoints, 4 data breakpoints
Debug architecture ARMv7.0
Data endian: little
Main ID register: 0x411FC144
I-Cache L1: 32 KB, 256 Sets, 32 Bytes/Line, 4-Way
D-Cache L1: 32 KB, 256 Sets, 32 Bytes/Line, 4-Way
TCM Type register: 0x00010001
MPU Type register: 0x00000800
System control register:
Instruction endian: little
Level-1 instruction cache disabled
Level-1 data cache disabled
MPU enabled
Branch prediction enabled
Memory zones:
[0]: Default (Default access mode)
[1]: APB-AP (AP0) (DMA like acc. in AP0 addr. space)
Cortex-R4 identified.
J-Link>q
And on a non-working target:
sean_fendt@ssf:~/src/tf0001$ JLinkExe -device CYW43907 -if SWD -speed 4000
SEGGER J-Link Commander V6.52e (Compiled Oct 16 2019 12:19:21)
DLL version V6.52e, compiled Oct 16 2019 12:19:11
Connecting to J-Link via USB...O.K.
Firmware: J-Link V9 compiled May 17 2019 09:50:41
Hardware version: V9.30
S/N: 59304943
License(s): GDB
VTref=3.353V
Type "connect" to establish a target connection, '?' for help
J-Link>connect
Device "CYW43907" selected.
Connecting to target via SWD
Found SW-DP with ID 0x5BA02477
CoreSight AP[0]: 0x44770002, APB-AP
ROMTbl 0 [0]: 00001003, CID: B105900D, PID:04-008BBC14 Cortex-R4
Found Cortex-R4 r1p4
4 code breakpoints, 4 data breakpoints
Debug architecture ARMv7.0
Found SW-DP with ID 0x5BA02477
CoreSight AP[0]: 0x44770002, APB-AP
ROMTbl 0 [0]: 00001003, CID: B105900D, PID:04-008BBC14 Cortex-R4
Found Cortex-R4 r1p4
4 code breakpoints, 4 data breakpoints
Debug architecture ARMv7.0
****** Error: Cortex-A/R (connect): Failed to temporarily halting CPU for reading CP15 registers.
Found SW-DP with ID 0x5BA02477
CoreSight AP[0]: 0x44770002, APB-AP
ROMTbl 0 [0]: 00001003, CID: B105900D, PID:04-008BBC14 Cortex-R4
Found Cortex-R4 r1p4
4 code breakpoints, 4 data breakpoints
Debug architecture ARMv7.0
Found SW-DP with ID 0x5BA02477
CoreSight AP[0]: 0x44770002, APB-AP
ROMTbl 0 [0]: 00001003, CID: B105900D, PID:04-008BBC14 Cortex-R4
Found Cortex-R4 r1p4
4 code breakpoints, 4 data breakpoints
Debug architecture ARMv7.0
****** Error: Cortex-A/R (connect): Failed to temporarily halting CPU for reading CP15 registers.
Cannot connect to target.
J-Link>q
I have the feeling something is on the edge of working, but so far I don't know what. Extensive experiments with strapping, reset timing, etc has not been revealing. Any thoughts on things to check would be helpful.
Show LessKeep getting those errors when connecting bonded Cysmart to CYW20719:
Status : Connection Terminated Due to MIC Failure (0x3d)
Encryption Status Event: bd ( 5a 10 0c ef 51 aa ) res 8109
The CYW20719 hardware is CYBT_413034_EVAL.
Clients are Samsung TAB E 7” and Tab A 8” tablets with Android 4.4.4, 5.0.1 and 6.0.1
This error happens:
- Always if I pair let say Cysmart client1 on Android device 1 and disconnect, then pair another let say Cysmart client2 on Android device 2 and disconnect, RESET the CYW20719, then when return back to device1 and try to connect to CYW20719 (on Cysmart button on the right side shows ‘Paired’) so just click on the name of the CYW20719 a.k.a ‘Hello’ to reconnect and always (100%) will get ‘Connection Terminated Due to MIC Failure (0x3d)’. So there is some logic to get error in this situation, because ‘hello_sensor’ code stores bonding info only for 1 bonding, but why this error will be MIC – isn’t MIC (message integrity check) something similar to CRC?
- Random – this is the most annoying problem, because it happens when only one Device is bonded and only this device trying to reconnect – sometimes connect, sometimes fail with the same MIC failure error (0x3d). And I tried plenty of different devices and Android OS versions: 4.4.4, 5.0.1, 6.0.1 and happened only with CYW20719.
So I already rise this problem couple months ago, but haven’t receive any solution (neither on any of the bugs I reported so far ☹ ), but at least:
Do you have some sniffer tool that could capture raw packets (incl. MIC) in the communication client <> server so to compare what is the difference when reconnecting go smooth and when fail?
Either there is something wrong on the Cypresses BT stack side or something in the timing parameters/syncs in the connection ☹ The only clue I could guess – slower processors with Android have more MIC failures than faster ones ☹ , but when I try reconnecting bonded CC2540 from TI, don’t have any problems neither with Cysmart, nor nRf Connect or other BLE Android clients on the same Android devices that fails with CYW20719 ☹
….
17:29:09.988 1 hello_sensor_management_cback: 17
17:29:09.992 1 Advertisement State Change: 0
17:29:09.992 1 ADV stop
17:29:09.994 RCVD [1] Event from HCI. Name: HCI_Encryption_Change (Hex Code: 0x08 Param Len: 4)
17:29:09.994 Status : Connection Terminated Due to MIC Failure (0x3d)
17:29:09.994 Connection Handle : 64 (0x0040)
17:29:09.994 Encryption Enable : 0 (0x00)
17:29:09.996 1 hello_sensor_management_cback: c
17:29:10.003 1 Encryption Status Event: bd ( 5a 10 0c ef 51 aa ) res 8109
17:29:10.007 1 encryp change bd ( 5a 10 0c ef 51 aa ) res: 8109
17:29:10.010 RCVD [1] Event from HCI. Name: HCI_Disconnection_Complete (Hex Code: 0x05 Param Len: 4)
17:29:10.010 Status : Success (0x00)
17:29:10.010 Connection Handle : 64 (0x0040)
17:29:10.010 Reason : 61 (0x3d)
17:29:10.010 Connection Terminated Due to MIC Failure
17:29:10.014 1 connection_down 5a 10 0c ef 51 aa conn_id:1 reason:61
…
Show LessInfineon AIROC Wi-Fi/Bluetooth Combo STM32 Expansion Pack is an extension of the CMSIS-Pack standard established by Arm. The pack is compliant with the full CMSIS-Pack standard, with additional requirements/restrictions on the final pack to meet the STM standard.
This SW pack uses libraries from the Infineon ModusToolbox environment.
- Infineon GitHub landing space - https://github.com/Infineon/stm32-connectivity/releases
- Infineon AIROC Wi-Fi/BT STM32 Expansion Pack v1.4.0 – https://github.com/Infineon/stm32-connectivity/releases/download/release-v1.4.0/Infineon.Connectivit...
- Infineon AIROC Connectivity STM32 User Guide v1.4.0 – https://github.com/Infineon/stm32-connectivity/blob/release-v1.4.0/Documentation/STM32ConnectivityEx...
What's Included?
- Infineon AIROC Wi-Fi / Bluetooth Combo Release for STM32H7xx, H5xx, U5xx & L5xx MCUs family
What Changed?
v1.4.0
- Added STM32H5xx support
- PAL improvements and fixes
- New Examples added for STM32H747I-DISCO and STM32U575I-EV
- Wi-Fi offload - TCP/IP Keepalive offload
Supported STM32 Boards and MCU
- STM32H747I-DISCO Discovery kit and STM32H7xx
- NUCLEO-H563ZI board and STM32H5xx
- STM32U575I-EV Evaluation board and STM32U5xx
- STM32L562E-DK kit and STM32L5xx
Supported Connectivity Modules
Infineon's CYW43xxx Wi-Fi-BT combo chip family:
- CYW43012
- CYW43439 / CYW43438 / CYW4343W
- CYW4373 / CYW4373/E
Example apps inside the Pack
Wi-Fi Scan Example
This example initializes the Wi-Fi device and starts a Wi-Fi scan without any filter and prints the
results on the serial terminal.
Refer to Projects/STM32H747I-DISCO/Applications/wifi_scan/readme.txt for more details
Wi-Fi Onboarding with Bluetooth LE Example
This example demonstrates a simultaneous usage of Wi-Fi and BLE functionality of CYW43xxx combo
devices. It uses BLE on the combo device to help connect the Wi-Fi to the AP.
Refer to Projects/STM32H747I-DISCO/Applications/ble_wifi_onboarding/readme.txt for more details
Azure RTOS NetXDuo Wi-Fi UDP echo server
This application provides an example of Azure RTOS/NetXDuo stack usage. It shows how to develop a
NetX UDP server to communicate with a remote client using the NetX UDP socket API.
BLE Hello Sensor Example
This code example demonstrates the implementation of a simple Bluetooth Stack functionality in GAP
Peripheral role. During initialization the app registers with LE stack to receive various notifications
including bonding complete, connection status change and peer write.
Refer to Section BLE Hello Sensor Example
in STM32 connectivity expansion pack user guide for more details.
Wi-Fi TCP keepalive offload
The TCP keepalive offload feature of the Low Power Assistant (LPA) improves the power consumption
of your connected system by reducing the time the Host needs to stay awake to support a TCP keepalive
request. This example describes how to enable TCP keepalive offload and configure four different
sockets for TCP keepalive that can be incorporated into your project from LPA Middleware.
Refer to Projects/STM32H747I-DISCO/Applications/wifi_tko/readme.txt for more details.
Compatible Software
Software | Version |
---|---|
STM32 CubeMX | 6.8.0 |
STM32 CubeIDE | 1.12.0 |
IAR Embedded Workbench IDE | 9.30.1 |
Future release - v1.5.0
- Add Infineon Wi-Fi 6/6E combo chip (CYW55573 - 2x2 Wi-Fi 6/6E, CYW55513 - 1x1 Wi-Fi 6/6E) support.
- TCPKA keepalive (payload) offload with multiple sessions.
- Wake-on-WLAN - wowlpf support for remote wake-up.
- TLS over TKO
- MQTT keepalive
More information
- README.md
- STM32 Connectivity Expansion Pack User Guide
- Cypress Semiconductor, an Infineon Technologies Company
- Infineon GitHub
- ModusToolbox
Hi
Customer is developing with Murata 1GC on WICED.
They are sending with ux_device_class_cdc_acm_write. It is blocking.
It will stuck if other side close the port. Customer is looking for "ux_device_class_cdc_acm_write_with_callback" which is not available with WiCED.
Right now, it can only exit if they unplug the USB.
Thanks,
Show Less
Hello.
I have the sequent problem:
I have developed a board with CYW943907 and an FPGA.
I have to store FPGA configuration file (1.5Mbyte of size) in the external FLASH (8MByte of size).
I read WICED-Resource-Filesystem.pdf and I understand that I can put the FPGA configuration file in resources/apps/<MY_APP>/fpgaConfig.bin.
I can read fpgaConfig.bin with resource_get_readonly_buffer and I'm happy.
But my problem is that in the future it might be possibile to update this file but I cannot find any resource_write_readonly_buffer API to do this operation.
I'm not sure but I understand that OTA can only update APP and not resource.
Can some one help me ?
Show Less