Close

What Language Does It Speak?

A project log for Hacking the Crayola POV Dome Thing

I found a Crayola Digital Light Designer in a bargain bin and thought "What a Hack TREASURE!!!"

darrenlindleydarrenLindley 01/22/2020 at 02:410 Comments

I connected the boards up to 5v but the boards wouldnt work, I theorised there is a synchronising LED and detector that triggers the writing of the LEDs, without the detector picking up a pulsing light the LEDS dont light up.  I got out the Arduino and wrote a program which would pulse an IR LED at a rate I can vary via the serial port and taped this LED to the detector.  It worked, the LED bar flickers and if I moved the bar quickly I could see an image (theres an image of it in the gallery). Once I had the boards running I connected hooked up my logic analyser to the ribbon cable connected to the led board (via a header I solder to the board), fortunatley the positive and ground pijns were labeled.

I was expecting a similar protocol to the a shift register driven led matrix display I had built previously, so it took me quite awhile to make sense of the protocol.  I was a bit confused for awhile because there didnt seem to be a regular clock, but it turned out the samples of the clock line werent perfectly regular which made it hard to recognise. Once I made out the clock I could see the dataline and two enable lines, it seemed to bean SPI protocol, I wasnt 100% sure so decided to replicate the pulses in code, at least to get it all going then may be implement SPI later. 

The display runs a start up with a sequence of  leds running up, down and back up the display, this gaves me something to relate the logic data to. Before the sequence starts an initialising data is sent to the display, I dont understand what it does but all I have to do is send the display the same sequence so dont need to understand it (would be nbice to though). 

Data is sent through the data line, a display enable line enables the display, 2 frame lines are used to address the line of leds, the first frame line enables the first 16 leds and the second frame enables the last 16.  12x8 bits of data are used to display one line of leds, these can be broken up into bitmaps for each colour component of a group of 8 leds. 8bit for red component of first 8, 8bits for green, 8bits for blue, 8bits for red of next 8 leds and so on.  The data is prefixed with 8bits of addressing data 0x80,0x81,0x82,0xC0,0xC1,0xC2, the same is used for the last 8 leds.
 

Discussions