Skip to content

[Bug]: QR Codes Generated on T-Deck for Channels Produce Invalid Links Due to Incorrect PSK Encoding #171

@4a4b3837

Description

@4a4b3837

Category

Other

Hardware

T-Deck

Is this bug report about any UI component firmware like InkHUD or Meshtatic UI (MUI)?

  • Meshtastic UI aka MUI colorTFT
  • InkHUD ePaper
  • OLED slide UI on any display

Firmware Version

2.7.2 / 2.7.3

Description

QR codes for channels generated on the T-Deck device runing the Meshtastic User Interface (MUI) produce invalid links that incorrectly encode the channel's Pre-Shared Key (PSK). Instead of properly serializing the full channel settings (including name, PSK, and other configurations) into a base64url-encoded protobuf as required by Meshtastic's format, the T-Deck appears to only include a modified version of the PSK string directly in the link.

Specifically:

  • The special character / in the PSK is replaced with _.
  • The special character + in the PSK is replaced with -.
  • The trailing = (padding) in the PSK is omitted.

This results in an invalid QR code that cannot be scanned by the Meshtastic app on another node, as the link does not conform to the expected protobuf-encoded structure.

This issue affects:

  • QR codes for channels created directly on the T-Deck via the MUI.
  • QR codes for existing channels created or imported via the app in BLE Programming mode.

Example:

  • Channel Name: TEST
  • Channel PSK (as base64 string): ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890+/12344=

Generated link on T-Deck (invalid):
https://meshtastic.org/e/#ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890-_12344

Correct link (generated by the app, which properly encodes the full channel protobuf):
https://meshtastic.org/e/#CigSIAAQgxBRhyCSizDTj0EUk1FVl2Gddt-Oeu_PdPv9dt-OGgRURVNUEg0IATgDQAdIAVAbyAYB

Steps to Reproduce:

  1. On a T-Deck device running MUI firmware (tested on versions 2.7.2 and 2.7.3):
    • Create a new channel directly on the device via the MUI or import/create a channel using the app in BLE Programming mode. Use a PSK that includes special characters like /, +, and = (e.g., the example above).
    • Navigate to the channel settings in the MUI and generate/display the QR code for that channel.
  2. On a different Meshtastic node/device, open the Meshtastic app (e.g., Android/iOS app).
  3. Attempt to scan the QR code displayed on the T-Deck using the app's QR code scanner.

Expected Behavior:

The QR code should contain a properly encoded link (base64url of the serialized ChannelSet protobuf, including the channel name, binary PSK, and other settings) and be successfully scanned by the app, allowing the channel to be added or configured on the other node.

Actual Behavior:

The QR code contains an invalid link that only includes a modified PSK string (with /_, +-, and = omitted), omitting the full protobuf structure. This causes the app to fail to recognize or scan the QR code, preventing the channel from being imported/added to the other node.

Relevant log output

Metadata

Metadata

Assignees

Labels

bugSomething isn't working

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions