module

Matter::SetupPayload::QRCode

QR Code payload generation for Matter onboarding

Matter QR codes encode more information than manual codes:

  • Vendor ID and Product ID
  • Flow type and discovery capabilities
  • Discriminator and setup PIN

The payload uses TLV encoding and base-38 representation with "MT:" prefix

Matter Core Spec ยง 5.1.4.2 - QR Code Format

Constants

BASE38_ALPHABET = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ-."

Base-38 alphabet for Matter QR codes

Class methods

generate_qr_code(discriminator : UInt16, pin : UInt32, vendor_id : UInt16, product_id : UInt16, flow : CommissionFlow = CommissionFlow::Standard, capabilities : DiscoveryCapability = DiscoveryCapability::BLE) : String

Generate Matter QR code payload string

@param discriminator Device discriminator (12-bit) @param pin Setup PIN code (27-bit) @param vendor_id Vendor ID (16-bit) @param product_id Product ID (16-bit) @param flow Commission flow type @param capabilities Discovery capabilities @return QR code string with "MT:" prefix

Source
parse_qr_code(qr_code : String) : Hash(Symbol, UInt64 | UInt32 | UInt16 | UInt8)

Parse Matter QR code payload

@param qr_code QR code string (with or without "MT:" prefix) @return Hash with decoded values

Source

Nested types