Releases: inputlabs/alpakka_firmware
Releases · inputlabs/alpakka_firmware
f1.1.0
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
Sleepaction 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
wiredandwirelessmode. - 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_submodulefirmware 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
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
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
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
Touch sensitivity tune shortcut
- Touch sensitivity tune LED patterns changed to match the updated manual.
f0.97.0
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.
- Preset 1:
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 + holdnot holding the gamepadguide 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
Buttons
- Added double-press mode.
- Double-press time is defined in config value
CFG_DOUBLE_PRESS_TIME, which is 300 milliseconds by default.
- Double-press time is defined in config value
- Button
OVERLAPhas been renamed toIMMEDIATE. (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 aD-paddirection. - Custom profiles are indicated on the controller LEDs with 2-on 2-off patern:

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_SETrequest 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_ONmode 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
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 XInputmode changed toA09C. - Device identifier for
Generic HID / DirectInputmode changed toA09D.
Profiles
- Double-click home shortcuts (enabled when double-clicking and holding home) now activates default gamepad buttons, even if the
Console Legacyprofile 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
LEDsdisplay a blinkingwarningpattern 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
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%and20%. - 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
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 configto default values (Windows mode, no calibration, etc).