Skip to content

Add lvgl bindphrase setting script#10

Open
CapnBry wants to merge 121 commits into
ExpressLRS:masterfrom
CapnBry:bindphrase
Open

Add lvgl bindphrase setting script#10
CapnBry wants to merge 121 commits into
ExpressLRS:masterfrom
CapnBry:bindphrase

Conversation

@CapnBry

@CapnBry CapnBry commented Jun 26, 2026

Copy link
Copy Markdown
Member
image

For ExpressLRS 4.1, a utility to set a bindphrase. Builds on #3

There is a history saved to "elrs-phrase.txt" that shows last 5 as buttons the user can click to set the bindphrase to that but holy smokes if after 3 hours I could not get it to work. There's no way to set a textEdit's value?! Deleting it and recreating it lets me update it, but then the button just doesn't do anything. No error. Nothing. 🤷 Whatever EDIT: I sort of hamfisted got it working

RX Binding Functions

If there is no RX connected and the user selects the "Receiver" target, the user is presented with instructions and a Bind button. If an RX is connected when receiver is selected, an "Unbind" button is added to allow them to disconnect it and allow it to bind to someone else. Image below.

Zip file for users who want to use this now

Includes this entire repo with Jurg's scripts as well, unzip to the root of your SD card

elrs-bind-v2.zip

jurgelenas and others added 16 commits April 2, 2026 10:27
Add name, authors, urls, screenshots, and keywords fields. Rename
the existing `name` field to `id` to match the manifest schema.
Enforce the per-branch minimum at runtime in both LVGL and BW UIs and
update the manifest pre-install gate. Drop unreachable lvgl-nil
fallback code in ui/lvgl.lua.
Move the Architecture table and CRSF Simulator section out of the
user-facing README and into a new docs/development.md. Add a Make
targets reference covering setup, quality checks, and deployment.
LVGL command popup now renders the live info string the device sends on
each CMD_QUERY poll, via a getInfo getter passed into CommandPage (keeps
the page decoupled from Protocol). Add a multi-step progress command to
the CRSF simulator so the polling status updates can be tested.
Completion is detected in Protocol.fieldCommandLoad (which nils fieldPopup
inside poll(), before UI.render()), so the UI popup handlers' CMD_IDLE branches
were unreachable and never reloaded anything. Re-read the command's same-level
fields there via reloadRelatedFields so the current page reflects values the
command changed, and remove the dead UI completion branches.

Add a Gyro folder (Orientation + Detect Orientation command) to the simulated RX
so the behaviour is testable in the simulator.
@CapnBry

CapnBry commented Jun 27, 2026

Copy link
Copy Markdown
Member Author

I realize now I forgot to push the changes. Now they're there, and the bind phrase history is as well.

@CapnBry

CapnBry commented Jun 27, 2026

Copy link
Copy Markdown
Member Author

Oh stylua and I gonna fight. There's no way I am complying with their "you can't say if not x then return end" rule without a very good reason

@CapnBry

CapnBry commented Jul 4, 2026

Copy link
Copy Markdown
Member Author

People on seeing this feature seem to think that it should be able to send a bindphrase to an RX that isn't bound, but we can't because send data to it. If this is the case, I've added a bind shortcut button to allow a bind to happen. Also there is an "Unbind" button added if the user wants to put the RX into binding mode when if it is connected.

image

@CapnBry

CapnBry commented Jul 6, 2026

Copy link
Copy Markdown
Member Author
  • Renamed to "ELRS Bind Manager". Please delete elrs-phrase.lua, elrs-phrase.luac, and rename your elrs-phrase.txt to elrs-bind.txt after updating with v2 zip in first post.
  • Updated to scale properly with LCD size

@CapnBry

CapnBry commented Jul 7, 2026

Copy link
Copy Markdown
Member Author

The language server test is dead wrong and it can fuck right off. I will now fight to have this check removed from check process. 😠

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.

2 participants