feat: add IDTECK PSK1 and PAC/Stanley tag type support#844
Open
matteoscrugli wants to merge 2 commits intoGameTec-live:mainfrom
Open
feat: add IDTECK PSK1 and PAC/Stanley tag type support#844matteoscrugli wants to merge 2 commits intoGameTec-live:mainfrom
matteoscrugli wants to merge 2 commits intoGameTec-live:mainfrom
Conversation
This was referenced Apr 25, 2026
Adds IDTECK to the supported LF protocols on the GUI side, matching the firmware support added upstream. - TagType.idteck (310) in the PSK range, matching the firmware enum - IdteckCard model (8-byte 64-bit frame: 32-bit preamble + 32-bit payload) - ChameleonCommand entries: writeIdteckToT5577 (3017), setIdteckEmulatorID (5010), getIdteckEmulatorID (5011) - Bridge RPC wrappers following the Viking pattern - Wired into the LF type list, display name, card factory, and slot manager "add card" flow, plus the T55xx write helper - uidSizeForLfTag returns 8 for IDTECK No read path: firmware-side PSK demodulation is not implemented yet (the tag-emulation ADC is envelope-only at 125kHz), so the GUI does not expose a "read IDTECK" action. Emulation and T55xx clone work. Depends on firmware PR GameTec-live#407 landing for the command IDs.
592921d to
aaac5e2
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Adds GUI support for two LF tag types: PAC/Stanley (
TAG_TYPE_PAC = 150) and IDTECK PSK1 (TAG_TYPE_IDTECK = 310). Both follow the sameVikingintegration pattern (raw-hex UID, no parsed format fields).This consolidates the previously-opened separate PRs (one per tag type) into a single change set after maintainer feedback noting that merging similar parallel branches creates merge conflicts. Now bundled in one commit per type for review clarity, but no inter-PR conflicts.
Motivation
Changes
helpers/definitions.dartTagTypeentries:pac(150),idteck(310)ChameleonCommandentries:scanPacTag(3014),writePacToT5577(3015),setPacEmulatorID(5006),getPacEmulatorID(5007)writeIdteckToT5577(3017),setIdteckEmulatorID(5010),getIdteckEmulatorID(5011)PacCard,IdteckCardclasses (modeled onVikingCard)bridge/chameleon.dartreadPac,setPacEmulatorID,writePacToT55XX,getPacEmulatorIDsetIdteckEmulatorID,writeIdteckToT55XX,getIdteckEmulatorIDreadIdteck— PSK demodulation is not implemented in the firmware yet.helpers/general.dartgetLFCardFromUIDfactory anduidSizeForLfTag(PAC = 8, IDTECK = 8 bytes)helpers/write.dart,helpers/t55xx/write/base.dartgui/page/slot_manager.dart,gui/menu/dialogs/slot/edit.dart,gui/menu/dialogs/slot/export.dart,gui/page/read_card.dartgui/page/home.dartsetIoProxEmulatorIDtosetIdteckEmulatorID, the highest-numbered command this PR introduces.Dependencies
This PR depends on RfidResearchGroup/ChameleonUltra#407 (IDTECK firmware). Merging before that firmware ships would cause the capability check to fail against current released firmware builds. Therefore opened as draft until firmware #407 lands.
PAC alone would be mergeable today (firmware already upstream), but separating it out would re-introduce the merge-conflict friction that motivated this consolidation.
Testing
flutter analyze lib/clean (only pre-existing issues unrelated to this PR)flutter build macos --debugsucceedsTAG_TYPE_IDTECKrenders as "IDTECK" (was "unknown")Pattern
Implementation follows the
Vikingintegration 1:1 (simplest existing LF tag with raw-hex UID) and mirrors the structure of the recently-merged ioProx PR (#841). Same file touches, same else-if chain placement.