The PSoC® 6 Wi-Fi BT Prototyping Kit (CY8CPROTO-062-4343W) is a low-cost hardware platform that enables design and debug of PSoC 62 MCUs and the Murata LBEE5KL1DX Module (CYW4343W WiFi + …

mbed-os-example-wifi fails with mbed os 5.13.4

05 Sep 2019

I've just got a CY8CPROTO-062-4343W and am trying to get started with the standard mbed example mbed-os-example-wifi

Using mbed OS 5.13.1 or 5.13.4, it simply seems not to work. E.g. in the latter case, while the example builds OK, it hangs when running it, first showing the wrong version number, then locking up part way through a message:

WiFi example Mbed OS version 99.99.99

Scan: WLAN MAC Add

This is hardly a good advert for either the mbed OS or Cypress.

Any ideas what is broken? And can it be fixed, please?

05 Sep 2019

Worse still, it now no longer show the virtual DAPLINK drive on the desktop. Long pressing the switch to get it to change mode causes the left-hand led to first blink slowly, then long pressing it again causes it to go out, but it immediately comes back on. I cannot get the led to blink rapidly as before. Reloading kitprog3 does not help.

10 Sep 2019

Hello Ralph,

My name is Ian Fyall and I am one of the engineering leads from Cypress. I tried to reproduce this issue using the CY8CPROTO-062-4343W I have at my desk and Mbed OS 5.13.4. I am not able to do so.

I have the following software and hardware. Can you confirm the version of the KitProg3 FW you are running? You can do this by acquire the fw-loader from here: https://github.com/cypresssemiconductorco/Firmware-loader. Use the fw-loader --device-list command to find your version. If you aren't running 1.11.243, use the --update-kp3 command to update it and then retry.

CY8CPROTO-062-4343W, Revision 06 KitProg3 FW 1.11.243 running on the Kit

Mbed OS 5.13.4 (SHA: 1bf6b20df9d3cd5f29f001ffc6f0d0fcbbb96118)

I have included my build and UART logs below.

Thank you,

Ian

Mbed Log

~/mbed/mbed-os-example-wifi-ex
$ mbed compile -f
Building project mbed-os-example-wifi-ex (CY8CPROTO_062_4343W, GCC_ARM)
Scan: mbed-os-example-wifi-ex
Using ROM region application in this build.
  Region application: size 0x200000, offset 0x10000000
Link: mbed-os-example-wifi-ex
Elf2Bin: mbed-os-example-wifi-ex
Merging Regions
  Filling region application with .\BUILD\CY8CPROTO_062_4343W\GCC_ARM\mbed-os-example-wifi-ex_application.hex
Space used after regions merged: 0x954d8
Merging Regions
  Filling region application with .\BUILD\CY8CPROTO_062_4343W\GCC_ARM\mbed-os-example-wifi-ex_application.hex
Space used after regions merged: 0x954d8
Post-Build: mbed-os-example-wifi-ex
| Module             |      .text |    .data |       .bss |
|--------------------|------------|----------|------------|
| [fill]             |    284(+0) |   10(+0) |     72(+0) |
| [lib]\c.a          |  30080(+0) | 2472(+0) |     89(+0) |
| [lib]\gcc.a        |   3168(+0) |    0(+0) |      0(+0) |
| [lib]\misc         |    224(+0) |    4(+0) |     28(+0) |
| [lib]\nosys.a      |     32(+0) |    0(+0) |      0(+0) |
| [lib]\stdc++.a     |      0(+0) |    0(+0) |      0(+0) |
| [misc]             |      0(+0) |    0(+0) |      0(+0) |
| main.o             |    600(+0) |    0(+0) |      4(+0) |
| mbed-os\components |    358(+0) |    0(+0) |      0(+0) |
| mbed-os\drivers    |    154(+0) |    0(+0) |      0(+0) |
| mbed-os\features   |  54560(+0) |  107(+0) | 258149(+0) |
| mbed-os\hal        |   1248(+0) |    4(+0) |     67(+0) |
| mbed-os\platform   |   3340(+0) |  260(+0) |    348(+0) |
| mbed-os\rtos       |   9928(+0) |  168(+0) |   5981(+0) |
| mbed-os\targets    |  48300(+0) |  187(+0) |   3406(+0) |
| Subtotals          | 152276(+0) | 3212(+0) | 268144(+0) |
Total Static RAM memory (data + bss): 271356(+0) bytes
Total Flash memory (text + data): 155488(+0) bytes

Update Image: .\BUILD\CY8CPROTO_062_4343W\GCC_ARM\mbed-os-example-wifi-ex_update.bin
Image: .\BUILD\CY8CPROTO_062_4343W\GCC_ARM\mbed-os-example-wifi-ex.hex
        1 file(s) copied.
[mbed] WARNING: If you're using Python 3 with Mbed OS 5.8 and earlier versions, Python errors will occur when compiling, testing and exporting
---
[mbed] Working path "C:\Users\fya\mbed\mbed-os-example-wifi-ex" (program)

UART Outpu

WiFi example
Mbed OS version 5.13.4

Scan:
WLAN MAC Address : 00:9D:6B:8E:F3:1D
WLAN Firmware    : wl0: Jun  7 2019 07:11:39 version 7.45.98.87 (r717217 CY) FWID 01-4cc34fdc
WLAN CLM         : API: 12.2 Data: 9.10.39 Compiler: 1.29.4 ClmImport: 1.36.3 Creation: 2019-06-07 06:59:52
WHD VERSION      : 1b9fceb7 : master : GCC 6.3 : 2019-07-03 16:07:52 +0530
Network: CYW943012P6EVB_01GCC_ARM secured: WPA/WPA2 BSSID: 64:D5:64:bb:27:93 RSSI: -66 Ch: 1
Network: CYFI secured: Unknown BSSID: 24:DE:C6:18:a2:2 RSSI: -63 Ch: 1
Network: tehachapi secured: Unknown BSSID: 24:DE:C6:18:a2:3 RSSI: -64 Ch: 1
Network: CYFI_GUEST secured: None BSSID: 24:DE:C6:18:a2:4 RSSI: -62 Ch: 1
Network: CYFI_ZOOM secured: WPA2 BSSID: 24:DE:C6:18:a2:5 RSSI: -61 Ch: 1
Network: CY8CPROTO_062_4343WGCC_ARM secured: WPA/WPA2 BSSID: 2:9D:6B:8d:e2:a8 RSSI: -70 Ch: 1
Network: TheInternetsG secured: Unknown BSSID: 60:38:E0:bd:bd:b1 RSSI: -41 Ch: 6
Network: CYFI secured: Unknown BSSID: 6C:F3:7F:b6:fc:2 RSSI: -74 Ch: 6
Network: tehachapi secured: Unknown BSSID: 6C:F3:7F:b6:fc:3 RSSI: -76 Ch: 6
Network: CYFI_GUEST secured: None BSSID: 6C:F3:7F:b6:fc:4 RSSI: -74 Ch: 6
Network: CYFI_ZOOM secured: WPA2 BSSID: 6C:F3:7F:b6:fc:5 RSSI: -75 Ch: 6
Network: HPJ310a.4A44A9 secured: None BSSID: 2:24:C4:9a:39:9a RSSI: -96 Ch: 6
Network: Carson Guest secured: WPA2 BSSID: 0:1A:8C:ad:8c:e1 RSSI: -90 Ch: 6
Network: test-network-unsecure secured: None BSSID: 3E:37:86:4d:54:c2 RSSI: -41 Ch: 9
Network: test-network-wpa2 secured: WPA2 BSSID: 3C:37:86:4d:54:c1 RSSI: -41 Ch: 9
15 networks available.

Connecting to TheInternetsG...
Success

MAC: 00:9d:6b:8e:f3:1d
IP: 192.168.100.124
Netmask: 255.255.255.0
Gateway: 192.168.100.1
RSSI: -44


Done
10 Sep 2019

Ralph,

I am not sure how that strike-through in the area about the fw-loader got in my post. I can't edit it, as that button doesn't appear to work.

Original post corrected now.

Thanks,

Ian

10 Sep 2019

Here is the output of running the firmware loader. My board says Rev. 06 on the back.

"fw-loader update-kp3 Cypress Firmware Updater, Version: 2.2.0.138 (C) Copyright 2018-2019 by Cypress Semiconductor All Rights Reserved

Info: Start API initialization Info: Connected - KitProg3 CMSIS-DAP BULK-1718048B02237400 Info: Hardware initialization complete (486 ms) Device 'KitProg3 CMSIS-DAP BULK-1718048B02237400' opened successfully Info: Kit FW is 'KitProg3' ver. 1.11 b243. Upgrade file is 'KitProg3' ver. 1.11 b243. Info: Disconnected - KitProg3 CMSIS-DAP BULK-1718048B02237400 Info: Connected - KitProg Bootloader-8B02020418172374 Info: Bootloader Version: Major 1, Minor 1, Build 60 Info: FW Upgrade to version: 1.11 b243 Info: Bootloading of KitProg FW... Info: Verifying of KitProg FW... Info: Bootloading of DAPLink... Info: Verifying of DAPLink... Info: Upgrade completed Info: Connected - KitProg3 CMSIS-DAP BULK-1718048B02237400 FW update completed successfully Info: Disconnected - KitProg Bootloader-8B02020418172374"

Note that I cannot get the DAPLINK drive to appear on the desktop after running this (I'm using MacOS X, for what its worth). So I cannot build and upload programs by drag and drop.

(Sorry about the awful formatting. The forum seems to remove linefeeds).

10 Sep 2019

Here is the result of building the mbed-os-example-wifi program using

mbed compile -m CY8CPROTO_062_4343W -t GCC_ARM

after previously doing

mbed update master in the mbed-os directory:

The only difference is that I have a later version of the compiler:

[Warning] @,: Compiler version mismatch: Have 8.2.1; expected version >= 6.0.0 and < 7.0.0

Building project psoc6-mbed-os-example-wifi (CY8CPROTO_062_4343W, GCC_ARM)

Scan: psoc6-mbed-os-example-wifi

Link: psoc6-mbed-os-example-wifi

Elf2Bin: psoc6-mbed-os-example-wifi

Post-Build: psoc6-mbed-os-example-wifi

Module.text.data.bss
--------------
[fill]274(+0)12(+0)78(+0)
[lib]/c.a33376(+0)2472(+0)89(+0)
[lib]/gcc.a3116(+0)0(+0)0(+0)
[lib]/misc180(+0)4(+0)28(+0)
[lib]/nosys.a32(+0)0(+0)0(+0)
[lib]/stdc++.a0(+0)0(+0)0(+0)
[misc]0(+0)0(+0)0(+0)
main.o600(+0)0(+0)4(+0)
mbed-os/components302(+0)0(+0)4(+0)
mbed-os/drivers74(+0)0(+0)0(+0)
mbed-os/features54430(+0)105(+0)98861(+0)
mbed-os/hal1296(+0)4(+0)67(+0)
mbed-os/platform3398(+0)260(+0)348(+0)
mbed-os/rtos9466(+0)168(+0)5981(+0)
mbed-os/targets49888(+0)203(+0)3212(+0)
Subtotals156432(+0)3228(+0)108672(+0)

Total Static RAM memory (data + bss): 111900(+0) bytes

Total Flash memory (text + data): 159660(+0) bytes

Image: ./BUILD/CY8CPROTO_062_4343W/GCC_ARM/psoc6-mbed-os-example-wifi.hex

10 Sep 2019

After the upgrade, please press the Kitprog3 mode switch (SW3) for more than 5 seconds. The Kitprog3 status LED should go OFF indicating it is in DAPLink mode.

Regards, Dheeraj

10 Sep 2019

Reverting to the last post but one, not only does the board not show up as a DAPLINK drive, but it is not possible to flash programs using the -f flag as in

mbed compile -m CY8CPROTO_062_4343W -t GCC_ARM -f

as it just gives

[mbed] ERROR: The target board you compiled for is not connected to your system.

Please reconnect it and retry the last command.

10 Sep 2019

Investigating a little further, it seems that after hanging, the main processor is somehow preventing the kitprog from going into DAPLINK mode. If I hold down the RESET button for the main processor, I can now get the KITPROG3 to enter a state with a rapidly flashing status LED by pressing the MODE button. However, I still cannot flash anything and no DAPLINK disk appears. If I let go of the RESET button, the KITPROG3 leaves the rapidly-flashing state, the status LED goes out, and after a short delay, com,es back on solidly.

It seems that the bad code on the main processor is sufficiently awry to prevent the kitprog3 from working to the point where I cannot flash anything. In short, it would seem my board is pretty much bricked, unless I can delete the rogue code from the main processor somehow.

10 Sep 2019

Run the command "mbed detect" and see if your target is getting detected.

mbed detect

Supported toolchains for CY8CPROTO_062_4343W

Targetmbed OS 2mbed OS 5ARMuARMGCC_ARMIARARMC5
-------------------------
CY8CPROTO_062_4343W-SupportedSupported-SupportedSupported-

Supported targets: 1 Supported toolchains: 3

Make sure the kit is in DAPLink mode.

Regards, Dheeraj

10 Sep 2019

OK, I did a fresh download of the mbed-os-example-wifi project, and compiled. I can verify that it now compiles correctly, and I can almost reproduce the .results you get (perhaps the compiler difference accounts for this).

Module.text.data.bss
-----------------
[fill]268(+268)10(+10)72(+72)
[lib]/c.a33376(+33376)2472(+2472)89(+89)
[lib]/gcc.a3116(+3116)0(+0)0(+0)
[lib]/misc180(+180)4(+4)28(+28)
[lib]/nosys.a32(+32)0(+0)0(+0)
[lib]/stdc++.a0(+0)0(+0)0(+0)
[misc]0(+0)0(+0)0(+0)
main.o600(+600)0(+0)4(+4)
mbed-os/components186(+186)0(+0)0(+0)
mbed-os/drivers154(+154)0(+0)0(+0)
mbed-os/features54130(+54130)107(+107)258149(+258149)
mbed-os/hal1296(+1296)4(+4)67(+67)
mbed-os/platform3398(+3398)260(+260)348(+348)
mbed-os/rtos9842(+9842)168(+168)5981(+5981)
mbed-os/targets47806(+47806)187(+187)3406(+3406)
Subtotals154384(+154384)3212(+3212)268144(+268144)

Total Static RAM memory (data + bss): 271356(+271356) bytes

Total Flash memory (text + data): 157596(+157596) bytes

I have no idea what went wrong before. Thanks for verifying things are working at your end.

However, this still leaves me unable to run the example, as my board won't go into DAPLINK mode. Pressing SW3 for more than 5 seconds causes the MODE LED to flash slowly. Pressing SW3 for more than 5 seconds again causes the MODE LED to go off, but it then comes back on after a short delay (of about 1 second).

10 Sep 2019

mbed detect

shows

[mbed] No mbed targets were detected on your system.

I presume that is beacuse I can't get into DAPLINK mode.

11 Sep 2019

I tried Modus Toolbox, and I can upload programs to my CY8CPROTO-062-4343W with that.

But I still cannot get into daplink mode, despite reloading the kp3 firmware.

Is there some way to recover the DAPLINK functionality on my board?

12 Sep 2019

OK, I tried reinstalling the kp3 firmware with version 2.1 of the firmware loader, instead of version 2.2, and now I have DAPLINK back.

It seems there is something wrong with v2.2

18 Sep 2019

Ralph,

I just posted a new release of Firmware-loader containing KitProg3 v1.12 that should fix this problem.

https://github.com/cypresssemiconductorco/Firmware-loader/releases

My apologies for the problem, and my thanks for the detailed reporting.

Jim

23 Oct 2019

I was able to use the cloud compiler and get the WiFi example to run and detect nearby WiFi SSIDs. Following the instructions and links on this page, I did have issues with the Daplink drive not showing up until the board was reset and the mode switch hit several times for the suggested time and even power cycled the board a couple times. Then about five to ten minutes later, the Daplink drive finally showed up in Windows as I was about to give up!

I have seen the Daplink drive come and go for short periods of time as I download and run code.

23 Oct 2019

JIm,

Can you let us know what version of the KitProg3 firmware your board is running? If you haven't updated to v1.12 (see Jim's message above), please do so and let us know if the problem persists.

Thank you in advance,

Ian

24 Oct 2019

I just checked this morning and I flashed the *.243 version zip file per instructions from the main page. There are two hyper links in the instructions at https://github.com/cypresssemiconductorco/Firmware-loader to take you to the download and another one shows a newer version *.261 zip file.

24 Oct 2019

Jim,

Can you update to 261 and then let me know if the issue persists? If it does, I will loop in our programming team and file an internal ticket.

Thank you in advance,

Ian

24 Oct 2019

Updated to 261 and it found the Daplink drive right away after hitting the mode switch this time as per instructions (that worked better).

The Daplink drive still blinks out and then back for a second each time I download and run the WiFi example. But not if I just hit the reset switch to run it?

24 Oct 2019

Jim,

Thank you for the quick reply. I have a question out to my team regarding the blinking in and out of the drive. I will let you know what they say. I expect to have an answer tomorrow or Monday.

Thank you,

Ian

25 Oct 2019

Jim,

I spoke with my team and they confirmed that the programming flow is different than the reset flow. Here are the steps for the programming flow:

1. The file with the application begins to be copied onto the DAPLink driver 2. The file is decoded and programmed on-fly to memory of target MCU. 3. The entire file is copied and programmed. 4. The DAPLink driver media is ejected. 5. Reset the target MCU. 6. The DAPLink driver media is inserted.

Step #4 will cause the Drive to disappear and then it will be shown again once step #6 is complete. No changes to the DAPLink driver media occur during a reset.

I believe this answers your question.

Thank you,

Ian

25 Oct 2019

OK, Thanks I suspected it had something to do with programming the flash. So it is not a problem and it just works a bit differently than other mbed boards I have used in that the USB flash drive goes away for a sec after each download. Will just ignore the Windows beeps and things are OK.