Smart Bluetooth Forum Discussions
Hi,
There are two TX tests available in MBT:
- LE Transmitter Test
- Continuous Transmit Test
The Continuous Transmit test allows you to set a power output level in dBm but the LE Transmitter Test doesn't.
What is the default power output set to with the LE Transmitter test?
Show LessOverview
In WICED Smart, it supports two types of storage to store application image and data:
- EEPROM
- SFLASH (Serial Flash)
The storage is divided into different section (partition) based on different purpose and function.
There are three types of section:
- SS (Static Section)
- Store Configuration Data, etc.
- VS (Volatile Section)
- Store the data which may be modified frequently. Ex. paring information or application’s private data.
- DS (Data Section)
- Store application’s executable binary image built from source codes.
User can select different type and size of storage, so we need to do the following configuration based on requirements:
- Storage type
- Section layout (offset and size).
Notes:
- In this document, all of the examples are based on WICED Smart SDK 2.1.0.
Configure Storage Type
The default storage type is defined by variable PLATFORM_NV in the platform’s makefile as shown in Figure 1.
File: BCM920737TAG_Q32.mk (WICED-Smart-SDK\Platforms\BCM920737TAG_Q32) |
CHIP := 20737 … PLATFORM_NV ?= EEPROM PLATFORM_STORAGE_BASE_ADDR := 0xFF000000 PLATFORM_BOOTP := 20737_$(PLATFORM_NV).btp … |
Figure 1: Storage Type Configuration
The file path of platform’s makefile is as below:
WICED-Smart-SDK\Platforms\[PLATFORM]\[PLATFORM].mk
We can specify the storage type in the platform makefile directly as shown above, or specify the storage type by added the parameter in the make target as below:
PLATFORM_NV=EEPROM|SFLASH
For example, in application “ota_secure_firmware_upgrade”, its default make target is “ota_secure_firmware_upgrade-BCM920737TAG_Q32 download”. If want to change the storage type to SFLASH, we just need to add the parameter “PLATFORM_NV=SFLASH” behind “ota_secure_firmware_upgrade-BCM920737TAG_Q32”. It is like
“ota_secure_firmware_upgrade-BCM920737TAG_Q32 download PLATFORM_NV=SFLASH”
or
“ota_secure_firmware_upgrade-BCM920737TAG_Q32 PLATFORM_NV=SFLASH download”.
Configure Section Layout
There should be at least two sections (SS and DS) in an application image. Both of them should be flashed into storage. We need specify the location which these two sections should be flashed into. And we also need to configure a VS section to store user data.
The file to configure the section layout is defined in the variable PLATFORM_BOOTP in the platform’s makefile as shown in Figure 1.
We call this file as BTP file. Its path is “WICED-Smart-SDK\Platforms\[PLATFORM]\[PLATFORM_BOOTP]”.
In the BTP file, user can configure the following parameters based on their requirement:
- ConfigDSLocation
- DS location, use to indicate which location the DS should be downloaded into storage by UART. In other word, it is the start address of a DS in storage.
- DLConfigSSLocation
- SS location, use to indicate which location the SS should be downloaded into storage by UART. In other word, it is the start address of a SS in storage.
- DLConfigVSLocation
- VS Start Address
- DLConfigVSLength
- VS Total Length
The EEPROM’s configuration is shown in Figure 2.
File: 20737_EEPROM.btp (WICED-Smart-SDK\Platforms\BCM920737TAG_Q32) |
… DLConfigVSOffset = 0 ConfigDSLocation = 1408 DLConfigSSLocation = 0 … DLConfigVSLocation = 320 DLConfigVSLength = 1024 … |
Figure 2: EEPROM Section Configuration
The SFLASH’s configuration is shown in Figure 3.
File: 20737_SFLASH.btp (WICED-Smart-SDK\Platforms\BCM920737TAG_Q32) |
… DLConfigVSOffset = 0 ConfigDSLocation = 16384 DLConfigSSLocation = 0 … DLConfigVSLocation = 8192 DLConfigVSLength = 4096 … |
Figure 3: SFLASH Section Configuration
After built an application, it generates an Intel HEX file used to indicate what data is flashed and how to flash the data into storage by UART. For Intel HEX format, you can easy to learn it in internet (ex. http://en.wikipedia.org/wiki/Intel_HEX ).
In the HEX file as shown in Figure 4, we can see application image contains two sections:
- SS
- The start address of the first HEX section is 0x0000, same as the parameter “DLConfigSSLocation” configured in BTP file, as shown in Figure 2. It means that this section will be flashed into SS sections by UART.
- DS
- The start address of the second HEX section is 0x0580, same as the parameter “ConfigDSLocation” configured in BTP file, as shown in Figure 2. It means that this section will be flashed into DS section by UART.
File: ota_secure_firmware_upgrade-BCM920737TAG_Q32-rom-ram-Wiced-release.hex (WICED-Smart-SDK\build\ota_secure_firmware_upgrade-BCM920737TAG_Q32-rom-ram-Wiced-release) |
:02000004FF00FB :28000000010800F000006208C05D89FD0400FFFFFFFF400600DF3D1A7A7320020A008005000040010000000473 :02000004FF00FB :FB058000A21A006C3000001B3300…944F6D6F800F037FA0CF62EBB03B4064F4FF448180549086810B103BC28C5 :FB067B00F678BA03BC28F690BA00…0410AF67EBD38B5054626A104200AF6B0F8FF2028706946042026F690FA73 … |
Figure 4: Application Image’s Sections
Section Layout without OTA Firmware Upgrade Support
If OTA Firmware Upgrade is not supported and the total size of storage is 64 Kbytes, we can draw whole the section layout as below based on the parameters configured in BTP file:
- EEPROM Section Layout
- SFLASH Section Layout
Section Layout with OTA Firmware Upgrade Support
If support OTA Firmware Upgrade, at least, it need one more DS to store the download OTA image, and one more SS to backup the original configuration.
The section layout is as below when the total size of storage is 64 KBytes:
- EEPROM Section Layout
- SFLASH Section Layout
Besides the common configuration in above chapter “Configure Section Layout”, we still need to do more configurations
Show LessHi all,
I use puart to connect extra device.
I will send command to my extra device.
If the extra deive receives the command,it will send sensor data(11 Byte) back.
I send five command to the extra device.
I use the buffer to save the sensor data in the rx call back function.
And then I print the buffer in Timer.
But the sensor data is wrong,I receives some wrong data like 0xff.
Correct sensor data:
*1------------------------------------------------------------
01 04 06 04 BF 15 70 0A C8 76 2D
01 04 06 04 BF 15 6D 0A C8 E6 2B
01 04 06 04 BF 15 70 0A CA F7 EC
01 04 06 04 BF 15 6E 0A CA 97 EA
01 04 06 04 BF 15 70 0A C9 B7 ED
*2------------------------------------------------------------
01 04 06 04 DA 15 40 0A C5 FB EF
01 04 06 04 DA 15 41 0A C7 2B EE
01 04 06 04 DA 15 42 0A C5 5A 2F
01 04 06 04 DA 15 43 0A C4 CA 2F
01 04 06 04 DA 15 45 0A C9 EB EB
*3--------------------------------------------------------------
01 04 06 04 C7 15 A0 0A BC D7 F9
01 04 06 04 C7 15 A1 0A BC 86 39
01 04 06 04 C7 15 A0 0A BB 96 3B
01 04 06 04 C7 15 A0 0A BB 96 3B
01 04 06 04 C8 15 9D 0A BD D3 F4
*4----------------------------------------------------------
01 04 06 04 E1 15 24 0A CB DE 31
01 04 06 04 E1 15 22 0A CB 3E 30
01 04 06 04 E1 15 20 0A CA 5E 30
01 04 06 04 E1 15 20 0A CA 5E 30
01 04 06 04 E1 15 1E 0A CA 3F FC
*5---------------------------------------------------------------
01 04 06 04 FB 15 35 0A C1 57 F1
01 04 06 04 FB 15 35 0A C2 17 F0
01 04 06 04 FA 15 36 0A C1 9A 31
01 04 06 04 FA 15 36 0A C2 DA 30
01 04 06 04 FB 15 38 0A C1 C6 32
Buffer data(save the sensor data in the rx call back function):
*1------------------------------------------------------------
01 04 06 04 BF 15 70 0A C8 76 2D
FF FF FF 01 04 06 04 BF 15 6D 0A C8 E6 2B
FF FF 01 04 06 04 BF 15 70 0A CA F7 EC
01 04 06 04 BF 15 6E 0A CA 97 EA
FF FF 01 04 06 04 BF 15 70 0A C9 B7 ED
*2------------------------------------------------------------
FF 01 04 06 04 DA 15 40 0A C5 FB EF
FF FF 01 04 06 04 DA 15 41 0A C7 2B EE
01 04 06 04 DA 15 42 0A C5 5A 2F
FF FF 01 04 06 04 DA 15 43 0A C4 CA 2F
FF 01 04 06 04 DA 15 45 0A C9 EB EB
*3--------------------------------------------------------------
01 04 06 04 C7 15 A0 0A BC D7 F9
FF FF 01 04 06 04 C7 15 A1 0A BC 86 39
FF 01 04 06 04 C7 15 A0 0A BB 96 3B
FF 01 04 06 04 C7 15 A0 0A BB 96 3B
01 04 06 04 C8 15 9D 0A BD D3 F4
*4----------------------------------------------------------
01 04 06 04 E1 15 24 0A CB DE 31
FF FF 01 04 06 04 E1 15 22 0A CB 3E 30
FF FF 01 04 06 04 E1 15 20 0A CA 5E 30
FF 01 04 06 04 E1 15 20 0A CA 5E 30
FF 01 04 06 04 E1 15 1E 0A CA 3F FC
*5---------------------------------------------------------------
01 04 06 04 FB 15 35 0A C1 57 F1
FF 01 04 06 04 FB 15 35 0A C2 17 F0
FF FF 01 04 06 04 FA 15 36 0A C1 9A 31
FF 01 04 06 04 FA 15 36 0A C2 DA 30
FF FF 01 04 06 04 FB 15 38 0A C1 C6 32
It will receive some wrong data like FF in my buffer.
This is my code:
/********************************************************************
* PUART receives call back function
********************************************************************/
static void application_puart_interrupt_callback(void* unused){
UINT8 readbyte;
while (puart_rxFifoNotEmpty() && puart_read(&readbyte)){
test_buffer[test_pointer++]=readbyte;
}
P_UART_INT_CLEAR(P_UART_ISR_RX_AFF_MASK);
P_UART_INT_ENABLE |= P_UART_ISR_RX_AFF_MASK;
}
UINT32 application_send_bytes(UINT8* buffer, UINT32 length){
UINT32 ok = length;
if(!buffer || !length)
return 0;
while(length--){
puart_write(*buffer++);
}
return ok;
}
/********************************************************************
* Software Timer(App timer) call back function
* Timer time = 1 sec
********************************************************************/
void send_command_timeout(void){
timer_counter++;
application_send_bytes(&send_command, sizeof(send_command)); //send command to extra device
if(timer_counter==8){
application_send_bytes(&test_buffer, sizeof(test_buffer));
}
}
Show LessBusiness Impact
The value proposition for industrial and commercial IoT is real and compelling. While the number of consumer IoT products is growing, the projected business impact of the industrial and commercial IoT is in full swing. McKinsey Global Institute sees the worldwide market opportunity for the global industrial IoT ecosystem soaring into the double-digit trillions of dollars over the next few years.
When applied skillfully to critical business operations, industrial IoT will help companies work smarter, instead of harder by tying together a number of tech trends, including Big Data analytics, cloud-based software, remote monitoring and low-cost storage.
Here’s what that looks like: Automation, monitoring and wireless connectivity applied thoughtfully to enterprise operations has the potential to reduce maintenance costs, lessen environmental footprint, gain workforce productivity, improve safety outcomes and enable the rollout of new products and services tied to logistics and replenishment.
Some consumers might be familiar with the benefits of the smart grid for monitoring electricity flowing to their homes. That same concept can be applied in industrial settings – a large lighting system in a busy warehouse, for example. By installing networked controls that can adjust as occupancy and even local weather patterns fluctuate, businesses can better monitor and reduce their energy consumption.
Likewise, a factory that installs vibration sensors on its motors and pumps would be able to detect a problem before something breaks and avoid a costly shutdown. In healthcare, where costs continue to rise, Bluetooth technology and sensors are already being put to use to track drugs in hospitals and to ensure they are being administered to patients correctly.
Building a Partner Ecosystem
Industry players such as Broadcom know that successful adoption of industrial IoT requires a rich network of partners to help companies put together all the pieces of the puzzle. From board makers who can integrate wireless radios, to developers who can write software applications and to service providers who connect things to mobile devices and the cloud, IoT requires team effort.
For industrial and commercial customers, there’s no one-size-fits-all solution. For example, some may want to start with a Wi-Fi-enabled chipset on a board and add their own custom software, while others might want something that has hardware and software together. Still others might require specialized devices and services that have specific security features or can meet quality guarantees in extreme environments.
In order to meet the needs all of the players in industrial IoT, interoperability needs to be top priority. Already, there are organizations working toward industry-wide standards that aim to unify the IoT, including the Industrial Internet Consortium.
Broadcom is not only helping to drive the connectivity piece of the puzzle but also enable the ecosystem of suppliers, integrators and service providers that can make industrial IoT so much bigger than just a collection of disparate, networked “things.”
Show LessI'm interested in building an inventory tracking system and would like to know how many bluetooth beacons (BLE 4.0) can be tracked at one time. I only need their unique ID saying that they are there and transmitting. Since I don't need to connect to any of these bluetooth beacons (only need to see there ID) would it be possible to view a few hundred beacons at a time in a warehouse for instance and alert when a bluetooth beacon has left the area?
Thanks,
David
Show LessI am doing OTA now,I have test the secure OTA with tool WicedSmartOta.apk.But I do not konw how tu do in our own app about OTA.Does Broadcom support the source code about OTA on Android or Iphone.
Show LessDon't miss this incredible opportunity to get your Bluetooth technology enabled solution the broad industry attention it deserves! There are only 2 weeks left to enter the 2016 Bluetooth Breakthrough Awards. This industry leading award program recognizes the best products and applications on the market today and innovative prototypes coming soon. Don't delay - entries are due 2 November. Submit your entry today!
Breakthrough Award entrants are eligible to win the following prizes:
- Product promotion—all finalists will be featured on Bluetooth SIG websites, press releases, social media channels, and other SIG communications
- Winners will have the chance to showcase their entry at the Bluetooth SIG media event in Las Vegas during CES (students are not eligible)
- The Student category winner will receive a cash prize of $5,000 USD
- The overall winner will be awarded two round trip tickets to attend Bluetooth World 2016, along with entry into the conference and free exhibition space, valued at $12,500 USD
The Bluetooth SIG is accepting submissions in four categories—Products, Prototypes, Applications and Students. For full details including submission details, visit the website. For questions about the program, contact the Events Manager
Show LessDoes the Wiced Sense support the Eddystone framework for Bluetooth beacons? This was known as uriBeacon but since changed to Eddystone. I'm interested in setting up the sense module as an Eddystone Bluetooth beacon.
Thanks,
David
Show LessI am doing a job with bcm20737 ,the problem i have met is I do not find a function could do sofreset.
I also would like to know how to restore the Sense Module. I understand that the SDK firmware needs to be downloaded, but then what? Do I need to "Make Target" to somewhere specific. What target do I run to restore the app?
Show Less