Skip to content

T-Lora Pager #7613

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 20 commits into
base: master
Choose a base branch
from
Open

T-Lora Pager #7613

wants to merge 20 commits into from

Conversation

mverch67
Copy link
Collaborator

@mverch67 mverch67 commented Aug 12, 2025

includes PR #4684 +fix for greater performance 😛

image

Status

  • SX1262 LoRa
  • display ST7796
  • IO expander XL9555 (0x20)
  • audio codec ES8311 (0x18)
  • battery gauge BQ27220 (0x55)
  • battery charger BQ25896 (0x6B)
  • GPS M10Q
  • RTC PCF85063A (0x51)
  • rotary encoder
  • keyboard TCA8418 (0x34) + backlight
  • SD card
  • haptic DRV2605 (0x5A)
  • IMU BHI260AP (0x28)
  • NFC

🤝 Attestations

  • I have tested that my proposed changes behave as described.
  • I have tested that my proposed changes do not cause any obvious regressions on the following devices:
    • Heltec (Lora32) V3
    • LilyGo T-Deck
    • LilyGo T-Beam
    • RAK WisBlock 4631
    • Seeed Studio T-1000E tracker card
    • Other (please specify below)
      • Seeed SenseCAP Indicator

@mverch67 mverch67 marked this pull request as draft August 12, 2025 21:44
@mverch67 mverch67 added enhancement New feature or request hardware-support Add hardware support for new devices or modules labels Aug 12, 2025
@Szetya
Copy link
Contributor

Szetya commented Aug 13, 2025

Hi Manuel!
I was just wondering the other day if you have any ideas for a sym key solution? I miss the tab and some extra shortcuts.
The extio solution for me was a low level wrapper in the src/io (newly created) folder.

@mverch67
Copy link
Collaborator Author

I was just wondering the other day if you have any ideas for a sym key solution

The key in the lower left corner can be used as ALT key. I think it's code 21.

@Szetya
Copy link
Contributor

Szetya commented Aug 13, 2025

I was just wondering the other day if you have any ideas for a sym key solution

The key in the lower left corner can be used as ALT key. I think it's code 21.

Well yes, either alt or sym. (I said it wrong above but you got the point).
Either we can't use symbols (the colored captions) or shortcuts (tab, backlight, ad-hoc ping, control arrows, GPS toggle... ) 🙁

@Szetya
Copy link
Contributor

Szetya commented Aug 13, 2025

But the display support is very good to now included in the original code. 😉
I also have T-display-s3 pro LR1121. I also have a ST7796 shield for the t-beam board.
Although I've been using it for a while now I'm having some problems. I can't compile anything that uses lovyangfx. 🙁

@Szetya Szetya mentioned this pull request Aug 13, 2025
12 tasks
@mverch67 mverch67 marked this pull request as ready for review August 18, 2025 22:21
@JThramer
Copy link

JThramer commented Aug 18, 2025

This looks good, but I just wanted to call out that the fact that any movement of the jog wheel immediately triggers the canned message dialog, which seems problematic. Particularly because the "press button" of that jog-wheel is extremely sensitive on my device.

You may want to consider fixing that.

@mverch67
Copy link
Collaborator Author

This looks good, but I just wanted to call out that the fact that any movement of the jog wheel immediately triggers the canned message dialog, which seems problematic. Particularly because the "press button" of that jog-wheel is extremely sensitive on my device.

This is externally managed by the canned message module.
You can disable the button function using the App by setting canned message module.inputbroker_pin_press 0

@JThramer
Copy link

This looks good, but I just wanted to call out that the fact that any movement of the jog wheel immediately triggers the canned message dialog, which seems problematic. Particularly because the "press button" of that jog-wheel is extremely sensitive on my device.

This is externally managed by the canned message module. You can disable the button function using the App by setting canned message module.inputbroker_pin_press 0

Okay, but why aren't these settings baked into the variant?

@mverch67
Copy link
Collaborator Author

Okay, but why aren't these settings baked into the variant?

Because there's no need if these can be changed at runtime in a flexible manner.

@JThramer
Copy link

Okay, but why aren't these settings baked into the variant?

Because there's no need if these can be changed at runtime in a flexible manner.

I would imagine that variants should be configured to more or less "work out of the box", but okay.

Incidentally, the GPS is completely INOP on this build, so the checkbox on GPS M10Q is inaccurate.

@caveman99
Copy link
Member

Incidentally, the GPS is completely INOP on this build, so the checkbox on GPS M10Q is inaccurate.

GPS is working fine here. The Antenna is abysmal, takes a long time and clear sky for an initial fix.

@JThramer
Copy link

Incidentally, the GPS is completely INOP on this build, so the checkbox on GPS M10Q is inaccurate.

GPS is working fine here. The Antenna is abysmal, takes a long time and clear sky for an initial fix.

Huh, I'll give it another try.

@LOCOSP
Copy link

LOCOSP commented Aug 21, 2025

Hi there, thank you very much for the Pager support. I managed to build and run it, but how can I navigate through the menu?

@mverch67
Copy link
Collaborator Author

Hi there, thank you very much for the Pager support. I managed to build and run it, but how can I navigate through the menu?

You can use:

  1. single button (boot button): short / long press
  2. boot button + back key (backwards / escape)
  3. rotary wheel: select canned message or up/down in menus, short/long press

@LOCOSP
Copy link

LOCOSP commented Aug 22, 2025

Hi there, thank you very much for the Pager support. I managed to build and run it, but how can I navigate through the menu?

You can use:

1. single button (boot button): short / long press

2. boot button + back key (backwards / escape)

3. rotary wheel: select canned message or up/down in menus, short/long press

Thank you, one more:

is there an option to turn ON/OFF keyboard backlight?

@mverch67
Copy link
Collaborator Author

is there an option to turn ON/OFF keyboard backlight?

You can toggle the keyboard backlight in two intensities using SYM + SPACE

@LOCOSP
Copy link

LOCOSP commented Aug 22, 2025 via email

@sysadminpower2019
Copy link

Hey. I just ordered this device. How do i build the firmware for it?

@mverch67
Copy link
Collaborator Author

Hey. I just ordered this device. How do i build the firmware for it?

Build instructions are in the meshtastic docs.

@mverch67
Copy link
Collaborator Author

mverch67 commented Aug 25, 2025

@JThramer

This looks good, but I just wanted to call out that the fact that any movement of the jog wheel immediately triggers the canned message dialog, which seems problematic. Particularly because the "press button" of that jog-wheel is extremely sensitive on my device.

You may want to consider fixing that.

I've implemented a fsm based bounce-free rotary encoder driver. It will replace the updown encoder implementation which is completely useless for T-LoRa Pager. So to activate it either do a factory reset or enable the (new) updown encoder:

meshtastic --set canned_message.rotary1_enabled FALSE --set canned_message.updown1_enabled TRUE

The wheel press button activates the popup menu on a screen which options can then be selected using the wheel.
Note: turning the wheel needs to pass all states of the state machine to detect the rotation direction. Turning it too fast does nothing because steps of the state machine would be skipped (which is not allowed).

Even though the encoder pin processing is now based on polling (instead of interrupts) there is no more false direction detection. Now it's 100% accurate.

Edit:
If you want the rotary wheel to navigate through the screens instead of the menu options then you can set the following:
meshtastic --set canned_message.inputbroker_event_cw LEFT --set canned_message.inputbroker_event_ccw RIGHT

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request hardware-support Add hardware support for new devices or modules
Projects
None yet
Development

Successfully merging this pull request may close these issues.

7 participants