Smart Bluetooth Forum Discussions
What is the advertisement interval randomizing range of the '36 and '37 chips?
The Bluetooth LE standard states that it should be in the range of 0...10ms but we only see variations of 0...5ms.
How can we change this so that is standard compliant?
Show LessHow can we get BT address through uart port without downloading firmware or while downloading firmware? i need to retrieve the mac address before i am flash anything through command line option.
Show LessWe are using a BCM20736 IC, with SDK 2.2.3.
Our firmware initializes the device and starts advertising. In normal operation, the device will continue to advertise forever. However, sometimes we notice that advertisement stops unexpectedly. This happens in about 1 in 10 BCM parts (out of a sample of 120 devices). When advertisements stop, it can happen in a couple minutes, or a couple hours. No advertisements are detected by a sniffer.
We instrumented our code to call the bleprofile_GetDiscoverable(void) function periodically, to monitor what the device thought its advertising state was. We toggle an I/O line based on the return from the function. (NO_DISCOVERABLE = LOW, DISCOVERABLE = HIGH). We never saw this line go LOW when the problem occurred. This may imply that the the radio hardware is not transmitting, despite the condition of the radio firmware state machine.
Removing/reapplying power starts advertisements again, but a failing unit will fail again. Most units never fail, even after several days of continuous operation.
Some IC date codes seem to show more failures than others, and some date codes show no failures.
Replacing the BCM IC on a failing PCB causes the problem to disappear -- the problem seems to follow the BCM IC, not the rest of the hardware.
Two other posts ("Advertisement seems to be flakey" and "Prototype boards are failing with issue similar to one previously reported") describe somewhat similar problems.
Thanks,
Jackson
Show LessHi everyone.
Do we have a possibility to get PUBLICK BT ADDRESS of remote device in BLE connection. For today in processing of event "GATT_CONNECTION_STATUS_EVT " (connect to android device) I take BT ADDRESS from struct type " wiced_bt_gatt_connection_status_t ". But according " addr_type " field, this event return BLE_ADDR_RANDOM. But I need to know BLE_ADDR_PUBLIC.
Do we have API or could somebody recommend me algorithm how to do it ?
Regards
Show LessHi,
I am using handsfree application from the SDK - the application comprises of both A2DP profile and HFP profile.
When ever I do the audio playback, I could hear the music on both the right and left channel, but when I establish HFP call, I could hear audio coming only on left channel.
Can you tell me how I can enable both the channels, please ?
Show LessHi guys,
I'm working with a bcm20737 module and lately I'm facing the next problem:
I found that sometimes the bleprofile_WriteNVRAM failed writing in some vsID. I found a solution, reading the same vsID after the write operation and if it the result was not right calling the write operation again. The thing with this bug is that the write operation returned that everything went perfectly, and that it wrotes the correct number of bytes in the NVRAM.
I think that this solution works perfectly, but my problem comes next because I have some devices programmed without the solution and now I have to upgrade them through OTA and when I do this the vsIDs that I could not write correctly are impossible to write even with the new solution (But in this case the write operation allways returns a 0, not like before that returned the correct number of bytes). When I reprogram the module through Wiced everything works as expected but when I upgrade through OTA that vsIDs are like corrupted and are inaccessible neither I can delete them or rewrite them. Anyone faced this same problem?
Many thanks for any help you can provide.
Angel
Show LessIs there an API call available that can be used to perform a soft reset?
I tried to use bleappfwu_watchdogExpired() from bleappfwu.h, but it is not work in BCM20736S.
however, it'sOK(success to reset) in the develop board. and it is OK after OTA even if in BCM20736S.
After fail to enter the deepsleep mode, I try to force a software reset and ready to enter deepsleep again;
here's what I used to force a reset:
bleapputil_cpuIntDisable();
ble_trace0 (" bleapputil_cpuIntDisable");
bleapputils_delayUs(500);
bleappfwu_watchdogExpired(0);
ble_trace0(" bleappfwu_watchdogExpired");
here is the log information: After call bleappfwu_watchdogExpired(0); BCM20736S hung up, press key can wake up it.
09:59:18 - LEDPowerOnOff:0
09:59:18 TimersKilled
09:59:18 AppTimer(adv, conn) stopped: 1
09:59:18 noAdv
09:59:18 - app_enter_hidoff
09:59:18 - app_abort_hidoff
09:59:18 bleprofile_queryPowersave(POWEROFF): 00000001
09:59:18 bleprofile_queryPowersave(POWEROFF): 00000001
09:59:18 abortHidoff!!!
09:59:18 Stop Power Save
09:59:18 Fine Timer(50 ms, 20/sec)
09:59:18 Fine TImer tick 4
09:59:18 Normal Timer(1 s, 80 tick)
09:59:18 AppTimer(adv, conn) stopped: 1
09:59:18 BLE_high_un_adv:timer(0)
09:59:20 AppTimer(adv, conn) stopped: 1
09:59:20 noAdv
09:59:21 - _timer_1s
09:59:22 - _timer_1s
09:59:23 - _timer_1s
09:59:23 - bleapputil_cpuIntDisable
Show LessHi all,
i could not find out how to enter observer role (to receive broadcast packets) using the bleprofile_ API in WICED-Smart-SDK. Is it implemented somewhere? I saw the blecm_StartScan() function, but this is a lower-layer, which is not to use from application because it might affect behaviour of bleprofile_ module.
Thanks for help,
Daniel
Show LessIn my application, I'm trying to readout data just before it gets sent to minimize latency.
Currently I am using the 1.2 SDK because I use the 20732s module. I can't use the new features that give me a callback to perform a readout just before the connection event, so I'm stuck using the fine timer. After studying the fine timer I have found that though the timer is almost synced with the connection events (connection interval set to 50ms, fine timer set to 50ms) when going into sleep is disabled, however there is time walk between the timer firing and the transmission signal (I monitor the current impulse on the chip to see the transmission). This time walk prevents me from minimizing the latency between reading the data and the connection event when sleep is
disabled.
When sleep is enabled, the timer fires just before the connection event, but I'm not sure how much just before as the current monitoring I have is not perfectly precise. The problem I have is that when I read out in the timer and call bleprofile_sendNotification, the send seems to either be buffered by one connection event, or the transmit queue is locked or something like that once the connection event begins and doesn't allow what I have enqueued at the beginning of the timer event to be sent immediately.
Can someone answer what happens with respect to the transmit queue when the connection event starts with respect to the timer, and perhaps how much time I have to try to cue the data before the queuing is locked out (or whatever is happening happens)?
Is there anyway to adjust when the finetimer with respect to the connection event in sdk1.2? I actually tried something sneaky trying to set the xstal warm-up period longer so that the timer may fire later, closer to the next connection event, but that did not work either as that just left the timer firing at the same time and just leading with more warm-up time. Perhaps there is some chip configuration register that might control this?
also I have been using the two functions a bit:
bleapputils_currentTimeUs() and
bleapputils_currentNativeBtClk
What clock are these based on?
Show LessI have 2 questions regarding the Le Receiver Test using MBT.
Once the command is sent to the UART is it allowed to disconnect the FTDI module from the device.
The reason I am asking is because I assume since a laptop is used to send the command it would make sense
to leave the device alone in a test chamber without the host attached to it.
Or does the host must be connected at all time because some data will be sent periodically to the UART and
such data must be recorded to acknowledge that the test passed.
Finally would you know the maximum USB to UART cable length for an FTDI module to be used with MBT test
without losing data during the test ?
Have anyone tried those cable to run MBT ?
Show Less