Skip to content

Releases: ricardoquesada/bluepad32

Bluepad32 v4.2.0

03 Jan 17:00
Compare
Choose a tag to compare

[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.
  • ESP-IDF: v5.3 and v5.4 supported
  • 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
  • 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 in hci_packet_handler
      since there are many of those.
  • 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 old incoming_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

Bluepad32 v4.1.0

04 Jun 01:19
Compare
Choose a tag to compare

[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

4.0.4...4.1.0

Bluepad32 v4.0.4

20 Apr 21:34
Compare
Choose a tag to compare

[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

Bluepad32 v4.0.3

10 Apr 05:10
Compare
Choose a tag to compare

[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 to UNI_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

04 Apr 02:28
Compare
Choose a tag to compare

[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

03 Apr 04:45
Compare
Choose a tag to compare

[4.0.1] - 2024-04-02

New

Changed

  • uni_property_dump_all() deprecates uni_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

25 Mar 03:30
Compare
Choose a tag to compare

[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

21 Mar 05:05
Compare
Choose a tag to compare

[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);
  • 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

10 Mar 04:12
Compare
Choose a tag to compare

[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

11 Feb 15:42
Compare
Choose a tag to compare

[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.