Overview
This release includes significant improvements to BLE connectivity, mruby/c upgrades, SDK updates, and comprehensive documentation enhancements.
Major Changes
BLE Connectivity Improvements
- Fix advertising state corruption on -EALREADY error
- Improve thread safety of ble_context.conn access
- Add proper connection lifecycle management with bt_conn_ref/unref
- Add NULL safety and thread safety to GATT notifications
- Replace custom flags with Zephyr standard APIs
- Add supervision timeout validation in parameter requests
- Add security_changed callback for SMP event logging
- Use synchronous bt_enable(NULL) instead of async + semaphore
- Use BT_LE_ADV_CONN_FAST_2 macro for advertising parameters
- Replace deprecated info.le.interval with interval_us
- Add bonding information cleanup and document future bonding plan
- Add NOTIFY property and CCC to Program characteristic
mruby/c Upgrade
- Upgrade mruby/c from 3.3.0 to 3.4.0, then to 3.4.1
- Enable MRBC_USE_MATH for math function support
- Add _DEFAULT_SOURCE to enable M_PI and M_E math constants in picolibc
- Add Blink.lock and Blink.unlock methods
- Deprecate Blink.req_reload? method
- Remove unnecessary mutex unlock in mrubyc_vm_main function
nRF Connect SDK Upgrade
- Upgrade from v2.9.0 to v3.2.1, then to v3.3.0
- Update documentation to reflect SDK version changes
Documentation Enhancements
- Add comprehensive multilingual support (English, Japanese, Chinese)
- Split README into language-specific files with language badges
- Add Philosophy and Goals section explaining OpenBlink's vision
- Expand Getting Started section with detailed instructions
- Add DeepWiki link for AI-powered comprehensive documentation
- Add Doxygen-style comments throughout codebase
- Add new documentation files (mruby API, Bluetooth specification)
- Rename doc files to follow standard language suffix convention
- Fix hallucination in CRC description
Other Improvements
- Add function to wait for blink if abnormal end is detected
- Improve error logging with bt_hci_err_to_str for human-readable errors
- Replace printk with LOG_* macros for consistent logging
- Add check_startcondition function
- Remove unused CONFIG_BT_GATT_DM and document CONFIG_BT_GATT_CLIENT
- Remove CONFIG_NRF_APPROTECT_USE_UICR from prj.conf
Compatibility
- Requires nRF Connect SDK v3.3.0
- Verified on nRF54L15-DK and nRF52840-DK
Version
openblink % west bindesc dump build/merged.hex
APP_VERSION_MAJOR 0
APP_VERSION_MINOR 3
APP_VERSION_PATCHLEVEL 4
APP_VERSION_STRING "0.3.4"
KERNEL_VERSION_MAJOR 4
KERNEL_VERSION_MINOR 3
KERNEL_VERSION_PATCHLEVEL 99
KERNEL_VERSION_STRING "4.3.99"Size
nRF54L15-DK
Memory region Used Size Region Size %age Used
FLASH: 313204 B 1300 KB 23.53%
RAM: 105024 B 188 KB 54.55%
IDT_LIST: 0 GB 32 KB 0.00%nRF52840-DK
Memory region Used Size Region Size %age Used
FLASH: 314544 B 896 KB 34.28%
RAM: 107528 B 256 KB 41.02%
IDT_LIST: 0 GB 32 KB 0.00%Full Changelog: v0.3.3...v0.3.4