Your drone / plane gone down in a field and it's hard to find?
- Widget (on color screen radios like the TX16X)
- Highly customizable! Colors, transparency, update rate, link type.
- Telemetry page (on b/w radios like the X-Lite)
- Can run alongside BF/iNav/Ardu scripts. Meticulously developed for low memory usage.
- gets GPS updates in the background, renders QR code when needed
- System Tool (not the recommended use-case, requires telem link when opened)
- Quick and easy way to find your model.. use your phone!
- Works with your inbuilt telemetry data stream
- Built to support several different mapping methods:
- QR-code native
geo:data that opens in your phone's native map app - google specific link for opening in google maps specifically
- CoMaps link for opening in the free open source CoMaps App for offline mapping
- GURU maps link for opening in Guru Maps for offline mapping
- QR-code native
- Works from the command line (
lua qrPos.lua 'data') .. great for testing!
Join my Discord and say hi and talk shop!
Installs just like any other opentx/edgetx lua script! Just copy three files.
- Download the code (direct link to zip)
- Copy to SD Card for your EdgeTx/OpenTx radio
- Copy
SCRIPTS/TELEMETRY/qrPos.lua- with the same path - Copy
SCRIPTS/TOOLS/qrPos.lua- with the same path (will make it available in system->tools) - Copy
WIDGETS/qrPos/folder to sd-card- only needed for color screen radios
- Copy
- Alternatively, for my fellow mac/linux terminal nerds:
- Copy with
rsync -av ~/Downloads/QRious-main/src/ /Volumes/DISK_IMG/(changing source and dest paths with tab-complete)
- Copy with
- Add as a telemetry widget on your radio (model edit, last page)
On color display radios you can modify settings (see the gif!) Some features require EdgeTx 2.11+ (github)!
- Dropdown picker for which link-type you'd like. (On old versions you'll just see a simple switch)
- More options! Older versions are limited to 5. Transparency is the #6 option.
- Fully Reentrant Architecture: 800+ lines of QR generation split into 11 incremental stages that pause/resume across execution cycles without blocking radio telemetry
- CPU Load Monitoring: Each stage checks
getUsage()and yields at 40-80% thresholds to keep the radio responsive - Crazy-optimized for low memory:
- Bit-packed arrays for massive memory savings over Lua arrays
- Static lookups are stored as strings for big memory savings over Lua arrays
- Two ways of rendering!
- Full color / transparency BMP file creation! Allows Widgets to work with high-speed rendering they require. Also non-blocking reentrant code.
- Direct rendering for tool view or telemetry page on black and white radios. Also non-blocking and draws over multiple iterations.
- Works alongside other memory-hog scripts like the iNav script! Run both!
- Aggressive Memory Management: Clears buffers (
eccbuf,genpoly,framask) immediately after use with strategiccollectgarbage()calls for these RAM-constrained microcontrollers - Multi-Platform Testing: Runs on OpenTX/EdgeTX hardware, simulators, and command-line with ASCII QR output
This is actually runable from lua on the command line!
Install a lua runtime like LuaJIT, here using homebrew on macOS:
brew install LuaJIT # or: sudo apt install luajit2Run the script with a geo: link:
lua src/SCRIPTS/TELEMETRY/qrPos.lua "geo:37.87133,-122.31750"This prints debug information about the generation process and the QR code as ASCII to the console. Example output of that command is in the screeshot above.
- Shoutout to Albert Koczy and his edgetx-gps-qrcode widget! We independently developed ultra similar solution!? The world is so small sometimes. My project is from 2021 but was quietly released, his is from 2024 and has gained much more traction.
- Albert's script uses a LUA QR library with few optimizations for low memory so he recommends not leaving it open while flying. Mine has a bunch of fancy tricks up its sleeves and doesn't have any limitations.


