Issues with Custom Tonie, last play position not stored after reaching ~ 196 minutes

Hi all

Not sure if I should post this in the TeddyCloud section or if it’s rather related to the hardware itself.

I created a custom tonie using RFIDfriend’s NFC tags to which I assigned an upload with 31 tracks and a total play time of around 348 minutes.

Now with my C3200 hacked Toniebox I have the following issue:
Let’s say I’m listening to it and reach 200 minutes (track 19). I then remove the custom tonie and as you would expect the Toniebox stops playing. When I put it back it plays from right where it stopped so no issues here.
However, if the Toniebox was turned off in between it always starts at around 196 minutes (~196:38 [11798 seconds], track 18) and not where I left off no mather what. If I had listened to it for let’s say 50 minutes from the beginning and the box is turned off, it properly continues playing.

It seems that it has something to do with the length or the tracks.

I already deleted the stored tonie from the sd card to have it redownload it, deleted the taf file and reuploaded and -encoded it but the issues stays.

Is anyone else having similar issues? Does any one have an idea how I could fix this issue?

Thanks in adance.

Cheers

This is a technical limitation of the cc3200 implementation of the resume feature.

It may be solved with a patch, but I won’t implement it.

PS: great to investigate the problem so deeply.

Ah, I see. I have a second CC3200 lying around and have to check if it has the same problem.

Am I guessing right that the ESP32 variant doesn’t have this issue?

I’m no C specialist by all means but just out of curiosity would you be able to point me at the problematic code of the CC3200? I assume it would need a patch like the one which patches the URL for TeddyCloud to alter the original firmware.

I don’t know. But as the cc3200 some special very small memory for that, I think it may work with the esp32, as it needs to function very different.

You’ll have to reverse engineer the firmware for that (with ghidra) und then develop a solution. In theory it would be enough to divide the saved value by 8 and multiply it by 8 after reading.
But finding it is the hard work.

Ok I see. Maybe when I’ve got some spare time, I’ll look into it.