Bluetooth SDK Forum Discussions
Back In October I had asked a question about disabling I2S Data-Out pin and reassigning a different (GPIO) function to the pin.
I2S Configuration in MTB / Device Configurator V2.1
A response was provided that indicated that there would be an option in the Device Configurator to disable the 'TX' functionality for the I2S block and then the pin could be reassigned.
However when running the Configurator for the CYW20719B2 chip, I do not see that option available and the Data Out pin must be assigned to get the Configurator to complete without error.
How can I over-ride this pre-assigned functionality and utilize the pin as a general purpose GPIO?
Show LessHello dear all,
I am trying to do some examples by using "btsdk-mesh" repo on CYBT-213043 module. First of all I want to thank everyone who contributed all the ble mesh related documents and examples. They are really helpful and easy to understand. However, I want to make sure about what I am doing sth correctly. That's why I started this discussion.
I have EZ-BT Mesh Evaluation Kit CYBT-213043 Mesh. Basically, I want to realize provision and control/monitor scenarios by using these 4 boards and not using android/ios/windows helper applications. I added a figure below to make sth more clear.
What I expect from you is, I highlighted/bolded some text below could you please share your comments about that? Thank you
Let me explain the scenario:
1) Create a mesh network over Node A.
- This node is connected to another mcu over uart. And "Node A" receives all scan/provision/control messages from "Other MCU". I think HCI-UART should be used for this purpose. ( by following the steps inHow to Use HCI Raw Data Mode in CYW20706 - KBA225970 )
2) Follow the provisioner logs over PC.
- PUART should be used for this.
3)While "Mesh_demo_dimmable_light" example is used for NODE B/C/D, "Mesh_demo_embedded_provisioner" can be used for Node A. Is it suitable or do we have better solutions?
PS: I am using ModusToolbox 2.2 on ubuntu
Hello,
i'm using Eval-423054-b2,i need support for i2c interface with external eeprom,
i am trying to interface m24m01 eeprom compatible device, but I am not able to read and write .
please need immediate support.
Regards,
Rahul
Show LessHi there,
I have installed modus toolbox 2.2 in my windows 8 PC and try to start a new application according to getting started guide. Select File > New > ModusToolbox Application. But there is no selection for me to choose the Board Support Package (BSP) as “CYBT-213043-MESH”.
See screen shots attached.
Please advise what file is missing in my PC. Thanks!
Show LessI think that FLASH0_BEGIN_ADDR: 0x500000 and FLASH_LENGTH: 0x040000 (256 kbyte).
However it seems that generated LD file is conflicting the definition.
My LD file generated by build script with SDK is the following description.
MEMORY
{
ram (rwx) : ORIGIN = 0x20FC14, LENGTH = 0x17FEC
aon (rwx) : ORIGIN = 0x203210, LENGTH = 0x1364
static_section (r) : ORIGIN = 0x500C00, LENGTH = 0x400
xip_section (rx) : ORIGIN = 0x501480, LENGTH = 0x3FF80
log_section (r) : ORIGIN = 0x81000004, LENGTH = 0x100000
}
0x501480 + 0x3FF80 = 0x541400 (It should be incorrect)
0x501480 + 0x3EB80 = 0x540000 (Probably this is correct)
Please check this.
Show Lesshi
I have 2 CYBT-213043-MESH kit
I use modustoolbox 2.1
I use controlclient app
and I use a CYBT-213043-MESH board with the code, Mesh_provisiont_client ...
I have a problem with the CYBT-213043-MESH kit
I provisioned 8 CYBT-213043-MESH boards to a single network
each board has the example code mesh_vendor_specific
The boars work fine for a few days, but sometimes 3 of the 8 plates come out of the mesh net, and this happens after about 4 days.
Why are these cards being deprovisioned from the network?
Is there a code function that allows me to reconnect these boards to the mesh network automatically without using the client control tool a second time?
or how can I prevent the plates from slipping out of the mesh net?
Show LessI've written a small test program just to verify that I understand the queue API's in the rtos module.
I've created a thread that simply prints a log message to the PUART and toggles a GPIO, and I've set up an Interrupt routine for a Button. The goal is to use the message queue to trigger and communicate from the Interrupt Handler to the Thread.
First as a test, If I created and initialized a semaphore, and then 'set' the semaphore in the Interrupt handler and 'get' the semaphore in the thread, things work as I expect them to: when the button is pressed, the interrupt is registered, the semaphore is set and the Thread un-blocks and performs its actions.
However, if I replace the semaphore with a queue, (created and initialized with success based on the return values), I can push to the queue successfully from the Interrupt routine (based on the return value and also based on checking the queue occupancy), however, the thread never unblocks on the 'pop' operation. I have increased the # of buffer pools from 4 to 8, but that does not make a difference (and, literally, there is nothing else in this test program but the Interrupt handler and the Thread).
I've experimented with different message sizes and different queue lengths to no avail. All of the _create_, _init_, and push functions seems to operate correctly based on the return values, ... it only seems to be the pop function that is not working.
Any suggestions?
Show LessI am trying to use “wiced_bt_sco_hook.h” to hook into the stream of data from the phone to the headset, but I get a 0 as the pointer for the speaker input:
if(event == WICED_BT_SCO_HOOK_EVT_SPK_SAMPLES)
{
WICED_BT_TRACE("Speaker input: %d, output: %d, count: %d, silenc: %d\n\r", hookcounter, p_data->spk_samples.p_input, p_data->spk_samples.p_output, p_data->spk_samples.sample_count, p_data->spk_samples.inserted_silence_len.value);
}
if(event == WICED_BT_SCO_HOOK_EVT_MIC_SAMPLES)
{
WICED_BT_TRACE("MIC input: %d, output: %d, count: %d, silenc: %d\n\r", hookcounter, p_data->mic_samples.p_input, p_data->mic_samples.p_output, p_data->mic_samples.sample_count, p_data->mic_samples.inserted_silence_len.value);
}
In the hook callback, gives:
Speaker input: 0, output: 2549760, count: 120, silenc: 0
MIC input: 2549504, output: 2303804, count: 120, silenc: 0
Is this because I use a headset and not the speaker?
Are there any other ways of getting a pointer to the input buffer?
I have tried to use:
stream_interface_t* wiced_am_stream_get_intf(uint32_t stream_id, uint32_t inf_type);
from "wiced_audio_manager.h" but when I look in the c file the function has not yet been implemented.
I use:
- CYW920721B2EVK-02
- Eclipse with ModusToolBox v2.2.0
- Bluetooth SDK version 2.8.0
- A headset with microphone
/ Jacob
Show LessHello!
I use an example from the AG library and I can't connect a wide-band headset to my application.
Narrow band headsets work fine - there is audio.
But when I connect the wideband - there is no audio.
Would you like to see if I am using the wrong settings? Or the chip simply does not support the wideband?
/*
* Create SCO connection as an originator or an acceptor
*/
void hfp_ag_sco_create( hfp_ag_session_cb_t *p_scb, BOOLEAN is_orig )
{
//wiced_bt_dev_status_t status;
wiced_bt_sco_params_t params = hf_control_esco_params;
/* remove listening SCO */
if ( p_scb->sco_idx != BTM_INVALID_SCO_INDEX )
wiced_bt_sco_remove( p_scb->sco_idx );
/* Attempt to use eSCO if remote host supports HFP >= 1.5 */
if ( is_orig )
{
if (p_scb->retry_with_sco_only)
{
p_scb->retry_with_sco_only = WICED_FALSE;
params.packet_types = BTM_SCO_LINK_ONLY_MASK;
}
else
{
#if (BTM_WBS_INCLUDED == TRUE)
if ( p_scb->peer_supports_msbc && !p_scb->msbc_selected )
{
/* Send +BCS to the peer and start a 3-second timer waiting for AT+BCS */
hfp_ag_send_BCS_to_hf (p_scb);
wiced_start_timer (&p_scb->cn_timer, 3);
return;
}
/* If WBS is negotiated, override the necessary defaults */
if ( p_scb->msbc_selected )
{
params.use_wbs = WICED_TRUE;
params.max_latency = 13;
params.retrans_effort = BTM_ESCO_RETRANS_QUALITY;
params.packet_types = ( BTM_SCO_PKT_TYPES_MASK_EV3 | /* EV3 + 2-EV3 */
BTM_SCO_PKT_TYPES_MASK_NO_3_EV3 |
BTM_SCO_PKT_TYPES_MASK_NO_2_EV5 |
BTM_SCO_PKT_TYPES_MASK_NO_3_EV5 );
BT_Trace(BT_RES_WICED_USE_WBS);
}
else
BT_Trace(BT_RES_WICED_USE_NBS);
#endif
/* Igf setup fails, fall back to regular SCO */
p_scb->retry_with_sco_only = WICED_TRUE;
}
wiced_bt_sco_create_as_initiator( p_scb->hf_addr, &p_scb->sco_idx, ¶ms );
}
else
{
p_scb->retry_with_sco_only = WICED_FALSE;
wiced_bt_sco_create_as_acceptor( &p_scb->sco_idx );
}
WICED_BT_TRACE( "hfp_ag_sco_create is_orig: %u sco_idx: 0x%0x status:0x%x retry_with_sco_only: %u\n",
is_orig, p_scb->sco_idx, status, p_scb->retry_with_sco_only );
}
Show LessHi,
I am calling the function wiced_bt_sdp_service_search_attribute_request, with correct arguments, but I am getting WICED_BT_SDP_NO_RESOURCES from the callback function that is passed as argument in the function wiced_bt_sdp_service_search_attribute_request. How I can solve this ?
Regards,
Tamilarasan C.
Show Less