Skip to content

Releases: ricardoquesada/bluepad32

Bluepad32 v4.0-beta0

04 Feb 19:38
Compare
Choose a tag to compare

[4.0-beta0] - 2024-02-04

New

  • Pico W support
    • Support for Raspberry Pi Pico W microcontroller
    • Supports BLE and BR/EDR
    • Console / NVS not supported yet
    • Internally uses the "custom" platform.
  • PS4 Move Controller: Add support for it. Before was only PS3 Move. Github Issue #41
  • Mappings: can change between Xbox, Switch and custom mappings. Fixes Gitlab Issue #26
  • BLE Service: Can read,write Bluepad32 properties from a BLE client (E.g.: mobile phone). Still WIP.
  • Bluetooth: Expose RSSI property. WIP, part of Github Issue #42

Changed

  • Platform boot logic changed a bit. Rationale: "don't make magic changes".
    • uni_main() does not call btstack_run_loop_execute() automatically. Must be called by the user
    • uni_main() renamed to uni_init().
      • Rationale: uni_init() just does the initialization. Before uni_main was doing init and main loop.
    • BT scan is OFF by default. Platform must call uni_bt_enable_new_connections to enable it.
    • platform->get_properties() does nothing. To list/delete Bluetooth keys platform must call them explicitly.
    • Custom platform:
      • must call uni_platform_set_custom(...) before calling uni_init()
      • uni_platform_custom_create() removed
    • ESP32 main:
      • uni_esp32_main() removed.
      • Users must call the different "init" steps manually. Added helper uni_esp32_init()
      • Rationale: Pico W and ESP32 main() is almost the same. Easier to setup/customize/understand.
    • All examples updated
  • New "unsafe" functions, useful to be called from platforom->on_init_complete()
    • uni_bt_enable_new_connections_unsafe()
    • uni_bt_del_keys_unsafe()
    • uni_bt_list_keys_unsafe()
  • "PC_DEBUG" platform:
    • Removed the "PLATFORM_PC_DEBUG" option.
    • Instead, "pc_debug" still exists, but internally uses "custom" platform.
  • Allowlist: rename uni_bt_allowlist_allow_addr() to uni_bt_allowlist_is_allowed_addr()
  • Folder organization:
    • arch/: includes console, uart, property files (one for each: ESP32, Pico, Linux)
    • bt/: includes all the Bluetooth related files
    • platform/: includes all the platform files
    • parser:/ includes all the parser files
    • controller/: controller files
    • Added <uni.h> file, easier for 3rd party user. Just include that file, and
      don't worry about internal folder re-organization.
  • Arduino platform:
  • Virtual Device: Disabled by default. To enable it call: void uni_virtual_device_set_enabled(true);
  • BTstack: Using latest develop branch. Hash: 4b3f8617054370b0e96650ee65edea1c23591ed4
  • Docs: Documentation hosted in readthedocs: https://bluepad32.readthedocs.io/
  • Docs: New Bluepad32 logo https://github.com/ricardoquesada/bluepad32/blob/main/docs/images/bluepad32-logo.png
  • Docs: Using Github as the default repo, not Gitlab

Fixed

Bluepad32 v3.10.3

26 Nov 14:54
Compare
Choose a tag to compare

[3.10.3] - 2023-11-26

New

  • Atari Wireless Joystick: Add support for it

Changed

  • Allowlist: rename uni_bt_allowlist_allow_addr() to uni_bt_allowlist_is_allowed_addr()

Bluepad32 v3.10.2

14 Nov 04:16
Compare
Choose a tag to compare

[3.10.2] - 2023-11-13

Changed

  • BTstack: Upgraded to latest develop branch as of 2023-11-13

Fixed

  • Xbox: Axis works Ok (fixed in latest BTstack)

Bluepad32 v3.10.0

03 Nov 05:06
Compare
Choose a tag to compare

[3.10.0] - 2023-11-02

New

  • Keyboard support (BETA, might change in the futrure):
    • Bluetooth keyboard are supported: Up to 10 keys pressed at the same time + modifiers
    • Unijoysticle:
      • Keyboard behaves like a joystick using arrow keys or ASDW
      • Press "Escape" to change Joystick ports
      • Press "Tab" to change Modes

Changed

  • Custom platform:
    • "uni_platform_custom_1" renamed to "my_platform"
    • Removed main/Kconfig. Keeping the configuration simpler.
  • Arduino:
    • Virtual Devices disabled by default
    • Added BP32.enableVirtualDevice(bool) API in BP32 namespace
    • Sketch shows how to use it

Fixed

  • Tank Mouse (Bluetooth version) works Ok. Good for Amiga users using Unijoysticle.

Bluepad32 v3.9.1

13 Oct 19:30
Compare
Choose a tag to compare

[v3.9.1] - 2023-10-13

New

  • "custom platform":
    • It is a new platform useful to start using Bluepad32 withou any dependency like Arduino.
    • Ideal if you are familiar with ESP-IDF and want full control

Fixed

  • Better DualShock3 support
  • Better DualShock4 support
  • Unijoysticle: Twin Stick mode works with virtual device

Bluepad32 v3.9.0

17 Sep 06:13
Compare
Choose a tag to compare

[v3.9.0] - 2023-09-16

New

  • Add touchpad support for DualSense and DualShock4 controllers.
    When one of these devices connect, it creates a mouse virtual device that is controlled
    by the "gamepad" controller. So, two connections will appear.
    • Can be enabled/disable from console using virtual_device_enable
    • Default value is enabled. Can be modified from idf.py menuconfig
    • Fixes issue: Gitlab Issue #33
  • Unijoysticle A500: Virtual Device support to control Amiga mouse from DualSense and DualShock4.
    It is possible to "swap" the mouse and joystick port, and a connection from a new controller disconnects
    the virtual device (the mouse).
  • New controller button supported:
    • MISC_BUTTONS_CAPTURE. From Arduino call ctl->miscCapture()
    • This is the "share" button in the Xbox 1914 model (the "3rd" button).
    • This is the "mute" button in the DualSense controller.
    • This is the "capture" button on Switch Pro controller.
    • Fixes issue: Gitlab Issue #37

Changed

  • Merge set/get console commands into one, making it a less polluted console.
    If no arguments are passed, it behaves like a getter.
    • set_autofire_cps / get_autofire_cps -> autofire_cps
    • set_gamepad_mode / get_gamepad_mode -> gamepad_mode
    • set_bb_move_threshold / get_bb_move_threshold -> bb_move_threshold
    • set_bb_fire_threshold / get_bb_fire_threshold -> bb_fire_threshold
    • set_c64_pot_mode / get_c64_pot_mode -> c64_pot_mode
    • set_mouse_scale / get_mouse_scale -> mouse_scale
    • set_gap_security_level / get_gap_security_level -> gap_security_level
    • set_gap_periodic_inquiry / get_gap_peridic_inquiry -> gap_periodic_inquiry
    • set_ble_enabled / get_ble_enabled -> ble_enable
    • set_incoming_connections_enabled / incoming_connections_enable
  • Constants in uni_gamepad.h:
    • MISC_BUTTONS_BACK -> MISC_BUTTONS_SELECT (ctl->miscSelect())
    • MISC_BUTTONS_HOME -> MISC_BUTTONS_START (ctl->miscStart())
    • The old constants / functions are still present, but are deprecated.
    • The rationale is that these names should be easier to remember.

Fixed

  • Switch: Fix crash while parsing IMU data (Bug GH44)
  • Xbox: Maps R1/R2 to Brake/Gas (Bug GL34)
  • Xbox: on FW 5.x, "select" button is mapped (Bug GHBA07)
  • Xbox / Stadia / Steam (other BLE devices): Connection is more reliable.

Bluepad32 v3.8.3

10 Aug 05:17
Compare
Choose a tag to compare

[v3.8.3] - 2023-08-09

Fixed

  • Allowlist: Don't show "error" message when there is no error.

Bluepad32 v3.8.2

03 Aug 02:09
Compare
Choose a tag to compare

[v3.8.2] - 2023-08-02

Changed

  • Unijoysticle: 800XL uses port one as default for joystick and port 2 as default for mouse.
    Each "variant" can specify easily the default ports.

Fixed

  • Allowlist: Can be called from C++ (Arduino).

Bluepad32 v3.8.1

30 Jul 16:09
Compare
Choose a tag to compare

[v3.8.1] - 2023-07-30

New

  • Bluetooth Allowlist addresses:
    This feature, when enabled, will allow or decline controller connections based on their address.
    This is useful when using multiple devices running Bluepad32, and you want that certain controller
    connects to only a particular device.
    Useful for "parties", or at teaching classes.
    The following console commands were added to control the allowlist:
    • allowlist_list: List addresses in the allow list.
    • allowlist_add <address>: Add address to allow list.
    • allowlist_remove <address>: Remove address from allow list.
    • allowlist_enable <0 | 1>: Enable / Disable the allow list feature

Changed

  • BTstack: Upgraded to 1.5.6.3 (master branch as of July 29)

Fix

  • Unijoysticle: Misc and back buttons have debouncer per device.
    When multiple controllers are connected, debounce works as expected.
    Before, a static variable was used, and was reused by all connected
    controllers.
  • Unijoysticle: Improved debug messages when trying to swap ports.

Bluepad32 v3.8.0

26 Jul 04:14
Compare
Choose a tag to compare

[v3.8.0] - 2023-07-25

New

  • Unijoysticle: Add support for Unijoysticle 2 800XL board.
    Features:
    • Mouse: default AtariST.
    • 2nd and 3rd buttons work. Using Joy 2B+ protocol
    • Twin Stick
    • and the rest of the Unijoysticle features.

Changed

  • Unijoysticle: "Enhanced mode" renamed to "Twin Stick" mode.
    Seems to be the name that has been used for games like Robotron 2084.
  • Unijoysticle: Refactor. Each boards has its own file, and its own "class".
    Easier to extend / mantain.

Fixed

  • Wii + Accel mode: Buttons "A" and "Trigger" act as fire.
    Before "fire" was not mapped and it was not possible to play games like Lemans.
  • Unijoysticle: Twin Stick works with 2nd buttons