Bidirectional terminal for commands, logs and line-oriented interaction.
At a glance
Behavior
Firmware contract
Use a terminal helper or plain virtual writes for line output and parse incoming strings.
On the app side this widget snaps to the 8-column square grid and uses both resizing. Its raw type is TERMINAL and the matching icon token in the app is terminal.fill.
Pin support: Virtual pins carrying string lines in both directions.
Transmission: String writes over the mobile protocol. The current iOS app polls terminal output every 0.5 s and stores only the latest 100 messages per terminal key.
Canvas preview
Widget contract
| Property | Value |
|---|---|
| Raw type | TERMINAL |
| Default size | 8 x 5 |
| Minimum size | 4 x 3 |
| Resize mode | both |
| Pin requirement | required |
| Pin support | Virtual pins carrying string lines in both directions. |
| Interactive | yes |
| Transmission | String writes over the mobile protocol. The current iOS app polls terminal output every 0.5 s and stores only the latest 100 messages per terminal key. |
Allowed pin families
Virtual pins carrying string lines in both directions.
Transport path
String writes over the mobile protocol. The current iOS app polls terminal output every 0.5 s and stores only the latest 100 messages per terminal key.
Operational limits
Output history is truncated to 100 lines client-side
Service authority boundary
Terminal mixes UI and transport. The widget is a friendly shell over bounded text payloads and a polled output buffer, not an infinite stream.
Who validates it: backend / project policy / dashboard grants.
What the board sees: the resulting write, notification or text payload, not the visual tile itself.
Configuration surface
Limits and caveats
Protocol and implementation notes
A minimal pattern that matches how this widget usually talks to the board.
1234567BLYNK_WRITE(V6) { String command = param.asStr(); if (command == "status") { terminal.println(readStatus()); terminal.flush(); }}Layout notes
Canvas footprint
8 x 5
Default footprint in the Plynx canvas before user resizing.
Resize floor
4 x 3
The minimum size accepted by the app during drag-resize.
Interaction model
Live input
Whether the user edits state directly or only reads it.
SuperChart
Historical and live chart surface with multiple streams, periods and annotations.
Map
Live position widget with device points, tracks and board-originated GPS updates.
Table
Dynamic multi-row table fed by firmware commands and row updates.
Eventor
Automation rules widget for conditions, actions, mail and notification flows.