Bluetooth Wifi Combo with 2 modules

Tip / Sign in to post questions, reply, level up, and achieve exciting badges. Know more

cross mob
JoSt_3481606
Level 4
Level 4
First like received

I'm trying to get 2 dev boards working together.  I have the CYW493907AEVAL1F along with the CYBT-353027-EVAL  This is a cyw43907 wifi chip with a 20707 bt chip. I am trying to get the wifi chip to connec to the hci interface of the bt dev board.  So far I haven't had any luck.  I am tried to just use the CYW943907WAE3 platform since it is very similar to what I am trying to do.  I also have a Murata1QP board which is a single module that uses the same parts.  I have tried using that platform file as well with no luck.  I am not getting any communication out of uart0.  I have been trying to run the ibeacon demo.

I am working on a proof of concept using the devboards, but will be spinning a board shortly. Should I be making my own platform files?

I have the following connections

cyw43907eval                                           cybt353027eval

UART0_RXD_IN         J6:18                    BT_UART_TXD  HCI J1:4

UART0_TXD_OUT     J6:20                    BT_UART_RXD HCI J1:3

UART0_CTS_IN          J6:22                   BT_UART_RTS HCI J1:6

UART0_RTS_OUT      J6:24                    BT_UART_CTS HCI J1:5

RF_SW_CTRL_8          J6:38               GCI_SeCI_IN GPIO6

RF_SW_CTRL_9          J6:39               GCI_SECI_OUT GPIO5

I also tried connecting the rest, host wake and device wake pins as described in the platform.c file

0 Likes
12 Replies
SheetalJ
Moderator
Moderator
Moderator
First comment on KBA 750 replies posted 500 likes received

Hi strickon_3481606​,

CYW943907WAE3 board has CYW43907 and CYW20707 chips integrated on a single board. You are trying to integrate two different WiFi and Bluetooth modules. Both the modules have different platforms files, platform files of CYW943907WAE3 or any other similar combo board wont work here.

Let me be clear, if you are trying to make a "combo" board by combining these two boards then I am afraid it wont be possible. You will have to program both the boards separately.

0 Likes

That doesn’t make much sense. A module is nothing special. It’s just a chip with some pins broken out. i only want to program the WiFi module and use the 20707 through the hci interface. if a certified combo module were available I wouldnt have to do that.  For my application it has to be two for now.

I have ave looked at the platform files and there is nothing special about them. If you have a bluetooth chip, they just add a few lines and specific the right pins.

fot the cyw943907wae3 there doesn’t appear to be any programming for the 20707. It’s just connected through the hci interface. That is what I want to emulate.

So I was able to modify the CYW943907AEVAL1F platform files to add the CYBT-353027-02 module using the CYBT-353027-EVAL.  I was able to run the test console app and successfully send the bt_hci_reset command and get the successful response back.  I captured that with the logic analyzer and saw the right messages.  That seems to be the only command it will accept.

Since the 353027-02 has onboard flash it doesn't boot to hci mode by default.  I was able to work around that using this information Putting 2073x, 2070x, and 20719 Based Devices or Modules in HCI Mode – KBA225450 .  So if I reset the device using the recover button and then run test console I can call the bt_hci_reset.

That isn't that big of a problem as I can use 2 gpio pins of the cyw943907 to reset the bt module this way.  The problem is that it doesn't seem to work for any other commands.

I tried the ble_proximity_reporter and the ibeacon snip for example and after the hci reset I get responses that says the commands are not valid.

How do I put the CYBT-353027 into full HCI mode?  I have also tried the other option in the note which says to load a non bluetooth app on the bt module.  I tried with the MyBeacon snip and the hci mode doesn't work either.

00:34:30.941: Started ThreadX v5.8

00:34:30.941: ibeacon_application_start

00:34:30.956: 00:00:00.007000 GKI_create_task func=0x4aa701  id=1  name=BTU  stack=0x0  stackSize=4096

00:34:30.956: 00:00:00.014000 GKI_create_task func=0x4abf01  id=0  name=HCISU  stack=0x0  stackSize=3072

00:34:30.956: 00:00:00.123000 --

00:34:31.066: 00:00:00.124000 SENT Command to HCI. Name: HCI_Reset  (Hex Code: 0x0c03  Param Len: 0) Ctrl(0)

00:34:31.066: 00:00:00.133000 --

00:34:31.066: 00:00:04.123000 --

00:34:35.069: 00:00:04.124000 SENT Command to HCI. Name: HCI_Reset  (Hex Code: 0x0c03  Param Len: 0) Ctrl(0)

00:34:35.069: 00:00:04.132000 --

00:34:35.069: 00:00:04.137000 --

00:34:35.084: 00:00:04.139000 RCVD Event from HCI. Name: HCI_Command_Complete  (Hex Code: 0x0e  Param Len: 4) Ctrl(0)

00:34:35.084: 00:00:04.148000 Parameters

00:34:35.084: 00:00:04.151000                      Num HCI Cmd Packets : 1 (0x01)

00:34:35.100: 00:00:04.157000                                 Cmd Code : 0x0c03  (HCI_Reset)

00:34:35.100: 00:00:04.164000                                   Status : Success (0x00)

00:34:35.116: 00:00:04.170000 --

00:34:35.116: 00:00:04.172000 --

00:34:35.116: 00:00:04.174000 SENT Command to HCI. Name: (null)  (Hex Code: 0xfc2e  Param Len: 0) Ctrl(0)

00:34:35.116: 00:00:04.182000 Error - Unknown HCI command: 64558 [0xfc2e] Length: 0

0 Likes

If recover-reset procedure is not working for you, then can you try programming the kit using GPIO app and see if it works?

0 Likes

As I stated the recover reset procedure did work. I also loaded the gpio app which confirms that it puts it into the same state without having to use the recover pin.  The problem is that anything other than the bt_hci_reset command isn't returning properly.

For example this is output of the ibeacon snip.

Platform DaughterCard initialised

09:41:21.907: Started ThreadX v5.8

09:41:21.907: ibeacon_application_start

09:41:21.907: 00:00:00.007000 GKI_create_task func=0x4aa701  id=1  name=BTU  stack=0x0  stackSize=4096

09:41:21.907: 00:00:00.014000 GKI_create_task func=0x4abf01  id=0  name=HCISU  stack=0x0  stackSize=3072

09:41:21.922: 00:00:00.123000 --

09:41:22.016: 00:00:00.124000 SENT Command to HCI. Name: HCI_Reset  (Hex Code: 0x0c03  Param Len: 0) Ctrl(0)

09:41:22.032: 00:00:00.133000 --

09:41:22.032: 00:00:00.639000 --

09:41:22.544: 00:00:00.641000 RCVD Event from HCI. Name: HCI_Command_Complete  (Hex Code: 0x0e  Param Len: 4) Ctrl(0)

09:41:22.544: 00:00:00.650000 Parameters

09:41:22.544: 00:00:00.652000                      Num HCI Cmd Packets : 1 (0x01)

09:41:22.560: 00:00:00.658000                                 Cmd Code : 0x0c03  (HCI_Reset)

09:41:22.560: 00:00:00.665000                                   Status : Success (0x00)

09:41:22.560: 00:00:00.671000 --

09:41:22.579: 00:00:00.673000 --

09:41:22.579: 00:00:00.675000 SENT Command to HCI. Name: (null)  (Hex Code: 0xfc2e  Param Len: 0) Ctrl(0)

09:41:22.579: 00:00:00.683000 Error - Unknown HCI command: 64558 [0xfc2e] Length: 0

09:41:22.595: 00:00:00.689000 --

09:41:22.595: 00:00:00.695000 --

09:41:22.595: 00:00:00.696000 RCVD Event from HCI. Name: HCI_Command_Complete  (Hex Code: 0x0e  Param Len: 4) Ctrl(0)

09:41:22.611: 00:00:00.705000 Parameters

09:41:22.611: 00:00:00.708000                      Num HCI Cmd Packets : 1 (0x01)

09:41:22.611: 00:00:00.714000                                 Cmd Code : 0xfc2e  ((null))

09:41:22.623: 00:00:00.720000 00

09:41:22.623: 00:00:00.722000 --

0 Likes

I think I know what the problem is but need some help with a solution.  So I realized that the issue is that there is a difference between Wiced HCI and Bluetooth HCI.  I found in the documentation that the only valid commands are the bt_hci_reset and the download commands.  I realize that I needed to set my wifi project to download the embedded HCI drivers. 

What I would like to do is get the Ibeacon snip running. I have tried adding the embedded stack as my setup is simialr to the cyw943907wae3/4 

I get this response but when I put the logic analyzer on the hci uart I see the reset and the proper response.  Is there a good example to follow to load the wiced hci stack with  a simple ble example?

18:17:45.752: Platform DaughterCard initialised

18:20:10.611: Started ThreadX v5.8

18:20:10.611: ibeacon_application_start

18:20:10.626: Downloading Firmware...

18:20:11.126: HCI_CMD_RESET command reponse is wrong

18:20:11.246: Error downloading HCI firmware

18:20:11.246: Platform DaughterCard initialised

18:20:32.988: Started ThreadX v5.8

18:20:32.988: ibeacon_application_start

18:20:32.988: Downloading Firmware...

18:20:33.485: HCI_CMD_RESET command reponse is wrong

18:20:33.597: Error downloading HCI firmware

Here is my make file for ibeacon.  Daughter card is my platform.

NAME := iBeacon_Application

########################################################################

# Application source files

########################################################################

$(NAME)_SOURCES =  ibeacon.c \

                   wiced_bt_cfg.c

$(NAME)_INCLUDES   := .

$(NAME)_COMPONENTS += libraries/drivers/bluetooth/low_energy

#GLOBAL_DEFINES     += ENABLE_BT_PROTOCOL_TRACES

# Set the below flag to 1, if application needs to be executed on Embedded Stack (CYW943907WAE3/4 only).

USE_BT_EMBED_MODE := 1

ifeq ($(USE_BT_EMBED_MODE), 1)

$(info "Embedded Stack")

$(NAME)_COMPONENTS += libraries/drivers/bluetooth/wiced_hci_bt \

                      libraries/protocols/wiced_hci

GLOBAL_DEFINES     := USE_WICED_HCI

EMBEDDED_APP_NAME := hci_spp_le_app

#GLOBAL_DEFINES     += ENABLE_BT_PROTOCOL_TRACES

VALID_PLATFORMS    = CYW943907WAE* CYW9WCD2REFAD2.CYW943012A0FCREF_3 CYW9WCD760PINSDAD2 DaughterCard MurataType1QP

INVALID_PLATFORMS  += BCM9WCD1AUDIO BCM943909* BCM943907*

else

$(info "Host Stack")

$(NAME)_COMPONENTS += libraries/drivers/bluetooth/low_energy

VALID_PLATFORMS +=      BCM943909WCD* \

                        BCM943340WCD1 \

                        BCM9WCD1AUDIO \

                        BCM943438WLPTH_2 \

                        BCM943438WCD1 \

                        CYW94343WWCD1_EVB \

                        NEB1DX*        \

                        BCM943907AEVAL2F \

                        BCM958100SVK \

                        BCM943340WCD1 \

                        CYW943907WAE* \

                        CYW9WCD2REFAD2.CYW943012A0FCREF_3 \

                        CYW9WCD760PINSDAD2 \

                        BCM9WCD2REFAD.CYW943012A0FCREF_3 \

                        CYW943455EVB* \

                        CYW943012EVB*

                       

INVALID_PLATFORMS  += BCM943907WCD2*

endif

# Enable this flag to get bluetooth protocol traces

0 Likes

Your ibeacon makefile looks good to me.

Can you try loading hello sensor application?

Let me know if that works.

0 Likes

I can't get ibeacon or hellosensor to work.  They fail the same way.

18:10:03.188: Platform DaughterCard initialised

18:11:54.158: Started ThreadX v5.8

18:11:54.174: Hello Sensor Start

18:11:54.174: Downloading Firmware...

18:11:54.670: HCI_CMD_RESET command reponse is wrong

18:11:54.782: Error downloading HCI firmware

I have programmed gpio on teh bluetooth module  If I run test console on the wifi board, I can call bt_hci_reset and I get success.

It appears that the same hci reset command is being sent with hello sensor as well as ibeacon but it is failing.

with both of those the bluetooth chips receives 0x01 0x03 0x0C 0x00 and then responds back about 30ms later with 0x04 0x0E 0x004 0x01 0x03 0x0C 0x00

What am I missing here?

Also ultimately, I dont' want to have to program the bluetooth module with anything.

here is the makefile for hello sensor

#

# Copyright 2018, Cypress Semiconductor Corporation or a subsidiary of

# Cypress Semiconductor Corporation. All Rights Reserved.

# This software, including source code, documentation and related

# materials ("Software"), is owned by Cypress Semiconductor Corporation

# or one of its subsidiaries ("Cypress") and is protected by and subject to

# worldwide patent protection (United States and foreign),

# United States copyright laws and international treaty provisions.

# Therefore, you may use this Software only as provided in the license

# agreement accompanying the software package from which you

# obtained this Software ("EULA").

# If no EULA applies, Cypress hereby grants you a personal, non-exclusive,

# non-transferable license to copy, modify, and compile the Software

# source code solely for use in connection with Cypress's

# integrated circuit products. Any reproduction, modification, translation,

# compilation, or representation of this Software except as specified

# above is prohibited without the express written permission of Cypress.

#

# Disclaimer: THIS SOFTWARE IS PROVIDED AS-IS, WITH NO WARRANTY OF ANY KIND,

# EXPRESS OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, NONINFRINGEMENT, IMPLIED

# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. Cypress

# reserves the right to make changes to the Software without notice. Cypress

# does not assume any liability arising out of the application or use of the

# Software or any product or circuit described in the Software. Cypress does

# not authorize its products for use in any products where a malfunction or

# failure of the Cypress product may reasonably be expected to result in

# significant property damage, injury or death ("High Risk Product"). By

# including Cypress's product in a High Risk Product, the manufacturer

# of such system or application assumes all risk of such use and in doing

# so agrees to indemnify Cypress against all liability.

#

# The 20706A2/43012C0 BT embedded applications are capable of interacting with 43xxx_WiFi MCU applications

# The embedded applications serve to abstract the details of Bluetooth protocols and profiles while allowing MCU application to handle with the business logic.

# The apps processor is typically connected over UART and can send commands and receive notifications.

# In order to use with 43xxx_WiFi, the HCD file generated must be downloaded into 20706/43012C0 RAM.

# Follow these instructions, in order for 43xxx_WiFi MCU applications to work with Embedded BT application (applies to 20706A2 and 43012C0 based platforms):

# 1.) Set the USE_BT_EMBED_MODE flag to 1 in the application Makefile

# 2.) By default, the Makefile picks the default bt_firmware_embedded_(EMBEDDED_APP_NAME).c firmware file,

# that is present in libraries/drivers/bluetooth/firmware/. Refer to the firmware.mk file for details.

# 3.) The application running on MCU shall use WICED_HCI mode to communicate with the Bluetooth embedded application

#

# To build a custom BT embedded application, follow the below steps:

# 1.) Open the 20706/43012 embedded application present under the respective Chip project in the WICED Studio IDE

# 2.) Modify/enhance the embedded application as desired.

# 3.) Build application to produce a downloadable hcd file.  For example

#     demo.headset-CYW920706WCDEVAL DIRECT_LOAD=1 build

# 4.) Convert '.hcd' file generated above to byte-array in a 'C' file using hcd2c.pl script.

#     Use the hcd2c.pl present under libraries/drivers/bluetooth/firmware/tools to generate the C file.

#     Sample command: perl hcd2c.pl -n headset-CYW920706WCDEVAL_40Mhz-rom-ram-Wiced-release.hcd > firmware.c

# 5.) Make sure that 'C' file generated above is syntatically correct and uses 'brcm_patchram_buf' and brcm_patch_ram_length' names

#      to represent byte-array and byte-array length

#     For example :

#        const uint8_t brcm_patchram_buf[] = { << byte_array here >> };

#        const int brcm_patch_ram_length = sizeof(brcm_patchram_buf);

#     For reference, check this file: bt_firmware_embedded_headset.c file.

# 6.) Rename this C file to bt_firmware_embedded_(EMBEDDED_APP_NAME).c and place under the respective BT_CHIP folder in the firmware path mentioned above.

# 7.) The 43xx_Wifi_MCU application will link & compile the updated C file.

NAME := Bluetooth_Low_Energy_Hello_Sensor_Application

$(NAME)_SOURCES    := ble_hello_sensor.c \

                      wiced_bt_cfg.c

$(NAME)_INCLUDES   := .

$(NAME)_COMPONENTS := utilities/command_console

# Set USE_BT_EMBED_MODE to 0 for all platforms other than CY943907WAE3

USE_BT_EMBED_MODE := 1

PLATFORMS_FOR_POWER_SAVE := CYW943907WAE3 CYW94343WWCD1_EVB CYW943907WAE4 DaughterCard MurataType1QP

#ENABLE_APP_POWERSAVE macro will be used only for platforms mentioned in PLATFORM_FOR_POWER_SAVE_FLAG.

ifneq ($(filter $(PLATFORM),$(PLATFORMS_FOR_POWER_SAVE)),)

$(info "Power Save enabled")

GLOBAL_DEFINES   := ENABLE_APP_POWERSAVE

GLOBAL_DEFINES   += PLATFORM_POWERSAVE_DEFAULT=1

ifeq ($(PLATFORM),$(filter $(PLATFORM),CYW943907WAE4 CYW943907WAE3, DaughterCard, MurataType1QP))

GLOBAL_DEFINES   += PLATFORM_MCU_POWERSAVE_MODE_INIT=PLATFORM_MCU_POWERSAVE_MODE_DEEP_SLEEP

#GLOBAL_DEFINES   += PLATFORM_MCU_POWERSAVE_MODE_INIT=PLATFORM_MCU_POWERSAVE_MODE_SLEEP

# GLOBAL_DEFINES   += WICED_DISABLE_WATCHDOG

GLOBAL_DEFINES   += APPLICATION_WATCHDOG_TIMEOUT_SECONDS=60

GLOBAL_DEFINES   += WICED_NO_WIFI

GLOBAL_DEFINES   += NO_WIFI_FIRMWARE

USE_BT_EMBED_MODE := 1

endif

endif

ifeq ($(USE_BT_EMBED_MODE), 1)

$(info "Embedded Stack")

$(NAME)_COMPONENTS += libraries/drivers/bluetooth/wiced_hci_bt \

                      libraries/protocols/wiced_hci

GLOBAL_DEFINES     += USE_WICED_HCI

EMBEDDED_APP_NAME      := headset

# The below BT chip related config is required for Fly-wire setup only, as this is not defined in the BCM943907WCD2 platform file.

ifeq ($(PLATFORM), BCM943907WCD2)

BT_CHIP            := 20706

BT_CHIP_REVISION   := A2

BT_CHIP_XTAL_FREQUENCY := 20MHz

endif

VALID_PLATFORMS    = CYW943907WAE3 BCM943907WCD2 CYW9WCD2REFAD2.CYW943012A0FCREF_3 CYW9WCD760PINSDAD2 CYW943907WAE4 DaughterCard MurataType1QP

INVALID_PLATFORMS  += BCM9WCD1AUDIO BCM943909*

else

$(info "Host Stack")

$(NAME)_COMPONENTS += libraries/drivers/bluetooth/low_energy

VALID_PLATFORMS = BCM943909WCD* \

                   BCM943340WCD1 \

                   BCM9WCD1AUDIO \

                   BCM943438WLPTH_2 \

                   BCM943907WAE_1 \

                   BCM943340WCD1 \

                   CYW94343WWCD1_EVB \

                   NEB1DX* \

                   BCM943438WCD1 \

                   BCM920739B0_EVAL \

                   BCM920739B0_HB2 \

                   CYW943907WAE3 \

                   CYW943907WAE4 \

                   BCM943907AEVAL2F \

                   CYW9MCU7X9N364 \

                   CYW9WCD2REFAD2.CYW943012A0FCREF_3 \

                   CYW9WCD760PINSDAD2 \

                   BCM94343WWCD2 \

                   CY8CKIT_062 \

                   CYW943012EVB* \

                   CYW943455EVB* \

                   DaughterCard

INVALID_PLATFORMS  += BCM943907WCD2*

endif

VALID_OSNS_COMBOS  := ThreadX-NetX_Duo FreeRTOS-LwIP

# Enable this flag to get bluetooth protocol traces

#GLOBAL_DEFINES     += ENABLE_BT_PROTOCOL_TRACES

0 Likes

I have continued to have problems.  I am still trying to get the ibeacon snip to work.  I have it working with the murata 1qp.  I can't get it to work with my 2 module platform which should be functionally equivalent.  The only new information I have been able to find is that the cybt353027-02 has a 24Mhz xtal.  It seems there may not be the right firmware driver as in /libraries/drivers/bluetooth/firmware/20706A2/ there is only a bt_firmware_controller.c for 20 or 40 mhz.

This is all in host controller mode.

I have captured the communication between my 43907 and 20707 and can see that it is trying to load a mini driver.

What is the sequence of events on boot between the 43907 and 20707 in host controller mode?

What gets loaded when?

How do we make this all work?  Is the only difference between a 1Qp and the 1GC cybt353027-02 combo just the xtal and the additon of flash on the standalone module?

Is there some sort of firmware I could flash on the cybt first?  right now I have hal.gpio.

0 Likes

Hi strickon_3481606,

Yes there is no default bt_firmware_controller.c for 24MHz.

Can you try following things if it works for you:

- In Make Target, specify the frequency as 24MHz. For example,

demo.audio.headset-CYW920706WCDEVAL DIRECT_LOAD=1 build FREQ=24Mhz

Then try to generate the .c file as per the instructions given in hello sensor makefile.

- Module CYBT-353027 uses CYW20706A2 and works on 24MHz. Can you try programming the module using the instructions specified in https://community.cypress.com/docs/DOC-14908 ?

Also, please check if you have specified correct frequency for BT chip in your platform makefile DaughterCard.mk.

This solution doesn't work and it also has mistakes. 
Here is what I did and what the problems are.

I figured I would start with something generic so I choose the seral_gatt_service

demo.hci_serial_gatt_service-CYBT_353027_EVAL DIRECT_LOAD=1 build

I tried tried including FREQ=24Mhz but it gave an error that it couldn't create the .hcd file.  I figure since it has the proper platform file, you probably don't need to include FREQ

"C:\\WICED-Studio-6.2\\20706-A2_Bluetooth\\make.exe" demo.hci_serial_gatt_service-CYBT_353027_EVAL DIRECT_LOAD=1 build FREQ=24MHz

Transport=UART

--------------------------------------------------------------------------------

Patches start at                  0x000D0200 (RAM address)

Patches end at                    0x000DD7B8 (RAM address)

Application starts at             0x00217A38 (RAM address)

Application ends at               0x0021AE88 (RAM address)

Patch size                             54712 bytes

Application size                       13392 bytes

                                      ------

Total RAM footprint                    68104 bytes (66.5kiB)

--------------------------------------------------------------------------------

Converting CGS to HCD for direct load...

**** Conversion failed ****

Eliminating FREQ allowed it to build.

I then tried to use the perl script to convert the .hcd to the c file and once again the directions were wrong.

In hello sensor.mk they give these instructions.

# 4.) Convert '.hcd' file generated above to byte-array in a 'C' file using hcd2c.pl script.

#     Use the hcd2c.pl present under libraries/drivers/bluetooth/firmware/tools to generate the C file.

#     Sample command: perl hcd2c.pl -n headset-CYW920706WCDEVAL_40Mhz-rom-ram-Wiced-release.hcd > firmware.c

# 5.) Make sure that 'C' file generated above is syntatically correct and uses 'brcm_patchram_buf' and brcm_patch_ram_length' names

But it turns out that the flag of "-n" is wrong.  It needs to be "-fm" which I determined by looking at the perl file.

when I run this, it works

perl hcd2c.pl -fm  hci_serial_gatt_service /c/WICED-Studio-6.2/20706-A2_Bluetooth/build/hci_serial_gatt_service-CYBT_353027_EVAL-rom-ram-Wiced-release/hci_serial_gatt_service-CYBT_353027_EVAL-rom-ram-Wiced-release.hcd

It generated bt_firmware_embedded_hci_serial_gatt_service.c which I put into libraries/bluetooth/firmware/20706A2/24MHz/

Now I modified the mk file for ibeacon to use embedded mode.

# Set the below flag to 1, if application needs to be executed on Embedded Stack (CYW943907WAE3/4 only).

USE_BT_EMBED_MODE := 1

ifeq ($(USE_BT_EMBED_MODE), 1)

$(info "Embedded Stack")

$(NAME)_COMPONENTS += libraries/drivers/bluetooth/wiced_hci_bt \

                      libraries/protocols/wiced_hci

GLOBAL_DEFINES     := USE_WICED_HCI

EMBEDDED_APP_NAME := hci_serial_gatt_service

VALID_PLATFORMS    = CYW943907WAE* CYW9WCD2REFAD2.CYW943012A0FCREF_3 CYW9WCD760PINSDAD2 DaughterCard MurataType1QP

else

$(info "Host Stack")

$(NAME)_COMPONENTS += libraries/drivers/bluetooth/low_energy

VALID_PLATFORMS += BCM943909WCD* \

                   BCM943340WCD1 \

                   BCM943907WAE_1 \

                   CYW94343WWCD1_EVB \

                   NEB1DX* \

                   BCM94343WWCD2 \

                   BCM943438WCD1 \

                   CYW943907WAE* \

                   CYW9WCD2REFAD2* \

                   CYW9WCD760PINSDAD2 \

                   MurataType1QP \

                   DaughterCard

endif

I tried to run the app

snip.bluetooth.ibeacon-DaughterCard download run

Just as before when we tried embedded mode it won't download the firmware.  From the serial console you get this output.

10:00:17.769: Platform DaughterCard initialised

10:34:13.758: Started ThreadX v5.8

10:34:13.758: ibeacon_application_start

10:34:13.774: Downloading Firmware...

10:34:14.281: HCI_CMD_RESET command reponse is wrong

10:34:14.392: Error downloading HCI firmware

If I look at the signals with a logic analyzer I get the following.

wifi module sends 0x01, 0x03 0x0C 0x00 (bt_hci_reset)

30ms later

ble module responds 0x04 0x0E 0x04 0x01 0x03 0x0C 0x00

So this all seems correct.

This is the same result that we had before trying embedded mode.  It just doesn't seem to work.

I have no idea where we go from here?  We have a lot of time invested in this solution so I am hoping there is a solution soon.

It seems the best option would be for cypress to actually provide the bt_firmware_controller.c for 24MHz.

0 Likes
MichaelF_56
Moderator
Moderator
Moderator
250 sign-ins 25 comments on blog 10 comments on blog

CYW943907WAE3 is not a broad market eval board and needs to be supported by the local team that sampled the board to you.

0 Likes