51 lines
2.1 KiB
ReStructuredText
51 lines
2.1 KiB
ReStructuredText
Bluetooth on PicoW Support
|
|
==========================
|
|
|
|
As of the Pico-SDK version 1.5.0, the PicoW has **BETA** Bluetooth support.
|
|
|
|
Enabling Bluetooth
|
|
------------------
|
|
To enable Bluetooth (BT), use the ``Tools->IP/Bluetooth Stack`` menu. It
|
|
requires around 80KB of flash and 20KB of RAM when enabled.
|
|
|
|
Both Bluetooth Classic and BluetoothBLE are enabled in ``btstack_config.h``.
|
|
|
|
Included Bluetooth Libraries
|
|
----------------------------
|
|
You may use the ``KeyboardBT``, ``MouseBT``, or ``JoystickBT`` to emulate a
|
|
Bluetooth Classic HID device using the same API as their USB versions.
|
|
|
|
You may use the ``KeyboardBLE``, ``MouseBLE``, or ``JoystickBLE`` to emulate a
|
|
Bluetooth Low Energy (BLE) HID device using the same API as their USB versions.
|
|
|
|
The ``SerialBT`` library implements a very simple SPP (Serial Port Profile)
|
|
Serial-compatible port.
|
|
|
|
Connect and use Bluetooth peripherals with the PicoW using the
|
|
``BluetoothHIDMaster`` library.
|
|
|
|
``BluetoothAudio`` (A2DP) is also supported, both sink and source.
|
|
|
|
Writing Custom Bluetooth Applications
|
|
-------------------------------------
|
|
You may also write full applications using the ``BTStack`` standard callback
|
|
method, but please be aware that the Raspberry Pi team has built an
|
|
interrupt-driven version of the BT execute loop, so there is no need
|
|
to actually call ``btstack_run_loop_execute`` because the ``async_context``
|
|
handler will do it for you.
|
|
|
|
There is no need to call ``cyw43_arch_init`` in your code, either, as that
|
|
is part of the PicoW variant booting process.
|
|
|
|
For many BTStack examples, you simply need call the included
|
|
``btstack_main()`` and make sure that ``hci_power_control(HCI_POWER_ON);`` is
|
|
called afterwards to start processing (in the background).
|
|
|
|
You will also need to acquire the BT ``async_context`` system lock before
|
|
calling any BTStack APIs. ``__lockBluetooth`` and ``unlockBluetooth`` are
|
|
provided in the PicoW variant code.
|
|
|
|
Note that if you need to modify the system ``btstack_config.h`` file, do so
|
|
in the ``tools/libpico`` directory and rebuild the Pico SDK static library.
|
|
Otherwise the change will not take effect in the precompiled code, leading
|
|
to really bad behavior.
|