1 2 Previous Next 19 Replies Latest reply on Aug 19, 2020 10:37 AM by DheerajP_41

    Fail to run mbed-os-example-bluetooth-mesh-gateway on PSOC 6 CY8CKIT-062S2-43012

    AbBa_4336446

      Hello. I am trying to run the "mbed-os-example-bluetooth-mesh-gateway" example using the PSOC6 CY8CKIT_062S2_43012.

      I have followed the steps in the example repo github page (https://github.com/cypresssemiconductorco/mbed-os-example-bluetooth-mesh-gateway).

       

      when it comes to step # 7 (cmd: mbed compile -t GCC_ARM -m CY8CKIT_062S2_43012 -f), I am facing some errors.

      As shown below, I tried to update the python modules that were not auto-installed (using "pip install -r requirements.txt"), a new error pops up

      ERROR: Could not find a version that satisfies the requirement pywin32==224 (from -r requirements.txt (line 26)) (from versions: 225, 226, 227, 228)

      ERROR: No matching distribution found for pywin32==224 (from -r requirements.txt (line 26))

       

      (N.B.: i am running mbed os v6.0 & python 3.8)

       

       

      i pasted the cmd output below to show the issue:

       

      C:\Users\xxxx\Desktop\Cypress\GWmaster\BIG>mbed compile -t GCC_ARM -m CY8CKIT_062S2_43012 -f

      [mbed] Working path "C:\Users\xxxx\Desktop\Cypress\GWmaster\BIG" (library)

      [mbed] Program path "C:\Users\xxxx\Desktop\Cypress\GWmaster\BIG"

      [mbed] WARNING: Missing Python modules were not auto-installed.

             The Mbed OS tools in this program require the following Python modules: jsonschema, mbed_cloud_sdk, jinja2, mbed_ls, mbed_host_tests, mbed_greentea, pyelftools, manifest_tool, icetea, pycryptodome, pyusb, hidapi, cmsis_pack_manager, wmi, psutil, cryptography, click, cbor

             You can install all missing modules by running "pip install -r requirements.txt" in "C:\Users\xxxx\Desktop\Cypress\GWmaster\BIG\mbed-os"

      ---

      Traceback (most recent call last):

        File "C:\Users\xxxx\Desktop\Cypress\GWmaster\BIG\mbed-os\tools\make.py", line 40, in <module>

          from tools.options import get_default_options_parser

        File "C:\Users\xxxx\Desktop\Cypress\GWmaster\BIG\mbed-os\tools\options.py", line 25, in <module>

          from .toolchains import TOOLCHAINS, EXTRA_TOOLCHAIN_NAMES

        File "C:\Users\xxxx\Desktop\Cypress\GWmaster\BIG\mbed-os\tools\toolchains\__init__.py", line 20, in <module>

          from . import mbed_toolchain, arm, gcc, iar

        File "C:\Users\xxxx\Desktop\Cypress\GWmaster\BIG\mbed-os\tools\toolchains\mbed_toolchain.py", line 48, in <module>

          from ..memap import MemapParser

        File "C:\Users\xxxx\Desktop\Cypress\GWmaster\BIG\mbed-os\tools\memap.py", line 34, in <module>

          from jinja2 import FileSystemLoader, StrictUndefined

      ModuleNotFoundError: No module named 'jinja2'

      [mbed] ERROR: "c:\python38\python.exe" returned error.

             Code: 1

             Path: "C:\Users\xxxx\Desktop\Cypress\GWmaster\BIG"

             Command: "c:\python38\python.exe -u C:\Users\xxxx\Desktop\Cypress\GWmaster\BIG\mbed-os\tools\make.py -t GCC_ARM -m CY8CKIT_062S2_43012 --source . --build .\BUILD\CY8CKIT_062S2_43012\GCC_ARM"

             Tip: You could retry the last command with "-v" flag for verbose output

      ---

       

       

      C:\Users\xxxx\Desktop\Cypress\GWmaster\BIG>cd "C:\Users\xxxx\Desktop\Cypress\GWmaster\BIG\mbed-os"

       

       

      C:\Users\xxxx\Desktop\Cypress\GWmaster\BIG\mbed-os>pip install -r requirements.txt

      Collecting colorama==0.3.9

        Using cached colorama-0.3.9-py2.py3-none-any.whl (20 kB)

      Collecting urllib3[secure]==1.24.2

        Using cached urllib3-1.24.2-py2.py3-none-any.whl (131 kB)

      Requirement already satisfied: prettytable==0.7.2 in c:\python38\lib\site-packages (from -r requirements.txt (line 3)) (0.7.2)

      Collecting junit-xml==1.8

        Using cached junit-xml-1.8.tar.gz (10.0 kB)

      Collecting pyyaml==4.2b1

        Using cached PyYAML-4.2b1.tar.gz (263 kB)

      Collecting jsonschema==2.6.0

        Using cached jsonschema-2.6.0-py2.py3-none-any.whl (39 kB)

      Collecting future==0.16.0

        Using cached future-0.16.0.tar.gz (824 kB)

      Collecting six==1.12.0

        Using cached six-1.12.0-py2.py3-none-any.whl (10 kB)

      Collecting mbed-cloud-sdk<2.1,>=2.0.6

        Using cached mbed_cloud_sdk-2.0.8-py2.py3-none-any.whl (786 kB)

      Collecting requests<2.21,>=2.20

        Using cached requests-2.20.1-py2.py3-none-any.whl (57 kB)

      Collecting idna<2.8,>=2

        Using cached idna-2.7-py2.py3-none-any.whl (58 kB)

      Requirement already satisfied: pyserial<=3.4,>=3 in c:\python38\lib\site-packages (from -r requirements.txt (line 12)) (3.4)

      Collecting Jinja2<2.11,>=2.10.1

        Using cached Jinja2-2.10.3-py2.py3-none-any.whl (125 kB)

      Requirement already satisfied: intelhex<=2.2.1,>=1.3 in c:\python38\lib\site-packages (from -r requirements.txt (line 14)) (2.2.1)

      Collecting mbed-ls<1.8,>=1.5.1

        Using cached mbed-ls-1.7.12.tar.gz (174 kB)

      Collecting mbed-host-tests<1.6,>=1.4.4

        Using cached mbed_host_tests-1.5.10-py2.py3-none-any.whl (61 kB)

      Collecting mbed-greentea<1.8,>=0.2.24

        Using cached mbed_greentea-1.7.4-py2.py3-none-any.whl (57 kB)

      Collecting beautifulsoup4<=4.6.3,>=4

        Using cached beautifulsoup4-4.6.3-py3-none-any.whl (90 kB)

      Collecting pyelftools<=0.25,>=0.24

        Using cached pyelftools-0.25-py2.py3-none-any.whl (126 kB)

      Collecting manifest-tool==1.5.2

        Using cached manifest_tool-1.5.2-py3-none-any.whl (75 kB)

      Collecting icetea<1.3,>=1.2.1

        Using cached icetea-1.2.4-py3-none-any.whl (172 kB)

      Collecting pycryptodome<4,>=3.9.3

        Using cached pycryptodome-3.9.8-cp38-cp38-win32.whl (14.1 MB)

      Collecting pyusb<2.0.0,>=1.0.0

        Using cached pyusb-1.0.2.tar.gz (54 kB)

      Collecting hidapi<0.8.0,>=0.7.99

        Using cached hidapi-0.7.99.post21.tar.gz (51 kB)

      Collecting cmsis-pack-manager<0.3.0,>=0.2.3

        Using cached cmsis_pack_manager-0.2.10-py2.py3-none-win32.whl (2.3 MB)

      ERROR: Could not find a version that satisfies the requirement pywin32==224 (from -r requirements.txt (line 26)) (from versions: 225, 226, 227, 228)

      ERROR: No matching distribution found for pywin32==224 (from -r requirements.txt (line 26))

       

       

      C:\Users\xxxx\Desktop\Cypress\GWmaster\BIG\mbed-os>

       

       

      Thanks for the support

      Karim

        • 1. Re: Fail to run mbed-os-example-bluetooth-mesh-gateway on PSOC 6 CY8CKIT-062S2-43012
          DheerajK_81

          This is a known issue if Mbed is used with Python 3.8. Listing down the links for reference:

          Mbed doesn't work with Python 3.8 if pip install -U mbed-cli is done · Issue #12622 · ARMmbed/mbed-os · GitHub

          Issue with python packages install · Issue #12848 · ARMmbed/mbed-os · GitHub

           

          They recommend using Python 3.7 when working with Mbed. Although you could edit the requirements.txt and edit pywin32 to point to 225 and higher which has support for Python 3.8, there might be other conflicting modules within Mbed for Python 3.8.

           

          So, I would suggest creating a virtual environment targeting Python 3.7 using pipenv.

          >> pipenv --python 3.7

          And then install mbed cli inside this environment by using:

          >> pip install mbed-cli

           

          Hope this helps

           

          Regards,
          Dheeraj

          • 2. Re: Fail to run mbed-os-example-bluetooth-mesh-gateway on PSOC 6 CY8CKIT-062S2-43012
            AbBa_4336446

            Hello. Thanks for the feedback. i Removed Python 3.8 & installed 3.7 and updated also arm-none-eabi-gcc to (GNU Arm Embedded Toolchain 9-2020-q2-update) 9.3.1 20200408.

            When executing mbed compile -t GCC_ARM -m CY8CKIT_062S2_43012 -f, missing modules and requirements are installed successfully (pywin32 and others..) but new new errors popped. below is the cmd o/p.

             

            is there sth wrong?

             

            C:\Users\xxxx\Desktop\Cypress\GWmaster\BIG>mbed compile -t GCC_ARM -m CY8CKIT_062S2_43012 -f

            [mbed] Working path "C:\Users\xxxx\Desktop\Cypress\GWmaster\BIG" (library)

            [mbed] Program path "C:\Users\xxxx\Desktop\Cypress\GWmaster\BIG"

            Building project BIG (CY8CKIT_062S2_43012, GCC_ARM)

            Scan: BIG

            Using RAM region application_ram in this build.

              Region application_ram: size 0xfd800, offset 0x8002000

            Compile [  0.1%]: MQTTDeserializePublish.c

            Compile [  0.2%]: MQTTConnectServer.c

            Compile [  0.3%]: MQTTSerializePublish.c

            Compile [  0.3%]: MQTTSubscribeClient.c

            Compile [  0.4%]: MQTTConnectClient.c

            Compile [  0.5%]: MQTTFormat.c

            [Warning] MQTTFormat.c@123,9: variable 'strindex' set but not used [-Wunused-but-set-variable]

            [Warning] MQTTFormat.c@193,9: variable 'strindex' set but not used [-Wunused-but-set-variable]

            Compile [  0.6%]: MQTTPacket.c

            Compile [  0.7%]: http_parser.c

            [Warning] http_parser.c@1817,31: this statement may fall through [-Wimplicit-fallthrough=]

            [Warning] http_parser.c@2376,18: this statement may fall through [-Wimplicit-fallthrough=]

            Compile [  0.8%]: MQTTSubscribeServer.c

            Compile [  0.8%]: MQTTUnsubscribeClient.c

            Compile [  0.9%]: MQTTUnsubscribeServer.c

            Compile [  1.0%]: embedded_BLE.cpp

            Compile [  1.1%]: aws_greengrass_discovery.c

            Compile [  1.2%]: bt_firmware_embedded_mesh_gateway.c

            Compile [  1.3%]: embedded_BLE_mesh.cpp

            Compile [  1.4%]: embedded_GAP.cpp

            Compile [  1.4%]: bt_firmware.c

            Compile [  1.5%]: wiced_hci.c

            [Warning] wiced_hci.c@272,54: passing argument 2 of 'cy_rtos_create_thread' from incompatible pointer type [-Wincompatible-pointer-types]

            Compile [  1.6%]: wiced_hci_bt_ble.c

            Compile [  1.7%]: wiced_hci_bt_dm.c

            Compile [  1.8%]: wiced_hci_bt_mesh.c

            Compile [  1.9%]: wiced_uart.c

            Compile [  1.9%]: JSON.c

            Compile [  2.0%]: cy_string_utils.c

            Compile [  2.1%]: cy_log.cpp

            Compile [  2.2%]: linked_list.c

            Compile [  2.3%]: embedded_BLE_hcidriver.cpp

            [Error] embedded_BLE_hcitransportdriver.h@126,5: 'RawSerial' does not name a type

            [Error] embedded_BLE_hcitransportdriver.h@64,5: class 'cypress::embedded::EmbeddedHCITransportDriver' does not have any field named 'uart'

            [ERROR] In file included from .\bluetooth-gateway\embedded_ble\embedded_BLE_hcidriver.h:36,

                             from .\bluetooth-gateway\embedded_ble\embedded_BLE_hcidriver.cpp:34:

            .\bluetooth-gateway\embedded_ble\embedded_BLE_hcitransportdriver.h:126:5: error: 'RawSerial' does not name a type

              126 |     RawSerial uart;

                  |     ^~~~~~~~~

            .\bluetooth-gateway\embedded_ble\embedded_BLE_hcitransportdriver.h: In constructor 'cypress::embedded::EmbeddedHCITransportDriver::EmbeddedHCITransportDriver(PinName, PinName, PinName, PinName, int, PinName, PinName)':

            .\bluetooth-gateway\embedded_ble\embedded_BLE_hcitransportdriver.h:64:5: error: class 'cypress::embedded::EmbeddedHCITransportDriver' does not have any field named 'uart'

               64 |     uart(tx, rx, baud), cts(cts), rts(rts),

                  |     ^~~~

             

             

            [mbed] ERROR: "c:\python37\python.exe" returned error.

                   Code: 1

                   Path: "C:\Users\xxxx\Desktop\Cypress\GWmaster\BIG"

                   Command: "c:\python37\python.exe -u C:\Users\xxxx\Desktop\Cypress\GWmaster\BIG\mbed-os\tools\make.py -t GCC_ARM -m CY8CKIT_062S2_43012 --source . --build .\BUILD\CY8CKIT_062S2_43012\GCC_ARM"

                   Tip: You could retry the last command with "-v" flag for verbose output

            • 3. Re: Fail to run mbed-os-example-bluetooth-mesh-gateway on PSOC 6 CY8CKIT-062S2-43012
              DheerajK_81

              The code example was created with mbed-os v5.15.0 and when you import the example and run "mbed ls" you will be able to see this information.

               

              I think you updated the mbed-os library to latest one (v6.x) due to which you see errors. The reason being that with mbed-os v6.0 and above, there was some code cleaning done due to which some APIs are deprecated and hence causing errors.

               

              The code example works upto 5.15.4, so you can do the following:

              (1) Navigate to mbed-os library folder

              >> cd mbed-os

               

              (2) Update the library to point to 5.15.4 version

              >> mbed update mbed-os-5.15.4

               

              (3) Go back to application root directory and compile

              >> cd ..

              >> mbed compile -t GCC_ARM -m CY8CKIT_062S2_43012

               

              It should now build successfully.

               

              Regards,
              Dheeraj

              • 4. Re: Fail to run mbed-os-example-bluetooth-mesh-gateway on PSOC 6 CY8CKIT-062S2-43012
                AbBa_4336446

                Hello.


                The project did build successfully & .hex file has been generated in BUILD directory.

                Thanks for the support.

                 

                Unfortunately, got stuck now in flashing & connecting to AWS IoT:

                1. In dap-bulk mode, I am getting [mbed] ERROR: The target board you compiled for is not connected to your system. even when Programming the board using Cypress Programmer is done successfully (below screenshots).

                BuildErr-0.JPG

                CypProg-0.JPG

                     2. i got some issues related to drivers when switching to kp3-daplink mode to use the CY8 kit as mbed board. i have searched the community and found that this is a common issue too. in this link mbed git proposed to uninstall the DAPLink driver & install it again. It did work & i was able to switch between kp3-bulk & kp3-daplink using fw-loader (LED2  on the board changes blinking from continuous to 2 Hz & vice versa). But after installing the driver i did't see the board as usb device drive in my computer explorer in both modes kp3-bulk & kp3-daplink.

                cmd-devmngr.JPG

                 

                MyPC-0.JPG

                 

                consequently, connecting to AWS-IoT fails:

                Terat-0.JPG

                 

                Any clue to to have a successful cnx to AWS IoT?

                 

                Thanks

                Karim

                • 5. Re: Fail to run mbed-os-example-bluetooth-mesh-gateway on PSOC 6 CY8CKIT-062S2-43012
                  DheerajK_81

                  Hello Karim,

                   

                  Glad to hear that you were able to get past the build issue. Answers to your other questions inline.

                   

                  In dap-bulk mode, I am getting [mbed] ERROR: The target board you compiled for is not connected to your system. even when Programming the board using Cypress Programmer is done successfully (below screenshots).

                  You will be able to program using mbed-cli only if you are in kp3-daplink mode. You should be able to see a DAPLINK drive enumerating when you are in DAPLink mode that allows you to drag and drop hex files. If you are in BULK mode, you see the error you have mentioned above in mbed-cli. You won't be able to use DAPLink mode to program the device using Cypress Programmer.

                   

                  Please transition to DAPLink mode by running the following command on fw-loader tool:

                  >> fw-loader --mode kp3-daplink

                   

                  If the mode switch was successful, you should be seeing the device under USB as shown below:

                  daplink.png

                   

                   

                  After this run the following command on mbed-cli to see if it is able to detect the devices:

                  >> mbed detect

                   

                  If you are able to see this, then you should be able to flash the device successfully using mbed-cli.

                   

                  consequently, connecting to AWS-IoT fails:

                  From the console screenshot, I see that it fails to set the root CA certificate. Have you modified the aws_config.h file to add the certificates of your IoT Thing? Please refer to this KBA for more information on how to setup your IoT Things and add the configuration information to your application.

                   

                  Regards,
                  Dheeraj

                  • 6. Re: Fail to run mbed-os-example-bluetooth-mesh-gateway on PSOC 6 CY8CKIT-062S2-43012
                    AbBa_4336446

                    Hello Dheeraj.

                    Thanks for your quick reply.

                     

                    Something weird is going on: in below screenshot i am showing you after switching to kp3-daplink mode using fw-loader, CMSIS DAP 2 driver is shown in the device manager & LED2 is blinking also at 2 Hz, mbed detect is not detecting the board?

                    is it enough to program it through Cypress Programmer? (board is detected in the programmer only when it is in dap-bulk mode!)

                    i'd drag n drop the hex file if the board had been detected, but unfortunately, the board is not detected!

                    what do you suggest?

                     

                    for AWS,  I did all changes to mbed-app.json, gateway_aws_credentials.cpp & AWS.conf. Do i need to change the header file aws_config.h too?

                    I will check the link you provided too.

                    Thanks in advance.

                    Karim

                    fw-0devmn-0.JPG

                    • 7. Re: Fail to run mbed-os-example-bluetooth-mesh-gateway on PSOC 6 CY8CKIT-062S2-43012
                      DheerajK_81

                      Hello Karim,

                       

                      Can you run the following command and share what you see?

                      >> mbedls

                       

                      Also, please share the version by running the command

                      >> mbedls --version

                       

                       

                      Regarding the credentials, you should configure thing name, thing certificates, thing private key and root certificate in the file gateway_aws_credentials.cpp as mentioned in the Readme.md file of the code example.

                       

                      Regards,
                      Dheeraj

                      • 8. Re: Fail to run mbed-os-example-bluetooth-mesh-gateway on PSOC 6 CY8CKIT-062S2-43012
                        AbBa_4336446

                        Hello Dheeraj,

                         

                        below is a screenshot:

                        mbedls.JPG

                         

                        Regards,

                         

                        Karim

                        • 9. Re: Fail to run mbed-os-example-bluetooth-mesh-gateway on PSOC 6 CY8CKIT-062S2-43012
                          DheerajK_81

                          Seems like you have incorrect drivers due to which DAPLink doesn't seem to work correctly. Can you please follow the steps mentioned in the Troubleshooting section "CMSIS-DAPv2 interface driver for DAPLink mode isn’t installed properly on Windows 10" of the KitProg3 User Guide: https://www.cypress.com/file/452701/download

                           

                          Let me know if it works after that

                           

                          Regards,

                          Dheeraj

                          • 10. Re: Fail to run mbed-os-example-bluetooth-mesh-gateway on PSOC 6 CY8CKIT-062S2-43012
                            AbBa_4336446

                            Hello Dheeraj,

                             

                            Following the instructions in KitProg3 UG solved it & running mbed compile -t GCC_ARM -m CY8CKIT_062S2_43012 -f was done successful (below screenshot) & the drive (DAPLINK (F:)) is now detected in windows explorer. Glad to see it there . (i hit mbedls & mbedls --version for your reference).

                            But actually the image BIG.HEX is not shown in the drive . I even tried to "copy-paste" it: after finishing the copy-paste, the drive window closes & reloads again with no image file on it (windows option "shown hidden files" is activated by the way ..).

                             

                            Any suggestions from your end?

                             

                            HEX-cpy0.JPG

                             

                            cpy-1.JPG

                             

                            Thank you

                            Karim

                            • 11. Re: Fail to run mbed-os-example-bluetooth-mesh-gateway on PSOC 6 CY8CKIT-062S2-43012
                              PrSo_4744096

                              Hi Karim, what does your application actually do? Why are you using aws-iot? Is it a part of the code example or you made your custom application containing BT mesh and AwsIot?

                              • 12. Re: Fail to run mbed-os-example-bluetooth-mesh-gateway on PSOC 6 CY8CKIT-062S2-43012
                                DheerajK_81

                                Hello Karim,

                                 

                                Glad to hear that your DAPLink is now working. Regarding the drag and drop feature, this is how it is intended to work. When you drop the hex into the DAPLink drive, the window closes, the hex gets flashed on to the device, and once complete, the window comes back up again without the hex file.

                                 

                                In case the programming fails, you will notice a FAIL.TXT generated with the corresponding error.

                                 

                                If successful, please open the serial terminal and check if the code is working. Are you able to connect to AWS IoT after adding your credentials and certificates?

                                 

                                Looking forward to your reply

                                 

                                Regards,
                                Dheeraj

                                • 13. Re: Fail to run mbed-os-example-bluetooth-mesh-gateway on PSOC 6 CY8CKIT-062S2-43012
                                  AbBa_4336446

                                  Hello Dheeraj. Thanks for the info.

                                  I have added the credentials & certificates. I'll screen-shot it for you below:

                                  1- thing name, thing certificates, thing private key and root certificate in gateway_aws_credentials.cpp:

                                  JSON-0.JPG

                                  awsCred-0.JPG

                                  Credentials taken from AWS IoT as follows:

                                  Capture.JPG

                                  2- MeshController app config. as follows:

                                  AWS.conf added to SD Card of the android device

                                  sdcard-0.png

                                   

                                  AWS.conf configuration is as follows (from AWS Cognito):

                                  awsConf-0.png

                                   

                                  AWS.conf credentials are taken from:

                                  AWSCognito-0.JPG

                                   

                                  3. using the MeshController app:

                                  mesh network & room are formed & working (LED is on/off working on the board)

                                  app-0.pngapp-1.png

                                   

                                  nothing happens as shown: app doesn't detect the "mesh-proxy" un-provisioned point

                                  app-2.png

                                   

                                  4. Serial Port is showing nothing. Sometimes unrecognized letters are displayed:

                                  teraT-1.JPG

                                   

                                  5. despite the above, the AWS IoT console shows there are successful connections but the MeshController doesn't detect "mesh-proxy" as an unprovisioned point:

                                  AWS-0.JPG

                                  AWS-1.JPG

                                  AWS-2.JPG

                                  AWS-3.JPG

                                  AWS-4.JPG

                                   

                                  Sorry for this long post, but i wanted to share all the steps in order to make things clear.

                                  What do you propose to move forward?

                                   

                                  Thanks in advance

                                  Karim.

                                  • 14. Re: Fail to run mbed-os-example-bluetooth-mesh-gateway on PSOC 6 CY8CKIT-062S2-43012
                                    AbBa_4336446

                                    Hello,

                                    The application is a simple BLE Mesh Gateway to AWS IoT. it is part of the gateway code example.

                                    1 2 Previous Next