release
dev builds
extras
themes manual
wiki
device status forums
mailing lists
IRC bugs
patches
dev guide



Wiki > Main > SansaFuzePlusPort (compare)

Difference: SansaFuzePlusPort (r74 vs. r73)

Warning !! There have been several reports of malfunctioning devices and it is unclear if it is related to Rockbox or not since similar problems happen with the original firmware. Remember that you use Rockbox at your own risks risk! !

Port Status

driverstatuscomments
LCD 100% Both kinds of LCD are fully working.
Keys 90% Physical keys are handled (see (1)). Touch pad RMI driver has been implemented, some basic gesture analysis has been written but needs to be enhanced.
Music playback 100% Everything works
FM Radio 100% Everything works.
Recording 90% Everything works, need more testing to be declared stable.
Power Management 100% Everything works.
MMC 100% MMC works, I can switch the internal flash to 8-bit @48 MHz
SD 100% SD works.
USB 100% Everything works.
Manual 100% Manual should be 100% complete. Contact JeanLouisBiasini (jlbiasini) if you still notice some missing part.
Rockbox Utility 100% Rockbox Utility now fully handles Fuze+.
  • (1) The volume down key is wired to a GPIO but volume up and power button are wired to the PSWITCH pin for power up/down/recovery. The detection is made by the chip and is voltage based which means that one can detect when either one of those is down but it's impossible to distinguish between when volume up is down and when both are down. Is there another way to handle this ?

Bootloader features

The bootloader comes with a number of features which allow to recover from potential problematic situations.

Booting to the OF

The bootloader can either boot rockbox or the OF. By default it will boot rockbox. The bootloader will boot the OF if volume down is hold while powering up. This works independently from the power source. For example, the following actions will boot the OF:

  • hold volume - then press power for a few seconds
  • hold volume - then plug the usb cable (plugged into wall outlet or computer)

Note that booting to the OF might be necessary to complete a boootloader update if done with rockbox USB by putting firmware.sb to the root of the filesystem.

Building the bootloader

The bootloader can be built using three different methods. The recommend one is the automatic method using RockboxUtility. The semi-automatic method requires a working cross-compiler and a copy of the Rockbox source code.

Automatic method

  • Use RockboxUtility. Please refer to Rockbox manual for Sansa Fuze+ on how to do so.
  • RockboxUtility will ask you to provide a copy of Sansa original firmware for the Fuze+. You may manually download it from Sansa Forum Website here: version 02.38.06

Semi-Automatic method

Linux

This method requires the following things:

  • a working cross-compiler (arm-elf-eabi), see HowToCompile
  • a copy of the source code, see HowToCompile
  • a copy of the latest firmware for the Fuze+, you need to decompress it, it is be named firmware.sb

First you need to compile the bootloader, to do this follow the instructions from HowToCompile and when running the configure script, select the Fuze+ and bootloader build. After the build, you should get a bootloader-fuzeplus.sansa file (you don't need to go further than the 5. Build step in HowToCompile).

Then you need to build the mkimxboot tool in rbutil/mkimxboot. To do so, just cd into rbutil/mkimxboot and run make. It should produce a mkimxboot executable.

Finally, you need to run the tool with the correct parameters. Assuming you are in rbutil/mkimxboot, run:

./mkimxboot -i sandisk-firmware.sb -b bootloader-fuzeplus.sansa -o firmware.sb -t dualboot

You should replace sandisk-firmware.sb by the path to the firmware you downloaded from Sandisk and extracted from the archive, and replace bootloader-fuzeplus.sansa by the path to the bootloader-fuzeplus.sansa file produced by the compilation. Note that this command will produce a file called firmware.sb so if you put a copy of the firmware.sb file from Sandisk in this directory, rename it to something else like sandisk-firmware.sb before running the command.

Finally, plug your Fuze+ and put the firmware.sb file at the root of the file system, unmount and unplugged just like a regular firmware update. Note that if you already have a rockbox bootloader installed you need to reboot to the OF for the upgrade to be effective.

Of course, to run rockbox, you will also need to do a normal build of rockbox and put rockbox on your device (see HowToCompile but this time to a normal Fuze+ build and go until the 6. Install step).

If you want to boot to the OF, press Volume Down on boot (hold it, press power, wait a few seconds and release it).

Alternative method

you need

  • a compiled bootloader: see here - I will keep it up to date. Keep in mind that bootloader should be updated as rarely as possible. The actual program is in the rockbox build itself, not in the bootloader. Bootloader won't be updated as long as it works.
  • Then you also need the rockbox build itself. Updated builds can be downloaded here: http://build.rockbox.org/data/rockbox-sansafuzeplus.zip

Extract the 2 zip file to your player's root directory then perform the usual manual update via booting into OF. (Sansa recommendation applies here too: no SD card, and check that you have enough battery before performing the update)

Recovery procedure

If for any reason your device doesn't work anymore (doesn't boot, stuck in the bootloader and even the OF doesn't work or if a firmware upgrade failed). You might need to recover your device. You should not attempt this without an advice from someone knowledgeable. The point of the recovery procedure is too reinstall the OF and will remove any trace of the rockbox bootloader.

Linux

This method requires the following things:

  • a working cross-compiler (arm-elf-eabi), see HowToCompile
  • a copy of the source code, see HowToCompile
  • a copy of the latest firmware for the Fuze+, you need to decompress it, it is be named firmware.sb

First you need to compile the bootloader, to do this follow the instructions from HowToCompile and when running the configure script, select the Fuze+ and bootloader build. After the build, you should get a bootloader-fuzeplus.sansa file (you don't need to go further than the 5. Build step in HowToCompile).

Then you need to build the mkimxboot tool in rbutil/mkimxboot. To do so, just cd into rbutil/mkimxboot and run make. It should produce a mkimxboot executable.

Then you need to build the sbloader tool in utils/imxtools. To do so, just cd into utils/imxtools and run make. It should produce several executable and one of them is sbloader.

Then you need to run the tool with the correct parameters to build a recovery image. Assuming you are in rbutil/mkimxboot, run:

./mkimxboot -i sandisk-firmware.sb -b bootloader-fuzeplus.sansa -o recovery.sb -t recovery

Then put your device in recovery mode: power it off, hold volume up and plug the usb cable then release volume up after a few seconds. The screen should stay black and the device will report as a HID device.

Finally send it to your device using sbloader(replace blabla by the path to utils/imxtools)(you will probably need run it as root).

blabla/sbloader 1024 recovery.sb

If the transfer fails at the init step, you might suffer from a well-known kernel problem. See SansaFuzePlus for troubleshooting. The screen should display a few lines and the device you report as a mass storage but you OS will not be able to mount it. It should have 4 partitions. Assuming that it was detected as /dev/sdb, send the OF file to the second partition this way:

dd if=sandisk-firmware.sb bs=512 seek=4 of=/dev/sdb2

When done, unplug your device and you are done.

Battery Benchmark

See http://www.rockbox.org/wiki/SansaRuntime

-- AmauryPouly - 01 May 2011

r77 - 02 Apr 2014 - 15:38:42 - AmauryPouly

Revision r74 - 28 Nov 2013 - 21:06 - ChrisJordan
Revision r73 - 06 Nov 2013 - 12:25 - AmauryPouly
Copyright by the contributing authors.