Smart Bluetooth Forum Discussions
We have a custom board using BCM20736S running a modified Heart Rate Monitor App.
Everything is working pretty well and we are sending data to the iPhone 4 times per second.
The connection interval in this example is 250 msec.
Normally the connection events are around 10 mAmp as seen on the scope.
Fairly often we see a timeout disconnect (code 08) but the system usually reconnects promptly with no issues.
All too often though we are seeing a spontaneous system reboot which is preceded briefly by rapid rise in the current used during each connection event. The current rises until it reaches the extraordinary level of 30 mAmp and then the system reboots itself.
The system is able to reconnect but this is very undesirable behavior. Not only does it take considerable power (battery drain) if it happens repeatedly, but each time we lose some data.
I wonder if anybody else has seen similar behavior and maybe has a clue what might be causing this.
See image attached. The tall current peaks are connection events. Each major division on the vertical axis is about 10 mAmp. Each major division on the horizontal axis is 500 milliseconds. Normally the connection events appear like the ones at the left side, typically between 8 and 15 mAmp.
Thanks for any info,
Eric.
Hi,
Our team is trying to develop a project using the WICED Sense KIT, during this project, there are some questions:
I've learned the five chips (hts221...etc) which sense temperature, humid...etc. The data sheet and the layout from the link
WICED Sense Reference Design Schematic (PDF)
They both tell me that we are working on I2C mode. But my question is that we have 5 chips that all need to send data to the 20737 BLE chip, they all transfer data on the same line SDA. How does it work? Is the I2C EXPANDER working? And How the I2C EXPANDER works?
Another question is that, I'm wondering the PINS in the same link(WICED Sense Reference Design Schematic (PDF) )
which the PINS connecting to TPx (x mean numbers EX: TP3), what are these links link to? Are they the PINS that control by the drivers header( in the IDE )?
Thanks for helping me ~
Henry Chang
Show LessHello there,
we have created a rather complex app on the BLE module BCM20736S. Besides the mandatory GATT and GAP services we have three additional custom services and 17 custom characteristics split between those.
As we're experiencing strange errors (empty characteristics notifications) we sieved through the header files an found HANDLE_NUM_MAX in the BLE_PROFILE_CFG struct.
Are the errors caused by HANDLE_NUM_MAX being just five?
What's HANDLE_NUM_MAX function, anyway?
Best regards
Hannes
michael.goetz@ebv.com david_armour
Show LessHi,
I was wandering if anyone could help me set up an interrupt on one of the GPIO pins, I've tried my self by following the hardware interface guide and i can't see where I've gone wrong. this is the code I've added to try and set this up. Whenever I try to compile i get to few arguments to function gpio_registerForInterrupt. Thanks
#define dial GPIO_PIN_P15
gpio_configurePin(0,dial,GPIO_EN_INT_RISING_EDGE|GPIO_PULL_DOWN,GPIO_PIN_INPUT_HIGH);
void hello_sensor_create(void)
{
//each bit corresponds to a port for port 0 - 3
UINT16 interrupt_handler_mask[3] = {0,0,0};
//0 is the port with pin 15
interrupt_handler_mask[0] |= (1 << dial);
//register interrupt handler
gpio_registerForInterrupt(interrupt_handler_mask,interrupt_gpio,NULL);
}
void interrupt_gpio(void*){
if(led_on == FALSE){
gpio_setPinOutput(0,LED,GPIO_PIN_OUTPUT_HIGH);
gpio_setPinOutput(0,RGB,GPIO_PIN_OUTPUT_HIGH);
led_on = TRUE;
}else{
gpio_setPinOutput(0,LED,GPIO_PIN_OUTPUT_LOW);
gpio_setPinOutput(0,RGB,GPIO_PIN_OUTPUT_LOW);
led_on = FALSE;
}
}
Dear Kwang
Yes, it's still be an issue.
As I introduced before, we are now developping a cluster tree type network with BCM20736, and when the points(BCM20736) in the network is over 20, the data transmition would be error happened.
Our data transmition flow as below:
1. We declare one 100 layer msg_queue with the function:
Tx_Queue = cfa_mm_Sbrk(sizeof(BLEAPPFIFO_HDR) +
sizeof(void *) * Tx_Queue_Size); // 100 msg_queue
2. Once we get msg which would be bypassed to other points. we would malloc one memory, and copy the msg into the buffer, the buffer addr would be pushed into the msg_queue.
3. In fine_timerout() callback function, we would check the msg_queue, and we would call bleprofile_sendNotification() when the blecm_getAvailableTxBuffers() >=2
In our test, the 100 layers queue never be full. but the buffer malloc for msg storage might be fail in step 2 above.
Our BT TX data function in step 2 as below:
BT_TX_Data()
{
msgPtr = (TX_MSG *)cfa_mm_Alloc(sizeof(TX_MSG));
if( msgPtr )
{
msgPtr->handle = con_handle;
// allocate space for the msg.
msgPtr->len = len ;
msgPtr->dataPtr = cfa_mm_Alloc( msgPtr->len);
if( msgPtr->dataPtr )
{
// copy the msg.
BT_MEMCPY( msgPtr->dataPtr, data, msgPtr->len);
// put the msg into the queue.
if( !bleappfifo_append((BLEAPPFIFO_HDR*)Tx_Queue , msgPtr ) )
{
// we run out of space.
ble_trace0("TX queue out of space");
release_Tx_msg(msgPtr);
msgPtr = NULL;
test_add_disc(0xff);
}
else
{
// we got the msg in.
}
}
else
{
// we can't get the second piece of memory.
// release the first one.
cfa_mm_Free( msgPtr );
ble_trace0("TX queue out of memory");
test_add_disc(0xfe);
}
}
else
{
//
ble_trace0("TX queue out of memory");
test_add_disc(0xfc);
}
}
We believe that, when we do cfa_mm_Alloc() fail in BT_TX_Data() function, the function of bleprofile_sendNotification() would be fail too, which might cause the data loss.
My question:
1. What's the max size for user to malloc the buffer by cfa_mm_Alloc() function ?
2. Could we get bigger memory size with some configuration ?
3. Could you have any good suggestion to us for large data transmition ?
Many thanks...
Show LessHi
I have interface motion sensor with Tag3 board. I have received data on my Iphone by using lightblue, now i want this data on my PC in order to analyse sensor reading i bought bluetooth dongle for this purpose so far i can only read and write hello sensor app with the help of helloclient.exe how can i get motion sensor data on my PC?
Show LessSince the OSX Yosemite to 10.10.4 (July 6, 2015) Start Debug Trace no longer works.
Error: Error opening UART Transport.
Manually setting the Configure COM port does not help.
Using a separate TTY emulator like minicom gets around the problem.
The 10.10.5 update did not fix the issue.
Show LessWhat's the difference between these functions and why would I want to use one over the other?
There's some information posted on this thread (Re: Peripheral UART: To FIFO, or not to FIFO) but the question isn't directly answered.
Show LessHi
I am working on the app of heart rate monitor and i want to change the name of service for example in my mobile it is appear like "heart rate measurement" i want to change this to "sensor reading".
Show LessHi
I want to know about heart rate monitor app i received data correctly i have seen in my iphone that there is always 0x08 attach with each reading like 0x08000000, 0x08D20000, 0x08FF0000 what is the meaning of 0x08 in readings?
Show Less