Commit Graph

1821 Commits

Author SHA1 Message Date
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
David Leach
d29e2f342d boards: nxp: add RT1060 EVKC support
MIMXRT1060 EVK rev C initial support files.

Signed-off-by: David Leach <david.leach@nxp.com>
2025-01-21 19:27:39 +01:00
Derek Snell
1d441c239e doc: nxp: nw612: clarify documentation
NW612 is the firmware name, IW612 is the chipset name.

Signed-off-by: Derek Snell <derek.snell@nxp.com>
2025-01-21 15:14:05 +01:00
Aksel Skauge Mellbye
e4164963f2 boards: silabs: Add xG29-RB4412A radio board
Add radio board for EFR32MG29 device.

Signed-off-by: Aksel Skauge Mellbye <aksel.mellbye@silabs.com>
2025-01-20 16:34:50 +01:00
Vinayak Kariappa Chettimada
31863fd8e3 tests: bsim: Bluetooth: nrRF53/54L: Throughput and multiple_id testing
Enable throughput and multiple_id testing on nRF5340bsim and
nrf54l15bsim.

Signed-off-by: Vinayak Kariappa Chettimada <vich@nordicsemi.no>
2025-01-18 10:03:41 +01:00
Aleksandr Khromykh
967b096ad9 Bluetooth: Mesh: use secure storage in ble mesh
Commit:
 - adds dependency of the mbedtls psa usage on secure storage
 - removes PSA ITS emulator and enables usage of
   the secure storage in ble mesh bsim tests
 - enables secure storage in all ble mesh and related samples

Signed-off-by: Aleksandr Khromykh <aleksandr.khromykh@nordicsemi.no>
2025-01-14 13:23:47 +01:00
Emil Gydesen
e45830893f Bluetooth: CCP: Introduce new CCP API
The CCP API for the Call Control Profile works on top of the
TBS API, and will eventually replace parts of the TBS API.

Signed-off-by: Emil Gydesen <emil.gydesen@nordicsemi.no>
2025-01-08 07:50:32 +01:00
Emil Gydesen
4d60f0a51b samples: Bluetooth: Handle shutdown of iso broadcast benchmark
The sample did not properly handle ending the broadcast and setting
it up for a new broadcast, due to missing wait for sem_big_term and
a bad check in iso_disconnected.

Furthermore if any did not work when setting up the BIG,
the error handling did not properly clean up for a retry.

Signed-off-by: Emil Gydesen <emil.gydesen@nordicsemi.no>
2025-01-04 15:59:06 +01:00
Johan Hedberg
aa04d500a1 samples: bluetooth: Add build_only property for "no blobs" tests
These are never meant to be run, so make sure it's explicitly specified
through the build_only property.

Signed-off-by: Johan Hedberg <johan.hedberg@silabs.com>
2024-12-25 03:37:53 +01:00
Johan Hedberg
2ac87acab9 samples: bluetooth: Add Silabs boards to "no blobs" test cases
Add Silabs boards to the newly added test cases which exercise the
CONFIG_BUILD_ONLY_NO_BLOBS configuration option. Also fix the namespace to
be "peripheral" for the peripheral sample app.

Signed-off-by: Johan Hedberg <johan.hedberg@silabs.com>
2024-12-25 03:37:53 +01:00
Declan Snyder
8ed80ddb37 boards: mimxrt1060_evk: Convert to variants
Convert qspi and hyperflash to variants instead of revisions by popular
demand.

And convert evkb into a revision instead of a different board.

Signed-off-by: Declan Snyder <declan.snyder@nxp.com>
2024-12-20 22:59:59 +01:00
Declan Snyder
0cdb35d978 boards: mimxrt1050_evk: Switch to variants
Switch from using revisions for hyperflash/qspi to using variants, by
popular demand.

Signed-off-by: Declan Snyder <declan.snyder@nxp.com>
2024-12-20 22:59:59 +01:00
Sylvio Alves
1eb316ad83 samples: bluetooth: allow espressif platform testing
Update central and peripheral samples so that
espressif SoC can be properly tested in CI.

Signed-off-by: Sylvio Alves <sylvio.alves@espressif.com>
2024-12-20 23:51:16 +02:00
Valerio Setti
3fa522c720 tests/samples: remove ENTROPY_GENERATOR from BT related tests/samples
Since now Mbed TLS automatically selects ENTROPY_GENERATOR (or the
test generator, depending on the platform) we can remove this dependency
from all BT related tests and samples.

Signed-off-by: Valerio Setti <vsetti@baylibre.com>
2024-12-19 17:53:37 +01:00
Gerard Marull-Paretas
75154a6443 samples: bluetooth: periodic_sync: add option to control led0
Add a new option to control led0 behavior. If enabled, led0 will be used
for blinking. This option also allows to select GPIO when needed.

Signed-off-by: Gerard Marull-Paretas <gerard.marull@nordicsemi.no>
2024-12-18 18:15:15 +01:00
Gerard Marull-Paretas
ecdb4ffaf1 samples: bluetooth: mesh_provisioner: add option to control sw0
Add a new Kconfig option to control the behavior of sw0. If enabled, sw0
button will be used for provisioning. This option also allows to select
GPIO.

Signed-off-by: Gerard Marull-Paretas <gerard.marull@nordicsemi.no>
2024-12-18 18:15:15 +01:00
Gerard Marull-Paretas
ef4278de0d samples: bluetooth: iso_receive: add option to control led0
Add a new Kconfig option to control the behavior of led0. This option
also allows to select GPIO only when needed.

Signed-off-by: Gerard Marull-Paretas <gerard.marull@nordicsemi.no>
2024-12-18 18:15:15 +01:00
Gerard Marull-Paretas
123c00aa10 samples: fix zephyr/drivers/gpio.h usage
Only include the header if using any of the GPIO API calls/
struct/defines.

Signed-off-by: Gerard Marull-Paretas <gerard.marull@nordicsemi.no>
2024-12-18 18:15:15 +01:00
Gerard Marull-Paretas
caa61af2fd samples: add missing CONFIG_GPIO=y
All samples using the GPIO API must enable the CONFIG_GPIO Kconfig
option.

Signed-off-by: Gerard Marull-Paretas <gerard.marull@nordicsemi.no>
2024-12-18 18:15:15 +01:00
Vinayak Kariappa Chettimada
59f3c86802 samples: Bluetooth: central multilink get version info
Update central multilink sample to get version info to
verify actual data transmissions will succeed, and there is
no disconnect with reason connection fail to be established.

Signed-off-by: Vinayak Kariappa Chettimada <vich@nordicsemi.no>
2024-12-17 15:22:18 +01:00
Vinayak Kariappa Chettimada
5f06511e91 samples: Bluetooth: Update central multilink and peripheral identity
Update central multilink sample to use continuous scanning
to speed up connection setup.

Update peripheral identity sample to be configurable for
bsim testing as multiple devices with configurable count
of supported connections.

Signed-off-by: Vinayak Kariappa Chettimada <vich@nordicsemi.no>
2024-12-17 15:22:18 +01:00
Johann Fischer
36e8144b90 usb: device: remove USB H4 Bluetooth function and sample
The Bluetooth HCI USB transport layer implementation is provided by
"subsys/usb/device/class/bluetooth.c". The USB H4 Bluetooth function
implements a non-standard transport layer. There is no known host-side
equivalent that uses this protocol.

Note that the H4 protocol functionality is also provided by the
"subsys/usb/device/class/bluetooth.c".

Since that there are no real USB H4 Bluetooth users, remove the
implementation and sample without deprecation.

Signed-off-by: Johann Fischer <johann.fischer@nordicsemi.no>
2024-12-17 11:35:57 +00:00
Johann Fischer
9911bd07e0 samples: hci_uart: fix UART IRQ API usage
uart_irq_update() should always be called in IRQ processing callback.
From API documentation:
"This function should be called the first thing in the ISR. Calling
uart_irq_rx_ready(), uart_irq_tx_ready(), uart_irq_tx_complete()
allowed only after this."

Signed-off-by: Johann Fischer <johann.fischer@nordicsemi.no>
2024-12-12 18:39:05 +01:00
Johann Fischer
8f44b86bd2 samples: hci_uart_3wire: remove USB related code
There is no advantage to using the USB CDC ACM UART in this sample.

Signed-off-by: Johann Fischer <johann.fischer@nordicsemi.no>
2024-12-12 18:38:40 +01:00
Valerio Setti
a4b9ef69c3 Revert "samples/tests: bluetooth: remove ENTROPY_GENERATOR selection"
This reverts commit 30f6dc43bab8ae1f26497eb000ff1ab4fb379c00.

Signed-off-by: Valerio Setti <vsetti@baylibre.com>
2024-12-12 00:15:39 +00:00
Emil Gydesen
778a9afae3 tests: Bluetooth: Audio: Remove uses of K_FOREVER in syswg for TX
Several tests were using K_FOREVER when allocating the
buffer for TX in the system workqueue, which is illegal behavior.

The solution chosen was to create a TX thread to handle TX,
similar to the solution used in the audio shell and some
sample applications.

This way we can continue to use K_FOREVER when allocting buffers
and it will always be done in a round-robin fashion while
TXing as much as possible, by always enqueuing all the buffers
with mock data.

Since this works for all streams (both broadcast and unicast),
it was obvious to use the same implementation for all tests,
and thus cleaning up the tests a bit and more them more similar.

Signed-off-by: Emil Gydesen <emil.gydesen@nordicsemi.no>
2024-12-10 16:23:10 +01:00
Axel Le Bourhis
5dfd41e51a nxp: combine MONOLITHIC_BT and MONOLITHIC_IEEE802154
Combine BLE and 802.15.4 monolithic build under a single config to make
it less error prone.
The choice between a BLE/802.15.4 combo firmware and a BLE only firmware
is done depending on the Soc (like RW610 vs RW612).

Signed-off-by: Axel Le Bourhis <axel.lebourhis@nxp.com>
2024-12-10 11:11:38 +01:00
Valerio Setti
8564df571a samples/tests: bluetooth: remove ENTROPY_GENERATOR selection
ENTROPY_GENERATOR is now automatically enabled if the board
has "zephyr,entropy" chosen property set, so there is no need
to manually select it.

Signed-off-by: Valerio Setti <vsetti@baylibre.com>
2024-12-10 08:05:33 +01:00
Emil Gydesen
a4df95f390 samples: Bluetooth: BAP: Refactor stream_recv_lc3_codec
Refactor the function to use net_buf_pull_mem instead of the
offset variable when decoding.

Since the offset value was always 0 before, this fixes the
incorrect decoding.

Signed-off-by: Emil Gydesen <emil.gydesen@nordicsemi.no>
2024-12-09 15:11:23 +01:00
Emil Gydesen
13c42bd8a3 samples: Bluetooth: Use broadcast sink cbs in broadcast sink sample
Use the broadcast sink callbacks to set the semaphores
rather than the stream callbacks, as the broadcast sink callbacks
are better for that as they are called when all streams are ready.

Signed-off-by: Emil Gydesen <emil.gydesen@nordicsemi.no>
2024-12-06 15:17:06 +01:00