Highlights:
● 5.2 Feature:Path loss monitoring
● 5.3 Feature:Power control(5.2 Core Spec upgrade)
● 5.3 Feature: Subrating mode
● SDK auto upgrade
● User guide:AoA/AoD positioning
1.Bundles
● [add] ING918xx Experimental (exp) bundles (8.1.0)
In order to ensure the stability of the software package version, we release these new features in a separate experimental software package, and incorporate them into other software packages after fully verified.
Experimental (exp) including proprietary extension((8.1.5))。
● [update] improving CONNECT_IND connection rate (8.1.1)
Improve the connection rate when connected by the master as a slave device.
● [update] all Nim module moved into Smart Home Hub example (8.1.2)
● [fixed] L2CAP issues (8.1.3)
1.Central role cannot respond correctly L2CAP_CONNECTION_PARAMETER_UPDATE_REQ
2.Peripheral role cannot response L2CAP_EVENT_CONNECTION_PARAMETER_UPDATE_RESPONSE
3.New event added L2CAP_EVENT_COMMAND_REJECT_RESPONSE
Refer to the example UART GATT Console for the events usage.
● [fixed] xxxx_request_can_send_now() Potential recursive callback(8.1.4)
● [fixed] A HardFault in typical bundle (8.1.6)
For the software package of ING916xx, we will consider using Keil 5 to compile. The ING918xx package will still be compiled using Keil 4.
2. examples
● [update] UART GATT Console (8.1.0)
New features added regarding to 5.2/5.3 core spec, refer to “More Info”document.
● [update] Peripheral Ccnsole (8.1.2)
add latency command,to assign parameters for “Peripheral Latency”automaticly.
● [update] UART GATT Console (8.1.3)
Add L2CAP demo.
● [update] Nim Smart Home Hub as an example for Gnu Arm Toolchain (8.1.2)
● [Delete] Nim Peripheral Battery (8.1.2)
● [update] documents for demos (8.1.2)
● [update] add Central CTE FOTA function (8.1.6)
To avoid trouble for download/update the program of the antenna board through the serial port, FOTA function is added.
● [update] LittlevGL: support ILI9488 (8.1.6)
Update the drivers in LittlevGL, and added support for ILI9488. Set the display type via the compile switch:
Compile(macro) |
instruction |
parameter |
default |
SPI_LCD_DRIVER |
Driver name |
LCD_DRIVER_ST7735, LCD_DRIVER_ST7789, LCD_DRIVER_ILI9488 |
LCD_DRIVER_ST7735 |
LCD_WIDTH |
Horizontal resolution |
integer |
128 |
LCD_HEIGHT |
Vertical resolution |
integer |
160 |
Tested on following module:
-
- 1.44inch SPI Module ST7735S (128x128)
- 1.8inch SPI Module ST7735S (128x160)
- 3.5inch SPI Module ILI9488
3. Tools
● [update] Tracer: 5.3 massage parsing (8.1.0)
● [update] Wizard reminds the projects that are not built in the SDK but are located in the examples directory (8.1.0)
We do not recommend storing new projects developed in the examples directory. Now when the Wizard detects such an item, it will add a striking sign, as shown in the following figure:
● [update] Windows support background installation of the SDK (8.1.1)
For the usual SDK version upgrade, run the installation package with the /silent parameter: ingchips_sdk_setup_v8.1.1.exe /silent
While major upgrade(for example Keil、Gnu tool chain),it could be switch back to manual installation.
● [update] Wizard:Remove the support for Nim (8.1.2)
● [update] Wizard:add online upgrade (8.1.2)
When the Wizard detects a new SDK version, the Online Update window will pop up. Click the Update button to directly complete the upgrade. The version number in the Online Update window can be modified, so that it can not only be upgraded automatically, but also downgraded.
Disable this function: If the developer doesn’t need the automatic check for updates and want to disable this function, then he or she can create a file named NO_UPDATE(no extension) empty file under ING_SDK\wizard\data, and restart the Wizard |
● [fix] AoX tool:command parsing, remove printf (8.1.2)
● [update] Trace:add current frame(5s) RF&stack load statistics (8.1.3)
In the figure below, the RF load is 69.7%, which means that the RF part has been working for 69.7% of the time; The TASK load is 5.5%, which means that the two tasks of the protocol stack occupy 5.5% of the MCU processing time; The ISR load is 1.8%, which means that the interrupt handler takes up 1.8% of the MCU processing time.
This statistical function can help analyze problems, such as:
1. Low RF load leads to less broadcasts scanned: check whether the scanning parameters are reasonable;
2. The system is overload because the protocol stack load is too high: check whether the code can be optimized;
3. The system is overload due to high interrupt load: complex processing needs to be transferred to RTOS tasks.
Note: The above statistics may be less because of the log lost. Some ISR loads may be counted into TASK loads again. |
● [update] Wizard code generation:Keil startup file is compatible with MicroLib and standard Lib (8.1.6)
Now the wizard generates startup files that are compatible with MicroLib and standard Lib, making it easy for developers to use standard Lib and C++languages.
4. Documents
● [add] user guide:BLE AoA/AoD (8.1.4)
5. New Features
A、Path loss monitoring
BLE 5.2 defines three types of path loss (or zones): high loss, medium loss and low loss. The Controller monitors the loss and reports to HCI when the loss classification changes via SUBEVENT_ LE_ PATH_ LOSS_ THRESHOLD event. Developers can respond to these events, such as adjusting transmission power.
The threshold of each type could be defined via the API gap_set_path_loss_reporting_Param.
B、Power Control
For the transmission power, the SDK has provided the link layer API ll_set_conn_tx_power. Now, API ll_adjust_conn_peer_tx_power is added to the link layer to adjust the transmission power of the opposite end.
Combine the above two APIs and gap_read_Rssi, developers can design appropriate power automatic control scheme. A simple automatic control scheme is demonstrated in the UART GATT Console.
C、Subrating mode
Imagine if there is a way to save power when the master or slave device has no data to send? The answer is yes: 1) Update to a larger connection interval; 2) Skip some connection events.
For peripheral devices (slave devices), this skip function is called peripheral latency (slave latency). Can the central equipment (master equipment) be skipped? If the peripheral latency is 0, the central device can also be skipped. But if the central equipment and peripheral equipment are skipped, there is a problem: if the skip rhythm is inconsistent, and communication is interrupted.
Subrating mode actually defines a uniform rhythm for central equipment and peripheral equipment to ensure the continuity of communication.
Compared with the connection interval adjustment, the subrating mode is flexible, quick and has obvious advantages. subrating mode, together with power control, can significantly reduce power consumption in the connected state while ensuring the quality of service.
|
About Peripheral Latency: At present, except for Windows, Android and iOS/macOS do not provide interfaces related to Peripheral Latency. When Bluetooth devices are connected by Android and iOS, this parameter is usually 0. Developers can use ll_set_conn_Latency API assigns a non-zero value to Peripheral Latency. The specific values need to comprehensively consider power consumption, connection response speed, connection stability and other factors. |