Releases: ricardoquesada/bluepad32
Releases · ricardoquesada/bluepad32
Bluepad32 v4.0-beta0
[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 callbtstack_run_loop_execute()
automatically. Must be called by the useruni_main()
renamed touni_init()
.- Rationale:
uni_init()
just does the initialization. Beforeuni_main
was doing init and main loop.
- Rationale:
- 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 callinguni_init()
uni_platform_custom_create()
removed
- must call
- 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()
touni_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:
- Removed from "bluepad32" repo. Moved to the Bluepad32 Arduino template project.
- 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
- Switch: Parse calibration correctly. Does not crash. Fixes Github Issue #61
- Arduino & NINA: Disconnect gamepad works Ok. Fixes Github Issue #8 and Github Issue #50
Bluepad32 v3.10.3
[3.10.3] - 2023-11-26
New
- Atari Wireless Joystick: Add support for it
Changed
- Allowlist: rename
uni_bt_allowlist_allow_addr()
touni_bt_allowlist_is_allowed_addr()
Bluepad32 v3.10.2
[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
[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
[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
[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
- Can be enabled/disable from console using
- 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).- Fixes issue: Gitlab Issue #22
- New controller button supported:
MISC_BUTTONS_CAPTURE
. From Arduino callctl->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.
- Fixes issue: Gitlab Issue #35
Bluepad32 v3.8.3
[v3.8.3] - 2023-08-09
Fixed
- Allowlist: Don't show "error" message when there is no error.
Bluepad32 v3.8.2
[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
[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, astatic
variable was used, and was reused by all connected
controllers. - Unijoysticle: Improved debug messages when trying to swap ports.
Bluepad32 v3.8.0
[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