Goodix presents GR551x software development kit (SDK) to help GR551x series users boost their efficiency in project evaluation and development. GR551x SDK supports full functionality of Bluetooth Low Energy (Bluetooth LE) Stack (Bluetooth 5.1), and provides a complete set of peripheral drivers, as well as various library files. It includes a rich set of reference files and examples on Bluetooth LE device roles, GATT profiles/services, peripheral APP/HAL drivers, libraries, OTA, DTM, power consumption, FreeRTOS, etc.
GR551x SDK manages power consumption automatically and provides multiple sleep modes, so that the GR551x SoCs can run at ultra low power consumption. It also ensures firmware security, by providing firmware encryption and download.
GR551x SDK facilitates fast project evaluation and development, supporting popular IDEs: Keil, IAR and GCC. It includes essential tools, such as GProgrammer for PC-based download and programming, GRUart and GRDirect Test Mode Tool for PC-based serial port debugging, and GRToolbox for mobile debugging.
GR551x SDK is compatible on several IoT development platforms including Tuya, OpenHarmony, and Amazon, with more to be introduced.
To evaluate a development project, users can work with GR5515 Starter Kit. GR551x SDK provides examples that can run on GR5515 Starter Kit for various scenarios.
Supports full functionality of Bluetooth Low Energy Protocol Stack (Bluetooth 5.1)
Supports multiple peripherals including GPIO, Timer, WDT, I2C, UART, SPI, QSPI, ADC, I2S, ISO 7816, PWM, AES, HMAC, PKC, and TRNG
Reference examples for all Bluetooth LE device roles and GATT profiles/services
Provides a rich set of libraries and peripheral examples
Examples for DTM testing, and power consumption evaluation and testing
OTA DFU
FreeRTOS
Firmware encryption and download
Low-power operation in sleep modes.
Debugging with J-Link RTT.
Development on Windows or Linux; toolchains of Keil, IAR, and GCC are supported
Optimized Bluetooth LE functionalities and fixed several issues: Changed the Bluetooth LE event handling method from using callback functions to message event distribution; fixed the memory leak and timing configuration issues in the 2.4G proprietary protocol module, as well as a configuration error in the single carrier wave register.
Optimized peripheral driver functionalities and fixed issues for modules such as I2C, BOD, RTC, Timer, SPI, and ADC.
Changed the usage of peripheral drivers, including optimizing peripheral transfer APIs and related parameters, simplifying the usage of peripheral APIs, as well as specifically optimizing the driver architecture and API calling method for the DMA module.
Removed peripheral driver functionalities, including signal amount APIs, app_aes, app_hmac, app_systick, app_rtos_cfg, and Flash suspend/resume APIs.
Removed HAL drivers and FreeRTOS driver.
Removed some example projects and fixed several issues: Removed example projects such as ble_basic_example, ble_app_hrs_gh3011, and ble_app_wechat; fixed issues in example projects such as ble_app_hids_keyboard and ble_app_wss.
Applied the same firmware upgrade solution to all Bluetooth LE SoCs; added the app_bootloader example project to replace the functionality of example projects such as ble_dfu_boot, ble_dfu_fast, and second_boot.
Added the ble_app_multi_slave example project, which demonstrates Bluetooth LE multi-slave and multi-connection functionalities.
In the direct_test_mode example project, supported setting the TX power for single carrier wave tests, and added the functionalities of starting and stopping advertising.
Supported Fault Trace functionality in GCC.
Upgraded the Keil download algorithm.
Adds support for GR5513BENDU
Adds support for broadcasting with a non-resolvable address when privacy mode is enabled
Adds support for ARM CMSIS DSP library files
Adds the app log store module to support log export via Bluetooth LE
In app_i2c module, adds a member variable slave_addr for current slave address recording in the app_i2c_evt_t structure, to facilitate obtaining slave address from the callback functions registered at the application layer
In app_adc module, adds an app_adc_multi_channel_conversion_async API/span>
In app_timer module, limits the maximum app_timer timing duration to 1 hour to eliminate the risk of app_timer overflow
Optimizes parameters for app_pkc_montgomery_inversion_sync and app_pkc_montgomery_inversion_async APIs
Deletes DMA mode for FreeRTOS-related APIs (app_aes_encrypt_sem_sync and app_aes_decrypt_sem_sync) in AES module
Fixes a bug that may cause low-probability of Bluetooth LE disconnection in multi-connection RTOS scenarios when the SoC is in sleep mode
Adds sys_ble_static_addr_policy_reverse interface to support Bluetooth MAC address algorithm policy selection and solve the problem of OTA upgrade failure due to Bluetooth MAC address algorithm policy updates
Updates Flash download algorithm from GR551x_8MB_Flash.FLM to GR5xxx_16MB_Flash.FLM
Adds support for GR5515I0NDA and GR5515IENDU System-on-Chips (SoCs). GR5515I0NDA, which can be configured to GR5515I0ND, supports low-voltage (typical: 1.8 V) external Flash. Developed based on GR5515IGND, GR5515IENDU is a new GR551x model with an embedded Flash of 512 KB
The application layer supports broadcasting of 31 bytes in nondiscoverable or broadcast mode
Adds support for multiple MTU exchanges by default
Optimizes the power consumption of Wait for Interrupt (WFI) during broadcasting in the FreeRTOS
Optimizes RAM space
Adds the RAM RESERVE SECTION region to scatter files, and addsthe RESERVE_RAM_SECTION macro to the SDK to define variables that should not be cleared
Optimizes I2C, QSPI, SPI, and UART drivers, and decouples interrupt operations from DMA operations
Improves the delay_us() API function to avoid system breakdown when the function was called concurrently by multiple tasks
Fixs a bug that could cause unexpectedly high packet error rate at the RX end when the modulation index of the TX signals is small while the frequency offset is large
Fixs a bug that could cause overflow when calculating diff_us of the real-time clock based on BLE timer
Optimizes the overall power consumption of the SoCs
Adds the function of specifying advertising channels
Adds a module which supports storing logs in Flash
Adds an API to parse resolvable private address (RPA)
Optimizes the Fast DFU module to boost upgrade speed and to provide better compatibility
Adds an exflash read API to boost the speed in accessing Flash
Adds an exflash read API to boost the speed in accessing Flash
Optimizes relevant exflash APIs to save the space for storing RAM code
Fixes several problems which used to undermine the stability of the system and Bluetooth Low Energy performance
Updates software contained in the SDK accordingly
Supports GR5513BEND and GR5515I0ND SoCs
Supports the use of RNG2 as a low-power clock
Optimizes the overall power consumption performance of GR551x SoCs
Adds SPI-V2 driver to support 32-bit SPI fast transmission
Adds APIs to operate the eFuse at the user layer
Adds some middlewares in the library to facilitate the user to manage the Bluetooth Low Energy (Bluetooth LE) activities and schedule the business at the application layer
Fixes several issues that affect the stability of the system and Bluetooth LE
Optimizes the throughput in the one-master-multiple-slave scenario
Adds the new feature of minimum 937.5 μs connection interval and the corresponding demo
Supports wide voltage Flash
Updates the tools in SDK
Offers BLE 5.0 full featured API, such as master/slave, scan/broadcast role, 2M/coded PHY
Comprehensive on-chip peripheral drivers (including SPI, I2C, UART, TIMER and others), supporting low power automatic management of peripheral devices
Abundant BLE application and peripheral sample projects, including common BLE profile and service
Sample projects based on FreeRTOS and a variety of practical middleware
Supports Keil/GCC integrated development environment, and provides API manual based on Doxygen
Supports firmware/data encryption and OTA firmware upgrade
Provides GRToolbox (Android), GRUart (Windows), GRSmart (Windows), GProgrammer (Windows)
Open WeChat, use "Scan" to follow.