Widgets / directory

Joystick

TWO_AXIS_JOYSTICK

Two-axis XY control for steering, pan/tilt and motion surfaces.

At a glance

Default5 x 5
Minimum4 x 4
Resizeboth
Pinrequired
Interactiveyes

Behavior

  • Supports debounced streaming to avoid flooding the board.
  • Can auto-return to center after release.
  • Used for robotics, camera heads and RC-like control.

Firmware contract

Expect two values in param[0] and param[1] or split them into dedicated targets.

On the app side this widget snaps to the 8-column square grid and uses both resizing. Its raw type is TWO_AXIS_JOYSTICK and the matching icon token in the app is gamecontroller.fill.

Pin support: Virtual pins are the common case. With split mode the values are mapped through separate data streams or dedicated pins.

Transmission: Two-axis payload streamed with a 50 ms throttle in the current app implementation.

Canvas preview

docs.widget.preview
Joystick
stable
STATUS

Widget contract

PropertyValue
Raw typeTWO_AXIS_JOYSTICK
Default size5 x 5
Minimum size4 x 4
Resize modeboth
Pin requirementrequired
Pin supportVirtual pins are the common case. With split mode the values are mapped through separate data streams or dedicated pins.
Interactiveyes
TransmissionTwo-axis payload streamed with a 50 ms throttle in the current app implementation.

Allowed pin families

Virtual pins are the common case. With split mode the values are mapped through separate data streams or dedicated pins.

Transport path

Two-axis payload streamed with a 50 ms throttle in the current app implementation.

Operational limits

High-frequency motion still needs board-side smoothing

Configuration surface

  • split routes X/Y to separate targets
  • autoReturnOn recenters after release
  • min/max define the numeric range for both axes

Limits and caveats

  • High-frequency motion still needs board-side smoothing
  • Without split mode the firmware must parse two values in order

Protocol and implementation notes

  • The two-axis payload is ordered and time-sensitive, so board-side smoothing or rate limiting matters for motors and pan/tilt rigs.
  • Split mode reduces parsing work on the board by routing X and Y into separate targets.

Firmware example

A minimal pattern that matches how this widget usually talks to the board.

joystick.ino
BLYNK_WRITE(V2) {  int x = param[0].asInt();  int y = param[1].asInt();  driveAxes(x, y);}

Layout notes

Canvas footprint

5 x 5

Default footprint in the Plynx canvas before user resizing.

Resize floor

4 x 4

The minimum size accepted by the app during drag-resize.

Interaction model

Live input

Whether the user edits state directly or only reads it.

Related widgets