Sansa Fuze Firmware Update 01.02.31 & 02.03.33

Peregrine wrote:

That will never happen PP. The Fuze has no way at all of knowing if the card you insert is A) a different card B) the same card with new music on it C) The same card missing some music.

It is just not possible to NOT do a refresh on a card insert.

 

I didn’t say anything about a card insert.  I’m talking about having the same card in the player, and simply modifying the contents of the internal memory.

A ‘dirty flag’ for the entire storage (internal or external) might be possible.And in a lot of cases it could help.

But it might not  - depending on how you access your Fuze, you might find the filemanager you use to look at the content drops invisible  little desktop.ini files all over the place to tell it how to display the folder next time you visit it…

Sadly, even some *nix filemanagers have started doing this nonsense BY DEFAULT!  Yes KDE Dolphin, I’m looking at you, you PoC!!

daytona955 wrote:

A ‘dirty flag’ for the entire storage (internal or external) might be possible.And in a lot of cases it could help.

 

But it might not  - depending on how you access your Fuze, you might find the filemanager you use to look at the content drops invisible  little desktop.ini files all over the place to tell it how to display the folder next time you visit it…

 

Sadly, even some *nix filemanagers have started doing this nonsense BY DEFAULT!  Yes KDE Dolphin, I’m looking at you, you PoC!!

 

I’ve only used Windows Explorer for modifying internal memory, and this occurs without actually looking at the expansion card, only the internal memory.

Also, if I DO use Windows Explorer to look at the expansion card, but don’t actually modify the contents of internal memory, no database refresh is done. 

This happens in both MSC and MTP modes.

By the way, the Sansa Connect handles this beautifully.  When you connect it to your PC, it creates an MTP connection but leaves the Connect menu available for playing songs, etc.  One of the menus shows the counts of playlists, artists, albums and songs on the player.  When you copy a song to the player (either to the internal memory or the expansion card), you see the counts increase as expected … in other words, it refreshes its database WHILE you’re syncing media to it.  When you detach the player, it doesn’t do a database refresh at all, regardless of whehter you updated the internal memory or the expansion card.

Unfortunately the Connect’s firmware was developed by Zing (now owned by Dell), not SanDisk, so I know they can’t lift this bit of the firmware and transfer it to the Fuze … but it does prove that it’s possible.

Message Edited by PromisedPlanet on 01-26-2010 09:04 AM

That’s what it looked like. You said “read the contents of an inserted card”.

My bad. :wink:

Peregrine wrote:

That’s what it looked like. You said “read the contents of an inserted card”.

 

My bad. :wink:

 

Oops, you’re right, I did say that.  MY bad.  :wink:

Just what is possible?  SanDisk has actually implemented something cool on the humblest Sansa, the slotMusic player.  This wee beastie keeps track of the last song played, even if the µSD card is swapped, meaning that the information is held on the card.

This is exactly how I would personally do it.  On shutdown, simply store the status as a temporary (upgraded each cycle) “note” file.  That database refresh time can easily be minimized.  All it takes is a little more code.

Viva la Sansa!

Bob  :smileyvery-happy:

neutron_bob wrote:

 

This is exactly how I would personally do it.  On shutdown, simply store the status as a temporary (upgraded each cycle) “note” file.  That database refresh time can easily be minimized.  All it takes is a little more code.

 

Viva la Sansa!

 

Bob  :smileyvery-happy:

Bob;

 

What’s possible is the ability for a player to be aware of what media is being copied to / deleted from it, and immediately refresh its internal database with just that delta, without having to re-read the entire contents of its internal memory and expansion card.

 

Not sure I understand the suggestion regarding shutdown.  This is an issue regarding the firmware being aware as to whether or not the contents of the expansion card have been modified once a sync operation has been completed.

 

The database itself appears to be stored on flash, as it is not rebuilt upon startup.

 

 

Message Edited by PromisedPlanet on 01-26-2010 04:14 PM

I’m just a little confused.  There’s this Phillips mp3 player that doesn’t refresh when I put music on it.  I unplugged it and it just started up.  No refresh.

Am I missing something? 

saxmaster765 wrote:

I’m just a little confused.  There’s this Phillips mp3 player that doesn’t refresh when I put music on it.  I unplugged it and it just started up.  No refresh.

 

Am I missing something? 

 

Depends on what you’re confused about … :wink:

Having the Sansa append the database file without having to go through the whole “refresh” is a key method in shortening the process.  Perhaps this can be added in a future firmware build.

As we are loading our Sansas with larger µSDHC cards, it makes sense for SanDisk to address this issue.  It will improve the overall experience with the device, and it will encourage sales of larger capacity cards too.

Bob  :smileyvery-happy: 

@promisedplanet wrote:


What’s possible is the ability for a player to be aware of what media is being copied to / deleted from it, and immediately refresh its internal database with just that delta, without having to re-read the entire contents of its internal memory and expansion card.

How would that be done? In neither MSC or MTP mode the Fuze is ‘active’ and it doesn’t ‘know’ anything about the data that is being copied to it or deleted from it. It’s basically a dumb storage device. That’s why the Fuze is scanning all its storage each time for all the files that are there, and removes removed files from the database while adding new files to it. 

What would make more sense to me is that the Fuze boots straight to its menu, allowing you to use it normally, but updates the database in the background. Of you course you can’t expect newly added files to immediately show up, and you need a way to deal with selecting files from the database that have been removed already. As long as you would try to play files that had been on the device before, it would still work without the refresh and it can do that refresh in the background where nobody cares too much how long it takes.

(Btw, this updating in the background is how it is done in Rockbox. I have no idea about other firmwares on other players, as I don’t own any other that need a ‘database refresh’).

Message Edited by 7o9 on 01-26-2010 10:51 PM

7o9;

“How would that be done?”

I guess it would be done the way the Sansa Connect does it, right?

Message Edited by PromisedPlanet on 01-27-2010 09:14 AM

Upon transfer, the Fuze does manipulate the freshly transferred files a bit.  If you transfer a video, there’s a wee thm file with a screen capture.  If you transfer an audio file with “podcast” in the genre field, the Sansa “steals” this file over to the podcast folder.

I’ve wondered if making a large transfer of music files “en masse” overwhelms the process a wee bit, as several users have reported.

I’d love to see the code changed a bit to streamline the database refresh, in regards to “append” versus “rebuild completely” upon music transfer.  With a µSD card, a simple ID file can be stored on the card, allowing the Sansa to recognize a “familiar” card.  There are quite a few possibilities available, depending upon the time-to-coffee ratio in development.

Bob  :smileyvery-happy: 

Before I say this, I don’t really know anything about programming (except, ironically, a little BASIC).

Would it be possible for it to refresh only the parts that have changed?

Interesting theory, except what happens if a card is removed, modified externally, then reinserted?  What if the Fuze creates a list of files, as well as any other relevant data, including the date that the file was modified, and ID3 data (maybe some kind of *.ini file?), and quickly add/remove/mod data while it scans.  Then, it could *hopefully* just perform a basic scan.  My idea is that it will look for the date of the last modification while it scans current files, and not updating information that may have changed.  Also, what if Sandisk adds a *complete manual refresh* button, just in case something weird happens.

Interesting.  If the card has had anything written to, or removed from (which is actually a rewrite), the card, there’s going to be a change in the file allocation table / directory table.  We could use a checksum method, comparing the log generated by the Sansa with the tables on the card.

Bob  :smiley:

Has anyone else experienced the disappearance of “Goodbye” after doing the firmware update?

Fred

Running 01.02.31; Goodbye message is still present.

Another technique might be for the Fuze to retain a config file for every card inserted.  Most users will only have a handful of cards so the amount of data wouldn’t be huge and it wouldn’t be hard to add some user settings to aid in managing cards.

neutron_bob wrote:

Upon transfer, the Fuze does manipulate the freshly transferred files a bit.  If you transfer a video, there’s a wee thm file with a screen capture.  If you transfer an audio file with “podcast” in the genre field, the Sansa “steals” this file over to the podcast folder.

 

I’ve wondered if making a large transfer of music files “en masse” overwhelms the process a wee bit, as several users have reported.

 

I’m not sure how this explains why the Fuze chooses to re-read the microSD card when just the internal memory’s contents have been modified.

 

It seems like the firmware’s algorithm is basically “if anything has changed, re-read everything”.  Apparently it DOES know that some media has changed.  It just doesn’t know what, or where.  Unlike the Sansa Connect.