The Little Tikes Story Dream Machine (LTSDM) is a toy projector geared towards young children. Each story is kept in a cartridge, or "book," that is physically inserted into the projector. Inside, the cartridge holds the following:
- audio data to be played on the projector's speakers
- digital instructions for the projector's rear light display
- twelve film slides depicting the pages of the book which the projector shines out
Despite the appeal, the LTSDM has a few notable drawbacks:
- Stories are highly condensed narrations spanning only about 2-3 minutes per cartridge
- Little Tikes currently offers stories in a limited number of languages, namely: English, French, and Spanish
- Younger children may find that the official cartridges are difficult to remove from the projector without adult assistance despite the ejection button
- Although Little Tikes offers quite a decent collection of stories, they must be purchased in fixed bundles. This restricts the amount of freedom consumers have over story collection
- Triple-set bundles cost roughly $24 CAD per set. This works out to about $8 per cartridge. I wonder if these could be modded for cheaper
- Custom stories personalized to one's own children are not officially supported
These drawbacks have led to many parents abandoning or returning the LTSDM for other audiovisual products, like Yoto.
I aim to allow any parent, caregiver, or individual to design and build their own custom cartridges compatible with the LTSDM, permitting personalized audiovisual media to be depicted by their projector.
The project consists of reverse engineering all aspects of an LTSDM cartridge to allow for fully customizable narratives. These aspects are divided into Data, Case, Circuitry, and Film.
graph TD
A[Dissect LTSDM hardware]-->B[Data]
A-->C[Case]
A-->D[Circuitry]
A-->E[Film]
B-->BA[Dump existing data off official cartridges]
BA-->BE[Find a way to keep<br>cartridge intact for<br>dumps/re-uploads]
BA-->BB[Determine data structure]
BB-->BBA[Compare data dumps]
BB-->BBB[Locate conserved data regions]
BB-->BBC[Locate audio data]
BB-->BBD[Locate light display data]
BA-->BC[Modify data]
BC-->BD[Re-upload data onto intact cartridge]
BD-->BE[Upload data onto handmade cartridge]
BD-->BF[Make data compiler]
BF-->BFA[UI interface]
BF-->BFB[Write 1 byte to new file]
BF-->BFC[Load & write/insert binary payloads into custom data file]
BF-->BFD[Detect and verify common audio formats]
BFD-->BFDA[Convert all formats to mono 16hz 16-bit signed PCM WAV]
BFDA-->BFDB[Convert 16-bit WAV to a1800]
BFDB-->BFDC[Calculate addresses]
BFDC-->BFDD[Populate Segment 1]
BFDD-->BFDE[Compile]
BFDE-->BFDF[Export to .BIN]
BFDF-->BG[Validate export using official cartridge]
C-->CA[Crack open an official cartridge]
CA-->CB[Measure dimensions of case parts]
CB-->CBA[Front case dimensions]
CB-->CBB[Back case dimensions]
CB-->CBC[Carousel dimensions]
CB-->CBD[Label dimensions]
CB-->CD[Make label template]
CD-->CDA[Cricut label]
CDA-->CDAA[Successful Label Prototype]
CB-->CC[Use CAD to model cartridge pieces]
CC-->CCA[Front case modelled]
CC-->CCB[Back case modelled]
CC-->CCC[Carousel modelled]
CCA-->CCAA[change glue-column mount to screw mounts]
CCB-->CCAA
CCC-->CE[OnShape model]
CCAA-->CE
CE-->CF[Print cartridge pieces]
CF-->CG[Assemble cartridge pieces]
CG-->CH[Test fit in projector]
CH-->CI[Insert film]
CH-->CJ[Insert PCB and check fit]
CJ-->CK[Check PCB-projector functionality]
CH-->CL[Check carousel functionality]
D-->DA[Source P25D80SH chips or similar]
D-->DB[Design modded PCB]
D-->DC[Determine all components on official PCBs]
DB-->DBA[Official PCB dimensions]
DBA-->DBB[KiCAD model]
DBB-->DBC[PCBWay or JLCPCB manufacture x10]
E-->EA[Measure dimensions of film components]
E-->EB[design test images]
E-->EC[Design film punch die]
EC-->ECA[Find suitable steel pipe]
EC-->ECB[Cut pipe to proper length]
EC-->ECC[sharpen from inside]
EC-->ECD[Make film en-mass punch]
EB-->EBB[Design film circle arrangement]
EB-->EBA[Resize images appropriately]
EBB-->EBBA[Design mount hole placements]
EBB-->EBBB[Design orientation markers]
EB-->EBC[Design die guides]
EBA-->EBAA[Place images around film circle in correct orientation and order]
EBBA-->ED[Print on transparent sheet]
EBBB-->ED
EBC-->ED
EBAA-->ED
ED-->EF[Cut out first film]
EF-->EG[Reliably cut films with die]
%% STYLE DEFINITIONS
classDef done fill:#12544F
classDef prog fill:#2A835F
%% STYLE ASSIGNMENTS
class B,C,D,E,BB,CA,DC prog;
class A,BA,BE,EA done;
This repository is for educational use only. The scripts and tools provided here are intended to support legal reverse engineering and modding of content already owned by the user. Please do not use this information to distribute unauthorized copyright products.