Lego Dimensions et tag NFC

Oui, ça laisse pas mal de possibilités. Et le tout en Lego! Dès que je reçois mes portails j’avance sur la partie RFID intégrée. Dans tous les cas, avec un simple lecteur, c’est déjà possible de faire la même chose! J’en ai profité pour acheter quelques tags de plus.

Si ensuite tu n’es pas complètement attaché à des tag Lego, un simple tag NFC classic permet aussi de faire pas mal de choses. Il suffit de le coler sur une pièce, ça prend moins de place que tag complet avec le cercle, pas faile à intégrer.

A ta dispo pour discuter du scenario.

1 « J'aime »

@dominiqueq j’ai implémenté pas mal de choses concernant le portal. Par contre, j’ai fait ça sans le portail que je n’ai toujours pas. Donc il va certainement y avoir des éléments qui ne vont pas bien fonctionner (les events avec la lecture des charactères certainement). Pour le reste, les leds et autres devraient fonctionner (en thérorie, en espérant que je n’ai rien oublié :smiley: )
Je suis impatient de tout recevoir pour faire avancer cela!

En tout cas, c’est utilisable en librarie. Ca fonctionnera sur Windows et Linux (faudra juste faire qqs manips pour le drivers, je documenterais tout ça). Mais tu dois déjà pouvoir tester avec le code example que j’ai fait. Tout feedback bienvenu!

1 « J'aime »

update de mon côté:

  • J’ai implémenté les mêmes fonctionalités présentent dans l’application d’Eric mais sans UI. Tout fonctionne bien avec un portail
  • J’ai implémenté la lecture de tag, le dump des tags
  • J’ai implémenté quelques fonctions complémentaires
  • J’explore pour l’écriture de tags. J’ai des tags vierges compatibles. Il faut d’abord les préparer et préparer pour l’authentification visiblement. J’explore aussi ce qu’il faut de ce côté (j’attends qqs tags officiels Lego Dimensions pour ne pas avoir peur de faire des bétises).

J’ai fait un essai spécial pour @Tribolego avec un tag vierge collable sur un vagon. Les tags sont détectés en passant avec le train. Même à 1 tenon plus haut ça passe.

A voir ensuite en fonction de la vitesse. Pour une détection de tag seulement (pour avoir le Unique ID), ça semble passer même assez rapidement. Même de simples Mifare de base fonctionnent aussi pour la détection du UID (4 bytes plutôt que 7). Mais si c’est pour un besoin didentifiant, ça fait très très largement l’affaire!

Il me manque encore un peu de doc et j’ouvrirai le repo!

2 « J'aime »

Le repository est maintenant public. J4en ai profité pour faire quelque chose que je n’ai trouvé nul part: décrire proprement le protocole. Il manque encore quelques éléments mais ça devrait aider ceux qui s’y intéressent!

Ellerbach/LegoDimensions: Read and write tags from Lego Dimensions. Interact with the portal. (github.com)

1 « J'aime »

C’est top Laurent !

1 « J'aime »

Et dispo en tant que nuget donc facile à utiliser: NuGet Gallery | LegoDimensions 1.0.0

Plus de tests l’écriture des tags vierges à venir.

1 « J'aime »

Voici une photo qui devrait plaire à certains :slight_smile:

Essayé sur le vrai jeu avec le portail connecté à la console, sur une XBox One (ça fonctionnera de même sur toutes les autres plates-formes), un tag neuf avec les instructions qui vont bien pour faire le personnage E.T. Le tag est tout simplement collé sous le petite brique noire :slight_smile:

A partir de tag vierge (NTAG213), je peux écrire sur la carte NFC et ajuster ce qu’il faut! En gors, il s’agit d’écrire le nouveau mot de passe et les données soit du véhicule soit du personnage. Il faut un lecteur NFC externe pour cela. Les instructions sont dans mon repository. Et les éléments nécesdsaires dans le nuget.

Le tout, c’est à dire piloter le portail pour les led et lire les tags a été testé aussi sur un Raspberry Pi et cela fonctionne. Le tout en headless, donc sans besoin d’écran.

Feedback bienvenus et si quelqu’un a un cas, ravi d’aider :slight_smile:

1 « J'aime »

Merci Laurent, Je vais reprendre mes tests après l’expo de la semaine prochaine.

J’ai dû modifier une partie de mon diorama.

Il faut que je commande la partie raspberry pour lier le tout, et le lecteur de tag et les moteurs.

Dis moi si tu as besoin d’un coup de main. J’ai reçu 4 portails. J’ai de quoi faire. Je bosse sur un programme qui prend un json en entrée et qui te joue des animations et aussi qui permet de réagir aux événements.
Bref de quoi faire sans avoir besoin d’écrire du code. Je posterai le code certainement cette semaine sur le même github.

Ah tiens @ellerbach , une chose que je n’ai pas réussi à trouver, c’est de savoir si chaque portail a un identifiant unique et si on peut y accéder. L’intérêt quand on en a plusieurs connectés, c’est de pouvoir facilement les identifier.

Je passe un identifiant dans le constructeur. Sur les versions Xbox, il y a un numéro de série. Il est visiblement utilisé pour décrypter la communication.
Pas regardé pour les autres. Vais jeter un coup d’œil.
J’ai ajouté une application qui permet de jouer des animations et réagir aux événements sans écrire de code.

@brickerik et voilà, j’ai trouvé: LegoDimensions/LegoDimensionsProtocol.md at main · Ellerbach/LegoDimensions (github.com)

Ca peut être affiné mais ça semble différent sur tous les ortails. Et c’est consistent. A chaque wake up, le message renvoyé est le même pour un portail donné.

J’ai fait une application en ligne de commande qui utilise un PN532 connecté en série et qui permet de flashé le charactère ou le véhicule de ton choix sur un NTAG213/215 ou 216 vierge. Applications dispos en selfcontained pour Windows et Linux avec un nice UI en console :wink: Release v1.5.0 · Ellerbach/LegoDimensions (github.com)

Un PN532 ça coûté moins de 5€ sur Aliexpress: Analyste utilisateur sans fil Tech V3, NDavid, RFID, mode lecteur Ampa er, carte IC S50, antenne PCB, I2C, IIC, éventuelles I, HSUPN532 | AliExpress

Un USB-TTL est nécessaire pour connecter le lecteur PN532, ça coûte environ 1€ (il y a des lots aussi): USB vers TTL pour Ardu37, 5 broches, 1PC, PL2303HX, 1PC, CP2102, CH340G, PL2303, CP2102, UART, TTL Tech, 3PCs par Lot | AliExpress

Un lot de 100 NTAG213 vierge, ça coûte 11€: Étiquettes Autocollantes Nfc Ntag 100, Étiquette Autocollante Universelle, 13.56mhz, Iso14443a, Pour Tous Les Téléphones Compatibles Nfc, Lot De 213 Pièces - Contrôle D’accès Carte - AliExpress

1 « J'aime »

PS: du coup, je me suis remis à jouer à Lego Dimensions et je flashe mes personnages et mes véhicules avec mon application. Ca marche top :slight_smile:

1 « J'aime »

Super, c’est ce que je souhaitais. Je n’avais pas pensé à comparer la trace de cette réponse qui semblait inutile entre les différents portails.
Reste à voir si il existe un lien entre cette trame héxa et le nombre gravé à l’arrière des portails pour faciliter l’identification physique :slight_smile:

Ca ne colle pas malheureusement! J4ai regardé et j’ai chez moi « 123I5 » (le 4ème c’est un i majuscule) sur tous mes portails.

Dans tous les cas, possible de coller un sticker sur le câble avec l’ID :wink:

Donc là tu lis les tag avec un lecteur ncf random?

Et le code m’intéresse. Github id churbain

Edit: j’ai vu qu’entre les deux tu l’a mis en public.

Je regarderait ça un jour ou j’ai du temps.

Arf… j’avais 5 portails sous la main, tous des numéros différents. Tant pis !

Oui, effectivement et écrire sur des tag vierges qui sont lus proprement par le portail. Cela permet de flasher ce que tu veux.

Et oui, le code est mainteannt public: Ellerbach/LegoDimensions: Read and write tags from Lego Dimensions. Interact with the portal. (github.com)

Tu as aussi un nuget et une application qui te permet de flasher les tags et les lire depuis un lecteur NFC PN532 (possible d’ajouter d’autres si besoin tant qu’ils sont supportés par .NET IoT). Et j’ai aussi créer un application qui permet de faire des animations, changer les couleurs, réagir à des évenement et qui prend juste un json en entrée. Dispo en application aussi (Windows et Linux) mais pas encore documenté.

1 « J'aime »