oyooyo / audiocube

Toolbox for "audio cubes"
https://oyooyo.github.io/audiocube
53 stars 15 forks source link

Is this compatible with Lidl and Migros cubes? #1

Open bserem opened 3 years ago

bserem commented 3 years ago

Thanks for the repo, it contains a lot of useful information about these fancy audio cubes With a bit of tinkering it would allow to use the cube for custom recordings.

There seems to exist "supermarket" version of the cubes, namely Migros storybox (https://storybox.migros.ch/de/) and Lidl Storyland (https://www.lidl-hellas.gr/storyland).

Migros uses files named: M01.SMP while Lidl uses files named: L0010.SMP contrary to the code in the repo which uses just 4 digits.

At the moment I can't decrypt files of the Lidl box, and since I do not have any figures I do not know if I can encrypt them either, but I will buy some NFC tags as soon as covid19 country lockdown is lifted.

I can share files from the Lidl cube if it helps to identify the decryptrion.

bserem commented 3 years ago

A related repo: https://github.com/gro-gg/migros-hoerspiel-box (I don't speak german, but it has info about the encryption and the migros cube).

oyooyo commented 3 years ago

Hello @bserem, thanks for the interesting information!

Those "Migros Storybox" and "Lidl Storyland" devices look very interesting and similar. And actually quite superior to the "Audiocube" that was recently sold in Germany, since they seem to have buttons, which the german Audiocube doesn't have and which is a major downside in my opinion... Just out of curiosity: What are all those buttons for, do you know? (I'm a bit surprised it seems to have no less than 6 buttons). I really hope the german LIDL will sell a german version of the device as well...

As to your question: No, judging from the information in the link you posted (https://github.com/gro-gg/migros-hoerspiel-box), at least the "Migros Storybox" seems to be incompatible right now. It seems to use the same encryption (simple XOR), but a different key. And since the LIDL device seems to be pretty much identical, it probably uses the same encryption type, and maybe just yet another key.

But I'd love to support those devices as well. Adding support for their encryption would be very easy, a matter of minutes. Since you already provided all relevant information about the encryption of the Migros storybox, I will instantly add support for its encryption, probably tomorrow. And if you could somehow provide me 3-4 files from the LIDL cube, that would be perfect, that would probably be enough to figure out the encryption. Only problem is I don't really know how you could send me those files, I don't want to publish my personal email address here. Do you have an idea?

bserem commented 3 years ago

The buttons are: vol-up, vol-down, rev X seconds, ff X seconds, reload/restart (?), power on They do nothing when the cude is used as a bluetooth or usb speaker (it supports both modes, which is cool).

The lidl box comes with a 4GB microsd card (removable if you open the box, and accessible from USB so you can easily add/remove files). It has 5 files which are fairytales and an "empty" one which is to record your story, from a phone app (unlockable with a figure). I haven't heard any of those because I have no figures.

The audio files are here: https://www.dropbox.com/sh/nzon6v9bs5y3k4p/AABKpMV5IynGLdZow0wM_p9Aa?dl=1 (remove dl=1 to view them online in dropbox)

The NFC records for these files are probably these:

02200408001000
02200408001100
02200408001200
02200408001300
02200408001400
02200408001500 (custom recording)

I say probably because I can't test them, some have been published online (see photo below) and others were guessed. I have a 1kb NFC tag (not sure if it is mifare classic) but it didn't work. image

I will try to get a hold of a figure if possible but this might take many weeks due to covid19.

If I can assist you somehow please let me know, thanks!


To save you some time, xortool brute force didn't give any usable results (https://pastebin.com/d5ABNpp8)


PS: If you want I could buy another cube and send it to you, they are pretty cheap (10euros) and postage shouldn't be too much either. The figures however cost over 200euros of expenses each! The Migros cube would be a better option if we could find one (impossible in greece) since there seems to be a lot of work around it and also looks like it has a usb host port.

oyooyo commented 3 years ago

Thanks a lot for all the information!

The buttons are: vol-up, vol-down, rev X seconds, ff X seconds, reload/restart (?), power on

Ah, ok. I was hoping that maybe it also has buttons for skipping to the previous/next chapter, because I'd like to play complete audiobooks with a device like that, which are usually several hours long.

They do nothing when the cude is used as a bluetooth or usb speaker (it supports both modes, which is cool).

It even has bluetooth and USB? That's pretty cool indeed. That german audiocube is absolutely minimalistic, it only has a Micro SD card slot and a volume wheel, and that's it. :-(

I say probably because I can't test them, some have been published online (see photo below) and others were guessed.

Just to check if I understand you correctly here: The screenshot you posted is from someone who has an actual figure and read the information in the figure's NFC tag with some NFC smartphone app?

PS: If you want I could buy another cube and send it to you, they are pretty cheap (10euros) and postage shouldn't be too much either. The figures however cost over 200euros of expenses each! The Migros cube would be a better option if we could find one (impossible in greece) since there seems to be a lot of work around it and also looks like it has a usb host port.

As I understand the information on the Migros homepage, the Migros cube is no longer for sale, so I suppose it would be hard or impossible to still get one. But this seems like such a nice device for a great price, I'd really love to get one, so your offer of buying and sending me one is really really tempting... Could you maybe find out how expensive the shipping to germany would be?

BTW, I downloaded and started looking at the files (so if you want, you can remove the download links again), and found out a few pieces:

bserem commented 3 years ago

Wow, really cool news on the encryption/decryption! If I could figure out what's going on with the NFC it would be great.

The screenshot you posted is from someone who has an actual figure and read the information in the figure's NFC tag with some NFC smartphone app?

Yes, the screenshot is from a forum where they posted the "codes" of the NFC tags. I was not able to use them yet. The figures report that they use a ISO 14443-4 Mifare tag and I only have 14443-3Α. They might be compatible, but it didn't work for me.

Could you maybe find out how expensive the shipping to germany would be?

DHL reports 35euros for next day delivery(!!). I will try to figure out how to find a cheaper option and report back to you. Other services do not receive packages at the moment. I can check after the 7th of January..

oyooyo commented 3 years ago

Yes, the screenshot is from a forum where they posted the "codes" of the NFC tags. I was not able to use them yet. The figures report that they use a ISO 14443-4 Mifare tag and I only have 14443-3Α. They might be compatible, but it didn't work for me.

I have limited knowledge about NFC, but the fact that those tags seem to have a capacity of 137 bytes sounds like they are the kind of NFC tags that are known by the name "NTAG203" over here. Would be great if "NTAG213" NFC tags work as well, because those are the cheapest NFC tags currently available from chinese stores, at just about 11 cents per piece.

Could you maybe find out how expensive the shipping to germany would be?

DHL reports 35euros for next day delivery(!!). I will try to figure out how to find a cheaper option and report back to you. Other services do not receive packages at the moment. I can check after the 7th of January..

Damn, 35 Euros is definitely too expensive for me. If by chance you manage to find a cheaper alternative, please tell me.

oyooyo commented 3 years ago

Good news! I've figured out the encryption. I still have to check my assumption by decrypting one of the .SMP files and seeing if a valid MP3 file comes out, but I'm 99% sure it's gonna work fine. I will provide some more details and probably a working encrypt/decrypt script in the next 1-2 days.

bserem commented 3 years ago

Wow! That was fast!

Can’t wait to see what it was and how it works.

cratsil1979 commented 3 years ago

These 2 images may help your project. Yes this device is very interesting. I hope you can be able to decode completely

IMG_20201211_192834

IMG_20201211_192820

cratsil1979 commented 3 years ago

IMG_20201224_112613 IMG_20201224_112700 IMG_20201224_112715 IMG_20201224_112737 IMG_20201224_112832 IMG_20201224_112838 IMG_20201224_112853 IMG_20201224_112938 IMG_20201223_155120 IMG_20201224_112334 IMG_20201224_112348 IMG_20201224_112418 IMG_20201224_112439 IMG_20201224_112452 IMG_20201224_112524 IMG_20201224_112540

bserem commented 3 years ago

Can you check if you export one or more tag in a .MCT with Mifare classic tool app in android?

It would greatly help over the images.

Awesome work until now, thanks

cratsil1979 commented 3 years ago

Mifare classic tool doesn't give me correct results

IMG_20201224_144937

oyooyo commented 3 years ago

As a little christmas present, I've just uploaded a new, completely rewritten version of audiocube.py that is able to encrypt/decrypt the audio files of all three "audio cubes":

The command-line arguments have changed quite a bit, and I have not updated the documentation yet, so the usage description on the project page is incorrect right now. But here are two short examples to show you how to use the tool:

To convert the "LIDL Storyland"-encrypted file "L0010.SMP" to the unencrypted file "L0010.mp3":

$ audiocube.py storyland decrypt L0010.SMP
"L0010.SMP" -> "L0010.mp3"

To convert all "LIDL Storyland"-encrypted files "L.SMP" to the unencrypted files "L.mp3":

$ audiocube.py storyland decrypt L*.SMP
"L0010.SMP" -> "L0010.mp3"
"L0011.SMP" -> "L0011.mp3"
"L0012.SMP" -> "L0012.mp3"
"L0013.SMP" -> "L0013.mp3"
"L0014.SMP" -> "L0014.mp3"
"L0015.SMP" -> "L0015.mp3"

To convert the unencrypted file "L0010.mp3" to a "LIDL Storyland"-encrypted file "L0010.SMP":

$ audiocube.py storyland encrypt L0010.mp3
"L0010.mp3" -> "L0010.SMP"

To convert all unencrypted files "L.mp3" to "LIDL Storyland"-encrypted files "L.SMP":

$ audiocube.py storyland encrypt L*.mp3
"L0010.mp3" -> "L0010.SMP"
"L0011.mp3" -> "L0011.SMP"
"L0012.mp3" -> "L0012.SMP"
"L0013.mp3" -> "L0013.SMP"
"L0014.mp3" -> "L0014.SMP"
"L0015.mp3" -> "L0015.SMP"

The encryption/decryption is slow and ineffient right now, but at least it works. Warning: The tool will currently simply overwrite existing output files, so be careful.

FYI, the encryption of the LIDL Storyland basically works like this: Step 1: For each byte in the unencrypted MP3 file, rotate the byte's bits right by 3 bits Step 2: XOR the file with the byte array [0x01, 0x80, 0x04, 0x04]

Merry christmas!

oyooyo commented 3 years ago

@cratsil1979 Thanks for all those photos etc.! If I interpret your photos correctly, it is possible to read and write the NFC tags with the free Android app "NXP TagInfo/TagWriter". Could you maybe try to make a dump of the NFC tag? I haven't tried it yet, but the "NXP TagWriter" app seems to be able to read NFC tags and dump the content to ".twdb" files. Those .twdb files could be an easy way for people with Android smartphones to import and write NFC tags compatible with the LIDL Storyland. https://inspire.nxp.com/tagwriter/tag-writer-user-manual.pdf

cratsil1979 commented 3 years ago

I have 4 figures.

  1. Santa
  2. Deer
  3. Tree
  4. Snowman

IMG_20201224_170731

Here is the extracted .twdb by the NXP TagWriter app 4_figures_twdb.zip

and a litle more info by MIfare++ Ultralight app 4_figuresMifare Ultralight_info.zip

bserem commented 3 years ago

As a little christmas present, I've just uploaded a new, completely rewritten version of audiocube.py that is able to encrypt/decrypt the audio files of all three "audio cubes":

Hehehe, Christmas fairy tales for Christmas, who would have guessed! Excellent work and very very fast. I am still pondering how you figured out the encryption. Very well done.

cratsil1979 commented 3 years ago

As a little christmas present, I've just uploaded a new, completely rewritten version of audiocube.py that is able to encrypt/decrypt the audio files of all three "audio cubes":

  • The "Audiocube" that initially supported
  • The "LIDL Storyland"
  • The "Migros Storybox"

The command-line arguments have changed quite a bit, and I have not updated the documentation yet, so the usage description on the project page is incorrect right now. But here are two short examples to show you how to use the tool:

To convert the "LIDL Storyland"-encrypted file "L0010.SMP" to the unencrypted file "L0010.mp3":

$ audiocube.py storyland decrypt L0010.SMP
"L0010.SMP" -> "L0010.mp3"

To convert all "LIDL Storyland"-encrypted files "L.SMP" to the unencrypted files "L.mp3":

$ audiocube.py storyland decrypt L*.SMP
"L0010.SMP" -> "L0010.mp3"
"L0011.SMP" -> "L0011.mp3"
"L0012.SMP" -> "L0012.mp3"
"L0013.SMP" -> "L0013.mp3"
"L0014.SMP" -> "L0014.mp3"
"L0015.SMP" -> "L0015.mp3"

To convert the unencrypted file "L0010.mp3" to a "LIDL Storyland"-encrypted file "L0010.SMP":

$ audiocube.py storyland encrypt L0010.mp3
"L0010.mp3" -> "L0010.SMP"

To convert all unencrypted files "L.mp3" to "LIDL Storyland"-encrypted files "L.SMP":

$ audiocube.py storyland encrypt L*.mp3
"L0010.mp3" -> "L0010.SMP"
"L0011.mp3" -> "L0011.SMP"
"L0012.mp3" -> "L0012.SMP"
"L0013.mp3" -> "L0013.SMP"
"L0014.mp3" -> "L0014.SMP"
"L0015.mp3" -> "L0015.SMP"

The encryption/decryption is slow and ineffient right now, but at least it works. Warning: The tool will currently simply overwrite existing output files, so be careful.

FYI, the encryption of the LIDL Storyland basically works like this: Step 1: For each byte in the unencrypted MP3 file, rotate the byte's bits right by 3 bits Step 2: XOR the file with the byte array [0x01, 0x80, 0x04, 0x04]

Merry christmas!

Thanx again for your support. Your audiocube.py works excellent converting .SMP to .mp3 but i have problem converting .mp3 to .SMP. The storyland box is unabled to run the file... the red led light off/on rapidly. It shows us that is in reading state but without audio. Something goes wrong!

Before running your script what can i do with .mp3 track? Must i convert it to mono? Please provide your covertersion methon with details

bserem commented 3 years ago

@cratsil1979 did you rename the file after it was encrypted? You should try to name it L0010.mp3 and then encrypt it. (Haven't tried, but the file name plays a part on the migros box from I what I found)

cratsil1979 commented 3 years ago

@cratsil1979 did you rename the file after it was encrypted? You should try to name it L0010.mp3 and then encrypt it. (Haven't tried, but the file name plays a part on the migros box from I what I found)

Yes, i rename the file before run your encryption. I tried to encrypt one original previus decrypted file and works like a charm... Any idea...?

oyooyo commented 3 years ago

Thanks a lot @cratsil1979 great job! I just had a look at those .twdb files. I was hoping that those files are as simple as the .mct files used by the "Mifare Classic Tool" app, but unfortunately, they seem to be SQLITE Database files, so they are a little more complicated to create. But "NXP TagWriter" also seems to have a way to import NFC tags from .CSV files, that might be a simple alternative.

oyooyo commented 3 years ago

@cratsil1979 I see two possibilities:

  1. The player requires the MP3 files to fulfill certain requirements, like having the correct sample rate etc., and the MP3 files you encrypted somehow did not fulfill these requirements.
  2. The MP3 files you tried to encrypt were ok, but there is some other kind of security check involved, like checking for correct file size or hash or something.

You could try storing one of the original .SMP files under a different name, for example by renaming file L0011.SMP to L0010.SMP, then try the NFC tag that plays L0010.SMP and see if it correctly plays the file that was originally L0011.SMP. In that case, I would assume that possibility 1 is correct, that the MP3 file you tried to encrypt somehow uses different settings.

oyooyo commented 3 years ago

Before running your script what can i do with .mp3 track? Must i convert it to mono? Please provide your covertersion methon with details

Unfortunately, I cannot really tell you how the .mp3 track needs to be encoded. I have not converted any custom .mp3 files to .SMP files, since I don't own a LIDL Storyland device I couldn't test if it works.

Best advice I can currently give you is to decrypt one of the original .SMP files to .mp3 and then look for some software tool that can show some details about that mp3 file (for example sample rate, CBR or VBR encoding, mono or stereo etc.)

cratsil1979 commented 3 years ago

I have solved the problem. After many many tries identify that the .mp3 file must have the title of file in ID3v1.1 & ID3v2.x.

Example for L0016.mp3 file before conversion 2020-12-24_21-42-35 2020-12-24_21-43-04

All .mp3 file must encode with audacity and export as mp3 with these settings 2020-12-24_21-52-06

I wish to all of you ........MERRY CHRISTMAS Stay Helthy out there !!!

oyooyo commented 3 years ago

Well done @cratsil1979 !

After reading your posting I looked up ID3 on Wikipedia, and what I read makes me assume that the main problem is probably indeed the ID3 tags. From what I get, when MP3 was invented, there was simply no way to include metadata like artist, title etc., the MP3 standard actually only allows for audio data and nothing else. ID3 was later invented by other people as a kind of hack to come around this limitation, but the fact that ID3 is only a kind of non-standard hack comes at a price: Some MP3 players seem to have problems handling ID3v2 tags, especially the latest version ID3v2.4. That is why for compatibility reasons, some pages explicitly recommend using the older ID3v2.3 - and the MP3 files on the LIDL Storyland indeed seem to use ID3v2.3, not ID3v2.4...

Anyway: Could one of you guys maybe shoot a photo of the LIDL Storyland in front of a white background? Since this project now supports multiple devices, it would be nice to have a photo of each device on the main page, for instant visual recognition.

oyooyo commented 3 years ago

When i try to decrypt i get syntax error on line 35....

File "audiocube.py", line 35 print(f'"{input_file_path}" -> "{output_file_path}"') ^ SyntaxError: invalid syntax

Can you please advice?

Your Python version is probably too old (older than 3.6) and thus does not understand "f-strings" which were introduced with Python 3.6. I should probably replace that line with something that works in older Python versions as well - until then, the easiest for you would probably be to update Python to a newer version.

cratsil1979 commented 3 years ago

IMG_20201225_144740

IMG_20201225_145240

IMG_20201225_145315

oyooyo commented 3 years ago

Those photos are absolutely perfect, thanks a lot!

adamkalis commented 3 years ago

Thank you @oyooyo and @cratsil1979!

I'll try to upload some more photos later with all the figures and the box.

Some notes:

Thanks again! Have nice holidays!

bserem commented 3 years ago

The tag controls the file that will be played. You can try and change it to any other value or you can even try to bump the value and try to play a new file (17 for example). The first has been tested by many people, the second not yet but it is theoretically possible.

PS: if you want to get rid of the extra figure let me know :)

oyooyo commented 3 years ago
  • I've managed to encrypt mp3 with 128 constant bitrate and worked fine, so I don't think that the bitrate plays any role.

I suppose so too. I currently assume it's ultimately the ID3 tags that can cause problems:

That might indeed be the most critical part, as it could be some kind of (lousy) security feature as an attempt to stop people from using their own MP3 files. The original files all seem to strictly comply to this: The ID3v2 tag is completely empty except for having the filename without extension in the "title" field.

The ID3v1 tag of the original files however includes actual text/titles: "03_ELF TO XOTIKO_13min50sec" "02_TO ELAFAKI_13min14sec" "05_O XIONANTHROPOS_13min46sec" "04_AGIOS BASILIS_13min25sec" "01_TO ELATO KAI TO ELATAKI_12" "K_ROYGGERI_Instructions_GR_ve"

So I assume the ID3v1 tag can be used as one likes, but there needs to be a ID3v2 tag at the very start of the file whose content is critical.

I really wonder what happens if one simply swaps the filenames of two of the original files, say L0010.SMP <-> L0011.SMP. Will the device play the (exchanged) file or not?

  • The mobile app gives you the ability to record max 20min audio for the special figure of "Santa Claus wife", however the box can play more than 20min mp3 file. I guess the limit is because the mobile app uploads this recorded audio to a server from where you download it in the box with the windows software that syncs audio files.

Sound very likely indeed.

  • I had 2 figures of the "Santa Claus wife" and both play the same audio file, so it isn't possible to play two different recorded stories. Wondering if NFC tag is related somehow with the name of the audio file that will be played, it would be interesting to find it and if possible to create custom nfc tags and custom figures that play other audio files.

That should very well be possible, I'd be extremely surprised if that didn't work. At least that's exactly how the device recently sold in germany works: The NFC tag contains a certain value, out of which 3 bytes will be extracted. One of these bytes determines the subdirectory on the MicroSD-card (e.g. value 0x23 -> Subdirectory "TMB23"), the other two bytes determine the filename (eg. [0x12, 0x45] -> Filename "T1245.smp")

The LIDL Storyland might not be using subdirectories at all (does it?), but I'm almost sure it uses the same logic for determining which audio file to play.

For the intent of creating completely new audio files and corresponding figures/NFC tags, the old/original audiocube.py script had a feature that helps creating/writing NFC tags compatible with the german device. For example,

audiocube.py nfc_content 7 "Track 7.mct"

would help creating a NFC tag that, when placed on the device, would play track "T0007.smp".

I'd like to implement a similar feature for the LIDL Storyland, that will help creating completely custom NFC tags/figures.

BTW, I started an initial page for the "LIDL Storyland", where I'd like to collect all information about the device: https://oyooyo.github.io/audiocube/devices/storyland/ Maybe someone is willing to extend that page and add some more information? (For example, by creating a pull request, or by becoming a collaborator)

adamkalis commented 3 years ago

Some updates...

Thanks again... I'll play with it a little more the next days. I let you know if there are any updates.

PS @cratsil1979 What software do you use for the ID3 tags?

oyooyo commented 3 years ago

BTW, there are a few things I realized about the NFC tag content that might eventually be interesting:

  1. It seems to be a hexadecimal string representation of a 7 byte array, 02200408001300 -> [0x02, 0x20, 0x04, 0x08, 0x00, 0x13, 0x00]
  2. The first four bytes [0x02, 0x20, 0x04, 0x08] are power of 2 values, so bytes where exactly one bit is set. Probably just coincidence. But maybe some kind of flags?
  3. The device recently sold in germany is looking quite different: https://www.mikrocontroller.net/attachment/471955/Cube.png and is using a different type of NFC tag (Mifare Classic). But the content of the NFC tags still has certain similarities: https://www.mikrocontroller.net/attachment/471956/NFC.png Note the last seven bytes: [0x02, 0x19, 0x01, 0x01, 0x01, 0x00, 0x42] The byte with the red rectangle around it determines the directory, the two bytes within the blue rectangle determine the filename. Somewhat similar to the structure of the LIDL Storyland NFC tag content:
    [0x02, 0x20, 0x04, 0x08, 0x00, 0x13, 0x00] -> File "L0013.SMP" (LIDL Storyland)
    [0x02, 0x19, 0x01, 0x01, 0x01, 0x00, 0x42] -> File "TMB01/T0042.SMP" (German device)

    Both devices, while quite different in hardware etc., use encrypted MP3 files with a ".SMP" suffix. And both devices use a similar simple encryption algorithm for the SMP files, where the bytes of the MP3 are XORed with a static four byte "key".

Could be that both devices use a similar IC by the same manufacturer? In the german device, there is a 32 pin IC with the text/label on top removed with a laser to obscure what kind of IC it is. If I see correctly, the same applies for the "U4" IC in the LIDL Storyland, right? https://www.mikrocontroller.net/attachment/472031/innenleben.jpg

oyooyo commented 3 years ago

FYI, I just added an initial "create_nfc_file" command meant to help creating custom NFC tags for custom audio files, and added a directory that contains ready-to-use files for the 6(?) figures available so far.

Maybe someone wants to test this, since I can't. Would be interesting to see if it works with a cheap, blank NTAG213 tag. To test this,

  1. Copy one of the CSV files, for example https://raw.githubusercontent.com/oyooyo/audiocube/master/docs/devices/storyland/collection/%CE%95%CE%9B%CE%91%CE%A4%CE%9F.csv to the storage of your Android smartphone
  2. Open the free "NFC TagWriter by NXP" app
  3. Click "Write Tags"
  4. Click "Write from CSV"
  5. Select the :CSV file
  6. Do as the app advises in order to write the tag
  7. Test if it plays the desired audio file if the written NFC tag is placed on the device
cratsil1979 commented 3 years ago

PS @cratsil1979 What software do you use for the ID3 tags?

Just played with winamp pro -> view file info -> add title

cratsil1979 commented 3 years ago

I confirm that NTAG213 is a full combatible and cheap workable ntag (in Greece cost aprox 3.5euro/10items). Here are some of my completely new custom figures made by mineral water caps. For the history, my sons favorite figures are:

  1. The naked King
  2. Alice in wonderland
  3. 20.000 leagues under the sea
  4. The 12Labors of Hercules
  5. Karagiozis
  6. Christmas songs
  7. Τhe lazy donkey

Now my 4 years old son can choose himself what he likes.... every night, all over the year!!! This is why Storyland is now a more fun and desirable device than ever.

IMG_20210106_011208

If you don't have an Android mobile with NFC antenna you can use a cheap (5euro) Mifare RC522 RFID Card Reader with Arduino images

The script that you can use is here: RC522_storyland.zip

The only you have to change is the red digits (track number) in row 39: 2021-01-06_1-25-05

oyooyo commented 3 years ago

I confirm that NTAG213 is a full combatible and cheap workable ntag (in Greece cost aprox 3.5euro/10items).

That is great news. Those are the cheapest NFC tags available, 100 of these can be bought from Aliexpress for as little as 9 euros incl. shipping, if one is willing to wait several weeks for the delivery from china.

[...] The script that you can use is here: RC522_storyland.zip

The only you have to change is the red digits (track number) in row 39: 2021-01-06_1-25-05

Fantastic job! BTW, you could try if it's possible to use hexadecimal numbers for the value in the red rectangle. The german device works almost identical and the company that sold the device only used BCD numbers for that value, so people first thought that only 00-99 are valid, but later it turned out that hexadecimal digits work as well, increasing the maximum number of files from 100 to 256.

cratsil1979 commented 3 years ago

I have tried with FF. It doesn't work

bserem commented 3 years ago

Picard (https://picard.musicbrainz.org/) writes the metadata in a proper way so that the songs play fine afterwards. I created songs with filenames L0010 and L0016 (new) and it worked.

I also tried id3v2 in linux, but even though it writes the correct tags the files do not play afterwards. I am in the search to find a tool that I can script so as to facilitate creating new songs.

adamkalis commented 3 years ago

@bserem for linux I used kid3 copy functionality worked for me. I've copied from any of the decrypted mp3 files to the custom mp3 files. By the way https://www.audiotales.gr/volumi/ is compatible with the storyland audiocube.

oyooyo commented 3 years ago

By the way https://www.audiotales.gr/volumi/ is compatible with the storyland.

@adamkalis I'm confused, are you sure this device is compatible with the LIDL storyland?

Because that's apparently exactly the same device that was sold in germany, the one I originally called "audiocube". It has exactly the same figures, books and is by the same company ("Hachette"), even the advertising pics are identical: https://maerchenheld-sammlung.de/

adamkalis commented 3 years ago

Oops my bad, sorry I've confused them, you are right the audiotales.gr, is indeed the same with https://maerchenheld-sammlung.de/ and is decrypted by audiocube. I've edited my previous comment to fix that. :)

bserem commented 3 years ago

With the fear of polluting this thread (I really need to make a PR with the info gathered here), here is a very handy tool to merge multiple files in one: http://mp3wrap.sourceforge.net/man.html Command: mp3wrap album.mp3 *.mp3

If anyone is interested, I can share the files (encrypted) that I'll be adding in my audiocubes.

@adamkalis are the hachete tales any worth?

oyooyo commented 3 years ago

With the fear of polluting this thread (I really need to make a PR with the info gathered here), here is a very handy tool to merge multiple files in one: http://mp3wrap.sourceforge.net/man.html Command: mp3wrap album.mp3 *.mp3

What's funny is that just about one hour ago, someone on a german forum asked if there was a way that the german device could play all tales, one after the other, with just a since NFC tag. I told him that he could achieve this by merging all the individual MP3 files into a single one. And now you now mention a tool that does just that... I'm going to pass your recommendation on, should come handy for him.

If anyone is interested, I can share the files (encrypted) that I'll be adding in my audiocubes.

In case this is problematic (=copyrighted) material, better don't directly link to it from here, I want to avoid any potential troubles. Otherwise, of course, absolutely feel free to do so.

oyooyo commented 3 years ago

I'm currently updating the documentation etc., and want to mention the greek version of that hachette device.

Feels a bit stupid to even ask this (demonstrating that I know nothing about the greek language), but:

  1. Could one of you guys please simply write down the name of the greek hachette collection as shown in this photo: (I want to copy & paste that name into my text editor)
  2. Is there some standard way to map greek letters to ASCII? I'm wondering if there's a way to convert that name to an ASCII sequence, for example to be used in URLs, so that they are still somewhat readable (without escape codes). (In other words: How could one write that name if one could only use ASCII letters?)
bserem commented 3 years ago

“Hxografhmena Paramythia” would do. It’s the transliterated version of the text in the image.

It means “recorded fairytales”.

More when I get to my pc :)

DahlunaSphinx commented 3 years ago

I confirm that NTAG213 is a full combatible and cheap workable ntag (in Greece cost aprox 3.5euro/10items). Here are some of my completely new custom figures made by mineral water caps. For the history, my sons favorite figures are:

  1. The naked King
  2. Alice in wonderland
  3. 20.000 leagues under the sea
  4. The 12Labors of Hercules
  5. Karagiozis
  6. Christmas songs
  7. Τhe lazy donkey

Now my 4 years old son can choose himself what he likes.... every night, all over the year!!! This is why Storyland is now a more fun and desirable device than ever.

IMG_20210106_011208

If you don't have an Android mobile with NFC antenna you can use a cheap (5euro) Mifare RC522 RFID Card Reader with Arduino images

The script that you can use is here: RC522_storyland.zip

The only you have to change is the red digits (track number) in row 39: 2021-01-06_1-25-05

Hello, the only thing you did is to buy those NFC stickers and put files in them? I have the storyland box too. If it is not against the rules, can you please reply me in Greek? I would appreciate it, thank you for work in this!

Storylander commented 3 years ago

First of all I would like to pay my respects to @oyooyo for his great job and send regards to everyone helped making the "Lidl Storyland" and other similar devices even more useful. I finally managed to add any .mp3 file I wanted, by just using "Kid3" (with UTF16 text format) to create the appropriate ID3v1.1 & ID3v2.3 tags for each file, before encode them to .SMP with "audiocube.py" and prepare all the necessary NFC tags using either "NFC Tools" or "NFC TagWriter by NXP". But the greatest new is that, after some testing, I found out that the number of the valid filenames (able to be played) are not only 100 (L0000-L0099) as mentioned previously, but millions(!!!). That's because not only the last two digits of the filename (L00##) can be changed using numbers, but all four digits (L####) of the filename are valid to be changed using any combination of numbers, letters and symbols. I confirm I have added valid files with filenames "L10FF.SMP", "LYUPI.SMP" & "LWOW!.SMP"and played perfectly. The only thing is that I preferred to use an android app like "NFC Tools" or "NFC TagWriter by NXP" to create the NFC tags, by typing each text 0220040810FF00, 02200408YUPI00, 02200408WOW!00 respectively, instead of creating a .csv file using "audiocube.py", since the code would probably need some changes to be made by @oyooyo. The only limitation now seems to be...the capacity of the max compatible SD !!!

DahlunaSphinx commented 3 years ago

I have managed to put the .smp files in the storyland cube, but I am probably doing something wrong with the tag writing. I used both of the apps you mentioned but no one seems to work. I bought the Ntag213 ande chose the write option, then choose text and write the code of the smp file but as I put behind my phone the tag it said only that the tag is empty. It doesn't write anything on the tag. Maybe you could help me further, @Storylander

Storylander commented 3 years ago

Hello @DahlunaSphinx, Forgive me I'm asking but did you press "Tap to confirm store" button at the bottom of the screen?

DahlunaSphinx commented 3 years ago

Yes I did, but I finally managed to write the tags with the RFID NFC reader! And I am very very 😊😊😊😊😊