Jeija / bluefluff

Reverse Engineering Furby Connect's Bluetooth Protocol and Update Format
MIT License
478 stars 82 forks source link

DLC Files aren't flashing #43

Open SaSoGaming opened 5 years ago

SaSoGaming commented 5 years ago

Hello. I've been recently tinkering around with my Furby and after lots of trial and error, I have been able to get the fluffd client working properly and I've been able to send specific actions, antenna colors, etc, to the Furby. I've been wanting to now add my own audio files and possibly images to the Furby, but decided to start with the audio first because it seemed much easier. Through lots of research and forum searching, I've been able to create an a18 audio file with the specific bitrate and such. I also have the tu003410.dlc file and all the Python programs for the audio. But now, I am unsure of where to go from here. I believe that I have correctly edited the inject_binary script to target the specific files but I am unsure if it worked and what to do with it using the fluffd client. Is there anyone that could give me some more specifics on what to do next?

I've supplied my inject_binary script below (and changed my real device name to just "name").

Furby Audio Example.zip

SaSoGaming commented 5 years ago

I believe I have successfully created my DLC file for Furby, but I am running into one final issue. As stated in a closed issue, I am currently getting this error message:

verbose: Sending flashdlc command to all Furbies, params: filename=TU003410.DLC, dlcfile=./Music_Files/tu003410.dlc verbose: generalPlusWrite: 5000113dd60254553030333431302e444c430000 verbose: GP notification: 2402 info: FlashDLC: Got Ready to Receive info: FlashDLC: Got Ready to Receive info: FlashDLC: Got Ready to Receive verbose: generalPlusWrite: 00 verbose: GP notification: 2403 verbose: generalPlusWrite: 00

Then it continues producing 0's. My path correctly leads to the folder and I have tried using both my edited DLC file and the default DLC but to no avail. In the closed issue, you said "the user fluffd is running as has read permissions". What are these permissions and where can I find them? I feel like I am close to flashing the files, so is there any other tips you could give me on how to fix this error?

EDIT: I believe I have been able to successfully fix that bug and am able to see all the data being sent to the Furby. A new problem has been created however. Once the DLC file seems to be sent to the Furby, it displays a 2405 before displaying a 2406. The DLC files also do not have neither a one or a two in the debug screen throughout the process. None of the actions work as put in the inject_binary.py and after a while the Furby will enter a strange glitch state in which it starts producing a lot of really loud sounds and having tons of different sprites and flickering images appear in it's eyes which can only be turned off temporarily using the mask but can only be fixed by removing and reinserting the batteries. It seems none of the data is actually getting to the Furby or is getting to the Furby in such a way that renders it nonexistent in the DLC debug screen which is possibly glitching out the Furby. I am unsure of what to do next and would appreciate some help if anyone is still working on this project.

Jeija commented 5 years ago

If you received a 2406 notification from Furby, this sounds to me like the transmission failed for some reason. This can happen sometimes and you'll have to try again. If you upload your DLC file, I can test transmitting it to my Furby and see if it works. But you're really close :) If your Furby ever gets to a state where it does not seem to work properly anymore, please connect it to the Furby Connect World app and wait for a couple of minutes to see if that fixes it.

SaSoGaming commented 5 years ago

DLC Files.zip

Here's the files I'm working with. The first one is a completely unedited file that is the default DLC file. The second is edited and has a longer song that's around 3 and a half minutes with the action command being 75.0.4.0. The third is also edited but is shorter at 1 and a half minutes with the action command at 75.0.0.3. The error is happening to all of the DLC files and it seems like the transmission is getting corrupted or glitched somehow. When I restart both my Furby and the server after flashing the DLC, I load up the debug screen on Furby to see that four of the 1 MB DLC slots are filled and activated without me activating them. They still do not play any of the actions/songs I have put on the file. I will continue to try different options and tinker around to find out what's failing the transmission. Thank you for responding!

EDIT: I have solved this issue but have run into yet another problem. DLC files successfully are flashed and downloaded onto the Furby (which is progress!), but whenever I attempt to load or activate the DLC files, the Furby completely freezes. It doesn't do anything for about 10-15 seconds before turning off and waking back up a couple seconds later like a soft reset. This happens with every DLC file, edited or not. I will continue tinkering around and trying to find out why this happens and how to fix it.

Jeija commented 5 years ago

Sorry for the late reply, I've been kind of busy... I can tell you that it is certainly not your DLC file's fault. I have flashed tu003410-portal.dlc to my Furby and it seems to work fine, see https://www.youtube.com/watch?v=Lb_zsFIHLP8

Maybe your BLE hardware causes some problems? Have you tried using fluffd on a different computer or with a different BLE USB stick?