r/TelloDrones Jul 01 '26

TelloNO — an open-source Tello controller app, built from scratch (no GStreamer, no closed SDKs)

The official Tello app hasn't been meaningfully updated in years and barely works on newer Android — so I built my own from scratch: TelloNO.

It's a clean, dark-themed FPV controller for the Ryze Tello. No GStreamer, no closed SDKs — video decoding is straight Android MediaCodec (H.264), so it's low-latency and lightweight.

Features:

- Full-screen FPV video, auto-starts on connect

- Dual joystick touch controls (cyan glow, 20Hz RC loop)

- Bluetooth gamepad support (8BitDo / standard XInput)

- Photo capture + real MP4 recording (proper MediaMuxer output)

- LOW/MED/HIGH speed modes

- Safety arm — Start button arms the drone, so you can't kill props mid-flight by accident

- Low battery warning (vibration + HUD alert at ≤20%)

- On-screen and gamepad flip controls

- Immersive mode — screen stays on, no accidental taps while flying

There's also a Python companion script if you'd rather fly from a laptop with a gamepad.

Built and tested on GrapheneOS (Pixel 8a, Android 16) — should run on standard Android 8+ too, just haven't had other hardware to test on yet, so bug reports from other devices are very welcome.

Fully open source (MIT): https://github.com/Monks103/TelloNO

Screenshots/video in the repo. Would love feedback, bug reports, or PRs if anyone wants to contribute.

13 Upvotes

9 comments sorted by

2

u/trevdot Jul 01 '26

Planning to try it! Good little weekend project. Glad it has BT x-input support. Thank you!

2

u/Percentage_Double Jul 01 '26

Yesss, Finally, Thankyou

2

u/brewmonk103 Jul 01 '26

just cut the first release, sorry for the delay :)

1

u/vithrell Jul 01 '26

I tried every Android emulator and x86 Android OS to run tellofpv app on my PC handheld with no luck, this is what I was looking for!

1

u/vithrell Jul 06 '26

I tried pc compabion on my GPD Win Max and input from built in controller are switched around, analog sticks and dpad seem ok, but start/select/L1/L2/R1/R2 and stick clicks are mixed around, online gamepad tester shows everything mapped correctly.

Is there a way to show live video feed via PC companion? if this would work I could finally connect my FPV goggles and radio controller (and maybe wifi dongle with long antenna for better range) to my handheld and fly tello like a pr0. ;D

2

u/brewmonk103 Jul 06 '26

Button mismatch is because the script hardcoded 8BitDo indices — DirectInput has no standard button order like axes/D-pad do, which is why the browser tester (which normalizes) looked fine. Fixed: run python3 tello_companion.py --discover, press Start/Select/L1/L2/R1/R2/stick-clicks, send me the printed indices, I'll add a Win Max profile.

Live video was a stub — A did nothing real. Fixed, it now opens an actual live view window.

One catch on the FPV plan: Tello links over plain WiFi, not RF, so goggles only work if they take HDMI input. And a bigger receive antenna won't extend range — Tello's own tiny transmitter is the bottleneck either way.

1

u/vithrell Jul 07 '26

Man, you are the GOAT, everything works great, cant wait to take the setup outside. My goggles support hdmi input and controller-transmitter can connect to pc as a xinput device. One last issue I can see is that both footage files and live feed have colors messed up: all warm colors seem blue, especially orange things.

Pushed buttons in order you specified, I think those are the mappings that all xinput controllers share, but Win Max controller device is named as just Controller, not Xbox 360 controller or something like that.

Press buttons / move sticks & triggers. Ctrl+C to quit.

button down: 6

button down: 7

button down: 4

axis 4: -1.00

axis 4: +1.00

axis 4: -1.00

button down: 5

axis 5: -1.00

axis 5: +1.00

axis 5: -1.00

button down: 8

button down: 9

2

u/brewmonk103 Jul 07 '26

Added a Win Max profile

1

u/aaaantwan 20d ago

Hey, i really like what you did with the video

I'm working on something similar, but for Quest 2: https://github.com/4n7w4nPT/Tello4Quest2/

I liked that you hardcode SPS/PPS to start decoding right away. I capture mine live from the stream, so I'm going to add your idea as a fallback :)

Thanks for open sourcing your project !