Documentation

Learn how to use WidgetTx Studio to create, browse, and customize EdgeTX widgets.

Getting Started

WidgetTx Studio is a visual designer for creating EdgeTX radio widgets without writing code. You can browse existing widgets, customize them, or create your own from scratch.

Quick Start

  1. Browse the Widget Gallery
  2. Find a widget you like and click to view details
  3. Download directly or Fork to customize
  4. Install on your EdgeTX radio

User Guide

WidgetTx Studio provides a complete workflow for widget creation and sharing:

🎨 Create

Design widgets visually with drag-and-drop components

📤 Publish

Share your widgets with the community

🔍 Browse

Explore widgets created by others

🔀 Fork

Customize existing widgets to fit your needs

Browse Widgets

The Widget Gallery shows all public widgets. You can:

  • Search - Use the search bar to find widgets by name
  • Sort - Order by newest, most popular, or most forked
  • Filter - Browse widgets by category or creator
  • Preview - See widget thumbnails before clicking

Click any widget card to view its full details, download, or fork it.

Widget Details

Each widget has a dedicated page showing:

  • Preview - Full-size widget preview
  • Description - What the widget does and how to use it
  • Creator - Who made the widget
  • Statistics - Download count and fork count
  • Related Widgets - Similar widgets you might like
  • README - Detailed documentation (if provided)

Download Widget

To download a widget for your EdgeTX radio:

  1. Navigate to the widget detail page
  2. Click the Download button
  3. A ZIP file will be downloaded containing:
    • main.lua - The widget code
    • img/ - Any images used by the widget
    • icons/ - Dynamic icons (if any)
  4. Extract the ZIP to your SD card's /WIDGETS/ folder

Fork Widget

Forking creates a copy of a widget that you can customize:

  1. Sign in to your account
  2. Navigate to any public widget
  3. Click the Fork button
  4. A copy is created in your dashboard
  5. Open the forked widget in the Designer to customize
  6. Save and export when done

Note: Forked widgets are linked to the original. The original creator can see how many times their widget has been forked.

Create Widget

To create a new widget from scratch:

  1. Sign in to your account
  2. Go to your Dashboard
  3. Click New Widget
  4. Use the Designer to add components
  5. Bind telemetry data to labels, gauges, etc.
  6. Save your widget (private by default)
  7. Make it public to share with the community

Designer Tool

The Designer is a visual canvas for building widgets:

Canvas

480×272 pixel canvas matching EdgeTX color LCD resolution. Zoom in/out for precise alignment.

Component Panel

Drag components from the left sidebar: Labels, Rectangles, Images, Arcs, Buttons, Icons, etc.

Properties Panel

Configure selected component: position, size, colors, text, telemetry bindings.

Page Management

Create multi-page widgets with tab bars or navigation buttons.

Components

Available widget components:

Label

Display text with custom font size and color.

lcd.drawText(x, y, "Hello", MIDSIZE + lcd.RGB(255, 255, 255))

Arc / Gauge

Circular gauge for telemetry visualization.

lcd.drawAnnulus(cx, cy, innerR, outerR, start, end, color)

Rectangle

Filled rectangle for backgrounds.

lcd.drawFilledRectangle(x, y, w, h, color)

Image

Display PNG/BMP images.

lcd.drawBitmap(Bitmap.open(path), x, y)

Icon (Dynamic)

Changes image based on telemetry thresholds.

Slider

Visual progress bar bound to telemetry values.

Telemetry Bindings

Bind component properties to live telemetry data:

Available Sources

  • Sensors: RSSI, RxBt, Alt, Speed, Fuel, etc.
  • Timers: Timer 1, Timer 2, Timer 3
  • System: Clock, Date, TX Voltage, Model Name
-- Standard sensor
local rssi = getValue("RSSI")

-- Timer
local t = model.getTimer(0)
local timer = string.format("%02d:%02d", math.floor(t.value / 60), t.value % 60)

-- Clock
local dt = getDateTime()
local clock = string.format("%02d:%02d", dt.hour, dt.min)

Code Generation

When you export a widget, WidgetTx generates EdgeTX-compatible Lua code:

  1. Canvas State → JSON structure
  2. Widget Definition → Standardized format
  3. TypeScript → Generated with EdgeTX APIs
  4. Lua → Transpiled via TypeScript-to-Lua
  5. ZIP → Packaged with images
-- Generated widget structure
local name = "MyWidget"
local options = {}

local function create(zone, options)
  local wgt = { zone = zone, options = options, components = {} }
  -- Component initialization...
  return wgt
end

local function refresh(wgt, event, touchState)
  lcd.clear(lcd.RGB(26, 26, 26))
  -- Render components...
end

return { name = name, create = create, refresh = refresh, ... }

Installation

  1. Download the widget ZIP file
  2. Connect your EdgeTX radio via USB
  3. Extract ZIP to SD card's /WIDGETS/ folder
  4. On radio: Model Setup → Widgets
  5. Select a zone and choose your widget

Supported Devices

WidgetTx widgets are optimized for color LCD radios running EdgeTX:

  • RadioMaster TX16S / TX16S MKII
  • RadioMaster TX12 MKII
  • FrSky Horus X10S / X12S
  • Jumper T16 / T18
  • Flysky PL18 / EL18
  • Any EdgeTX radio with 480×272 or 320×480 color LCD