Smart Bluetooth Forum Discussions
Hello Broadcom,
We are using a 20737S in our product. Is there a way to read protect or write protect the EEPROM that is part of this SiP?
Poring through the datasheets, I couldn't find any indication that this is possible. In fact, it is not clear which EEPROM is being used. The datasheet of the 20737 indicates native support for 3 different EEPROM chips which all support write protection, but no read protection.
Thanks for your help!
Regards,
Arvind
Show LessHi everyone,
I was curious about the actual current draw and duration of an advertisement on the WICED Sense board with the 20737S chip so I did some testing and thought I'd share since I couldn't find any similar information on the forums. Tests were done with only advertising, no scanning.
Current is calculated by measuring the voltage over a known resistance of 10 ohms in the power path.
I found that given a normal ADV packet size (shown below) and an advertising interval of 100ms, the device drew approximately 25mA of current during the advertisement event for a duration of approximately 2.5ms. It drew roughly 4.5mA on average.
Typical ADV packet setup and payload
// total length should be less than 31 bytes
BLE_ADV_FIELD adv[4]; // advertisement
// flags
adv[0].len = 1 + 1;
adv[0].val = ADV_FLAGS;
adv[0].data[0] = LE_LIMITED_DISCOVERABLE | BR_EDR_NOT_SUPPORTED;
adv[1].len = 16 + 1;
adv[1].val = ADV_SERVICE_UUID128_COMP;
memcpy(adv[1].data, &test_uuid_main_vsc_service[0], 16);
// Tx power level
adv[2].len = TX_POWER_LEN + 1;
adv[2].val = ADV_TX_POWER_LEVEL;
adv[2].data[0] = bleprofile_p_cfg->tx_power_level;
// name
adv[3].len = strlen(bleprofile_p_cfg->local_name) + 1;
adv[3].val = ADV_LOCAL_NAME_COMP;
memcpy(adv[3].data, bleprofile_p_cfg->local_name, adv[3].len - 1);
bleprofile_GenerateADVData(adv, 4);
Scope
The scope is set to 100mV/div with 2.5ms/div.
Single ADV pulse, 2.5ms duration.
Multiple pulses, 2.5ms in duration at intervals of 100ms.
The smaller pulses located between the larger pulses are most likely due to other operations being run. The ramp up and ramp down shown just before and after a single pulse is most likely caused by the Bluetooth stack forcing the device to sleep when not advertising.
Excel
I've attached the Excel sheet for reference, here are the images of the graphs converted from voltage samples to actual current values. The scope's ADC measures 8 bit samples which are converted using the equation in the Excel document.
Show Less
When we use Tag3 for test in this mode:
SW3: 3-VREG;
SW2: 3-VCOIN;
Pin31(P15): connect to VCOIN;
VCOIN: 3V.
The battery monitoring in hello_sensor APP is 0;
When use in this mode:
SW3: 3-VCOIN;
SW2: 3-5V_USB;
Pin31(P15): connect to VCOIN;
VCOIN: 3V.
The battery monitoring in hello_sensor APP is 88.
Is Tag3 not use P15 for battery monitoring?
If we want P15 for battery monitoring,How to modify the code?
Show LessHello everybody,
I'm still creating a BLE application on the BCM20736S that is more or less an enhanced UART-bridge from a Cortex-M4 to BLE. The SDK version is 2.2.1.
Receiving data via BLE and sending it on PUART to the Cortex is working flawlessly, the other way round, it is hampered by not sending a notification.
This function fails:
__find_bonded_peer
It is called inside these generated functions:
BOOL store_in_db_*(UINT8* p_value, UINT8 value_len, BOOL write, BOOL notify)
But the iPhone is connected to the BLE module and the connection up callback is executed. A maximum of five peers is allowed.
I'm afraid, that there might be a basic misunderstanding on my side, regarding peers and bonding.
Do I have to actively add a peer on connection up? How to do this?
The use case is, that multiple devices are connected to the BLE module, be it mobile phones or future BLE accessories. But at the moment I'd be glad, if only one device would work...
On the iPhone a cross-platform software built around the Xamarin/MonkeyRobotics toolkit is running.
Using my custom function
static void notificationWithDB(UINT16 handle, unsigned char *data, unsigned char length)
{
static const unsigned char zeroPad[22] = {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
unsigned int i;
BLEPROFILE_DB_PDU tempPDU;
if(length > 0)
{
i = bleprofile_ReadHandle(handle, &tempPDU);
if (tempPDU.len > length) //zero padding here
{
memcpy(tempPDU.pdu, zeroPad, tempPDU.len);
memcpy(tempPDU.pdu, data, length);
} else if (tempPDU.len == length)
{
memcpy(tempPDU.pdu, data, length);
} else //truncate the data
{
memcpy(tempPDU.pdu, data, tempPDU.len);
}
bleprofile_WriteHandle(handle, &tempPDU);
if (blecm_getAvailableTxBuffers() > 0)
{
bleprofile_sendNotification(handle, data, (INT32) length);
}
}
}
a notification is send.
Some of these do not contain any attribute data and crash the iPhone.
Do you spot a bug?
Thanks for your help!
Best regards
Hannes Baumgart
Show LessDear Support,
Our customer complained that the phone cannot detect iBeacon of WICED , but we use ibeacon.a to generate the beacon.
Our customer also post the BLE packet for us to reference. First packet is WICED solution. Second is TI solution and work fine.
Could we generate same ADV packet like TI solution ?
Rush Chen
Show Less
Hi,
We are installing the SDK 2.2.1 on a Windows 8 machine and we are not able to see the WICED-Smart-SDK project showing up.
We tried to reinstall and we are running into the same issue again.
Any clue?
Show LessHi
I have ordered Tag3 board from mouser UK and i did not get USB dongle with evaluation board. I think USB dongle is not included with Tag3 kit , Which one i need to buy for tag3 booard?
Show LessHi
I have made a board where i used CP2105 in order to pragram BCM20737s. Problem is that my board is not detected by my PC it gives the message "One of the USB device connected is not detected by the system due to malfunction. Connect device again or change the device". I have connected the device several time and i have install the CP210x driver but still it gives the same error. I wonder that may be i made a mistake on schematics. I have attached the schematic kindly look into this.
Show LessHave you guys made a J-Link cable yet?
As far as custom cable, please clarify if my understanding is correct:
- The cable doesn't need power, resistors or capacitors - we need to connect 5 wires from the J-Link connector to the board (PWR_VIO, SWDIO, SWDCLK, GND, RESET) and that's it
- PWR_VIO and GND of the board can be connected to J-Link's pins 1 and 20, respectively
Show Less