Skip to content

Bluepad32 v4.0-beta0

Compare
Choose a tag to compare
@ricardoquesada ricardoquesada released this 04 Feb 19:38
· 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 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