CHANGELOG.md (093c3dfd652916ea99ab33c8db4d490e810af157) CHANGELOG.md (f840457c73c5842899275d7c96778af2478a69a1)
1# Change Log
2All notable changes to this project will be documented in this file.
3
4The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/)
5and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html).
6
7---
8
9## Unreleased
10
11### Added
1# Change Log
2All notable changes to this project will be documented in this file.
3
4The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/)
5and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html).
6
7---
8
9## Unreleased
10
11### Added
12- HCI: `btstack_transport_sco.h` allows to support SCO over physical PCM/I2S interface (`HAVE_SCO_TRANSPORT`)
13- HCI: add `hci_sniff_subrating` command
12### Fixed
13### Changed
14
15## Release v1.4
16
17### Added
18- HCI: `btstack_transport_sco.h` supports SCO over physical PCM/I2S interface (`HAVE_SCO_TRANSPORT`)
14- POSIX: `btstack_transport_sco_i2s_test_bridge.c` implements SCO transport interface for UART-to-I2S test bridge
15- btstack_uart: `btstack_uart_t` interface extends `btstack_uart_block_t`:
16 - support sending and receiving SLIP frames for HCI H5
17 - support odd parity
18 - `hci_transport_h4` and chipset drivers have new functions to provide `btstack_uart_t`
19- btstack_uart_slip_wrapper: wrapper that implements SLIP functionality for existing `btstack_uart_block` drivers.
20- hci_transport: add parity field and pass on to `btstack_uart_t` in h4 and h5
21- GATT Client: Battery Service Client
22- GATT Client: Device Information Service Client
23- GATT Client: HID-over-GATT (HOG) Client, Report and Boot Host
24- GATT Client: Scan Parameters Service Client
25- GATT Server: Scan Parameters Service Server
26- GAP: support scan page configuration with `gap_set_page_scan_activity` and `gap_set_page_scan_type`
19- POSIX: `btstack_transport_sco_i2s_test_bridge.c` implements SCO transport interface for UART-to-I2S test bridge
20- btstack_uart: `btstack_uart_t` interface extends `btstack_uart_block_t`:
21 - support sending and receiving SLIP frames for HCI H5
22 - support odd parity
23 - `hci_transport_h4` and chipset drivers have new functions to provide `btstack_uart_t`
24- btstack_uart_slip_wrapper: wrapper that implements SLIP functionality for existing `btstack_uart_block` drivers.
25- hci_transport: add parity field and pass on to `btstack_uart_t` in h4 and h5
26- GATT Client: Battery Service Client
27- GATT Client: Device Information Service Client
28- GATT Client: HID-over-GATT (HOG) Client, Report and Boot Host
29- GATT Client: Scan Parameters Service Client
30- GATT Server: Scan Parameters Service Server
31- GAP: support scan page configuration with `gap_set_page_scan_activity` and `gap_set_page_scan_type`
27- GAP: support sniff subrating with `gap_sniff_subrating_configure
32- GAP: support sniff subrating with `gap_sniff_subrating_configure`
28- GAP: support QoS setup with `gap_qos_set`
29- AVRCP: new field `button_pressed` in `AVRCP_SUBEVENT_OPERATION`
30- AVRCP: `AVRCP_SUBEVENT_OPERATION` emitted for button release
33- GAP: support QoS setup with `gap_qos_set`
34- AVRCP: new field `button_pressed` in `AVRCP_SUBEVENT_OPERATION`
35- AVRCP: `AVRCP_SUBEVENT_OPERATION` emitted for button release
31- AVRCP Controller: avrcp_controller_start_press_and_hold_cmd helps to support device buttons
36- AVRCP Controller: `avrcp_controller_start_press_and_hold_cmd` supports arbitrary device buttons
32- AVRCP Controller: reassemble fragmented AVCTP packets
33- AVDTP: `avdtp_register_media_config_validator` allows to validate media codec configuration
37- AVRCP Controller: reassemble fragmented AVCTP packets
38- AVDTP: `avdtp_register_media_config_validator` allows to validate media codec configuration
34- A2DP Source: `ENABLE_A2DP_SOURCE_EXPLICIT_CONFIG` disables auto config. Requires call to `a2dp_source_set_config_{CODEC}'
39- A2DP Source: `ENABLE_A2DP_SOURCE_EXPLICIT_CONFIG` disables auto config. requires call to `a2dp_source_set_config_{CODEC}`
35
36### Fixed
37- GAP: calculate IO Cap AuthReq Bondable Mode based on `gap_ssp_set_authentication_requirement` and `gap_set_bondable_mode`
40
41### Fixed
42- GAP: calculate IO Cap AuthReq Bondable Mode based on `gap_ssp_set_authentication_requirement` and `gap_set_bondable_mode`
38- GAP: only store link key for ssp if remote side has set bondable in io cap auth requirements as well
43- GAP: only store link key for SSP if remote side has set bondable in io cap auth requirements
39- GAP: allow to disable link supervision timeout
40- GAP: fix `gap_connect` after `gap_connect_cancel`
41- GAP: re-configure advertisements after power cycle
42- HCI: handle start inquiry failure
44- GAP: allow to disable link supervision timeout
45- GAP: fix `gap_connect` after `gap_connect_cancel`
46- GAP: re-configure advertisements after power cycle
47- HCI: handle start inquiry failure
43- L2CAP: fix create outgoing connection triggered in hci disconnect event callback
48- L2CAP: fix create outgoing connection triggered from packet handler on hci disconnect event
44- L2CAP: return unknown mandatory option in config response
45- AVDTP: fix spelling `avdtp_set_preferred_sampling_frequency`
46- AVRCP Target: fix notification changed event
49- L2CAP: return unknown mandatory option in config response
50- AVDTP: fix spelling `avdtp_set_preferred_sampling_frequency`
51- AVRCP Target: fix notification changed event
47- HFP: Emit Audio Connection Released on SLC Release, e.g. remote power off
52- HFP: Emit audio connection released on SLC Release, e.g. on remote power off
53- HFP HF: fix audio connection setup if codec negotiation is supported
48- HFP HF: only emit single event for RING and AG Status updates
49- HFP AG: fix audio connection setup for in-band ringtone on incoming connection
54- HFP HF: only emit single event for RING and AG Status updates
55- HFP AG: fix audio connection setup for in-band ringtone on incoming connection
50- HFP: fix audio connection setup by HF if codec negotiation is supported
51
52### Changed
56
57### Changed
53- HCI: config I2S for BCM Controllers if `ENABLE_SCO_OVER_PCM`, reduce bit clock to 256/512 kHz
54- btstack_uart_posix: supports SLIP frames and replaces `btstack_uart_block_posix`
55- hci_transport_h5: new more performant H5 implementation that requires `btstack_uart_t` driver with SLIP support.
56- POSIX Ports: use new `btstack_uart_posix` implementation
57- posix-h5/posix-h5-bcm: use even parity for UART
58- Port Archive: moved ports that are not recommended for new designs to port/archive folder:
59 - MSP430: the ports used the older community GCC version without 20-bit support needed for code size > 64kB
60 - Broadcom/Cypress H5: uploading PatchRAM is only possible in H4 mode. It's better to also use H4 in general
58- Port Archive: moved ports that are not recommended for new designs to port/archive folder:
59 - MSP430: the ports used the older community GCC version without 20-bit support needed for code size > 64kB
60 - Broadcom/Cypress H5: uploading PatchRAM is only possible in H4 mode. It's better to also use H4 in general
61 - PIC32-Harmony: the port used Harmony v1 while Harmony v3 has been out since a while.
61 - PIC32-Harmony: the port used Harmony v1 while Harmony v3 has been out since a while
62 - iOS: not supported
62- Run Loop Base: functionality used in most platform run loop implementations
63 - code from `btstack_run_loop_base.c` moved into `btstack_run_loop.c` to minimize changes to build systems
64 - `btstack_run_loop_base.c` is a placeholder and can be removed from build
65- HCI Dump: replace monolithic `hci_dump.c` (with many #ifdefs) into dispatcher with platform-specific implementations:
66 - `posix/hci_dump_posix_fs` - writes binary log file
67 - `posix/hci_dump_stdout` - log to console using printf with local system time
68 - `embedded/hci_dump_embedded_stdout` - log to console using printf
69 - `embedded/hci_dump_segger_stdout` - log to RTT console using `SEGGER_printf`
70 - `embedded/hci_dump_segger_binary` - writes binary log over RTT to host
63- Run Loop Base: functionality used in most platform run loop implementations
64 - code from `btstack_run_loop_base.c` moved into `btstack_run_loop.c` to minimize changes to build systems
65 - `btstack_run_loop_base.c` is a placeholder and can be removed from build
66- HCI Dump: replace monolithic `hci_dump.c` (with many #ifdefs) into dispatcher with platform-specific implementations:
67 - `posix/hci_dump_posix_fs` - writes binary log file
68 - `posix/hci_dump_stdout` - log to console using printf with local system time
69 - `embedded/hci_dump_embedded_stdout` - log to console using printf
70 - `embedded/hci_dump_segger_stdout` - log to RTT console using `SEGGER_printf`
71 - `embedded/hci_dump_segger_binary` - writes binary log over RTT to host
72- HCI: config I2S for BCM Controllers if `ENABLE_SCO_OVER_PCM`, reduce bit clock to 256/512 kHz
73- btstack_uart_posix: supports SLIP frames and replaces `btstack_uart_block_posix`
74- hci_transport_h5: more performant H5 implementation that requires `btstack_uart_t` driver with SLIP support
75- POSIX Ports: use new `btstack_uart_posix` implementation
76- posix-h5/posix-h5-bcm: use even parity for UART
77- HCI Transport: extract convenience function declaration for h4, h5, em9304_spi, and usb into separate hci_transport_{type}.h
78- GAP: provide Device ID from EIR in GAP_EVENT_INQUIRY_RESULT
79- GAP: only store link key if it allows requested security level
80- GAP: abort SSP pairing if MITM protection required but not possible
81- SM: start pairing as Central for already encrypted connection on Slave Security Request
82- GATT Client: Use ATT_READ_REQUEST for first blob of Read Long Characteristic and Read Long Characteristic Descriptor
83- GATT Server: Allow ATT Read Callback to return custom ATT Error Code
71- Nordic SPP Service Server: use `GATTSERVICE_SUBEVENT_SPP_SERVICE_CONNECTED` and `GATTSERVICE_SUBEVENT_SPP_SERVICE_CONNECTED`
72 events instead of callback, and `RFCOMM_DATA_PACKET` for received data
73- u-blox SPP Service Server: use `GATTSERVICE_SUBEVENT_SPP_SERVICE_CONNECTED` and `GATTSERVICE_SUBEVENT_SPP_SERVICE_CONNECTED`
74 events instead of callback, and `RFCOMM_DATA_PACKET` for received data
84- Nordic SPP Service Server: use `GATTSERVICE_SUBEVENT_SPP_SERVICE_CONNECTED` and `GATTSERVICE_SUBEVENT_SPP_SERVICE_CONNECTED`
85 events instead of callback, and `RFCOMM_DATA_PACKET` for received data
86- u-blox SPP Service Server: use `GATTSERVICE_SUBEVENT_SPP_SERVICE_CONNECTED` and `GATTSERVICE_SUBEVENT_SPP_SERVICE_CONNECTED`
87 events instead of callback, and `RFCOMM_DATA_PACKET` for received data
75- HSP AG: emit HSP_SUBEVENT_BUTTON_PRESSED instead of audio connection setup/release
76- Examples: use `btstack_event.h` getters instead of direct array access, use enum to compare status codes
77- HFP: provide acl_handle in events to identify connection
78- HCI Transport: extract convenience function declaration for h4, h5, em9304_spi, and usb into separate hci_transport_{type}.h
79- GATT Client: Use ATT_READ_REQUEST for first blob of Read Long Characteristic and Read Long Characteristic Descriptor
80- GATT Server: Allow ATT Read Callback to return custom ATT Error Code
81- HID: Move `src/classic/hid.h` into `src` and prefix with `btstack_` to use it with BLE and avoid name clashes
88- HID: Move `src/classic/hid.h` into `src` and prefix with `btstack_` to use it with BLE and avoid name clashes
82- SM: start pairing as Central for already encrypted connection on Slave Security Request
83- GAP: provide Device ID from EIR in GAP_EVENT_INQUIRY_RESULT
84- GAP: only store link key if it allows requested security level
85- GAP: abort SSP pairing if MITM protection required but not possible
89- HFP: provide acl_handle in events to identify connection
90- HSP AG: emit HSP_SUBEVENT_BUTTON_PRESSED instead of audio connection setup/release
91- Example: use `btstack_event.h` getters instead of direct array access, use enum to compare status codes
86
87## Release v1.3.2
88
89### Added
90- GAP: support for Classic Out-of-Band (OOB) pairing via `gap_ssp_remote_oob_data` with `ENABLE_CLASSIC_OOB_PAIRING`
91- GAP: read local OOB data on start and on call to `gap_ssp_generate_oob_data`, provided via `GAP_EVENT_LOCAL_OOB_DATA`
92- HID Host: add profile, update `hid_host_demo.c` example
93

--- 717 unchanged lines hidden ---
92
93## Release v1.3.2
94
95### Added
96- GAP: support for Classic Out-of-Band (OOB) pairing via `gap_ssp_remote_oob_data` with `ENABLE_CLASSIC_OOB_PAIRING`
97- GAP: read local OOB data on start and on call to `gap_ssp_generate_oob_data`, provided via `GAP_EVENT_LOCAL_OOB_DATA`
98- HID Host: add profile, update `hid_host_demo.c` example
99

--- 717 unchanged lines hidden ---