Releases: ricardoquesada/bluepad32
Releases · ricardoquesada/bluepad32
Bluepad32 v4.2.0
[4.2.0] - 2025-01-03
New
- ESP32: ESP32-C6 and ESP32-H2 supported.
- They depend on BTstack 1.6.2 (pre-bundled with Bluepad32 v4.2.0)
- Pico W: Pico 2 W supported.
- Requires Pico SDK 2.1 or newer.
- If you want to use it with BTstack 1.6.2 you might need to apply this patch
- By default, "examples/pico_w" was modified to use BTstack 1.6.1.
- ESP-IDF: v5.3 and v5.4 supported
- Needed for Arduino Core v3.1. See Arduino template project
- Wii: Add support for Wii uDraw Tablet. Fixes Github Issue #105
- Wii: Add
uni_hid_parser_wii_request_report_type(struct uni_hid_device_s* d, wii_report_type_t r);
- Allows user to change the Wii report type
Changed
- BTstack: Using v1.6.2
- v1.6.1 is still supported by Bluepad32.
- BTstack v1.6.2 changed some API used by Bluepad32. Bluepad32 adapts the API-calls at compile-time.
- Documentation: Updated FAQ and Arduino docs.
- Pico W: Updated
btstack_config.h
. Disables malloc, enables some BTstack features, and some minor changes- See the new btstack_config.h
- Pico W: Updated instructions to use Pico Debug probe
- Pico W: Updated CMakeLists.txt with an option to dump HCI packets.
- ESP32: Updated instructions to use JTAG debugger.
- BLE: Connection is a bit more reliable. No longer depends on having encryption enabled.
- Core: packet handlers have the
uni_
prefix. Useful to avoid collision when putting breakpoints.- Example: Easier to put a breakpoint in
uni_hci_packet_handler
than inhci_packet_handler
since there are many of those.
- Example: Easier to put a breakpoint in
- Controllers DB: Updated from latest SDL
- Only a few new entries added.
- ESP32 Console:
incoming_connections_enable
sets/gets whether incoming connections are allowed. - ESP32 Console:
scan_and_autoconnect
is a new command that behaves like the oldincoming_connections_enable
. - PlatformIO:
platformio.ini
file updated in "examples/esp32"
(and "Arduino template" project as well)- See PlatformIO issue 1225 to learn what's going on between PlatformIO and Espressif.
- You might need to uninstall PlatformIO first. E.g:
rm -rf ~/.platformio
Fixed
- Switch driver:
- Increased timeout
- Fixed pro joystick calibration
- Make sure the right joycon calibration is mapped to the right location
- Implemented a user calibration check and updated stick cal if true
- Examples: Cleanup CMakeLists.txt
- Allow multiple "safe" commands per loop.
- This was a nasty bug that was mostly manifested in Arduino users, when multiple commands like
BP32.forget...()
,BP32.enableService...()
, only the latest one was executed. - Now it allows up to 8 calls per loop.
- Fixes Github Issue #130
- This was a nasty bug that was mostly manifested in Arduino users, when multiple commands like
Bluepad32 v4.1.0
[4.1.0] - 2024-06-03
New
- Platform: new callback:
on_device_discovered(bdaddr, name, cod, rssi)
- Platforms can override this function to determine whether Bluepad32 should connect to the discovered device.
- BLE: Populates RSSI field.
- Support for 5-key handlebar multimedia keyboard. Fixes Github Issue #104
Changed
- BTstack: Updated to v1.6.1
Fixed
- Service: Returns correct error code when writing values.
- Doc: Improved documentation.
Full changelog
Bluepad32 v4.0.4
[4.0.4] - 2024-04-20
New:
- Wii:
uni_hid_parser_wii_set_mode(struct uni_hid_device_s* d, wii_mode_t mode)
,
to change the mode between vertical or horizontal.
Changed:
- Rumble stops when duration is 0. Before when duration was 0, the rumble command was ignored.
- Wii + Nunchuk:
- Nunchuk is reported as the "right" axis using buttons X and Y
- Wii Mode is reported as "left" using buttons A, B, Shoulder L & R, and misc buttons
- If a Nunchuk is attached, vertical mode is used.
- Nunchuk + horizontal mode removed (it was broken, and it is not useful)
Fixed
- Pico W: Allow multiple BLE connections. Fixes Github Issue #91
- Nintendo: Accept reports with more data than requested. Fixes Github Issue #94
Bluepad32 v4.0.3
[4.0.3] - 2024-04-09
New
- Keyboard: Add method to change LEDs:
uni_hid_parser_keyboard_set_leds(struct uni_hid_device_s* d, uint8_t led_bitmask)
Changed
- Mouse constants:
MOUSE_BUTTON_*
renamed toUNI_MOUSE_BUTTONS_*
. Avoid conflicts with other libraries, like TinyUSB. - Stadia/Xbox: retry rumble switch from 25ms to 50ms. And don't retry on errors other than
ERROR_CODE_COMMAND_DISALLOWED
- BTstack: updated to latest
develop
branch. Hash: b74edc46d02bbb5d44d58cfddd05aa74f9735e5e
Fixed
- Pico W: Example uses BTstack from Bluepad32 branch. Updated and with custom patches.
- NINA: Works, there was a regression in v4.0-beta2. Fixes Github issue #90
Bluepad32 v4.0.2
[4.0.2] - 2024-04-03
Fixed
- Unijoysticle: Fix how to swap ports from gamepad
- Device: correctly identify mouse/keyboards
- DualSense: dump info tabbed.
Bluepad32 v4.0.1
[4.0.1] - 2024-04-02
New
- Bluepad32 logo: Official logo for Bluepad32
Changed
uni_property_dump_all()
deprecatesuni_property_list_all()
Fixed
- Xbox/Stadia: Improvements in rumble. A re-fix of Github Issue #85
- Console:
getprop <property_name>
works as expected - Property: Correctly dump string properties in ESP32
Bluepad32 v4.0
[4.0] - 2024-03-24
Changed
- Example: Move DualSense trigger adaptive effect from Pico to Posix example.
- Example: Add Xbox Trigger rumble in Posix example.
Fixed
- Xbox: 8BitDo controllers don't rumble forever. Fixes Github Issue #85
- Xbox: Using internal timer for delayed start, making it easier to cancel previous rumble command.
- Switch: IMU and Stick calibration work as expected.
- Switch: Fix crash while parsing IMU calibration data on RP2040. Fixes Github Issue #86
Bluepad32 v4.0-rc0
[4.1-rc0] - 2024-03-20
New
- New Rumble API:
play_dual_rumble(start_delayed_ms, duration_ms, weak_magnitude, strong_magnitude)
. Fixes Github Issue #83- The old
set_rumble(magnitude, duration)
was removed from Bluepad32 "raw" - In Arduino API, users can still use the old one, but it is deprecated. A compile-time warning will appear.
- To convert your old code to the new one, do:
play_dual_rumble(0, duration * 4, force, force);
- The old
- DualSense: Support "vibration2" rumble for DualSense Edge and newer regular DualSense
Fixed
- Virtual Device: Don't remove virtual device when Xbox device is connected. Fixes Github Issue #77
- Xbox: Add rumble support for Xbox Firmware v5.x. Fixes Github Issue #69
- Stadia: Add rumble support. Fixes Gitlab Issue #36
- PSMove: Duration in rumble works as expected.
- PSMove: LEDs don't get overwritten by rumble.
Bluepad32 v4.0-beta2
[4.0-beta2] - 2024-03-09
New
- BLE Service: Added
uni_bt_enable_service_safe(bool)
API to enable/disable in runtime - DualSense: Add support for adaptive trigger
- Add support for RX-05 TikTok Ring Controller Github Issue #68
Changed
- "linux" example renamed to "posix" since it also works on macOS
- UART: UART console cannot be toggled at runtime. It can only be disabled at compile-time via "menuconfig"
- Needed to use IDF-IDF v5.2
- Improves Arduino Nano ESP32 Github Issue #65 by forwarding Bluepad32 logs to Arduino.
- Documentation: Improved documentation
- Arduino IDE:
- ESP32-S3 boards, like 'Arduino Nano ESP32' or 'Lolin S3 Mini' can see output using different compile. For details see Github Issue #65
- Calls
btstack_stdio_init()
to have buffered output
Fixed
- Pico W/Posix: string properties return default value instead of error.
- Pico W/Posix: TLV uses its own namespace to prevent clash from user code.
- Keyboard: 8BitDo Retro Keyboard volume knob works Ok.
Bluepad32 v4.0-beta1
[4.0-beta1] - 2024-02-11
New
- Pico W: Implement property using BTstack TLV
- Linux: Implement property using BTstack TLV
- BLE Service: Add "reset" characteristic
- Arch: Added
uni_system_reboot()
function
Fixed
- Doc: Many fixes to documentation, including adding/changing/removing pages to MKDocs.
- Misc: Make
const
different variables that needed to be constants.