Didj

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.

Project 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

Project Goals
Here is a place to list all the the goals or wants that we have for this project.


 * GP2x / GP2X_Wiz
 * Port Libraries
 * Flash Player
 * Emulation (Wiz Emulators)
 * NES
 * SNES
 * Gameboy BW/Color/ Advance
 * Gamegear
 * MAME
 * Atari 2600
 * Colecovision
 * Others
 * GUI
 * Custom or Modified
 * Customizable Themes
 * Homebrew Games
 * Overclock Processor

Emulators
GBA Emulator

Tutorials/How To's
 Getting Started 
 * A guide to your first steps hacking the didj ***in progress***

 Booting From External Sources 
 * Boot Didj from UART Connection - Linux
 * Boot Didj from UART Connection - Windows
 * Booting an image over JTAG - Linux
 * Lightning-boot 1.6 update
 * Lightning-boot 2.0 update

Toolchains/Cross Compiler Environments
 * LeapFrog Pollux Platform Toolchains

 Flashing the Didj
 * Updating Bootloader/Firmware over USB
 * U-Boot NAND Utilities and Bootloader Update
 * U-Boot Nand Utilities and Kernel/File System Update
 * Full Recovery Steps Using U-Boot
 * Flash an ATAP firmware to your didj and make an atap/mfr cart

 Hardware Adding, Hacking
 * Connect your Didj to your Television
 * Console Access
 * SD MMC Expansion in 2.6.20 kernel
 * Mount MMC cards in 2.6.31 kernel
 * FTDI JTAG How To
 * Pollux(LF1000) JTAG Wiggler HowTo

 LFConnect Software
 * How to Extract Files From the Firmware .exe

 Mounting Didj USB Drive 
 * Gain Access to the Didj as a Thumb Drive from Windows.
 * USB Mounting Under Windows, Linux, and OS X

Networking
 * Networking HOWTO - Enabling Networking, telnetd, and Dropbear (via the USB Gadget Ethernet Driver)
 * Route your Didj: Connecting your Didj to the wider Internet through routing
 * Bridge your Didj: Connecting your Didj to the wider Internet using bridging
 * Playing MP3 network streams and files
 * configuring and compiling the didj kernel quickly

 On Host 
 * Mount Didj File System (erootfs.jffs2) Under Linux
 * Mount jffs2 Image on Linux PC - (is correct endianess)
 * SCSI Commands

 On Didj 
 * Common Commands Reference
 * Didj Stop Start Up Junk How to Remove All the Kid's Game Files
 * Replacing the default App Menu from the default App Menu How to disable the default AppManager from a Brio app.

 Graphics 
 * Linux Framebuffer Driver
 * Build and install libSDL
 * Building SDL_ttf font library
 * Building SDL_image library with jpg and png support
 * Building SDL_mixer audio library
 * STC - Simple tetris clone using SDL
 * creating .rgb files on the didj

 Kernel Update 


 * Building a framebuffer kernel and rootfs to boot and run entirely from SD (uses the latest explorer kernel LF-Linux-8291-20101026-1425)
 * Build the Explorer kernel (2.6.31) for Didj ***in progress***

Source Code

 * Didj Source Code

Development Scripts and Programs

 * 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
 * [[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.

Details

 * Technical Specifications
 * OEM and Custom Cartridges
 * Initial Memory Map Dump
 * Map of Didj GPIO Pins

JTAG Pinout



 * 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.

Batteries and Recharging Station
 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