Jessops Digital Photo Frame display

For some time I have been looking for an appropriate display for the Bifferboard. It seems clear that USB connectivity is a must, since alternative communication methods like SPI, UART or GPIO pins won't be able to shift data from Bifferboard to photo frame quickly enough for multimedia applications.

The small 1.5 inch keychain photo frames are great and are extremely hackable, thanks to the efforts of Sprite, however they are little more than a toy, and with 128x128 resolution not really useful for any serious applications.

I eventually came across a no-name photo frame going cheap on Ebay that looked like it had USB. It was called just 'DPF-3.5K'. It was too tempting to pass up, so I ordered it. The box looks like this:

So now I have it in front of me. It has Jessops written on the box, and a brief search comes up with model number AJESSFR805141124. It's still on some of the price comparison sites, but no longer being sold (by Jessops at least).

I was really, really hoping this would be recognised as a USB device by my laptop, but no such luck. The USB connector is it seems only used for charging.

After a moment's hesitation (this is a very attractive photo frame, with nice mat finish, and great picture quality), I prized open the casing. There are no screws and it's a snap-together job. It seems I got lucky, because although a bit of a struggle I managed to open it without breaking it.

I disconnected the battery, and the LCD screen, here is the board without them:

The most interesting thing here, is to take a close look at that USB connector. For some reason, inspite of having a non-operational USB, the port is still wired.

It seems to be missing a couple of components (resistors?), or perhaps they are not even needed for USB to be operational. It's possible that the USB functionality has simply been disabled in the firmware. I traced these pins and they end up at the CPU.

I'm afraid I forgot to take a pic of the CPU side of the board before taking a soldering iron to it. (Here it is with my attempt to wire the JTAG port.)

So, the first thing I see is a 'CPU', the AML6210DT. There's also a 4MByte flash ram chip, 29LV320, just like you find in most routers, and a 2MByte DRAM chip. Well, it seems this won't be running Linux any time soon, but I have the Bifferboard for that - this is just supposed to be a display, after all. Back to the CPU, which is by far the most interesting thing here.

AMLogic are a large company manufacturing many different types of photo frame. Unlike other manufacturers they also seem to design their own chips. Most are based on the ARC CPU core. After many, many hours scouring the net I came to the conclusion I'm not going to find a datasheet for this CPU. What I did find was what seems to be some example code for photo frame applications. I'm unsure of the legality of this code, so I'm not going to link to it here. Search for 6210A_RELEASECODE_070803 if you want to track it down. Anyhow, it wasn't much use, because it included neither toolchain nor instructions on how to build one, however it did at least tell me that I'm looking for an ARC Argonaut compiler.

Why is DPF hacking so unpopular? Anyhow, I started searching on alternative chips from the same manufacturer, and eventually tracked down Rasmus Rohde's page. This DPF (the only non-keychain DPF that's been hacked as far as I can see), uses the AML7216 chip. Surely this can't be too different to the AML7210? It remains to be seen. Rasmus has produced a JTAG program. He doesn't say on his page, but he's using Memec JTAG cable. To me it seems just like an Xilinx:

however I've been unable to get his program working, since my board doesn't have the JTAG connections labelled nicely like his frame has. Or maybe the port has just been disabled and needs some trickery at one of the test points to enable it. I have copied the JTAG tool from Rasmus's page, because he says he no longer has the photo frame. I'd hate for him to remove the page!

I still need a toolchain. I eventually found a GCC toolchain here.

23/5/2009: I've worked out why the JTAG program doesn't work. On further investigation, the JTAG port appears to have all pins programmed as outputs, and pushed high. This means the JTAG has been disabled, and I will need to find the place on the board where I can enable it. I've been through all the test points, and nothing looks relevant, so I'm moving on to look for resistors pulling pins high. Basically I need to find a CPU pin connected via a resistor to either +3.3v or GND. The value will probably be 10k.

Back to the CPU again. This is a 144-pin LQFP (20mm x 20mm). Pins are designated anti-clockwise starting at pin 1 which is top-left on the LHS of the IC. In the absence of a datasheet, here are some pinouts:

Top row of pins:

109,110,111 - ?

112,113 - ?

114 - GND

115,116,117 - ?

118 - +Vcc

119 - ?

120 - ?


129 - GND

130,131,132,133 - LCD panel

134 - +Vcc

135,136,137,138,139,140 - LCD panel

141,142,143,144 - JTAG

To be continued....