Didj USB Mounting

This is a list of various techniques for mounting the Didj as a USB drive under Windows, Linux, and OS X. These techniques will make the /Didj folder on the Didj available, give you access to Base/ Data/ and ProgramFiles/ where you will find most of the image and sound files used by the AppManager for the GUI, plus other various files in use, except for the underlying linux system files.

Programs Needed
Terminal Program set for 115200 8/n/1, for techniques requiring usbctl commands to be executed on the Didj.

sg3_util for SCSI Command technique in Linux.

SCSI Utility v0.1 or equivalent for SCSI Command technique in Windows.

Hardware Needed
UART connection for techniques requiring usbctl commands to be executed on the Didj.

Under Windows
With LFConnect

When connecting the Didj to Windows under USB, the contents will be mounted in this folder.

C:\Documents and Settings\All Users\Application Data\Leapfrog\LeapFrog Connect\Mnt\\0

LFConnect Software must be installed, and allowed to open for this to be accessible.

With out LFConnect

It still must be installed, but this will prevent the need to have it open.

Look in Task Manager Process for Monitor.exe, this is the program that tells LFConnect to open when Didj is plugged in. Terminate the process. This will allow you to plug in the Didj to USB with out LFConnect opening, until your next reboot. A more permanent solution is to delete this registry entry HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run\Monitor which has the value "C:\Program Files\LeapFrog\LeapFrog Connect\Monitor.exe" This will prevent Monitor.exe from starting up when your computer starts.

You will have to run this command on the Didj from a terminal, to unlock it. $ usbctl -d mass_storage -a unlock

Assigning Drive Letter

Run these commands on your Didj

/etc/init.d/lightning stop

usbctl -d mass_storage -a unlock

usbctl -d mass_storage -a enable

Make sure Monitor.exe is disabled, then plug your Didj in, and use the assigning a drive letter technique. As long as you don't allow LFConnect to open, the drive letter will be recognized, even after reboot. You will have to continue using the commands on your Didj to access it, unless you create a custom script on the Didj to handle this.

Custom SCSI Command

Turn on Didj with USB connected. Then open SCSI Utility, under devices look for "LeapFrogDidj" and right click on it, choose 'Execute Custom CDB' which will bring up the Custom CDB dialog. In BYTE 0 put the value C2, for BYTE 1 thru BYTE 9 put the value 0 in, and be sure to leave BYTE 10 thru BYTE 15 blank. CDB Size should equal 10. For Buffer Size value put 0. Then click Execute, there will be a warning dialog box, as the wrong command to the wrong drive, could cause serious issues, make sure LeapFrogDidj is the drive selected, and click Yes. On Windows XP I get a Autoplay dialog box that pops up before it asks me what I want to do. You can also lock the Didj, using the same technique but with C1 instead of C2. To eject the Didj, use C6.

Under Linux
Custom SCSI Command With scsi_custom from Didj source

Compile the program Didj-Linux-4222-20090422-1236\host_tools\scsi\scsi_custom.c with

$ gcc -o scsi_custom scsi_custom.c

Tail your messages with

$ sudo tail -f /var/log/messages

Plug in your Didj to the USB

Look in your messages for something like this

kernel: sd 5:0:0:0: Attached scsi generic sg2 type 0

Your looking for the sg with a number sg0, sg1, sg2 etc.

Now run the scsi_custom app

$ sudo scsi_custom -c unlock /dev/sg

And depending on your system, it should mount the Didj as a USB drive. Mine uses sg0 every time, once you figure out the number, you'll probably only have to run the scsi_custom app to get this work. Thanks to reddog176 for this method.

Custom SCSI Command With sg_raw

Turn on Didj with USB connected.

Tail your messages with

$ sudo tail -f /var/log/messages

Plug in your Didj to the USB

Look in your messages for something like this

kernel: sd 5:0:0:0: Attached scsi generic sg2 type 0

Your looking for the sg with a number sg0, sg1, sg2 etc.

Make sure you got sg3_utils installed, it came stock with Ubuntu 9.10 for me. The command you'll be using is sg_raw.

To unlock the Didj

$ sg_raw /dev/sg2 C2 00 00 00 00 00 00 00 00 00

To eject the Didj

First unmount the Didj

$ sg_raw /dev/sg2 C6 00 00 00 00 00 00 00 00 00

To lock the Didj

$ sg_raw /dev/sg2 C1 00 00 00 00 00 00 00 00 00

A word of caution, double check you got the right device, as the wrong command to the wrong device, can be catastrophic.

Under OS X
Easier than Windows or Linux.

Plug in your Didj to the USB

Now you can access the didj using terminal or in Finder by selecting the "Go" menu and using "Go to Folder..."

navigate to /Users/*current_user*/.lf_mount_points/

Once you have access to your Didj you can force quit LeapFrog Connect if it's bothering you. Quitting normally causes it to eject the Didj. However, you won't be able to unmount the Didj from finder, it keeps mounting again once it's unmounted. To safely disconnect the Didj you'll have to open LeapFrog Connect again and use the eject button inside the application.