7 Replies Latest reply on Dec 1, 2014 11:34 PM by jgo

    How to use WPS via WWD-API for STA+AP (SN8000x; SDK 3.0.1)

      Hi @ all!


      I try to investigate the WPS functions for Station- and AccessPoint-Mode. In my project I use the API of "wwd_wifi.h" and need WPS via push-button. Is there any low-level access to WPS? Which modules (*.c and *.h) do I need? I guess, the most work is done by the external modem.


      The type of "wiced_security_t" contains two WPS-Types. How to use them?


      For STA-Mode:

      - How can I get a list of (active) WPS-APs?

      - How can I trigger the WPS-join?


      For AP-Mode:

      - How can I signalize that WPS is avaiable?

      - How can I enable WPS for the connect?


      Thanks for helping,

      Jan Gottwald




      Some demo isues:


      I think "demo.appliance-BCM943362WCD4 download run" does not include WPS. I tried "wwd.appliance-BCM943362WCD4-FreeRTOS-LwIP download run", but it's not compilable with "APPLIANCE_ENABLE_WPS". The file "wps_host.h" can't be find for include.


      While using debugouts, I received only unreadable pattern. Some times ago it works fine, but I can't remember any changes.

      I guess, 115kBaud 8-N-1 is the right config for my terminal, isn't it?

        • 1. Re: How to use WPS via WWD-API for STA+AP (SN8000x; SDK 3.0.1)

          Here is an short update...


          In the demo "wwd.appliance-BCM943362WCD4-FreeRTOS-LwIP download run"

          - The API of "besl_wps_init()" and "besl_wps_deinit()" changed, that will generate a compiler error, too

          - The API and SourceCode of "besl_wps_enrollee()" does not exist in the SDK

          => How can I use this demo?


          Then there is a demo for the console mode ("test.console-xxx"). I could find two functions, seems low-level:

          - wps_registrar_start()

          - wps_enrollee_start()

          => But no SourceCode for this.



          => Where can I find the documentation of using WPS with the SDK?

          => Where can I get the source-code of the low-level driver part?

          • 2. Re: How to use WPS via WWD-API for STA+AP (SN8000x; SDK 3.0.1)

            Documentation for WPS please search .../doc/API.html distributed by the SDK.


            The scan application, .../apps/snip/scan, demonstrates scanning of the available APs in range.

            snip.scan-<platform>-debug download run

            Eg.:snip.scan-BCM943362WCD4-debug download run


            Low-level driver to communicate with the WiFi device is released as a library.


            Please consider moving to SDK-3.1.1 to take advantage of some of the fixes. Your platform files for SDK-3.0.1 should work with SDK-3.1.1 as well.

            • 3. Re: How to use WPS via WWD-API for STA+AP (SN8000x; SDK 3.0.1)

              For joining the APs there are multiple sample applications. Perhaps you can take look at .../apps/test/console application "test.console-<platform> download run".

              The join_specific(...) is the parser for the command issued for console app to join specific AP.

              • 4. Re: How to use WPS via WWD-API for STA+AP (SN8000x; SDK 3.0.1)

                Hi Seyhan,


                thank you for your answers.


                I know that documentation, but can't find any 'How to' for WPS. The API information may not be useful for my problem. You may give me hint? Any keyword?


                When the low-level driver is provieded as lib, how can I port it into another system? I guess, 'library' means a binary file and I have to compile it for my own system myself. Isn't it?


                I can trigger a scan and see some WLAN networks, but have no idea to get WPS information out of it. The security type may provide it, but how? Joining/Creating without WPS works fine for me.


                Best regards,



                BTW: I keep that update in mind, but I think, I've got more general issues.

                • 5. Re: How to use WPS via WWD-API for STA+AP (SN8000x; SDK 3.0.1)



                  With SDK 3.0.1,   I was not easy to port WPS enrollee and WPS registrar.


                  But you had better use SDK 3.1.1 download and Install.


                  You do not need to use WWD API.   In SDK 3.1.1 , you can use wiced_xxx. API.

                  Please refer  demo code in SDK3.1.1


                  snip.wps_enrollee-BCM94390WCD2-ThreadX-NetX NO_BUILD_BOOTLOADER=1 download run

                  snip.wps_enrollee-BCM94390WCD2-FreeRTOS-LwIPNO_BUILD_BOOTLOADER=1 download run



                  snip.wps_registrar-BCM94390WCD2-ThreadX-NetX NO_BUILD_BOOTLOADER=1 download run

                  snip.wps_registrar-BCM94390WCD2-FreeRTOS-LwIPNO_BUILD_BOOTLOADER=1 download run


                  It works fine.... ( except small issues )



                  • 6. Re: How to use WPS via WWD-API for STA+AP (SN8000x; SDK 3.0.1)

                    New Update:

                    - I guess, the low-level-driver is available as binary only.

                    - I've tried the new SDK 3.1.1 and have still problems with it.


                    With SDK 3.1.1:

                    The Demo "wwd.appliance" is not compilable with APPLIANCE_ENABLE_WPS. (H-File missing)

                    The Demo "snip.wps_registrar" is compilable and after a power cycle I can see some uart-outputs. But they are no readable debugouts. So I may have to change the uart settings, I used 115kBaud 8-n-1.


                    => Which Uart settings is the right one for the SDK?

                    => Anyone has compiled "wwd.appliance"?

                    • 7. Re: How to use WPS via WWD-API for STA+AP (SN8000x; SDK 3.0.1)

                      New Update (SDK 311):


                      In addition, WPRINT_ENABLE_APP_INFO is defines and WPRINT_MACRO maps to printf. I guess, debugouts were generated.


                      I tried to debug the "snip.wps_registrar" demo for internal informations. I was able to start the debugger and set a breakpoint to the call of "wiced_int()" in function "application_start()". The result is a stop in a non-visible function "_tx_thread_system_return()". I expected a break at the function call.


                      => Should I modify any settings for using the debugger?

                      => Is it possible to debug the demos? Were is my mistake?