Difference between revisions of "Didj"

From eLinux.org
Jump to: navigation, search
(Project Status and Issues)
(Tutorials/How To's)
 
(102 intermediate revisions by 4 users not shown)
Line 1: Line 1:
 +
'''This device is part of the [[LeapFrog_Pollux_Platform | LeapFrog Pollux Platform]], it's recommended to start there for general information.'''
 
[[image:didj.jpg|right|350px|thumb|The LeapFrog Didj]]
 
[[image:didj.jpg|right|350px|thumb|The LeapFrog Didj]]
  
== Project Summary ==
+
== Summary ==
 
The Didj was a toy produced by Leapfrog marketed for educational games for children aged 5-10.  
 
The Didj was a toy produced by Leapfrog marketed for educational games for children aged 5-10.  
  
Line 14: Line 15:
 
* Accessed the UART features in the cartridge slot
 
* Accessed the UART features in the cartridge slot
  
== Project Goals ==
 
Here is a place to list all the the goals or wants that we have for this project.
 
  
* [http://en.wikipedia.org/wiki/GP2X GP2x] / [[GP2X_Wiz]]
+
== Platform ==
** Port Libraries
+
[[LeapFrog_Pollux_Platform | LeapFrog Pollux Platform]]
** Flash Player
 
** Emulation ([http://www.globalgph.com/m3/sub4.php Wiz Emulators])
 
*** NES
 
*** SNES
 
*** Gameboy BW/Color/[[Didj_gpSP_GBA_Emulator | Advance]]
 
*** Gamegear
 
*** MAME
 
*** Atari 2600
 
*** Colecovision
 
*** Others
 
* GUI
 
** Custom or Modified
 
*** Customizable Themes
 
* Homebrew Games
 
* Overclock Processor
 
  
== Project Status and Issues ==
+
The Didj is part of 3 different devices that all share a common hardware platform, based around the [[Pollux]] SoC. The platform page contains information generic across these devices, and it is recommended that you refer to that page as it is a good starting point to understanding the Didj, and contains some basic How To's and Tutorials to get you started.
  
* [[Didj_Issues|Project Issues Tracker]]
+
== Boot Loader ==
* [[dev_calender|development calender]]
+
* [[Didj_Lightning_Boot| Lightning Boot ]]
 +
* [[Didj_U-Boot| U-Boot ]]
 +
* [[Didj_Emerald_Boot| Compile and Install Emerald-Boot]]
  
== Emulators ==
+
== Sources and Toolchains ==
[[Didj_gpSP_GBA_Emulator | GBA Emulator]]
+
* [[LeapFrog_Pollux_Platform:_Source_Code| Sources and Toolchains]]
  
 
== Tutorials/How To's ==
 
== Tutorials/How To's ==
''' Getting Started '''
+
''' General '''
* [[Getting started hacking the didj| A guide to your first steps hacking the didj ***in progress***]]
+
* [[Didj_Common_Commands|Common Commands Reference]]
 +
* [[LeapFrog_Pollux_Platform:_Console_Access|Console Access]]
 +
* [[LeapFrog_Pollux_Platform:_Cartridge| Cartridges]]
 +
** [[LeapFrog_Pollux_Platform:_Cartridge_Settings| Cartridge Settings]]
 +
* [[LeapFrog_Pollux_Platform:_Extract_Archives| Extract lfp/lf2 Archives]]
 +
''' Networking '''
 +
* [[Didj_Enable_Networking| Enable Networking via USB Gadget]]
 +
* [[Didj_Install_Dropbear| Install Dropbear SSH]]
 +
* [[Didj_MP3_Streaming| Playing MP3 network streams and files]]
 +
* [[LeapFrog_Pollux_Platform:_Networking| Networking Setup]]
 +
* [[LeapFrog_Pollux_Platform:_Networking_Applications| Networking Applications]]
 +
* [[LeapFrog_Pollux_Platform:_Internet_Access| Internet Access from Device]]
 +
* [[LeapFrog_Pollux_Platform:_Mount_NFS_Directory| Mount NFS Directory]]
  
''' Booting From External Sources '''
+
''' USB Storage '''
* [[Didj_UART_Boot_with_Linux_Host|Boot Didj from UART Connection - Linux]]
+
* [[Didj_USB_Mounting|USB Mounting Under Windows, Linux, and OS X]]
* [[Didj_Boot_From_UART|Boot Didj from UART Connection - Windows]]
+
* [[Didj_SCSI_Commands|SCSI Commands]]
* [[Didj_JTAG_How_To|Booting an image over JTAG - Linux]]
 
* [[Didj_lightning_boot_1.6|Lightning-boot 1.6 update ]]
 
* [[Didj_lightning_boot_2.0|Lightning-boot 2.0 update ]]
 
 
 
'''Build Environments'''
 
* [[Didj Kernel Build Environment|Creating a Kernel Build Scratchbox]]
 
* [[Didj Build Environment|Setting up a Cross Compiler Build Environment and Basic Usage]]
 
* [[Didj crosstool-NG Build Environment|An alternate cross compiler, built with crosstool-NG]]
 
* [http://files.poxlib.org/LeapFrog/RidgeRun-toolchain-369009.tar.bz2 RidgeRun Toolchain]
 
  
''' Flashing the Didj'''
+
''' Cartridge '''
* [[Didj_BootLoader_Firmware_Updating|Updating Bootloader/Firmware over USB]]
+
* [[Didj_Make_ATAP| Make an ATAP NAND Cartridge]]
* [[Didj_U_Boot_Flashing_Primer|U-Boot NAND Utilities and Bootloader Update]]
 
* [[Didj_U_Boot_Flashing_Kernel|U-Boot Nand Utilities and Kernel/File System Update]]
 
* [[Didj_Full_Recovery|Full Recovery Steps Using U-Boot]]
 
* [[Didj_Make_atap|Flash an ATAP firmware to your didj and make an atap/mfr cart]]
 
  
''' Hardware Adding, Hacking'''
+
''' Flash NAND '''
* [[Didj_TV_Out|Connect your Didj to your Television]]
+
* [[Didj_U-Boot_NAND_Flashing| Flash Data to NAND]]
* [[Didj Serial Console|Adding Serial Console]]
+
* [[Didj_BootLoader_Firmware_Updating|Updating Bootloader/Firmware]]
* [[Didj SD MMC Expansion| SD MMC Expansion in 2.6.20 kernel]]
 
* [[Didj_and_Explorer_MMC_Patch|Mount MMC cards in 2.6.31 kernel]]
 
* [[Didj and Explorer FTDI JTAG How To| FTDI JTAG How To ]]
 
* [[Pollux_JTAG_with_Wiggler | Pollux(LF1000) JTAG Wiggler HowTo]]
 
  
''' LFConnect Software'''
+
''' Firmware Image '''
* [[Didj_How_to_Extract_Files|How to Extract Files From the Firmware .exe]]
+
* [[File_Systems#Mounting_JFFS2_image_on_PC_using_mtdram| Mount JFFS2 Image on Linux]]
 +
** Relevant Settings
 +
** Correct endianess
  
''' Mounting Didj USB Drive '''
+
* [[LeapFrog_Pollux_Platform:_Firmware#Didj_JFFS2 | Create JFFS2 image]]
* Gain Access to the Didj as a Thumb Drive [http://wtfmoogle.com/?page_id=741 from Windows].
+
** Relevant Settings
* [[Didj_USB_Mounting|USB Mounting Under Windows, Linux, and OS X]]
+
** -e 128
 +
** -p
  
'''Networking'''
+
''' Kernel/RootFS/Firmware'''
*[[Didj_Networking_HOWTO| Networking HOWTO - Enabling Networking, telnetd, and Dropbear (via the USB Gadget Ethernet Driver) ]]
+
* [[Didj_and_Explorer_libSDL|Building libSDL]]
*[[Route_Your_Didj| Route your Didj: Connecting your Didj to the wider Internet through routing]]
 
*[[Bridge_Your_Didj| Bridge your Didj: Connecting your Didj to the wider Internet using bridging]]
 
*[[Didj_MP3_Streaming| Playing MP3 network streams and files]]
 
*[[Didj_Networking_quickly| configuring and compiling the didj kernel quickly]]
 
 
 
''' On Host '''
 
* [[Didj_Mount_File_System_Under_Linux|Mount Didj File System (erootfs.jffs2) Under Linux]]
 
* [[Didj_SCSI_Commands|SCSI Commands]]
 
 
 
''' On Didj '''
 
* [[Didj_Common_Commands|Common Commands Reference]]
 
* [[Didj Stop Start Up Junk]] How to Remove All the Kid's Game Files
 
** [[Didj_Replacement_App_Menu|Replacing the default App Menu from the default App Menu]] How to disable the default AppManager from a Brio app.
 
 
 
''' Graphics '''
 
* [[Leapster_Explorer_Framebuffer_Driver|Linux Framebuffer Driver]]
 
* [[Didj_and_Explorer_libSDL|Build and install libSDL]]
 
 
* [[Didj_and_Explorer_SDL_ttf|Building SDL_ttf font library]]
 
* [[Didj_and_Explorer_SDL_ttf|Building SDL_ttf font library]]
 
* [[Didj_and_Explorer_SDL_image|Building SDL_image library with jpg and png support]]
 
* [[Didj_and_Explorer_SDL_image|Building SDL_image library with jpg and png support]]
 
* [[Didj_and_Explorer_SDL_mixer|Building SDL_mixer audio library]]
 
* [[Didj_and_Explorer_SDL_mixer|Building SDL_mixer audio library]]
* [[Leapster_Explorer:_stc|STC - Simple tetris clone using SDL]]
+
* [[Leapster_Explorer:_tslib_Touchscreen_Library|Building tslib]]
* [[Didj_and_Explorer:_rgb|creating .rgb files on the didj]]
+
* [[Leapster_Explorer:_SDL_resources|SDL Resources]]
 +
* [[Didj_2.6.31_Kernel| Didj Kernel 2.6.31 Upgrade]]
 +
* [[Didj_Explorer_Kernel|2.6.31 Kernel for Didj]]
 +
* [[Didj_Explorer_SD_Kernel| Boot Kernel and Rootfs from SD w/Framebuffer]]
 +
* [[Leapster_Explorer_Framebuffer_Driver|Linux Framebuffer Driver]]
 +
* [[Didj_and_Explorer_MMC_Patch|Enable SD Card Module]]
 +
* [[Leapster_Explorer_Root_File_System|Building The Explorer Root File System]]
 +
* [[Didj_and_Explorer:_boot_pixel_format|Changing the fb driver to display the boot logo correctly]]
 +
* [[LeapFrog_Pollux_Platform:_TV_Out | TV Out]]
 +
* [[Didj_2.6.31_Generic_Buildroot | Generic Buildroot Rootfs and Kernel build]]
  
 +
''' Games and Emulators '''
 +
* [[LeapFrog_Pollux_Platform:_Emulators_And_Games| Emulators and Games]]
  
''' Kernel Update '''
+
''' Brio Development '''
 +
* [[Didj_Replacement_App_Menu| Replacing the default App Menu from the default App Menu]]
  
* [[Didj_Explorer_SD_Kernel| Building a framebuffer kernel and rootfs to boot and run entirely from SD (uses the latest explorer kernel LF-Linux-8291-20101026-1425)]]
+
''' JTAG '''
* [[Didj_Explorer_Kernel|Build the Explorer kernel (2.6.31) for Didj ***in progress***]]
+
* [[LeapFrog_Pollux_Platform:_JTAG_Pinouts| JTAG Pinouts]]
 +
* [[Pollux:_FTDI_JTAG_How_To| Pollux FTDI JTAG How To]]
 +
* [[Pollux_JTAG_with_Wiggler| Pollux JTAG Wiggler Config]]
 +
* [[LeapFrog_Pollux_Platform:_JTAG_Kernel_Boot| JTAG Kernel Boot]]
  
== Source Code ==
+
''' Compiling Source Code '''
* LeapFrog Offical Sources - [http://www.leapfrog.com/etc/medialib/leapfrog/legal.Par.14642.File.dat/Additional%20Third%20Party%20Notices%20for%20LF%20Connect%20Application%20.pdf LeapFrog Open Source Compliance Document]
+
* [[LeapFrog_Pollux_Platform:_Build_Environment| Set up the Build Environment]]
** [http://medialib.leapfrog.com/didj_opensource_code/Didj-Linux-3197-20080429-1631.tar.gz 2008 version]
+
* [[LeapFrog_Pollux_Platform:_Kernel_Configuration| Kernel Configuration]]
** [http://medialib.leapfrog.com/didj_opensource_code/Didj-Linux-4222-20090422-1236.tar.gz 2009 version]
 
 
 
* Corbin's OpenDidj Linux Kernel Tree
 
** [http://git.kernel.org/?p=linux/kernel/git/csimpson/linux-2.6.git;a=summary Git Repository]
 
 
 
* Claude's OpenDidj Linux Kernel Tree (LF 2008 Source)
 
** [http://git.berlios.de/cgi-bin/gitweb.cgi?p=opendidj;a=summary Git Repository]
 
  
 
== Development Scripts and Programs ==
 
== Development Scripts and Programs ==
Line 128: Line 103:
 
* [http://git.berlios.de/cgi-bin/gitweb.cgi?p=opendidj;a=blob_plain;f=host_tools/lf1000_bootstrap.py;h=f0d3ef0d9186edf368062608ff868914e6083ee4;hb=06890453479d271856f58d1d2cb685ee6e5afd5f LF1000 UART Bootstrap Utility] written in Python
 
* [http://git.berlios.de/cgi-bin/gitweb.cgi?p=opendidj;a=blob_plain;f=host_tools/lf1000_bootstrap.py;h=f0d3ef0d9186edf368062608ff868914e6083ee4;hb=06890453479d271856f58d1d2cb685ee6e5afd5f LF1000 UART Bootstrap Utility] written in Python
 
* [[media:lf1000-bootstrap-utilities.tar.gz |LF1000 UART Bootstrap Utilities]] based on the OMAP boot utilities from TI
 
* [[media:lf1000-bootstrap-utilities.tar.gz |LF1000 UART Bootstrap Utilities]] based on the OMAP boot utilities from TI
* [[File:OpenDidjConnect_v1.2.zip ]] lock, unlock, eject Didj USB drive from Windows Command Line.
 
* [[File:OpenDidjConnect_v1.0.tgz ]] lock, unlock, eject Didj USB drive from Linux Command Line.
 
  
 
== Technical Information ==
 
== Technical Information ==
 
* [http://sites.google.com/site/claudeschwarz/didjhacking2 Home Brew Cartridge and Custom Bootloader]
 
 
* [[Didj_Mem_Map|Initial Memory Map Dump]]
 
* [[Didj_Mem_Map|Initial Memory Map Dump]]
 
* [[Didj_GPIO_Map|Map of Didj GPIO Pins]]
 
* [[Didj_GPIO_Map|Map of Didj GPIO Pins]]
* [[DJHI Card Compatibility]]
+
* [[LeapFrog_Pollux_Platform:_Technical_Details|Device Comparison]]
  
== Discussion ==
+
''' File System Info '''
 +
* rootfs / rootfs rw
 +
* /dev/root / jffs2 ro
 +
* none /proc proc rw
 +
* sysfs /sys sysfs rw
 +
* /dev/ram0 /tmp tmpfs rw
 +
* /dev/mtdblock1 /flags jffs2 rw,sync,noatime
 +
* /dev/mtdblock2 /mfgdata jffs2 ro,sync,noatime
 +
* /dev/mtdblock10 /Didj vfat rw,noatime,fmask=0022,dmask=0022,codepage=cp437,iocha  rset=iso8859-1
 +
* /dev/mtdblock11 /Cart vfat ro,noatime,fmask=0022,dmask=0022,codepage=cp437,iocha  rset=iso8859-1
  
* [http://www.hackerfoundry.com/forums/viewtopic.php?f=4&t=7&sid=4cc66fd2128b96e03603c812ba926301 Didj Project Forum]
+
Filesystem                Size      Mounted on
* [irc://chat.freenode.net/didj #Didj on Freenode IRC] [http://www.poxlib.org/irclogs/ Channel Logs]
+
/dev/mtdblock6          14.0M    /
* [http://www.cozybit.com/stories.htm Cozybit boasts of their involvment in integrating Linux with the Didj]
+
/dev/mtdblock1          896.0k    /flags
* [http://blogs.distant-earth.com/wp/?p=64 Hacking around with the Leapfrog Didj]
+
/dev/mtdblock2            1.0M    /mfgdata
* [http://didjdev.freeforumhost.com/viewforum.php?f=3 Didj Homebrew Forum] (Empty?)
+
/dev/mtdblock9          215.8M    /Didj
* Hackaday Posts
 
** [http://hackaday.com/2010/02/01/leapfrog-didj-handheld-linux-on-the-cheap/ Didj Hacking]
 
** [http://hackaday.com/2010/02/03/leapfrog-didj-followup/ Didj Hacking Followup]
 
  
==Graphics Hardware ==
 
  
* Resolution: 320x240
+
''' Active Kernel/Rootfs
  
* Display Modes: RGBA 565
+
Near the begging of the boot message you should see one of two root options:
 +
root=31:04
 +
You are using  mtd4: 00e00000 00020000 "Linux_RFS0" or
 +
root=31:06
 +
You are using  mtd6: 00e00000 00020000 "Linux_RFS1"
  
* MLC: Multi-layer controller provides HW compositing for up to three graphics layers
 
** One 24-bit 2D layers (no HW accel)
 
** One 16-bit 3D layer
 
** One YUV video layer (no HW accel)
 
  
* Graphics API OpenGL ES 1.1: A reduced instruction set version of OpenGL for embedded systems. OpenGL is a 3D graphics programming interface. Proprietary interface to Multi- Layer Display controller for 2D RGB and YUV video buffer support. FreeType Font renderer. Theora video codec plays OGG-Theora files.
+
''' Partitions '''
 +
{| cellpadding="4" border="1"
 +
|-
 +
|style="background-color:#CCCCCC"| Name
 +
|style="background-color:#CCCCCC"| Location
 +
|style="background-color:#CCCCCC"| Size
 +
|style="background-color:#CCCCCC"| Device
 +
|style="background-color:#CCCCCC"| Notes
 +
|-
 +
| LF1000_uniboot
 +
| 0x00000000
 +
| 0x00020000
 +
| /dev/mtd0
 +
| Lightning Boot
 +
|-
 +
| Atomic_Boot_Flags
 +
| 0x00020000
 +
| 0x000E0000
 +
| /dev/mtd1
 +
| On NAND
 +
|-
 +
| Manufacturing_Data
 +
| 0x00100000
 +
| 0x00100000
 +
| /dev/mtd2
 +
| On NAND
 +
|-
 +
| Kernel0
 +
| 0x00200000
 +
| 0x00200000
 +
| /dev/mtd3
 +
| On NAND
 +
|-
 +
| Linux_RFS0
 +
| 0x00400000
 +
| 0x00E00000
 +
| /dev/mtd4
 +
| On NAND
 +
|-
 +
| Kernel1
 +
| 0x01200000
 +
| 0x00200000
 +
| /dev/mtd5
 +
| On NAND
 +
|-
 +
| Linux_RFS1
 +
| 0x01400000
 +
| 0x00E00000
 +
| /dev/mtd6
 +
| On NAND
 +
|-
 +
| Brio
 +
| 0x02200000
 +
| 0x0DE00000
 +
| /dev/mtd7
 +
| On NAND
 +
|-
 +
| EXT
 +
| 0x10000000
 +
| 0x10000000
 +
| /dev/mtd8
 +
|
 +
|-
 +
| Cartridge
 +
| 0x00000000
 +
| 0x10000000
 +
|
 +
| On Cartridge NAND
 +
|}
  
== Chip List ==
 
[[Image:Scanned-desoldered-mainboard-front-v2.jpg ‎|350px|thumb|Scan of front side of Didj mainboard, with LF1000 CPU and SDRAM de-soldered.]]
 
  
[[Image:Bga-closeup.jpg ‎|350px|thumb|Close up of the LF1000 CPU ball-grid.]]
+
''' Battery Compartments '''
  
[[Image:Scanned-desoldered-mainboard-back-v2a.jpg ‎|350px|thumb|Scan of back side of Didj mainboard, with cartridge socket and NAND de-soldered.]]
+
The Didj has two identical battery compartments, the combined collection of batteries are wired in series.
 
+
* Battery Compartment Terminals:
[[Image:Didj Mainboard Front.jpg|350px|thumb|A picture of the front of the Didj mainboard]]
+
** Term 1 - Battery +
 
+
** Term 2 - Temp Sensor +  Wired to Pollux pins K20 / GPIOA 28 and K21 / GPIOA 29
[[Image:Didj Mainboard Back.jpg|350px|thumb|A picture of the back of the Didj mainboard]]
+
** Term 3 - Temp Sensor -
 
+
** Term 4 - Battery -
==== Processor ====
 
* OEM branded version of the MagicEyes [[Pollux]] VF3520F [[media:pollux-datasheet.pdf|Datasheet]]
 
* Appears to be the 393MHz version of the same processor in the [http://gp2xwiz.com/ GP2x Wiz]
 
* Marked with:
 
** "LF-1000" - [[LF-1000|LF-1000 Specifications]]
 
** "ARM"
 
** "N12N1D"
 
** "H0815"
 
 
 
==== Memory ====
 
* 1 QImonda HYB25DC25616OCE-5 - 32megabyte sdram [[media:HYB25DC25616OCE-5.pdf | Datasheet]]
 
or
 
* 1 Nanya NT5DS16M16CS-5T - 32megabyte sdram (Datasheet)
 
  
  
* 1 Micron MT29F2G08AAC - 256megabyte nand flash 8-bit [[media:MT29F2G08AAC.pdf | Datasheet]]
+
''' Rechargeable Batteries '''
* 1 7s08f -2 input or gate connected to WP on flash
 
==== Audio ====
 
* 1 Cirrus Logic CS43L22 - audio codec [[media:CS43L22.pdf | Datasheet]]
 
  
==== Display Driver ====
 
* 1 Giantplus GPM758A0 - 320x240 TFT [http://www.giantplus.com.tw/en/p/34-color_stn_module-gpg0909_3.html Pinouts and Specifications]
 
 
==== Power ====
 
* 1 Intersil ISL7665SACBAZ - Programmable Over/Under Voltage Detector [[media:isl7665s.pdf | Datasheet]]
 
* 3 TI TPS62050 - Adjustable Step-Down Converter [[media:tps62050.pdf | Datasheet]]
 
 
==== Crystals ====
 
* Oscillators
 
** 12MHz Crystal
 
*** For usb
 
** 27MHz Crystal
 
*** For the Processor*
 
** Barrel Crystal
 
*** For the RTC 32.768KHz*
 
 
==== Test Pads ====
 
<gallery widths=200px>
 
Image:JTAG PADS.jpg|JTAG Test Pads
 
</gallery>
 
 
* JTAG on pads
 
** TP8 - VREF
 
** TP9 - nTRST
 
** TP10 - TDI
 
** TP11 - TMS
 
** TP12 - TCK
 
** TP13 - TDO
 
** TP14 - GND
 
 
For details on mapping these pins to a standard 20-pin ARM JTAG adapter, see http://www.jtagtest.com/pinouts/arm20.
 
 
==== Ethernet? ====
 
There is info of a CS9800 Ethernet controller used on the development board
 
 
<nowiki>* See the processor datasheet page 20.</nowiki>
 
 
= USB =
 
 
=== USB 2.0 Device Interface ===
 
*Pins USB_DP and USB_DM on the Processor
 
*The Usb 2.0 Device port is what is used on the Didj to connect to the PC.
 
 
=== USB 1.1 HOST Interface ===
 
*Pins UP and UM on the Processor
 
*The USB1.1 Host pins must be pulled down through 15Kohm resistor whether it is used or not.
 
*There is no traces to the USB Host pins thus we can not use USB Host
 
<gallery widths=200px>
 
Image:USB_Host_pads.jpg|USB Host Pads
 
</gallery>
 
 
= Batteries and Recharger Station =
 
 
=== Battery Compartments ===
 
The Didj has two identical battery compartments, the combined collection of batteries are wired in series.
 
Each battery compartment has four terminals:
 
*Term 1 - Battery +
 
*Term 2 - Temp Sensor +  Wired to Pollux pins K20 / GPIOA 28 and K21 / GPIOA 29
 
*Term 3 - Temp Sensor -
 
*Term 4 - Battery -
 
 
=== Rechargeable Batteries ===
 
 
In addition to the terminals facing the Didj's contacts, there are another set of contacts facing away from the Didj.
 
In addition to the terminals facing the Didj's contacts, there are another set of contacts facing away from the Didj.
 
These contacts are duplicates used by the charging station.  The batteries themselves are NIMH cells, producing around 2.5v per pack when fully charged.
 
These contacts are duplicates used by the charging station.  The batteries themselves are NIMH cells, producing around 2.5v per pack when fully charged.
 
=== Recharger Station ===
 
The recharger station contains a battery charge circuit with temperature monitoring.  The station also has a pair of contacts that duplicate the 9V dc barrel jack.
 
  
  
= UART Adapter Info =
+
''' Recharging Station '''
A direct serial-line connection won't work with the Didj because the RS-232 spec uses 12v, while the Didj prefers about 3-5v.  So you'll need an adapter to communicate to the UART on the Didj.
 
  
 +
The recharger station contains a battery charge circuit with temperature monitoring.  The station also has a pair of contacts that duplicate the 9V dc barrel jack.
  
= Cartridges =
 
[[Didj_Cart_Info|Detailed Pin info of the Cart Connector]]
 
== Original Cartridge ==
 
Manufactured by Sandisk
 
* s740878-1
 
* 4620329
 
* 0621
 
* 151-10043-07-a
 
<gallery widths=200px>
 
Image:cartfront.jpg|Original Cartridge Front
 
Image:cartback.jpg|Original Cartridge Back
 
</gallery>
 
  
 +
''' SSP / SPI Controller '''
 +
[[Didj SPI Info]]
  
== Custom Cartridges ==
+
== Images ==
=== DJHI ===
+
<gallery perrow=5 caption="PCB Images">
DJHI stand for "Did Ja Hack It?"
+
File:Scanned-desoldered-mainboard-front-v2.jpg|Front side mainboard, with LF1000 CPU and SDRAM de-soldered.
Right now you can only buy them fully assembled and tested from [http://www.jertechonline.com JerTechOnline.com]
+
File:Bga-closeup.jpg|Close up of the LF1000 CPU ball-grid.
<gallery widths=200px>
+
File:Scanned-desoldered-mainboard-back-v2a.jpg|Back side mainboard, with cartridge socket and NAND de-soldered.
Image:DJHIbrdV28.png | Rendering of the board currently being shipped
+
File:Didj Mainboard Front.jpg|Front side mainboard
Image:DJHIschV28.png | The schematic of the board currently being shipped
+
File:Didj Mainboard Back.jpg|Back side mainboard
Image:DjhiBoard.jpg | Picture of an unpopulated board
 
Image:DjhiBoardAndBOBoard.png | A fully populated board with a breakout board attached
 
 
</gallery>
 
</gallery>
  
=== Home Etched Didj Breakout Board ===
+
== External Links ==
 
+
* [http://www.cozybit.com/stories.htm Cozybit boasts of their involvment in integrating Linux with the Didj]
* Easy to make at home (can be made with a radioshack kit and a dremel)
+
* [http://blogs.distant-earth.com/wp/?p=64 Hacking around with the Leapfrog Didj]
* The board layout was designed in eagle.
+
* [http://sites.google.com/site/claudeschwarz/didjhacking2 Claude's Didj Hacking Page]
** The Eagle Board file [[media:dijibreakoutboard.zip|Download]]
+
* Hackaday Posts
** The Didj Edgecard connector library file [[media:LEAPFROG_DIJI_EDGECARD.zip|Download]]
+
** [http://hackaday.com/2010/02/01/leapfrog-didj-handheld-linux-on-the-cheap/ Didj Hacking]
*** You can use this to make any board you want.
+
** [http://hackaday.com/2010/02/03/leapfrog-didj-followup/ Didj Hacking Followup]
** Edited Didj Cartridge library [http://alternet.us.com/other/LEAPFROG_DIdj.zip Download]
 
*** (including outlines and keepout regions according to Awesomnesser's diagrams)
 
* This cartridge locks in just like the real thing.
 
** It is easy to do just superglue a small piece of FR4 in the corner and dremel a notch out. (see dimensions below)
 
** You will also need a spacer on the top and bottom and those dimensions are also included.
 
 
 
<gallery widths=200px>
 
Image:Awesomenesser01.jpg|The breakout board
 
Image:Awesomenesser02.jpg|The bottom of the board
 
Image:Awesomenesser03.jpg|The breakout board clicked into the Didj
 
Image:Awesomenesser04.jpg|The board hooked up to a sd card and FTDI cable (same as Claudes board)
 
Image:Awesomenesser05.jpg|The dimensions of the basic cartridge
 
Image:Awesomenesser06.jpg|The laser printout for the toner transfer (Remember to mirror your printout and turn off the unused layers)
 
</gallery>
 
 
 
=== Hack an Original Cart ===
 
 
 
* Modify an original cart to have a uart output
 
<gallery widths=200px>
 
Image:hacked.jpg|Modified original cartridge
 
</gallery>
 
 
 
=== Claudes Cartridge ===
 
* Features
 
** Jumpers (For custom bootloader)
 
** SD Card (Enabled through the custom bootloader)
 
** USB through a FTDI chip
 
** Optional NAND
 
* [http://sites.google.com/site/claudeschwarz/didjhacking2 Claudes Website]
 
* [[media:ClaudesSchematic.pdf | Claudes Schematic]]
 
* [[media:ClaudesGerberFiles.zip | Claudes Gerber Files]]
 
<gallery widths=200px>
 
Image:claudesboardrendered.jpg|Rendering
 
Image:claudesboardpopulated.jpg|Populated Cartridge
 
</gallery>
 
 
 
=== SD and USB Serial Cart ===
 
 
 
* Features
 
** Fits (mostly) within the Didj
 
** Includes an FTDI FT232RL USB-Serial adaptor for Bootloader and Serial Console
 
** Includes SD card slot
 
** Includes solder jumpers for custom bootloader
 
** Open Eagle source files (CC Attribution, Non-Commercial, Share Alike)
 
* [http://alternet.us.com/other/SD_UART-2.pdf Front and Back PDF]
 
* [http://alternet.us.com/other/SD_UART-2.zip Eagle files]
 
* [http://batchpcb.com/index.php/Products/27971 BatchPCB public design]
 
* Comments welcome!
 
** Gerbers haven't been made yet.  Please post comments here, or as a message to me.
 
** I think the design is correct based on Claude's schematic and Awesomenesser's diagrams, but I can't be sure.
 
** Later, I'll have this produced by BatchPCB, I'll post a link to the public design on that site, if others want boards made.
 
 
 
= SSP / SPI Controller =
 
[[Didj SPI Info]]
 
 
 
= File System Info =
 
 
 
*rootfs / rootfs rw
 
 
 
*/dev/root / jffs2 ro
 
 
 
*none /proc proc rw
 
 
 
*sysfs /sys sysfs rw
 
 
 
*/dev/ram0 /tmp tmpfs rw
 
 
 
*/dev/mtdblock1 /flags jffs2 rw,sync,noatime
 
 
 
*/dev/mtdblock2 /mfgdata jffs2 ro,sync,noatime
 
 
 
*/dev/mtdblock10 /Didj vfat rw,noatime,fmask=0022,dmask=0022,codepage=cp437,iocha  rset=iso8859-1
 
 
 
*/dev/mtdblock11 /Cart vfat ro,noatime,fmask=0022,dmask=0022,codepage=cp437,iocha  rset=iso8859-1
 
 
 
Filesystem                Size      Mounted on
 
 
 
/dev/mtdblock6          14.0M    /
 
 
 
/dev/mtdblock1          896.0k    /flags
 
 
 
/dev/mtdblock2            1.0M    /mfgdata
 
 
 
/dev/mtdblock9          215.8M    /Didj
 
 
 
 
 
if at boot you see:
 
 
 
root=31:04
 
 
 
you are using  mtd4: 00e00000 00020000 "Linux_RFS0"
 
 
 
root=31:06
 
 
 
you are using  mtd6: 00e00000 00020000 "Linux_RFS1"
 
  
  
== Important File Locations ==
 
  
 
[[Category:Didj]]
 
[[Category:Didj]]
 +
[[Category:LeapFrog Pollux Platform]]

Latest revision as of 00:08, 26 February 2013

This device is part of the LeapFrog Pollux Platform, it's recommended to start there for general information.

The LeapFrog Didj

Summary

The Didj was a toy produced by Leapfrog marketed for educational games for children aged 5-10.

Didj was end-of-lifed by Leapfrog in mid-2010. It has been replaced by the Leapster Explorer.

Although Didj has a proprietary graphical front end, it runs a generic Linux distribution on an Arm based processor. Soon after the Didj's release, it was discovered that the cartridge port contained pins that allowed for serial console access with root privileges. After this discovery, work began to modify the Didj into an accessible emulation device.

Since development began, much has been accomplished, including:

  • Discovered that the Arm chip is the same as on the GP2X Wiz, only at a lower clock speed.
  • Created cartridges that support SD cards
  • Accessed the UART features in the cartridge slot


Platform

LeapFrog Pollux Platform

The Didj is part of 3 different devices that all share a common hardware platform, based around the Pollux SoC. The platform page contains information generic across these devices, and it is recommended that you refer to that page as it is a good starting point to understanding the Didj, and contains some basic How To's and Tutorials to get you started.

Boot Loader

Sources and Toolchains

Tutorials/How To's

General

Networking

USB Storage

Cartridge

Flash NAND

Firmware Image

Kernel/RootFS/Firmware

Games and Emulators

Brio Development

JTAG

Compiling Source Code

Development Scripts and Programs

Technical Information

File System Info

  • rootfs / rootfs rw
  • /dev/root / jffs2 ro
  • none /proc proc rw
  • sysfs /sys sysfs rw
  • /dev/ram0 /tmp tmpfs rw
  • /dev/mtdblock1 /flags jffs2 rw,sync,noatime
  • /dev/mtdblock2 /mfgdata jffs2 ro,sync,noatime
  • /dev/mtdblock10 /Didj vfat rw,noatime,fmask=0022,dmask=0022,codepage=cp437,iocha rset=iso8859-1
  • /dev/mtdblock11 /Cart vfat ro,noatime,fmask=0022,dmask=0022,codepage=cp437,iocha rset=iso8859-1
Filesystem                Size       Mounted on
/dev/mtdblock6           14.0M     /
/dev/mtdblock1          896.0k    /flags
/dev/mtdblock2            1.0M    /mfgdata
/dev/mtdblock9          215.8M    /Didj


Active Kernel/Rootfs

Near the begging of the boot message you should see one of two root options:

root=31:04 

You are using mtd4: 00e00000 00020000 "Linux_RFS0" or

root=31:06 

You are using mtd6: 00e00000 00020000 "Linux_RFS1"


Partitions

Name Location Size Device Notes
LF1000_uniboot 0x00000000 0x00020000 /dev/mtd0 Lightning Boot
Atomic_Boot_Flags 0x00020000 0x000E0000 /dev/mtd1 On NAND
Manufacturing_Data 0x00100000 0x00100000 /dev/mtd2 On NAND
Kernel0 0x00200000 0x00200000 /dev/mtd3 On NAND
Linux_RFS0 0x00400000 0x00E00000 /dev/mtd4 On NAND
Kernel1 0x01200000 0x00200000 /dev/mtd5 On NAND
Linux_RFS1 0x01400000 0x00E00000 /dev/mtd6 On NAND
Brio 0x02200000 0x0DE00000 /dev/mtd7 On NAND
EXT 0x10000000 0x10000000 /dev/mtd8
Cartridge 0x00000000 0x10000000 On Cartridge NAND


Battery Compartments

The Didj has two identical battery compartments, the combined collection of batteries are wired in series.

  • Battery Compartment Terminals:
    • Term 1 - Battery +
    • Term 2 - Temp Sensor + Wired to Pollux pins K20 / GPIOA 28 and K21 / GPIOA 29
    • Term 3 - Temp Sensor -
    • Term 4 - Battery -


Rechargeable Batteries

In addition to the terminals facing the Didj's contacts, there are another set of contacts facing away from the Didj. These contacts are duplicates used by the charging station. The batteries themselves are NIMH cells, producing around 2.5v per pack when fully charged.


Recharging Station

The recharger station contains a battery charge circuit with temperature monitoring. The station also has a pair of contacts that duplicate the 9V dc barrel jack.


SSP / SPI Controller Didj SPI Info

Images

External Links