Commit Graph

1850 Commits

Author SHA1 Message Date
Mark Wang
bc47bce39b bluetooth: handsfree: improve the cod print string
cod is three bytes, print it as 6 hex values.

Signed-off-by: Mark Wang <yichang.wang@nxp.com>
2025-04-30 13:59:58 +02:00
Marek Matej
780bafab6a tests, samples: update esp32_devkitc board records
Update the tests using the esp32_devkitc_xxx entries.

Signed-off-by: Marek Matej <marek.matej@espressif.com>
2025-04-29 16:48:55 +02:00
Johan Hedberg
f85d63a6cc Bluetooth: Remove USB H4 mode support
This non-standard feature never had any proper host side implementation
(e.g. it was never upstreamed to BlueZ), and since it comes with notable
maintenance overhead it's fair to just remove it.

Signed-off-by: Johan Hedberg <johan.hedberg@silabs.com>
2025-04-29 13:00:33 +02:00
Johan Hedberg
26d97164be Bluetooth: HCI: Use H:4 encoding for buffers
Encode the packet type as a H:4 payload prefix for buffers passing to &
from HCI drivers. The existing bt_buf_set/get_type functions are
deprecated, but kept compatible with the change, except that they can only
be called once, since they modify the buffer payload.

Signed-off-by: Johan Hedberg <johan.hedberg@silabs.com>
2025-04-29 13:00:33 +02:00
Sayooj K Karun
bf104d42cb bluetooth: mtu_update: peripheral: Add NULL check
Add NULL check for connection context, and only send the
notification if connection is established.

Signed-off-by: Sayooj K Karun <sayooj@atmosic.com>
2025-04-24 11:57:43 +02:00
Greg Leach
23338e5708 samples: Add BL54L15/L15u DVK support
Adds support for the BL54L15 and BL54L15u DVK boards.

Signed-off-by: Greg Leach <greg.leach@ezurio.com>
2025-04-23 15:02:20 +02:00
Emil Gydesen
e02bd58049 samples: Bluetooth: BAP: Unicast Server: Fix bad valid check
The valid check was incorrect and instead set valid_data to
false for valid data, and true for invalid data.

Signed-off-by: Emil Gydesen <emil.gydesen@nordicsemi.no>
2025-04-11 16:18:23 +02:00
Manojkumar Konisetty
aa690fad3f doc: samples: Update bluetooth/central README
Add relevant details to README file of samples/bluetooth/central

Signed-off-by: Manojkumar Konisetty <manoj@aerlync.com>
2025-04-11 10:54:17 +02:00
Lyle Zhu
3f7224a926 Bluetooth: Classic: HFP_AG: Update the callback sco_disconnected()
Change the arguments of HFP AG callback `sco_disconnected()` to SCO
conn and disconnection reason.

Signed-off-by: Lyle Zhu <lyle.zhu@nxp.com>
2025-04-09 08:06:04 +02:00
Emil Gydesen
7f379fb963 samples: Bluetooth: BAP: Broadcast sink use new USB stack
Refactor the USB of the BAP broadcast sink to use the new
USB stack.

Signed-off-by: Emil Gydesen <emil.gydesen@nordicsemi.no>
2025-04-08 17:36:34 +02:00
Vinayak Kariappa Chettimada
d8cd8ddc51 samples: Bluetooth: bap_broadcast_source nRF5340 audio dk + nRF21540 FEM
Added overlay file to support nRF5340 audio dk + nRF21540
FEM.

Build the hci_ipc with corresponding overlay file to use the
nRF21540 FEM with the bap_broadcast_source sample on nRF5340
audio kit.

Use the below commandline:
$ west build -b nrf5340_audio_dk/nrf5340/cpuapp --sysbuild \
  samples/bluetooth/bap_broadcast_source \
  -DDTC_OVERLAY_FILE= \
  boards/nrf5340_audio_dk_nrf5340_cpuapp_nrf21540_ek.overlay \
  -Dhci_ipc_DTC_OVERLAY_FILE= \
  boards/nrf5340_audio_dk_nrf5340_cpunet_nrf21540_ek.overlay

Related to commit 35ad653038 ("samples: Bluetooth:
hci_uart/hci_ipc: CI coverage for nRF53+nRF21 FEM").

Signed-off-by: Vinayak Kariappa Chettimada <vich@nordicsemi.no>
2025-04-07 11:23:11 +02:00
Matthias Hauser
941a5489d3 dts: boards: we: add board Ophelia-IV
add new board Ophelia-IV

Signed-off-by: Matthias Hauser <matthias.hauser@we-online.de>
2025-04-03 13:16:05 +02:00
Lyle Zhu
c09cf23844 Bluetooth: HFP_AG: Add ACL conn to the connected callback
If the AG works as Data Channel Acceptor, the ACL conn cannot be known
by the application of AG. Similar with HF, add ACL conn as the first
parameter to the `connected` callback of AG.

Signed-off-by: Lyle Zhu <lyle.zhu@nxp.com>
2025-04-03 06:24:32 +02:00
Lyle Zhu
68d2526130 Sample: Bluetooth: HFP_HF: Update the sample
Due to the interface of HF is updated, update HF sample accordingly.

Signed-off-by: Lyle Zhu <lyle.zhu@nxp.com>
2025-04-03 06:24:32 +02:00
Lyle Zhu
fcedda6a00 Sample: Bluetooth: HFP_AG: Update the sample
Due to the interface of AG is updated, update AG sample accordingly.

Signed-off-by: Lyle Zhu <lyle.zhu@nxp.com>
2025-04-03 06:24:32 +02:00
Ryan Chu
9ba60d3eb7 bluetooth: host: Apply callback changes of CS complete events
The CS complete callbacks provide both status and params.
In the case of errors, NULL pointer is passed to the params of callbacks.

Signed-off-by: Ryan Chu <ryan.chu@nordicsemi.no>
2025-04-01 16:26:58 +02:00
Sean Kyer
93c1c7d066 Samples: Bluetooth: Extend DIS sample
- Extended the DIS sample to showcase all possible
  fields using placeholder values.
- UDI issuer strings use a 'private' ODI which is
   unregistered.

Signed-off-by: Sean Kyer <Sean.Kyer@analog.com>
2025-03-31 19:50:12 -04:00
Benjamin Cabé
776c0cab9a doc: boards: nordic: Adopt zephyr:board directives
Migrate all Nordic boards to leverage the full extent of zephyr:board
directives.

Signed-off-by: Benjamin Cabé <benjamin@zephyrproject.org>
2025-03-31 22:00:02 +02:00
Emil Gydesen
4fe81ec398 samples: Bluetooth: Replace OVERLAY_CONFIG with EXTRA_CONF_FILE
OVERLAY_CONFIG has been deprecated and replaced by
EXTRA_CONF_FILE. Update samples to reflect that.

Signed-off-by: Emil Gydesen <emil.gydesen@nordicsemi.no>
2025-03-26 16:20:36 +01:00
Emil Gydesen
065dca7e92 Bluetooth: ISO: Make setting ISO data explicit
The stack will no longer implicitly set the data path
for ISO channel, and the responsibility for doing that is
now for the upper layers/applications.

This provides additional flexibility for the higher layers
as they can better control the values and timing of the data
path, as well as support removing and even reconfiguring the
data path at will.
This also removes some complexity from the stack.

This commit also fixed a inconsistency in the disconnected
handler. CIS for centrals as well as BIS were still valid
bt_iso_chan channels in the disconnected callback,
but CIS for peripherals were completely cleaned up at this
point. This issue is fixed by moving the disconnected callback
handling to before the code to cleanup the channel for
peripherals.

Since there is a difference in how you remove data paths
depending on the GAP role (central/peripheral), the
iso_info struct type has been expanded to be more
concise of which type of CIS it is.

Signed-off-by: Emil Gydesen <emil.gydesen@nordicsemi.no>
2025-03-19 10:56:57 +01:00
Emil Gydesen
fb68b4be7e Revert "Bluetooth: Audio: Use generic count_bits to count bits"
This reverts commit ee335399c1.

Signed-off-by: Emil Gydesen <emil.gydesen@nordicsemi.no>
2025-03-18 16:39:47 +01:00
Emil Gydesen
ee335399c1 Bluetooth: Audio: Use generic count_bits to count bits
Instead of re-implementing or assuming that POPCOUNT is available
we now use the generic function from Zephyr.

Signed-off-by: Emil Gydesen <emil.gydesen@nordicsemi.no>
2025-03-17 21:03:56 -04:00
Vinayak Kariappa Chettimada
64ea1b8696 tests: bsim: Bluetooth: broadcast_audio_source interleaved/sequential
Test broadcast audio source sample in interleaved and
sequential packing.

Signed-off-by: Vinayak Kariappa Chettimada <vich@nordicsemi.no>
2025-03-17 16:24:33 +01:00
Vinayak Kariappa Chettimada
6d5658684f samples: Bluetooth: Support interleaved packing in BIS samples
Add Kconfig options in Broadcast ISO related samples to
support enabling interleaved packing use in subevents.

Signed-off-by: Vinayak Kariappa Chettimada <vich@nordicsemi.no>
2025-03-17 16:24:33 +01:00
Vinayak Kariappa Chettimada
027fc01fe3 samples: Bluetooth: hci_uart hci_ipc configuration update
Updates to project configuration extras to build with
Zephyr Controller.

Signed-off-by: Vinayak Kariappa Chettimada <vich@nordicsemi.no>
2025-03-17 16:24:33 +01:00
Olivier Lesage
6f33793b41 bluetooth: Host: Rename CS tone antenna configurations
Improves readability by removing the need to check the table
to figure out how many antennas devices A and B are using.

Signed-off-by: Olivier Lesage <olivier.lesage@nordicsemi.no>
2025-03-11 08:59:19 +01:00
Emil Gydesen
9d4cc4b49b Bluetooth: BAP: Add a set of suggested intervals to use with BAP
Add a selection of interval values that are suitable for BAP,
which will allow better coexistence between ISO and ACL,
for both broadcast and unicast. Some of these are defined
by the BAP spec, and some are defined by Zephyr, since they
do have a suggested value from BAP.

Samples and tests have been updated to use these new values.
Peripheral samples have also been updated with
CONFIG_BT_GAP_AUTO_UPDATE_CONN_PARAMS so that the connection
parameters from the centrals aren't updated to something else
shortly after.

The shell has also been updated to use the LE Audio (BAP) values
if audio is enabled, and the audio.conf file has disabled automatic
updating of the connection parameters as the peripheral, as we rarely
(if ever) want to do that.

Due to the connection interval change, CI hit an issue
with test_bass_broadcast_code in test_main_client_sync, where
the reading of the long receive state did not finish before we
attempted to do another procedure, so the function was updated to have
a retry.

Signed-off-by: Emil Gydesen <emil.gydesen@nordicsemi.no>
2025-03-11 08:58:51 +01:00
Pavel Vasilyev
179f3c6f05 bluetooth: hci: ipc: assert when building HCI IPC driver w/o ACL FC
The HCI IPC driver is not reliable and can lead to lost ACL data if
built without Controller-to-Host ACL flow control.

This commit prevents building HCI IPC driver and hci_ipc sample without
CONFIG_BT_HCI_ACL_FLOW_CONTROL.

Signed-off-by: Pavel Vasilyev <pavel.vasilyev@nordicsemi.no>
2025-03-08 03:37:16 +01:00
Alberto Escolar Piedras
04c0935808 samples & tests: Replace NATIVE_POSIX_SLOWDOWN_TO_REAL_TIME
Replace NATIVE_POSIX_SLOWDOWN_TO_REAL_TIME with the equivalent for
native_sim NATIVE_SIM_SLOWDOWN_TO_REAL_TIME.

native_sim accepted transitionally NATIVE_POSIX_SLOWDOWN_TO_REAL_TIME
to ease porting from native_posix, but this option is being deprecated.

Signed-off-by: Alberto Escolar Piedras <alberto.escolar.piedras@nordicsemi.no>
2025-03-07 20:10:23 +01:00
Lyle Zhu
c0f7aefe55 Bluetooth: BR: Support limited discoverable mode
Add a Kconfig BT_LIMITED_DISCOVERABLE_DURATION to set the timeout for
limited discoverable mode.

Add a argument `limited` to function `bt_br_set_discoverable()` to
support the limited discoverable mode.
When enabling discoverable mode with `limited` is true, both write
LIAC and GIAC to controller and set the bit 13 of COD in function
`bt_br_set_discoverable()`. And start a delay worker with the timeout
CONFIG_BT_LIMITED_DISCOVERABLE_DURATION to disable the discoverable
mode.
When disabling discoverable mode, only set GIAC to controller and
clear bit 13 of COD.

Signed-off-by: Lyle Zhu <lyle.zhu@nxp.com>
2025-03-07 19:46:53 +01:00
Alberto Escolar Piedras
33ba1b342b samples/bluetooth/tmap_*: Remove native_posix overlays
native_posix is being removed as it has reached its end of life in 4.2,
after being deprecated since 4.0.

So these overlays will not serve any purpose anymore.

Signed-off-by: Alberto Escolar Piedras <alberto.escolar.piedras@nordicsemi.no>
2025-03-07 19:16:14 +01:00
Vinayak Kariappa Chettimada
662acab1ae Bluetooth: Controller: Fix ISO Tx PDU buffer counts for fragmentation
Fix ISO Tx PDU buffer count required when SDU fragmentation
is used.

Rename BT_CTLR_CONN_ISO_SDU_LEN_MAX to
BT_CTLR_ISO_TX_SDU_LEN_MAX so the value is common to both
Broadcast and Connected ISO transmissions.

Signed-off-by: Vinayak Kariappa Chettimada <vich@nordicsemi.no>
2025-02-24 20:18:37 +00:00
Vinayak Kariappa Chettimada
d382fca6ff Bluetooth: Controller: Fix HCI command buffer allocation failure
Fix HCI command buffer allocation failure, that can cause
loss of Host Number of Completed Packets command.

Fail by rejecting the HCI Host Buffer Size command if the
required number of HCI command buffers are not allocated in
the Controller implementation.

When Controller to Host data flow control is supported in
the Controller only build, ensure that BT_BUF_CMD_TX_COUNT
is greater than or equal to (BT_BUF_RX_COUNT + Ncmd),
where Ncmd is supported maximum Num_HCI_Command_Packets in
the Controller implementation.

Relates to commit 81614307e9 ("Bluetooth: Add workaround
for no command buffer available")'.

Relates to commit 297f4f481f ("Bluetooth: Split HCI
command & event buffers to two pools").

Signed-off-by: Vinayak Kariappa Chettimada <vich@nordicsemi.no>
2025-02-21 11:30:38 +00:00
Emil Gydesen
4bf653aa4f samples: Bluetooth: CAP: Add missing k_sem_init
The source_stream_sem and sink_stream_sem semaphores were
never initialized, and thus when a disconnect happened the
call(s) to k_sem_give would fail fatally.

Signed-off-by: Emil Gydesen <emil.gydesen@nordicsemi.no>
2025-02-15 07:23:28 +01:00
Emil Gydesen
907261b619 Bluetooth: BAP: Remove GATT_CACHING req for unicast server
The unicast server does not need GATT caching and it was likely
incorrectly added earlier as a dependency.

Signed-off-by: Emil Gydesen <emil.gydesen@nordicsemi.no>
2025-02-14 19:15:57 +00:00
Emil Gydesen
6713430783 samples: Bluetooth: BAP unicast server fix RX stack size
The sample is currently decoding in the BT RX thread,
and not the system workqueue thread,
which then requires additional stack size.

Ideally it would decode in a separate thread to avoid
expensive operations in the BT RX thread, but that is
outside the scope of this commit.

Signed-off-by: Emil Gydesen <emil.gydesen@nordicsemi.no>
2025-02-14 19:15:49 +00:00
Emil Gydesen
f54991b7dd samples: Bluetooth: Broadcast sink: Refactor audio RX path
Refactor everything related to RX in the sample.
The existing code will moved to new files with more specific
functionality, so that each file will become cleaner and use
fewer #ifdefs.

The USB part will be refactored a bit to follow the design used
by the LE audio shell, to make it easier to maintain both in
a similar way.

Signed-off-by: Emil Gydesen <emil.gydesen@nordicsemi.no>
2025-02-14 17:03:51 +01:00
Steffen Jahnke
fa0ac75151 samples: Add necessary configurations for PAN B511 EVB
Running samples for PAN B511 evaluation board needs additional
configuartion.

Signed-off-by: Steffen Jahnke <steffen.jahnke@eu.panasonic.com>
2025-02-14 10:47:54 +01:00
Kamil Piszczek
7c828bd232 bluetooth: dis: add Kconfig for disabling optional characteristics
Added new Kconfig option set that allows the user to control the
presence of the following optional characteristics:

- Manufacturer Name String
- Model Number String

Depreacted the old configuration that can be deleted in the future
Zephyr releases.

Signed-off-by: Kamil Piszczek <Kamil.Piszczek@nordicsemi.no>
2025-02-13 16:46:12 +01:00
Emil Gydesen
3b6a15a24d samples: Bluetooth: Rename BLE to Bluetooth (LE) where applicable
The BLE acronym is not an official description of Bluetooth
LE, and the Bluetooth SIG only ever refers to it as Bluetooth
Low Energy or Bluetooth LE, so Zephyr should as well.

This commit does not change any board or vendor specific
samples, and the term BLE may still be used in those.
It will be up to the vendors to update it if they want,
since many of them are using the term BLE in their
products.

Signed-off-by: Emil Gydesen <emil.gydesen@nordicsemi.no>
2025-02-12 12:24:18 +01:00
Emil Gydesen
49d9b4cb69 Bluetooth: PACS: Remove BAP infix for pacs_register_param
Since the PACS service is not part of the bt_bap API it should
not use the bt_bap prefix, and instead just be bt_pacs like the
rest of the PACS API.

Signed-off-by: Emil Gydesen <emil.gydesen@nordicsemi.no>
2025-02-12 09:41:49 +01:00
Carlo Weidinger
c97710cbfd samples: Bluetooth: Improve printing in NUS sample
Removing the message buffer and printing out the message directly.
Creating a message buffer with the size of CONFIG_BT_L2CAP_TX_MTU
creates a large empty buffer, which is expensive for the stack and
can lead to a stack overflow.
This way, the sample can be more easily integrated with
other Bluetooth functionalities, such as Bluetooth OTA.

Signed-off-by: Carlo Weidinger <carlo.weidinger@protonmail.com>
2025-02-06 17:49:27 +01:00
Vinayak Kariappa Chettimada
21cb301447 samples: Bluetooth: GATT write commands with connection PHY Update
Update the Central and Peripheral GATT write command sample
to measure throughput across all supported connection PHYs.

Cover the sample in BabbleSIM CI testing to validate the 2M
PHY throughput after all supported PHYs have been changed
once.

Signed-off-by: Vinayak Kariappa Chettimada <vich@nordicsemi.no>
2025-02-05 08:16:30 +01:00
Emil Gydesen
dbabc18940 samples: Bluetooth: Audio: Spring cleanup for audio header files
Add missing and remove unused includes. Fix spelling mistakes.

Signed-off-by: Emil Gydesen <emil.gydesen@nordicsemi.no>
2025-02-04 12:03:04 +01:00
Emil Gydesen
645267288c samples: Bluetooth: BAP: Broadcast source use next USB stack
Modify the BAP Broadcast source sample to use the next USB stack.
For simplicity, the changes are minimum and will still do the
same downsampling, and thus use a fixed 48KHz audio input.

Signed-off-by: Emil Gydesen <emil.gydesen@nordicsemi.no>
2025-01-30 14:07:37 +01:00
Ramana Gudipudi
93946dc56c samples: bluetooth: Fix scan stop error in central_multilink sample
Outputs error code to console if bt_le_scan_stop() fails

Signed-off-by: Ramana Gudipudi <ragudipu@silabs.com>
2025-01-29 07:08:15 +01:00
Emil Gydesen
9688c2d43f Bluetooth: CCP: Initial CCP Client implemenation
Added initial CCP client implementation that simply
does discovery of TBS on a remote CCP server.

Signed-off-by: Emil Gydesen <emil.gydesen@nordicsemi.no>
2025-01-28 09:46:39 +01:00
Johan Hedberg
a9f23cccf5 samples: bluetooth: peripheral_sc_only: Fix restarting advertising
We need to call `bt_le_adv_start()` again to make sure the device remains
connectable after a disconnection event. The appropriate place to do it is
in the `recycled()` callback.

Signed-off-by: Johan Hedberg <johan.hedberg@silabs.com>
2025-01-27 13:26:53 +01:00
Johan Hedberg
09e86f3b69 Bluetooth: Host: Remove HCI ECC emulation
Remove the HCI command & event emulation layer for ECDH commands and
events. This means that we always do the necessary operations in the host.
The existing BT_ECC Kconfig option stays, but now gets automatically
enabled when necessary (e.g. based on the BT_SMP option), which is why this
commit removes so many explicit assignments in prj.conf files.

Signed-off-by: Johan Hedberg <johan.hedberg@silabs.com>
2025-01-23 10:14:46 +01:00
Fredrik Danebjer
21b5f0c4fe Bluetooth: pacs: Add dynamic PACS registration
Added option to set the PACS Characteristics through the bap API,
making PACS configuration runtime available. Source and Sink PAC, as
well as Source/Sink PAC Location is can be set through a register
function in the PACS api.

Signed-off-by: Fredrik Danebjer <frdn@demant.com>
2025-01-22 15:49:50 +01:00