Smart Bluetooth Forum Discussions
text.format{('custom.tabs.no.results')}
Hi,
Regarding this closed thread here: HW Timer in 2073x
can you explain a little bit that how can we access the register of a timer? I want to start a timer at a specific point and if sth happens later I want to stop the timer and measure the time it took between these two(start and stop). also, this elapsed time is in order of 1-3 milliseconds so the timer resolution must be high I guess. I was thinking of using hw_timer but I didn't find enough resources about its register and how to operate it. if you help me a little I will be thankful forever...(if you have another method of measuring the time between two incidents I will be thankful to hear it.)
BTW, I'm new to all these and I'm using bcm20737(now cyw20737?)
Show LessHello team,
In our design , we use P0/P1/P8/P32 as ADC input and Pull resistance to each pin of value 33K to Vcore (Vcore is active during Sleep).
When processor enters Sleep mode, Low power current is around ~500uA.
But when we isolate GPIO P0, from the pull up, then low power current drops to ~50-60 uA
Could any suggest, what could be reason?
Why P0 seems to leak current?
Any recommended configuraiton ?
THanks nad regards,
hari
Show LessHi,
RF testing for FCC certification is ongoing on our product with bcm20737S, but spurious issue is found with btm (sdk 2.2.3) measurement.
Comparing module certification report (Broadcom Bluetooth Module Test Report 1 Broadcom Corporation) and our test setup, test utility software is totally different from module test report. We would like to double check the spurious performance with the same test setup as module test report.
Could you support with providing bluetool and instruction how to use it.
Show LessHi Broadcom Team,
We have a very specific issue that seems to be most prevalent on Huawei phones and tablets since we have replicated the issue on two different devices.
On all other Android Devices if we go to Bluetooth Settings, and Search for our Broadcom device, we can see it clearly show up in the listing and available to pair.
However, on Huawei devices it doesn't show up.
It does however appear if we use the "Wiced Smart Explorer" app.
What's more, if we select to pair with it through the Wiced Smart Explorer App, then the device will work with our game.
Have you seen this issue before? We want to understand why this is happening, and how to make the device show up in the standard Bluetooth settings.
Thanks much,
Ethan
andrew997 boont vik86 mwf_mmfae
Show LessScenario:
Design is to detect probe. If no probe absent, enter Sleep/Low Power Mode for 6 seconds and repeat
If probe is present, then Enable BLE Timer for 1sec.
On first entry to 1 sec timer call back. Abort Low Pwer mode.
Measure probe, enable ADVertisement and wait for pairign etc.
Issue: We do not get registered even call back for BLECM_APP_EVT_LINK_UP alone
But all other event callback (BLECM_APP_EVT_LINK_UP and BLECM_APP_EVT_ADV_TIMEOUT ) are called back properly.
Note: Tried executing without calling
bleprofile_enteringDiscLowPowerMode(DEV_LPM_DISC_LOW_POWER_MODES_SLEEP); and
bleprofile_abortingDiscLowPowerMode(DEV_LPM_DISC_LOW_POWER_MODES_SLEEP);
in code
Then, in this case all 3 registered app event are called.
--------------------------------------------------------------------------------------------------------------
Code:
On create()
{
.................
bleprofile_Init(bleprofile_p_cfg);
bleprofile_GPIOInit(bleprofile_gpio_p_cfg);
.
.......
// register connection up and connection down handler.
bleprofile_regAppEvtHandler(BLECM_APP_EVT_LINK_DOWN, cookp_connection_down);
bleprofile_regAppEvtHandler(BLECM_APP_EVT_LINK_UP, cookp_connection_up);
bleprofile_regAppEvtHandler(BLECM_APP_EVT_ADV_TIMEOUT, cookp_advertisement_stopped);
.............
// Low powe mode initialize
devlpm_init();
devlpm_registerForLowPowerQueries(cookp_lpm_queriable, 0);
bleprofile_enteringDiscLowPowerMode(DEV_LPM_DISC_LOW_POWER_MODES_SLEEP);
}
UINT32 cookp_lpm_queriable(LowPowerModePollType type, UINT32 context)
{
if(!cp_lp_abort){
if(cookp_probe_chk()){
ble_trace0("LPQ No");
cookp_reg_timer();
return 0;
}
else {
ble_trace0("LPQ yes");
return 1000000 * 6;
}
}
return 0;
}
void timer_cb()
{
if(!cp_lp_abort){ /* if probe detected on wake up */
cp_lp_abort = TRUE;
bleprofile_abortingDiscLowPowerMode(DEV_LPM_DISC_LOW_POWER_MODES_SLEEP);
}
..................
}
const BLE_PROFILE_CFG cookp_cfg =
{
/*.fine_timer_interval =*/ 500, //COOKP_FINE_TIMER, // ms Note: tried with and without Fine timer , same result
/*.default_adv =*/ HIGH_UNDIRECTED_DISCOVERABLE,
/*.button_adv_toggle =*/ 0, // pairing button make adv toggle (if 1) or always on (if 0)
/*.high_undirect_adv_interval =*/ 32, // slots
/*.low_undirect_adv_interval =*/ 1024, // slots
/*.high_undirect_adv_duration =*/ 10, // seconds
/*.low_undirect_adv_duration =*/ 20, // seconds
/*.high_direct_adv_interval =*/ 0, // seconds
/*.low_direct_adv_interval =*/ 0, // seconds
/*.high_direct_adv_duration =*/ 0, // seconds
/*.low_direct_adv_duration =*/ 0, // seconds
/*.local_name =*/ COOKP_DEVICE_NAME, // [LOCAL_NAME_LEN_MAX];
/*.cod =*/ BIT16_TO_8(COOKP_DEVICE_APPEARENCE),0x00, // [COD_LEN];
/*.ver =*/ "1.00", // [VERSION_LEN];
/*.encr_required =*/ 0, //(SECURITY_ENABLED | SECURITY_REQUEST), // data encrypted and device sends security request on every connection
/*.disc_required =*/ 0, // if 1, disconnection after confirmation
/*.test_enable =*/ 0, // TEST MODE is enabled when 1
/*.tx_power_level =*/ 0x04, // dbm
/*.con_idle_timeout =*/ 0, // second 0-> no timeout
/*.powersave_timeout =*/ 0, // second 0-> no timeout
/*.hdl =*/ {COOKP_MAIN_CHAR_HANDLE, 0x00, 0x00, 0x00, 0x00}, // [HANDLE_NUM_MAX];
/*.serv =*/ {COOKP_MAIN_SERVICE_UUID, 0x00, 0x00, 0x00, 0x00},
/*.cha =*/ {COOKP_MAIN_CHAR_UUID, 0x00, 0x00, 0x00, 0x00},
/*.findme_locator_enable =*/ 0, // if 1 Find me locator is enable
/*.findme_alert_level =*/ 0, // alert level of find me
/*.client_grouptype_enable =*/ 0, // if 1 grouptype read can be used
/*.linkloss_button_enable =*/ 0, // if 1 linkloss button is enable
/*.pathloss_check_interval =*/ 0, // second
/*.alert_interval =*/ 0, // interval of alert
/*.high_alert_num =*/ 0, // number of alert for each interval
/*.mild_alert_num =*/ 0, // number of alert for each interval
/*.status_led_enable =*/ 0, // if 1 status LED is enable
/*.status_led_interval =*/ 0, // second
/*.status_led_con_blink =*/ 0, // blink num of connection
/*.status_led_dir_adv_blink =*/ 0, // blink num of dir adv
/*.status_led_un_adv_blink =*/ 0, // blink num of undir adv
/*.led_on_ms =*/ 0, // led blink on duration in ms
/*.led_off_ms =*/ 0, // led blink off duration in ms
/*.buz_on_ms =*/ 0, // buzzer on duration in ms
/*.button_power_timeout =*/ 0, // seconds
/*.button_client_timeout =*/ 0, // seconds
/*.button_discover_timeout =*/ 0, // seconds
/*.button_filter_timeout =*/ 0, // seconds
#ifdef BLE_UART_LOOPBACK_TRACE
/*.button_uart_timeout =*/ 15, // seconds
#endif
};
Show LessHello,
I am facing challenge in achieving Sleep Mode.
In our code, LPM is initialized and low power query call-back is also register.
Issue is lowpowerquery call back is continously called and chipset doensot seems to be entering SLEEP mode.
It is expected to sleep for 1second, based on low power query call back return value.
Attached source file for given scenario. and trace dump
00:24:41 - create()
00:24:41 - 1.00
00:24:41 - 0018
00:24:41 - 020300002a
00:24:41 - 636f6f6b705f6c706d
00:24:41 - 020500012a
00:24:41 - 0003
00:24:41 - 0118
00:24:41 - 0d
00:24:41 - 0d00
00:24:41 - 02010503030118020a04
00:24:41 - 0a09636f6f6b705f6c706d
00:24:41 Trace Decoding Error - Could not find line number 314
00:24:41 Attribute bytes
00:24:41 Handle: 0002
00:24:41 Perm : 0002
00:24:41 Len, Max Len : 0005, 0005
00:24:41 UUID : 2803
00:24:41 Attribute bytes
00:24:41 Handle: 0003
00:24:41 Perm : 0000
00:24:41 Len, Max Len : 0009, 0009
00:24:41 UUID : 2A00
00:24:41 Attribute bytes
00:24:41 Handle: 0004
00:24:41 Perm : 0002
00:24:41 Len, Max Len : 0005, 0005
00:24:41 UUID : 2803
00:24:41 Attribute bytes
00:24:41 Handle: 0005
00:24:41 Perm : 0000
00:24:41 Len, Max Len : 0002, 0002
00:24:41 UUID : 2A01
00:24:41 Attribute bytes
00:24:41 Handle: 0006
00:24:41 Perm : 0002
00:24:41 Len, Max Len : 0002, 0002
00:24:41 UUID : 2800
00:24:41 Attribute bytes
00:24:41 Gatt DB Dump complete
00:24:41 bd_addr[5:2] = 20 73 6A 11
00:24:41 bd_addr[1:0] = 00 00
00:24:41 GPIO 0001 (11)
00:24:41 GPIO_WP:OFF= 00
00:24:41 Battery level: 0/100
00:24:42 - LPM 0
00:24:42 - LPM 0
00:24:42 - LPM 0
00:24:42 - LPM 0
00:24:42 - LPM 0
00:24:42 - LPM 0
00:24:42 - LPM 0
00:24:42 - LPM 0
00:24:42 - LPM 0
00:24:42 - LPM 0
00:24:42 - LPM 0
00:24:42 - LPM 0
00:24:42 - LPM 0
00:24:42 - LPM 0
00:24:42 - LPM 0
00:24:42 - LPM 0
00:24:42 - LPM 0
00:24:42 - LPM 0
00:24:42 - LPM 0
00:24:42 - LPM 0
00:24:42 - LPM 0
00:24:42 - LPM 0
00:24:42 - LPM 0
00:24:42 - LPM 0
00:24:42 - LPM 0
00:24:42 - LPM 0
00:24:42 - LPM 0
Show LessHello.
Some mobile phone (Nokia 5230) have possibility emulate virtual com-port (in Windows) after connection to PC via bluetooth;usually this com-port use like modem
I have to developed bluetooth device (bcm20737) should be detected by standard Windows tools as an emulated com-port (COM3 ect), with which any program can work as with a normal COM port. Data, that will be sent from the PC (via new virtual com-port), will be transferred to UART bcm20737.
If it is possible - how to create custom GATT service?
Show LessI want to change the advertisement data from packet to packet. Looks like I can do this with the fine timer callback.
However, I'd prefer a callback that happens just before (or just after) the packet is sent.
That way I know my new advertisement data will affect exactly one packet.
Is there such a callback? Or is there another good way to control the adv packet contents on the individual packet level?
Show LessHi,
Per this closed thread: Notify 80 bytes data?
I have the same question.
Whith the example long_characteristic, is posible to write and read long packet of data (bleprofile_WriteHandleData and bleprofile_ReadHandleData function) but I would like to send this data in a notificaion or an indication.
Is there a way to send long length notification in one packet ?
I use a custom BCM20736S with SDK 2.3
Thanks
Show LessHi to everyone,
Last weeks I've been working on the connection between the bcm20737 and my custom Android app.
For my application I don't need bonding neither passkey or anything which I thought that would make the things easier (this will be relevant later), during my way I discovered what it is to work with BLE + Android, that with some mobile phones everything goes super smooth and with others, usually older mobiles with older Android OS, things turns into a bit of a nightmare, with the majority of them trying some reconnections on the Android side I reach to good connections with the device and good user interactions (Still the user interaction is not as good as with the newer mobiles, any advice in this field will be also really appreciate), the problem came with one mobile, more especificall an old Samsung with Android 5.1 Lollipop, with this mobile even with reconnections connection is taking a lot of minutes.
This mobile is always trying to connect the gatt and almost never calls the service discovery, while in the device side it says that is perfectly connected, eventually all the times that reaches the service discovery function it works flawlessly.
But the problem is not this one, the problem comes now. Tired of trying stuff in the Android side I decided to try example projects of the WICED IDE and see how the mobile and the device behave. Trying the hello_sensor project I saw that the discovery of services worked flawlessly in the mobile, and after studying the differences I reach the conclusion that the missing point was this specific line.
lesmp_sendSecurityRequest();
With this line the service discovery on the mobile works like a charm, it is incredible.
So, where is the problem? The problem is that with this line the calls from the android app to disconnect the device doesn't work and even if I close the app it stays connected for a couple of minutes, at least on the device side (So it doesn't advertise anymore), also, I don't require any securityrequest in my application cause I don't want to bond the device with the mobile, cause this can cause issues on the android side, and to be totally honest I don't really know what is what this line does.
So if anyone could shed some light in this matter for me I will really appreciate it. Any advise, info about lesmp methods, anything.
Thank you so much and sorry for the long post.
Show Less