SetAdjData / GetAdjData
GetAdjData: 0xfc SetAdjData: 0xfb
Payload Structure
Sending to TAP-in console
0xfc-> Request for the adjustment data
No arguments, just used to request the lens be disconnected0xfb <ADJDATA>-> Set the ADJDATA on the lens
Receiving from TAP-in console
0xfc <ADJDATA>-> The ADJDATA from the lens0xfb <FAILURE>-> Whether or not a failure occurred
FAILURE is a boolean value (0x00: no failure;0x01: failure)
AdjData
This contains all of the settings for the lens
Structure
Offset | Field | Size | Description |
|---|---|---|---|
| MANUAL_FOCUS_OVERRIDE |
| Full time manual focus override settings (packed byte) |
| VC_MODE |
| Vibration Compensation mode selection |
| UNKNOWN |
| Unsure, never seen these set or change (I only have a prime lens without any focus limiter settings) |
| FOCUS_ADJUSTMENT_1 |
| The focus adjustments for the closest focus |
| FOCUS_ADJUSTMENT_2 |
| The focus adjustments for the medium distance focus |
| FOCUS_ADJUSTMENT_3 |
| The focus adjustments for the farthest focus |
Focus Adjustments
For focus adjustments, each of the 8 bytes corresponds to a slider position.

In this image:
FOCUS_ADJUSTMENT_1refers to the0.29 mfocus optionsFOCUS_ADJUSTMENT_2refers to the0.77 mfocus optionsFOCUS_ADJUSTMENT_3refers to theInfinite mfocus options
Each of the FOCUS_ADJUSTMENT_<N> fields contains 8 bytes. Each byte correlates to a slider from top to bottom.
Focus adjustment value encoding
Slider Value Encoding
Each slider value is represented by a single signed byte (int8).
Positive values are stored directly, while negative values use two’s complement encoding.
For example:
Slider Position | Byte (Hex) | Byte (Decimal) | Notes |
|---|---|---|---|
-20 (leftmost) |
| 236 | Two’s complement for -20 |
-10 (half-left) |
| 246 | Two’s complement for -10 |
0 (center) |
| 0 | Two’s complement for 0 |
20 (rightmost) |
| 20 | Two’s complement for 20 |