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
- Browse the Widget Gallery
- Find a widget you like and click to view details
- Download directly or Fork to customize
- 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:
- Navigate to the widget detail page
- Click the Download button
- A ZIP file will be downloaded containing:
main.lua- The widget codeimg/- Any images used by the widgeticons/- Dynamic icons (if any)
- Extract the ZIP to your SD card's
/WIDGETS/folder
Fork Widget
Forking creates a copy of a widget that you can customize:
- Sign in to your account
- Navigate to any public widget
- Click the Fork button
- A copy is created in your dashboard
- Open the forked widget in the Designer to customize
- 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:
- Sign in to your account
- Go to your Dashboard
- Click New Widget
- Use the Designer to add components
- Bind telemetry data to labels, gauges, etc.
- Save your widget (private by default)
- 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:
- Canvas State → JSON structure
- Widget Definition → Standardized format
- TypeScript → Generated with EdgeTX APIs
- Lua → Transpiled via TypeScript-to-Lua
- 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
- Download the widget ZIP file
- Connect your EdgeTX radio via USB
- Extract ZIP to SD card's
/WIDGETS/folder - On radio: Model Setup → Widgets
- 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