Description of my experiences with setting up and managing custom Tonies


I’ve tested the TeddyCloud for a week now. I’ve customized the two boxes for my kids (both CC3200 boxes, where I flashed the HackieboxNG bootloader).

Here are my information:

Original Tonies:

To download new Tonies from the TonieCloud, “Cloud enabled” must be turned on. Currently, this is also okay because custom “Tonies” can be added with “nocloud: true”.

When an original Tonie is placed on the box, a subfolder with the serial number is created in the “/content/default/” folder + a 500304E0.json file is created in this directory (sometimes with a slightly different name).

Additionally, a file is downloaded via the TonieCloud:
which contains the audio content and is linked in the 500304E0.json file as:
“source”: “lib://by/audioID/.taf”

This sometimes took a moment for me or was completed only on the second placement? I didn’t investigate this thoroughly, though.

Creating Custom Tonies:

Get a suitable chip.

Read and save the chip serial number using an NFC reader before placing the chip on the Toniebox for the first time (the Tonibox prevents reading the serial number). However, the serial number is also displayed later in the web interface (which still makes it somewhat easier to find the new chip).

Afterward, read/place the chip once with the Toniebox. This will create a folder in TeddyCloud with the serial number + a 500304E0.json file in this directory. The property “nocloud: true” is also set during this process.

Just like a custom chip, an existing original Tonie can be modified.


  1. Set up web radio:

In the file system, change the file 500304E0.json in the directory with the serial number to:
“source”: “”,
save it.
When this Tonie is placed on the box, the Mouse Radio will play after some time (10 sec?).

  1. Imitate an existing original Tonie:

In the file system, change the file 500304E0.json in the directory with the serial number to:
“cloud_ruid”: “”,
“cloud_auth”: “”,
“cloud_override”: true,
“tonie_model”: “<Value/Identify of the source Tonie>”,
save it.

“tonie_model” can also be set via the new web interface: Info → Model → ? → save. This will display the Tonie in the web interface with the corresponding image. I think this is also automatically set during the next placement and download?

  1. Link custom content:

In the “old” web interface, set the File Viewer to Library and create a subfolder in the Library directory using “Create Directory”.
Enter a retrievable name for your custom Tonie content using “Show Audio Encoder” and “Target filename”, and select the corresponding data using “Select Files”. Then create the .taf file using “Upload” (the music files will be converted accordingly) → this takes a bit of time + I also don’t get any feedback.

Then, in the “new” web interface, click the pen symbol for the Tonie and select and save the file in the Library directory.

Additionally, in the file
for custom Tonies with custom content/web radio, an entry (within square brackets, separated by commas) should be created with the following structure:
“no”: “0”,
“model”: “custom-004”,
“audio_id”: [
“hash”: [
“title”: “Die Sendung mit der Maus zum Hören”,
“series”: “WebRadio”,
“episodes”: null,
“tracks”: [],
“release”: “1189720800”,
“language”: “de-de”,
“category”: “audio-play”,
“pic”: “

For custom content, the audio_id + hash must be copied from the old web interface’s Library file.
In the new web interface, for the Tonie → “i” → Model, the unique audio_id must be entered and saved. This will display the information + image.

However, I had to restart the server after making changes to the file (there probably is an appropriate API command?).

The search in the window is case-sensitive, which might need to be adjusted.

This way, your custom Tonies will also be displayed like the originals.
As an improvement suggestion:

one/multiple categorization labels per Tonie. This could hide borrowed or original ones to only display your own “travel Tonies”, for example. Or to filter the Tonies with custom content to find and update them more easily.

Maybe my experiences will also help someone else.
Thank you very much for your great work!

Good summary.

I assume you are using the 0.4.5 version of teddycloud? I recommend to have a look into the develop version. The /web gui has some new features, like the audioencoder and so.

Your feature requests are already existing. Have a look here and add anything if you think something is missing:

One of the goals is to be able to use the new /web gui for all the stuff you want to do. But it’s a way to go to reach that.

This is a „known“ behaviour, but not yet sure if it’s a feature or bug. I tend to bug also.

This should work also using the edit tag functionality in new web gui. No need to edit the json directly.

There is a wiki for that already, feel free to improve: