Rumble Data Format

The rumble data is split up between left and right. This is for the splitting of Joy-Cons but also for Pro Controllers which have two linear resistance actuators (LRA) that can be controlled independently.

Rumble data layout

Index array (based on real report)



2 - HF Low Range Mode

0x04 - 0xFC

Left side - Encoded High Frequency. 81.75Hz - 313.14Hz. Requires LSB of byte 3 to be cleared.

2 - HF High Range Mode

0x00 - 0xC8

Left side - Encoded High Frequency 320Hz - 1252.57Hz. Requires LSB of byte 3 to be set.


0x00 - 0xC8

Left side - High Frequency Amplitude. Increments of 0x0200.

4 - LF

0x01 - 0x7F

Left Side - Low Frequency. 40.87Hz - 626.28Hz.

5 - LF Amplitude Low Mode

0x40 - 0x72

Left Side - Encoded Low Frequency Amplitude. Requires MSB of byte 4 to be cleared.

5 - LF Amplitude Intermediate Mode

0x40 - 0x71

Left Side - Encoded Low Frequency Intermediate Amplitude. Requres MSB of byte 4 to be set.

Bytes 6-9 are repeated but for the Right controller/LRA.

Decoding rumble data

Under construction

Updated 24 Jun 2022
Did this page help you?