Skip to content

OTX/ETX: add 800x480 color LCD support (TX16S MK3)#301

Closed
georgebashi wants to merge 3 commits intoyaapu:masterfrom
georgebashi:feature/c800x480-support
Closed

OTX/ETX: add 800x480 color LCD support (TX16S MK3)#301
georgebashi wants to merge 3 commits intoyaapu:masterfrom
georgebashi:feature/c800x480-support

Conversation

@georgebashi
Copy link
Copy Markdown

Summary

Adds EdgeTX widget support for 800x480 color LCD radios (RadioMaster TX16S MK3) under OTX_ETX/c800x480/.

All screen coordinates are ported directly from the existing ETHOS c800x480 implementation, translating only the Lua API calls (ETHOS lcd.color()/lcd.font() → EdgeTX lcd.setColor(CUSTOM_COLOR,...)/flag constants). The visual layout is intended to be identical to ETHOS at the same resolution.

Structure

The PR is split into 3 commits for reviewability:

  1. Copy c480x320 → c800x480 — unmodified scaffold (can skip review)
  2. Resize images — binary assets scaled to match ETHOS dimensions (skim only)
  3. Adapt coordinates — the actual diff, ~10 Lua files with all position/sizing changes

What changed (commit 3)

  • layoutlib.lua — top bar 36px, status bar 48px + 4×20px messages, GPS/timer/flight mode repositioned
  • hud_def.lua — HUD 400×240 at (200, 36), compass box 80×40, vario/speed/alt indicators at ETHOS positions
  • layout_def.lua — right panel at x=600, THR/EFF/PWR at y=280/306, home arrow (400, 314) r=28/35
  • layout_map.lua — map viewport at y=36, 8×4 tiles
  • maplib.lua — MAP_X=0, vehicle r=30/35, border=50, bearing line 2×800
  • left_def.lua — GALT/HOME/TRAVEL at y=40/125/210
  • right_def.lua — cell/batt/curr at ETHOS offsets, capacity bar 180×45
  • drawlib.lua — compass heading box sized for DBLSIZE at 800px
  • main.lua — failsafe (244, 80), arm status (248, 80), loading dialog 400×140
  • Yaapu Config.lua — touch zones scaled for 800px, 19 visible menu rows

Images resized (commit 2)

Image From To Reason
minmax.png / warn.png 480×320 800×480 Full-screen overlays
hud.png 240×130 400×240 From ETHOS source
hud_bg.png 240×130 380×240 Horizon background
armed/disarmed/failsafe 180×23 300×40 Status labels
menubar.png 320×46 533×46 Touch button bar
minihomeorange.png 14×12 28×24 Compass home icon

Testing

  • Validated in EdgeTX Companion simulator at 800×480 (TX16S MK3 profile)
  • Visual comparison against ETHOS c800x480 reference screenshots
  • Tested and working on TX16S MK3 hardware

Initial scaffolding for TX16S MK3 800x480 screen support.
All files copied verbatim from c480x320 as a starting point.
Resize resolution-dependent images to match ETHOS c800x480 dimensions:
- minmax.png, warn.png: 800x480 (full-screen overlays)
- hud.png: 400x240 (from ETHOS source)
- hud_bg.png: 380x240 (HUD background)
- armed/disarmed/failsafe: 300x40
- menubar.png: 533x46
- minihomeorange.png: 28x24
Port all screen coordinates from the ETHOS c800x480 implementation
to the EdgeTX widget, translating only API calls (lcd.color ->
lcd.setColor+CUSTOM_COLOR, lcd.font -> flag constants, etc.) while
keeping all positions identical to the ETHOS reference.

Key changes:
- Top bar: 36px height (matching ETHOS HUD_Y=36)
- HUD: 400x240 at (200, 36), matching ETHOS center_panel
- Left panel: GALT/HOME/TRAVEL at y=40/125/210
- Right panel: cell/batt/curr/bar at ETHOS absolute positions
- Status bar: 48px info bar + 4x20px message rows from bottom
- THR/EFF/PWR strip: y=280/306
- Home arrow: (400, 314) with r=28/35 dual-arrow outline
- Map: viewport at y=36, vehicle r=30/35, border=50
- Compass heading box: 80x40
- Arming/failsafe bitmaps: (244/248, 80)
- Loading dialog: (198, 98, 400x140)
- Yaapu Config: touch zones and menu rows scaled for 800px
@georgebashi georgebashi marked this pull request as ready for review May 6, 2026 02:33
@georgebashi
Copy link
Copy Markdown
Author

Doh, I've just noticed #295. Oh well. The two differ in approach; #295 scales proportionally from 480x320, whereas this PR ports the layout from ETHOS's existing c800x480. I'll close this PR out in favor of the existing one, but I'm happy to revive it if for whatever reason this approach is preferable.

@georgebashi georgebashi closed this May 6, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant