Smart Bluetooth Forum Discussions
I modefied hello_clinet app. (BCM2073X)
i want to make a connection on two devices.
devices know opponent address each other.
without "blecen_Scan , adv_report_callback" i can make a connection on pair devices?
in addition, without advertisng, i can make a connection?
i want to simplify connection on pair devices
Show LessHello,
I am looking to stream data from the bcm20737 evaluation.
I am not sure exactly what is the best way about doing it.
Each sample of data i read from my sensor will return 25 bits of data (will have to be declared as 32 bits, so i will be sending 32bits instead of 25 bits?).
At the moment my sensor is sampling at 500hz (fatching data every 2ms).
Will i stream each sample of data on its own or will i store the 500 samples (at 32bits each, 500*32=16000bits) and stream altogether?
Is there an example code that i could easily modify to send my data (an array) to an app on my phone (Light Blue app)?
I have been using the Hello_sensor example a bit, could this be made to do what i want?
Regards,
Luke.
Show Less===
SDK: 2.2.1
Tag: 920737.
app: OTA hello-sensor based APP.
OTA firmware size ~ 25KB.
===
Problem:
We know by using BRCM20737 OTA, it wont change device MAC but
once our products are coincidentally packed and sealed with same MAC.
Can we try to add some build-load option for OTA image to re-download and change
to new MAC address?
Hi all,
while testing our application based on the BCM20736S it turns out that in some cases it is impossible to connect to a few of our devices after a certain runtime. The advertisements are being sent out, but no master-device is able to receive it. With our spectrum analyzer we found out that the frequencies of the advertising channels are shifted, so the BCM20736S sends out its advertisements on wrong frequencies and no end device is able to establish a connection.
Has anyone seen similar issues? If yes, how can we solve this problem?
With best regards,
Udo
Show LessHi,
We are able to pair and communicate just after finishing programming over USB. But on powering up after disconnecting USB, we get an error during pairing and no pairing happens. How do you disconnect from programming and is the EEPROM getting corrupt?
Show LessHi Guys,
This post is a bit wired, I tried several stuff, but still nothing improving the situation.
I did developped a BCM20737S application, this application works well. We were moving this project to production, the first prod was 50.
From production I did get back 13 board where they can't do something with it. (hopefully we purchase 100 boards, so 50 are working 100%, 13 doesn't what I discribe below)
So we can :
- Download the code through the chipload and the script, this succed.
- When I do this, the chip lunch the app, stop printing something on the UART after 3-4 sec and then reboot.
- we have a bi color LED on GPIO 24 and 25, these output are high and the LEDs switch ON, which isn't normal as other board doesn't do this.
From this, I take the board, try to flash then though SDK.
- I can't Download neither recover.
- I try to download and recover all 13 board, nothing.
- From this I tried to flash with the script and this still succed.
I had once a problem with the boot sequence and I had to change the PMU crystal warm up tp 5000, this doesn't help in this situation.
I have a I2C chip to do DAC function, I tried to remove it, then I try to remove the pull up, still I can't download or recover.
I did test the recover on a board that works and I can do a recover.
I do have pull up 100k, this will be changed in the following BOM, but still if I remove them, I can't flash.
PS : I can send anything MP if needed, but I wont post code or something like this public.
Thanks for the reply !
Show LessHi all
i used BCM920737 for receive notification data from WICED sensor 2, and i modify hello_client project to receive data.
i used the SDK 2.2.2
sometimes i can receive data directly, but i often loss notification data after reconnect the WICED sensor 2.
i was capture the log from client side as below. how can i find root cause and solve this problem?
normal log:
blecm evt handler:
3e 2b 02 01 00 00 02 00 10 7a 73 20 1f 02 01 05
09 ff 0f 00 02 02 f2 02 20 3a 11 09 57 49 43 45
44 20 53 65 6e 73 65 32 20 4b 69 74 a8
02 01 05 09 ff 0f 00 02 02 f2 02 20 3a 11 09 57
49 43 45 44 20 53 65 6e 73 65 32 20 4b 69 74
05
0f 00 02 02 f2 02 20 3a
57 49 43 45 44 20 53 65 6e 73 65 32 20 4b 69 74
07
blecm evt handler:
3e 0f 02 01 04 00 02 00 10 7a 73 20 03 02 0a 04
a9
02 0a 04
04
blecm evt handler:
0e 04 01 0a 20 00
blecm evt handler:
0e 04 01 0e 20 0c
blecm evt handler:
0f 04 00 01 0d 20
blecm evt handler:
0e 04 01 0c 20 00
@$*#04FF86F7009201100080EFCD07A81F000080EFD507107A732080EFDD070200000080EFD1080000000080EF510A0000000080EF7D09000000000007
blecm evt handler:
3e 13 01 00 40 00 00 00 02 00 10 7a 73 20 06 00
00 00 90 01 05
GetBondedInfoIdx returns 0 meaning no bonded info
Load Dev Info:
02 00 10 7a 73 20
idx = -1
No Bonded Info
hello_client_connection_up()
l2cap Tx:
40 20 09 00 05 00 04 00 12 2b 00 01 00
handle:40 slave(1)master(0):0 slave_num:1 to_master:0
Adv during conn enable
Tx buffer = 14
blecm evt handler:
0e 04 01 0a 20 0c
EE1D0100
blecm evt handler:
0e 04 01 0a 20 00
blecm evt handler:
0e 04 01 06 20 00
blecm evt handler:
0e 04 01 0a 20 00
l2cap Rx:
40 20 10 00 0c 00 05 00 12 01 08 00 40 00 60 00
00 00 f4 01
l2cap Tx:
40 20 0a 00 06 00 05 00 13 01 02 00 00 00
blecm evt handler:
0e 04 01 0c 20 0c
l2cap Rx:
40 20 06 00 02 00 06 00 0b 01
hello_client_l2cap_smp_data_handler()
blecm evt handler:
0e 04 01 0b 20 00
l2cap Rx:
40 20 05 00 01 00 04 00 13
Client write rsp
blecm evt handler:
13 05 01 40 00 02 00
blecm evt handler:
0e 04 01 0c 20 00
000000078E1E
blecm evt handler:
0f 04 00 01 13 20
0000000080EF610C0200000080EF010D0100000080EFE50A0200000080EF110B0000000080EFCD07A903000480EFD507107A732080EFDD070200000080EF910900000000@$*#04FF4EF700920109000002FA240000000000078633000000000007E6200000000000078E1E000000000007021F0100000080EFB10B0200000080EF9D0E0000000080EFB90E6000400080EFBD0EF4010000
blecm evt handler:
3e 0a 03 00 40 00 60 00 00 00 f4 01
/* receive notification data*/
l2cap Rx:
40 20 1b 00 17 00 04 00 1b 2a 00 02 0b dc ff fa
fe f4 ff f2 0d f0 e7 84 f4 77 00 1c 00 7f 03
ACC02
0b dc ff fa fe f4 ff f2 0d f0 e7 84 f4 77 00 1c
00 7f 03
l2cap Rx:
40 20 1b 00 17 00 04 00 1b 2a 00 02 0b d5 ff f0
fe f5 ff 4e 0c 4c e6 de ef 7b 00 24 00 78 03
ACC02
0b d5 ff f0 fe f5 ff 4e 0c 4c e6 de ef 7b 00 24
00 78 03
/* disconect WICED sensor 2*/
blecm evt handler:
05 04 00 40 00 08
hello_client_connection_down()
Conn Down handle:40 Slave:0 Disc_Reason: 08
@$*#04FF26F70092
blecm evt handler:
0e 04 01 0c 20 00
blecm evt handler:
0e 04 01 0b 20 00
blecm evt handler:
0e 04 01 0c 20 00
01040080046A1F0000000000074A210000000080EFE50A0200000080EFB10B02000000
fail log:
blecm evt handler:
3e 2b 02 01 00 00 02 00 10 7a 73 20 1f 02 01 05
09 ff 0f 00 02 02 f2 02 20 3a 11 09 57 49 43 45
44 20 53 65 6e 73 65 32 20 4b 69 74 b6
02 01 05 09 ff 0f 00 02 02 f2 02 20 3a 11 09 57
49 43 45 44 20 53 65 6e 73 65 32 20 4b 69 74
05
0f 00 02 02 f2 02 20 3a
57 49 43 45 44 20 53 65 6e 73 65 32 20 4b 69 74
6a
blecm evt handler:
3e 0f 02 01 04 00 02 00 10 7a 73 20 03 02 0a 04
b5
02 0a 04
04
blecm evt handler:
0e 04 01 0a 20 00
blecm evt handler:
0e 04 01 0e 20 0c
blecm evt handler:
0f 04 00 01 0d 20
blecm evt handler:
3e 2b 02 01 00 00 02 00 10 7a 73 20 1f 02 01 05
09 ff 0f 00 02 02 f2 02 20 3a 11 09 57 49 43 45
44 20 53 65 6e 73 65 32 20 4b 69 74 ad
02 01 05 09 ff 0f 00 02 02 f2 02 20 3a 11 09 57
49 43 45 44 20 53 65 6e 73 65 32 20 4b 69 74
05
0f 00 02 02 f2 02 20 3a
57 49 43 45 44 20 53 65 6e 73 65 32 20 4b 69 74
fa
blecm evt handler:
0e 04 01 0c 20 00
blecm evt handler:
3e 13 01 00 40 00 00 00 02 00 10 7a 73 20 06 00
00 00 90 01 05
GetBondedInfoIdx returns 0 meaning no bonded info
Load Dev Info:
02 00 10 7a 73 20
idx = -1
No Bonded Info
hello_client_connection_up()
l2cap Tx:
40 20 09 00 05 00 04 00 12 2b 00 01 00
handle:40 slave(1)master(0):0 slave_num:1 to_master:0
Adv during conn enable
Tx buffer = 14
blecm evt handler:
0e 04 01 0a 20 0c
blecm evt handler:
0e 04 01 0e 20 0c
blecm evt handler:
0f 04 00 01 0d 20
l2cap Rx:
40 20 10 00 0c 00 05 00 12 01 08 00 40 00 60 00
00 00 f4 01
l2cap Tx:
40 20 0a 00 06 00 05 00 13 01 02 00 00 00
l2cap Rx:
40 20 06 00 02 00 06 00 0b 01
hello_client_l2cap_smp_data_handler()
blecm evt handler:
0e 04 01 0c 20 0c
blecm evt handler:
0e 04 01 0a 20 00
l2cap Rx:
40 20 05 00 01 00 04 00 13
Client write rsp
blecm evt handler:
0e 04 01 0a 20 0c
blecm evt handler:
13 05 01 40 00 02 00
blecm evt handler:
0e 04 01 06 20 00
blecm evt handler:
0e 04 01 0a 20 00
blecm evt handler:
0e 04 01 0c 20 0c
blecm evt handler:
0e 04 01 0b 20 00
blecm evt handler:
0e 04 01 0c 20 00
blecm evt handler:
0f 04 00 01 13 20
@$*#04FFF6F70092011E0300C1E8040200000080EFDD070200000080EFD1080000000080EF510A0000000080EF7D090000000000078E1E0000000080EF610C0100000080EF010D0100000080EFE50A0200000080EF110B0000000080EFCD07B503000480EFD507107A732080EFDD070200000080EF91090000000080EFCD07AD1F000080EFD507107A732080EFDD070200000080EFD1080000000080EF510A0000000080EF7D090000000000078E1E0000000080EF610C0100000080EF010D0100000080EF110B000000000002FA240000000000078633000000000007E6200000000000078E1E000000000007021F0100000080EFB10B02000000@$*#04FF1EF7009201030080EF9D0E0000000080EFB90E6000400080EFBD0EF4010000
blecm evt handler:
3e 0a 03 00 40 00 60 00 00 00 f4 01
/* No any response......*/
/* disconect WICED sensor 2*/
blecm evt handler:
05 04 00 40 00 08
hello_client_connection_down()
Conn Down handle:40 Slave:0 Disc_Reason: 08
@$*#04FF26F7
blecm evt handler:
0e 04 01 0c 20 00
blecm evt handler:
0e 04 01 0b 20 00
blecm evt handler:
0e 04 01 0c 20 00
009201040080046A1F0000000000074A210000000080EFE50A0200000080EFB10B02000000
Yesterday I upgrade from WICED 2.2.1 to WICED 2.2.3.
My apps OTAFU works well in WICED 2.2.1.
I found OTA FW algorithm changed in WICED 2.2.2 and 2.2.3. So I modified my apps to use OTAFU algorithm in WICED 2.2.3. I tried to use Windows ota_firmware_upgrade peer apps to upgrade my device and it abort.
OS: Windows 10
BT USB Dongle: Plugable USB Bluetooth 4.0 Low Energy Micro Adapter
Board:BCM20737tag
FW in board: ota-firmware-upgrade(WINCED 2.2.3)
FW to be upgrade to: My ota bin apps(around 31KB, size is OK, still under limit)
I did 2 tests.
--------------------------------------------------------------
Test 1: Use 2.2.3 Windows WsOtaUpgrade apps to upgrade to my ota bin. Aborted.
Tag got an Abort cmd from Apps.
10:48:29 - Command:7 State:5
Test 2: Use 2.2.1 Windows WsOtaUpgrade apps to upgrade to my ota bin. WsOtaUpgrade tell me Aborted. But from the log, upgrade succeed.
--------------------------------------------------------------
Each test I tried multiple times.
I feel the issue is in 2.2.3 Windows WsOtaUpgrade apps. It didn't handle large file well and will send abort cmd to the device.
One question: If I use WICED 2.2.3 but keep using OTAFW algorithm in WICED 2.2.1, will it cause any issue?
Show LessI had an issue, where my new image was slightly larger than the DSx space was insufficient. The original OTA files do not validate that the space is sufficient before it starts. Additionally, it will continue to write past the end of the DSx block with spurious results. I've attached the files I have used and tested just in case someone else runs into this issue. Below are the diff's.
ws_upgrade.h
***************
*** 98,103 ****
--- 98,111 ----
* switch active partitions with the one that has been receiving the new image.
*
*/
void ws_upgrade_finish(void);
+ /**
+ * \validate that the new image length will fit in the DSx_Len space allocated for it!
+ * \the new_len should pass in the value sent from the central performing the OTA to
+ * initiate the download
+ *
+ */
+ UINT16 ws_upgrade_len_ok(UINT16 new_len);
+
#endif
ws_upgrade..c:
***************
*** 380,384 ****
--- 380,392 ----
bleappfwu_watchdogExpired(0);
// End of the world - will not return.
}
+ UINT16 ws_upgrade_len_ok(UINT16 new_len){
+ //ble_trace2("ws_upgrade_len_ok: upgrade_ds_length: %d, new_len %d", upgrade_ds_length, new_len);
+ if (new_len <= upgrade_ds_length){
+ return 1;
+ } else {
+ return 0;
+ }
+ }
ws_upgrade_ota.c
***************
*** 275,286 ****
--- 275,292 ----
ws_upgrade_total_len = data[1] + (data[2] << 8);
ws_upgrade_state = WS_UPGRADE_STATE_DATA_TRANSFER;
ble_trace2("\rstate:%d total_len:%d", ws_upgrade_state, ws_upgrade_total_len);
+ if( ws_upgrade_len_ok(ws_upgrade_total_len) ){
ws_upgrade_send_status(WS_UPGRADE_STATUS_OK, 0);
return (TRUE);
+ } else {
+ ws_upgrade_send_status(WS_UPGRADE_STATUS_INVALID_IMAGE, 0);
+ return (FALSE);
+ }
+
}
break;
case WS_UPGRADE_STATE_DATA_TRANSFER:
if (command == WS_UPGRADE_COMMAND_VERIFY)
Show LessPer the thread here Re: WICED Smart BCM92073X EEPROM and SFLASH Layout
How can I expand VS section over 8kB? I use BCM920737S and it has 64kB EEPROM.
If I configured VS size over 8kB, no boot.
=================OK.btp=====================
DLConfigVSOffset = 0
DLConfigSSLocation = 0
ConfigDSLocation = 16384
DLConfigVSLocation = 320
DLConfigVSLength = 8176
========================================
=================NG.btp=====================
DLConfigVSOffset = 0
DLConfigSSLocation = 0
ConfigDSLocation = 16384
DLConfigVSLocation = 320
DLConfigVSLength = 8192 (or over)
========================================
I don't use OTA FW Updating, so I expect following layout.
---------------------------------------------------------------------------------------
| SS 256Byte @ 0x00 | VS 15kB @ 0x140 | DS 44kB @ 0x4000 |
---------------------------------------------------------------------------------------
Is it require any additional settings?
Show Less