Custom Tags for Toniebox

A step by Step Guide to implement your own custom RFID tags.

In this Blog post the focus is on custom tags that works with the Toniebox. I will guide you through the steps of using own RFID tags with Content that is already on your build in SD card of the Toniebox.

Like I described in earlier posts, within the Tonie figurines is a RFID Chip installed. This Chip consists of a total of 40 bytes length. 8 bytes are used for the UID, a unique identifier, and 32 bytes are used within the tag memory (4 blocks with 8 bytes each). The UID, like it is said by the U for unique is a identification number that only exists once within the whole Tonie universe (or only once within the RFID Standard according to NXP).

How does the RFID Chip controll the Toniebox?

As soon as the Tonie figurine is placed on top of the Toniebox, the Toniebox does some magic (deactivating the privacy mode with a given Password by Boxine) to the tag, before this is telling its UID to the Toniebox.

At first the Toniebox will make sure that the Chip within the RFID Tag is according the defined standard. It needs to be a NXP ICODE SLIX-L Chip. To verify this it checks the first three bytes being equal to “E0 04 03”. “E0” descibes the iso15693 standard, “04” says that the Chip manufacturer is NXP and the “03” defines the ICODE SLIX-L standard. If this is not given, the Toniebox will do nothing at all. Not even an error message or LED blink can be heard nor seen.

If the first step passed, at second the Box verifies the UID to the Content on its build in microSD card and checks whether the needed audio files are already downloaded from the Tonie Cloud. If this is the case it checks the audioID of the stored audio file (an ID that is generated by Boxine when the audio content is encoded prior to the release of this Tonie) to the actual audioID within the Tonie cloud. If these do not match, it will reload the content from the Tonie cloud. If the audioIDs match, it will start playing the audio files from the build in microSD card.

Just because I got this question alot:
Although two figurines look the same and play the same audio content, they will ALWAYS have different UIDs and different memory content. In addition there are no information stored within these 40 bytes, that will tell you in which type of Tonie this RFID tag is installed. The information of UID to audio Content is ONLY stored within the Tonie cloud. The 32 byte stored within the memory seems to be a kind of checksum. These 32 byte are only used for verification with the Tonie Cloud. Without the right content to a given UID a download of audio from the Tonie Cloud is not possible and is blocked.

But what happens when the Toniebox is Offline?

When the Toniebox is not connected to the internet (either manual set to offline mode or out of reach to the next known WLAN), it will just skip the verification of the audioID and will start directly with the playback of the audio content.

How can custom RFID Tags be used?

The most important thing is that the Chip of the custom RFID Tag has to be an ICODE SLIX-L type. Then it is important, that the password for the privacy mode is either set to the standard password given by NXP, which is set during production to “0F0F0F0F”, or the password needs to be the Boxine given password like all the Tonie figurines have.

Besides of this the tag can be used without any modification to the memory of the RFID tag.

The secret lays within the directory and file name!

Like described earlier, the Toniebox verifies the UID to the Content on the build in microsSD card. For a UID like “E0 03 04 50 12 34 56 78” the Toniebox is looking for a file with the name “500403E0” within a directory named “78563412”. That means that the directory name consists of the last four UID bytes in reverse byte order, and the file name consists of the first four UID bytes in reverse byte order.

How can I get the UID of a custom tag?

The UID can be read with several Android or iPhone Apps directly from the tag. For Android the best is the NXP TagInfo App (here), for Apple iOS the NFCmanager (here) works very well. If you have a proxmark3 (RFID development tool) you can use this one as well. Another possibility is to build your own reader hardware with an Arduino and an RFID reader like the PN5180 (not the MFRC522, this is iso14443 only!). The Arduino solution with an ESP8266 and a PN5180 will be introduced within an upcoming Post.

ATTENTION:
Do not put the custom tags on top of the Toniebox prior you read the UID because the Toniebox will activate the privacy mode of the tag. With this enabled you will not be able to read the UID. And disabling the privacy mode is not easy at all. It can be done with the Arduino setup, or with a special Firmware by [g3gg0] from Team RevvoX (LINK).
Another way of disabling the privacy mode is the “Knock Methode”. I figured out that you can place a RFID tag on top of the Toniebox and lift it off again quickly, before the Toniebox is able to activate the privacy mode of the tag again. This all needs to be done within half a second. The easiest way is to knock the tag gently on the surface of the Toniebox reader and immediately lift it of again. That’s why I call it the “Knock Methode” or in German the “Klopfmethode”.

What happens to the online verification?

The online verification still happens. But the Tonie cloud server does not know anything about the given UID of the custom tag. Therefor this verification step is skipped. This leads to a direct playback of the audio content on the microSD card.

Where to get custom RFID tags for the Toniebox

Like mentioned it needs to be an NXP ICODE SLIX-L chip within the RFID tag. This specific tag is not used a lot which means you can not get it at your standard RFID Tag dealers…
But if you look close enough, you will find some sellers online.
They will either sell with their own online store or you can find them at eBay Kleinanzeigen. I got tags from all three and therefor can give you one important advice. Make sure that the tags you are buying are the ORIGINAL ones from NXP. The full name is “NXP ICODE SLIX-L“. Some of them are selling ICODE SLIX-L tags with a Chinese clone chip build in that work according to the specs. But due to a design error within this clone chip these have the potential to fail. This happens usually during a command that is send from the reader to the tag within the first second after a tag is placed on top of the Toniebox. Taking the Tag off the RFID reader within this first second will risk the tag and you might loose it for good.
The seller I can recommend is [RFIDfriend] at eBay Kleinanzeigen. He sells original RFID sticker tags with a diameter of about 32 mm (LINK).
If you rather like to have cards, you could buy some colored blank cards and just place one of the RFID sticker tags on one side of the card (LINK).

All information in short:

  • get custom ICODE SLIX-L tag
  • read the UID
  • change directory and file name on microSD card
  • start enjoying your own tag creations.

Any Tools for easier success?

Most of the needed steps can be done with the Software TeddyBench by Team RevvoX (LINK). In combination with a Proxmark3 it is a snap of linking new tags to audio content that is already on the microSD card.
Therefore you just need to insert the microSD card into a card reader of your PC, start TeddyBench, double click any given content and place a custom tag on top of your proxmark (or enter the UID by hand in case of proxmark not pressend).
All this will be explained in detail in an upcoming post just about TeddyBench.

Comments are welcome

This article is mostly inspired by questions I get from community members within the Team RevvoX Telegram Channel or directly via eMail. Hope that a lot of these information will help all of you to make your own progress and first steps within the custom Tag universe.
If you think that something is not really understandable or I should go a bit more into the depth of this subject, please leave your comments below. Addition questions are always welcome as well.

19 Gedanken zu „Custom Tags for Toniebox“

  1. Guten Abend Gambrius,

    oh man, ich hoffe, mein Englisch reicht aus, um deinen test komplett zu verstehen… wenn ich es richtig verstanden habe, dann benötige ich NXP ICODE SLIX-L, Größe egal, je größer, desto besser die Erkennung bzw. freie Positionierung auf der Box…. dann den proxmark, um die RFID auszulesen und teddybench, zum die audiofiles zu decoden… vorgehen wäre also, proxmark an den rechner anschließen, RFID auslesen, audiofiles erstelle, sd card ausbauen und audiofiles draufspielen, wieder einbauen und RFID chip verbauen… wann kommt deine klopfmethode zum Tragen?

    Antworten
    • Hallo Heidi,
      Du wirst sehen, wenn Du das ganze erst einmal gemacht hast, fällt auf dass es gar nicht so kompliziert ist.
      Den Proxmark brauchst Du nicht unbedingt, ist aber mit dem TeddyBench in Kombination sehr hilfreich. Ansonsten kannst Du die UID auch mit einer HandyApp auslesen (siehe meinen Post diesbezüglich).
      Jedoch kannst Du mit der HandyApp die Tags nur auslesen, wenn diese noch nicht auf der Toniebox lagen. Denn die Toniebox aktiviert bei allen Tags den privacy Mode. Und genau hier kommt die Klopfmethode zum Einsatz. Mit der Klopfmethode kannst Du den privacy Mode deaktivieren, ohne dass Du da aufwändig mit dem Proxmark oder anderen Tools fie Finger brechen musst. Danach kannst Du die Tags dann wieder mit dem Smartphone auslesen.

      Im Prinzip reicht es, wenn Du die SD Karte ausbaust und diese in einen Kartenleser steckst. Dann TeddyBench startest und entweder auf ein bereits vorhandenes Audiobook via Doppelklick eine UID Deines custom Tags, welche Du zuvor mit dem Smartphone ausgelesen hast, eingibst. Oder Du markierst ein paar mo3s, ziehst diese alle zusammen in TeddyBench rein und gibst dann dort in dem erschienenen Fenster die UID ein.
      Danach nur noch die Karte zurück in die Box und FERTIG.
      Dein custom Tag sollte laufen.

      Wenn Du einen Proxmark hast, dann kann dieser das auslesen der UID direkt in TeddyBench übernehmen. Dann würdest Du Dir die Schritte mit dem Smartphone sparen können.

      Berichte mal, ob alles so geklappt hat.
      LG,
      Gambrius

      Antworten
  2. Hier ist die Seite von NXP zu dem RFID-Tag: https://www.nxp.com/products/rfid-nfc/nfc-hf/icode/icode-slix-l:SL2S5002_SL2S5102

    Ich erkenne keinen offensichtlichen Unterschied zwischen den drei Varianten SL2S5002FTB, SL2S5002FUD und SL2S5102FUD. Sollten die alle funktionieren?

    Den ersten gibt es ab 5 Stück für knapp 26 Cent by Farnell/AVNet: https://de.farnell.com/nxp/sl2s5002ftb-115/rfid-lesen-schreiben-13-567mhz/dp/3128729
    Den zweiten und dritten bei AVNet ab 1 Stück für knapp 19 bzw. 23 Cent: https://www.avnet.com/shop/emea/products/nxp/sl2s5002fud-003-3074457345634454746
    https://www.avnet.com/shop/emea/products/nxp/sl2s5102fud-003-3074457345629779423

    Die meisten sonstigen Bezugsquellen erfordern Großmengenabnahme.

    Antworten
    • Hallo,
      auf den von Dir genannten Seiten werden NUR die Chips angeboten. D.h. es ist weder eine Antenne noch ein kompletter Tag enthalten. Der Chip ist meistens Stecknadelkopf groß und kann so nicht verwendet werden! Hierzu gehören einige Lötskills um die drei Anbindungspukte mit einem Draht zu belöten.
      In einem zukünftigen Post wird gezeigt werden, wie man einen TonieTag selber bauen kann. Dazu gehört aber neben dem NXP Chip noch ein Ferrit Kern und eine Antenne (gewickelt aus 0,2mm dickem Draht).

      Deshalb ACHTUNG: Diese Chips funktionieren nicht direkt!

      Gruß,
      Gambrius

      Antworten
  3. Hallöchen,

    da ich mich noch scheue an der original SD Karte rum zu experimentieren. Könnte ich das auch mit einer anderen microSD probieren, oder erkennt die Box nur das Original? (was mir logisch erscheint)

    Antworten
    • Hallo Steffi,

      Du kannst einfach eine andere microSD Karte nehmen. Es laufen jedoch nicht alle Modelle. Erfolgreich konnten wir bis jetzt sämtliche Typen auch bis 32GB oder größer der Fa. SanDisk testen.
      Die Karte muss mit FAT32 formatiert sein.

      Sobald Du die Karte in die Toniebox steckst, wird diese durch die Box initialisiert und kann genutzt werden.
      Du kannst auch die Daten der original Karte auf die neue rüber kopieren, somit würdest Du mit dem selben Stand auf der Testkarte starten.

      Gruß,
      Gambrius

      Antworten
  4. Hallo Zusammen

    Ich habe mit TeddyBench erfolgreich Custom Tags mit Inhalte befüllt, sie waren auch 1-2 Mal über die Toniebox abspielbar. Nach ein paar Tagen, den gleichen Custom Tag wieder auf die Box gelegt kam ein Fehler mit dem Codewort Murmeltier.

    Der Folder unter Content ist noch vorhanden, jedoch der Inhalt nicht mehr. Ich habe das Gefühl, dass sporadisch nach einem Connect mit der Tonie-Cloud etwas gelöscht wird.

    Oder gibt es eine interne Routine im Toni Betriebssystem, welche die Grösse der Files ansieht und dann löscht, wenn sie zu gross sind?

    Mein(e) Files waren so zwischen 250-300MB, weil ich auf 5 Custom Tags 99 Folgen unterkriegen wollte.

    Kennt jemand dieses Verhalten?

    Antworten
    • Hallo Sven,
      Sehr gut, dass Du das soweit hinbekommen hast und die custom tags auch funktionieren.

      Das von Dir beobachteten Phänomen, dass die custom files gelöscht werden, sobald Du ein custom Tag drauf legst, ist erst seit dem Softwareupdate vor zwei Tagen der Fall. Dabei handelt es sich um die erste Gegenmaßnahme von Boxine gegen die Custom Tags.
      Ich habe direkt nach Auftreten der Probleme einen Blog Post veröffentlicht, der detailliert auf das Problem und darauf wie man das Löschen verhindern kann, eingeht.
      Schau Dir diesen Artikel einfach an und versuche die Schritte umzusetzen.
      Gruß,
      Gambrius

      Antworten
      • OK, habe es gelesen und verstanden, funktioniert auch so. Ist schade das so reagiert wird, ich habe gut 30 originale Tonies. Die Beschränkung der Kreativ-Tonies war für mich der Grund nach einer Lösung zu suchen, mit den Custom-Tags. Schauen wir mal, wie es weiter geht – wie du geschrieben hast, das Spiel kann beginnen….

        Antworten
  5. Noch eine Frage:

    Mir ist aufgefallen, das bei einem custom tag, der letzte Stand vom Titel sprich die Zeit wo das Tag entfernt worden ist nicht gespreichert wird. Entfernt man das Tag und setzt gleich im Anschluss wieder auf die Box, so wird mit dem ersten Titel bei Spielzeit 0:00:00 begonnen. (Die Box war nicht aus und es wurde auch kein andere Tag oder Tonie drauf gestellt in der Zwischenzeit.

    Antworten
    • Hallo Sven,
      usually the play time of the last used Tonie will be saved. But not for CreativeTonies that are in LIVE Mode. They will always start at the very beginning. This LIVE Mode is set with the file attribute within the file system. If the file attribute “hidden” of the audio file on the SD card is set, than the LIVE Mode for this file is enabled. Due to the Firmware Update some of the custom files will get set to “hidden”. You can get around this: If you select your custom files on the SD card and unset the attribute “hidden” and set them to write protect, they will act normal like it did before.

      Antworten
    • Hallo Sammy,
      Rule of thumb is that smaller tags are less good to read. Means that the positioning of the tag ontop of the reader needs to hit the sweet spot.
      The tags mentioned within your URL will not work, because they do not fullfill the right chip standard. It es mandatory to use an NXP ICODE SLIX-L chip within your tag.

      Are you based in germany?

      Antworten
  6. Oops, sorry, I thought I had checked and double checked the correct chip-standard name, but missed the L at the end. 🤦🏼‍♀️ Thanks for the information!

    Yes, I’m in Germany.

    Antworten

Schreibe einen Kommentar