Skip to content
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

Disney Infinity and Skylanders #91

Open
NBAPJ opened this issue Oct 28, 2020 · 1 comment
Open

Disney Infinity and Skylanders #91

NBAPJ opened this issue Oct 28, 2020 · 1 comment

Comments

@NBAPJ
Copy link

NBAPJ commented Oct 28, 2020

Could Odiin be used to emulate Disney Infinity and Skylanders? The was a guy posting videos on YouTube of a similar device that was emulating Disney Infinity and Skylanders.

@nitz
Copy link
Collaborator

nitz commented Oct 28, 2020

As far as I know, yes. The code isn't ready out of the box at the moment, and the real answer is a bit more complicated. I'll explain below, also to get my thoughts written down for later reference! Also, I'd love to see the YT video you speak of, if you have a link!

My understanding via what I've read on sites like nfc.toys is that they're pretty similar. In particular, the Infinity tags seem to be a MIFARE Mini tag (ref). I don't have any docs on the Mini, but given that it's in the MIFARE product line, I imagine the protocol is quite similar.

Currently Odiin is hardcoded to load binaries as NTAG215. I do need to add support to dynamically select the emulation method via file size or perhaps setting, but I haven't come up with a way that feels nice and obvious yet. The MIFARE protocol, as far as I know being an ISO1443A tag, does align pretty similarly with the NTAG21X, so it's a good chance a lot of the work is already done there. The only other note I had jotted down is that the NTAG21X's SAK response (part of the anti-collision/tag selection process that I'm letting the hardware handle natively) does have a different response than the MIFARE does (0x00 vs 0x09). The nRF52840 docs imply a way that I should be able to assign the value used for that, but I haven't done any looking into it yet.

Skylanders I'm a bit more lost on, as it seems they use a 4-byte UID (which I do support though not directly at the moment), but their tags seem to be "TNP3xxx", which I don't know much about other than that they have a different ATQA and SAQ response. (NXP Lists it alongside many of their tags in this identification document, so I'm guessing they're similar/along the lines of the MIFARE line, but I haven't seen a datasheet for it.)

Lastly: I don't have any Infinity or Skylanders toys myself to test with, but I definitely plan to get some at some point, and that's been a larger part of why I haven't played with them at all!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants