Forum: µC & Digital Electronics Using a picture frame as embedded display

von bovist (Guest)

Attached files:

Rate this post
0 useful
not useful

several times people asked how to modify a cheap digital picture frame 
(DPF) as a display device for embedded systems. Drawback is: most DPFs 
use a analog TFT panel which is quite hard to drive, since there are a 
zillion of supply and support voltages and AC signals needed and timing 
constraints are rather strict. So, AFAIK, most DIYs gave up.

I got a very cheap 7" DPF with a 480x234 analog TFT panel which uses a 
Haier HiPatriot Hi1018 as a SoC display controller. No datasheets 
available, but I suppose it will not accept digital data from a 
microcontroller, just pictures and movies from a memory card.

My idea was: Leave the controller and driver electronics intact, just 
use the HSTART, VSTART, VCOM and PixelClock pulses delivered by the 
Hi1018 to generate the frame content which is fed to the analog drivers. 
I just had to cut the analog RGB signal path from the Hi1018 by removing 
3 coupling capacitors. See youtube video for a demo:


I made up a small VHDL implementation (about 40 lines of code, see 
attachment) for a proof of concept (bouncing ball demo, monochrome for 
simplicity). The interface to my FPGA consists of only 6 wires (2 more 
for color display). The image is sharp and clear (pixel-to-pixel 


von Ds (Guest)

Rate this post
0 useful
not useful
This looks awesome. I'm going to try it out!


Entering an e-mail address is optional. If you want to receive reply notifications by e-mail, please log in.

Rules — please read before posting

  • Post long source code as attachment, not in the text
  • Posting advertisements is forbidden.

Formatting options

  • [c]C code[/c]
  • [avrasm]AVR assembler code[/avrasm]
  • [code]code in other languages, ASCII drawings[/code]
  • [math]formula (LaTeX syntax)[/math]

Bild automatisch verkleinern, falls nötig
Note: the original post is older than 6 months. Please don't ask any new questions in this thread, but start a new one.