Bluepad32 v4.0-beta0
·
329 commits
to main
since this release
[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