Skip to content

Releases: inputlabs/alpakka_firmware

f1.1.0

02 Jul 14:16
7f1a36b

Choose a tag to compare

Gyro

  • Fixed IMU calculation bug, now the gyro is slightly less noisy. (GarryBGoode contribution).

Thumbstick(s)

  • Global setting for thumbstick smoothing. (Configurable in Ctrl app, default is disabled).

Power off / sleep

  • Hold home button for 5 seconds to power off the controller. (Skipped if any of the home profile functions is used).
  • The Sleep action can be assigned to any button or home shortcut.

Wireless

  • More stable wireless connection that prevents getting stuck when the last packet sent is lost.
  • Wireless connection more resilient when the reception is weak.
  • Fixed issue in which the non-wireless Alpakka (v0) tried to go wireless and crashed.
  • Fixed dongle not restarting when protocol changed.
  • Controller and dongle now sync protocol automatically. (Protocol can only be changed via controller now).
  • Improved detection for when the controller switches between wired and wireless mode.
  • New unique LED animation for when the wireless controller is trying to pair with the dongle.

Battery

  • Fixed front-facing LED not showing when the battery is charging if powered from a power bank.
  • Fixed issue that made low-battery warning trigger too early in some scenarios.
  • New unique LED animation for when the battery is low.

Other

  • Fixed wrong gamepad output when multiple physical buttons were mapped to the same output button.
  • Improved stability by reducing code with potential undefined behaviors. (evgenykor contribution)
  • Marmota LED blinks while the wireless_submodule firmware is being flashed (as a way to communicate progress to the user).
  • ESP-LLAMA (Low Latency Antenna Module Adapter) repository is published.

Flash memory versions

  • Config: >= 1.1.0
  • Home profile: >= 1.1.0
  • Other profiles: >= 1.0.0

(Older versions will be overwritten)

1.1.0-beta3

30 Jun 20:47

Choose a tag to compare

1.1.0-beta3 Pre-release
Pre-release

Changes preview

  • Wireless connection more resilient when the reception is weak.
  • Controller and dongle now sync protocol automatically. (Protocol can only be changed via controller now).
  • Fixed dongle not restarting when protocol changed.
  • Many other fixes and QoL (full list will come on final release).

This firmware might overwrite existing config and profiles.

f1.1.0-beta2

17 Jun 20:15

Choose a tag to compare

f1.1.0-beta2 Pre-release
Pre-release

Changes preview

  • Wireless communication improvements (packet replay logic).
  • Sleep with home button (5 seconds without doing any other input).
  • Thumbstick ADC smoothing (configurable in Ctrl app advanced settings).
  • Low battery custom LED animation.
  • Many other fixes and QoL (full list will come on final release).

This firmware will overwrite existing config and profiles.

f1.0.0

18 Mar 17:56
78d9374

Choose a tag to compare

Wireless

  • Support for multiple compilation targets (Alpakka v0, v1, dongle...).
  • Wireless HID communication.
  • Wireless WebUSB.
  • Automatic switch between wired and wireless modes.
  • High-speed UART communication RP<->ESP.
  • Battery level reporting and battery low warning.
  • Power off (dormant mode).

Thumbstick

  • Support for 2nd thumbstick.
  • Thumbstick saturation in profiles.
  • Thumbstick 8-dir mode (digital-only button wheel).
  • Thumbstick internal support for inverted ADC axes.

Touch sensor

  • Touch sensor stability improved.
  • Adjusted touch sensor auto values for when the controller is wireless.
  • Fixed issue Dhat push / right stick push could not be used as gyro engage.

Memory

  • Saved config version 1000000 (Controller config will reset to factory defaults if version does not match).
  • Saved profiles version 1000000 (Profiles will be overwritten with defaults if version does not match).

Important

Wireless communication is NOT encrypted, we are working to include that in future firmware updates. Be aware of the risk if using the controller to type passwords.

f0.97.1

07 Oct 14:40
4f5ff2c

Choose a tag to compare

Touch sensitivity tune shortcut

  • Touch sensitivity tune LED patterns changed to match the updated manual.

f0.97.0

30 Sep 17:05
1914000

Choose a tag to compare

Touch sensor

  • Measurements and threshold use float values (decimals).
  • Multiple samples taken and averaged, until using all the time budget (100 microseconds).
  • Option to toggle measurement polarity.
  • Default measurement polarity is inverted.
  • Debounce prioritizes keeping the touch detection up to avoid microcuts.
  • New automatic threshold logic based on baseline factor.
  • Changed touch sensitivity presets:
    • Preset 1: Auto low.
    • Preset 2: Auto mid (default).
    • Preset 3: Auto high.
    • Preset 4: Custom 1.
    • Preset 5: Custom 2.

Calibration / Drift

  • Option to perform long calibration (4x longer).
  • Option to swap gyros (left <-> right).
  • Fix for calibration procedure getting wrong values under some circumstances.
  • Fix for LED cycling animation not being smooth.
  • Added user calibration offsets (see Ctrl app 0.97.0 release for more info).

Log modes

  • Log mask to enable additional logs on demand.

Home button fixes

  • Fix for home profile (shortcuts) getting stuck under some circumstances.
  • Fix for home button double-press + hold not holding the gamepad guide button (required for Steam Deck shortcuts).

NVM (Non Volatile Memory)

  • Reserved space for all the new features in the config struct.
  • Config sector version 97000 (Controller config will reset to factory defaults if version does not match).

f0.96.0

13 Jun 14:35
874e174

Choose a tag to compare

Buttons

  • Added double-press mode.
    • Double-press time is defined in config value CFG_DOUBLE_PRESS_TIME, which is 300 milliseconds by default.
  • Button OVERLAP has been renamed to IMMEDIATE. (Since outputs do not overlap when applied to double-press).
  • Button modes are now bitmask flags (NORMAL, HOLD, DOUBLE, IMMEDIATE, LONG, STICKY) and can be combined in the profile definitions. Though not all permutations are supported. See button_logic.md

Profiles

  • Unlocked 4 slots for custom profiles, default names are Custom 1, Custom 2, Custom 3, Custom 4.
  • Custom profiles are selected by holding Home + double-pressing a D-pad direction.
  • Custom profiles are indicated on the controller LEDs with 2-on 2-off patern:
    Screenshot 2024-06-13 at 15 11 22

WebUSB

  • Profile overwrite feature:
    • Ctrl app can request profile slots to be overwritten with build-in defaults.
    • Ctrl app can request profile slots to be overwritten with a profile from other slot.
  • Profile SECTION_SET request over WebUSB now replies with an async confirmation, so the Ctrl app can send batches of profile data (profile loading from file).
  • Controller firmware version is shared with the Ctrl app.
  • Ctrl app shares the system time with the controller (for latency measurements).

Thumbstick

  • Added anti-deadzone feature.
    • Anti-deadzone value is contained in each profile thumbstick settings. (There is no global anti-deadzone value).
    • Anti-deadzone is applied after deadzone, so the defined deadzone remains as a zero-output area.

Gyro

  • Gyro ALWAYS_ON mode not working as expected has been fixed.

NVM (Non Volatile Memory)

  • Each profile in flash memory is labeled with its own version identifier.
  • Config and profile(s) sectors can be reset individually.
  • Config sector version 96000 (Controller config will reset to factory defaults if version does not match).
  • Profile(s) sector version 96000 (Profile slot will reset to factory defaults if version does not match).

f0.95.0

22 Jan 09:49
60cc31a

Choose a tag to compare

Communication

  • Mouse delta values (X, Y) are now 16 bits, so they do not saturate even when using very high sensitivity.
  • Device identifier for Windows XInput mode changed to A09C.
  • Device identifier for Generic HID / DirectInput mode changed to A09D.

Profiles

  • Double-click home shortcuts (enabled when double-clicking and holding home) now activates default gamepad buttons, even if the Console Legacy profile was modified.

Automatic diagnostics.

  • During the booting sequence, the controller will automatically detect if there are issues such as:
    • Lack of calibration.
    • Problems when initializing the gyro(s).
  • The controller LEDs display a blinking warning pattern if problems are detected.
  • The users can dismiss the LED warning (until next boot) by double-clicking home.
  • If the problem is unclear, the user can check the logs in the Ctrl app for more details.

NVM (Non Volatile Memory)

  • Config memory block version 16 (Controller will reset to factory defaults if version does not match).

f0.94.0

21 Dec 09:42
d0acb59

Choose a tag to compare

Profiles

  • Profiles are stored in the controller NVM in low-level Ctrl protocol format.
  • Profile data can be read and writen via WebUSB (from/to the Ctrl app).
  • If no profiles are stored, they are loaded from defaults.
  • Default profiles (in code) now use Ctrl protocol format.
  • Action labels included in profiles as strings (eg: Jump).

Thumbstick

  • Thumbstick is disabled if the controller was never calibrated, this makes more obvious that the controller must be calibrated, and avoids unexpected input being sent.
  • Fixed a bug in which deadzone applied to button mappings (eg: WASD) was incorrectly calculated.
  • Default deadzone preset values changed to 8%, 12% and 20%.
  • Default saturation has been reduced a bit, so outer deadzone is smaller.
  • Radial mode refactored as distance calculation modes (axial or radial).

Touch

  • Fixed touch sensitivity values from Ctrl app being always overwritten with defaults.
  • Fixed touch sensitivity preset sorting reversed (changed back to the intended sorting introduced in f0.90.0).

Macros

  • Now each profile has 8 macro slots, and they are triggered via procedure mapping (eg: PROC_MACRO_1).

NVM (Non Volatile Memory)

  • Implemented cache in front of in-memory config and profiles, so read and writes from/to flash memory are reduced a lot.
  • Each profile is allocated 4096 bytes of memory.
  • Config memory block version 15 (Controller will reset to factory defaults if version does not match).

f0.93.0

17 Oct 11:53
4020457

Choose a tag to compare

Config

  • Mouse sensitivity, touch sensitivity and deadzone preset values are stored in the controller memory.
  • Preset values can be read and modified from WebUSB (Ctrl app).
  • Default preset values are initialized with the same values that used to be hardcoded:
    • Mouse sensitivity: 1x, 1.5x, 2x.
    • Thumbstick deadzone: 7%, 10%, 15%.
    • Touch sensitivity:
      • Old PCBs: Auto, 2μs, 3μs, 5μs, 8μs.
      • New PCBs: Auto, 10μs, 15μs, 25μs, 40μs.

NVM

  • Config memory block version 12.
  • This update may reset the controller config to default values (Windows mode, no calibration, etc).