PIC based picture frame

Take a PIC 24HJ256GP206 processor and add a dash of knock-off touchscreen and a pinch of SD card compatibility for a DIY digital picture frame. [Daniel] wrote his own driver for the HX8347 controlled LCD that can achieve 15 FPS at 320×240 resolution with 16-bit color. As this was a gift for his wife, [Daniel] included a heart-shaped ring of LEDs that fade in and out like an electronic pulse. He notes that the JPEG decoder runs rather slow but that’s mostly because of the bottleneck caused when accessing data from the SD card. We’ve got more pictures and a link to the source code after the break.

Source Code


  1. DeadEagle says:

    Would anyone happen to know what model LCD that is?

    I’m working on my Senior project and I’d really like to be able to implement a nice color screen, but I can’t find one that interfaces with a PIC even remotely well.

  2. Leon says:

    Proudly South African! :)

  3. Daniel says:

    The LCD was bought from one of our suppliers in ZA, you can make any LCD work from a PIC, as long as the driver is capable of addressing a pixel and changing it. Cheap/Nasty solution is the 132*132 LCD from a Nokia cellphone.

    The Part number for this LCD is ET024008DHU from http://www.edtc.com/EDT/home/home.asp


  4. willc says:

    Microchip has one that works with their PICDEM demo boards. Also, nice find on a microchip hack!

  5. Cube says:

    Interfacing a display is often just a matter of understanding how to write a piece of program to control it.

  6. heh, its a PICture frame

  7. Karl says:

    Crystalfontz has a 320×240 3.5″ with a relativly easy interface CFAF320240F-T for a bit over $50 – there’s even one with a touch screen interface for $54 that I’m doing a future project with – just get a sample of the AD7843 touch screen controller from Analog Devices.

  8. andrew says:

    That’s pretty neat, particularly that it has a JPEG decoder. Now does anybody know if it’s possible to code a JPEG encoder on an AVR microcontroller?

  9. sneakypoo says:

    I hate LCDs :( Why? Because I can never get the bloody things to work. I have one lying right here on my desk just laughing at me. I must be retarded or something :(

  10. Johnny '; Drop Table Student; -- says:

    Some cheap graphic LCDs these days don’t come with the LCD drive voltage chips on them as a lot of them have gone obsolete. You end up having to create your own negative voltage or they just won’t work. If you see empty pads on the LCD’s pcb for a chip and some caps then chances are that’s the problem.

  11. Fallen says:

    I’d imagine whey would cause a bottle neck…it’s not so easy to interface with all the curds in there.

  12. biozz says:

    at first i came to make a little snarky comment on how it looks but it does look rather nice :3

  13. M4CGYV3R says:

    Hm, might have to break out the PICkit and find a nice LCD.

    Does this thing use the touch input for anything or just for display?

  14. Daniel says:

    it uses touch (internal ADC) to change settings

  15. RenoBaron says:

    I wonder how he soldere that 0.5 mm pitch SMD lcd connector?
    Is it possible to achieve that kind of results with a normal solder iron?

  16. anon says:

    why not add a little 1MB RAM chip as a buffer for a few of the files on the SD?

  17. bearmos says:

    did i miss a link to a schematic?

  18. Daniel says:

    Connector is soldered with a 3mm wide tip

    I sent mike the schematic, he can upload and link if he wants.

  19. Hannibal von Karthago says:

    Thanks, Good work !!!

  20. spiralbrain says:

    Ive done something similar with a 18F452. There are a lot of chinese phone LCDs with a resolution of 240×320 that use the ILI9325 series controllers. here is a video http://www.youtube.com/watch?v=Yw_RO4qMYvY

  21. thlip says:

    Cool, I’ve been trying to get the LCD to work out of my broken down ipaq but I suck.

  22. BlackCow says:

    I am most impressed by his circuit board etching, beautiful!

  23. VaclavPe says:

    It looks, that Mike doesn’t want to publish schematic…

    Daniel, do you plan to publish the frame on JVRDesign pages, too ?

  24. Daniel says:

    Will probable publish it on there as well once I get time to do an update of the website

  25. Dino says:

    Hey Daniel

    What method do you use to make your PCBs? Heat transfer/photolithography/etc ? Very well done with the SMD stuff.

    And a very lekker project overall ;) Good to see some ZA representation on HaD.


  26. ben says:

    thats a dead linky to the source code

  27. st2000 says:

    I don’t know if any are still listening. I’m not even sure if Mike was the original developer. But, Mike, if you are… Regarding the limitations of the SDCard. Note, you can probably run your PIC 24F SPI bus at 8MHz. After that you should as least use Class 4 SDCards. Higher class cards didn’t buy me anything except they cost more. I was probably able to get something like 140KBytes/Second that way (don’t know the real speed because of other things going on in the loop). Test different SDCards if you don’t get at least that through put. It stinks, but I am suspicious some manufactures rank their cards by the 4 bit bus performance and let the SPI interface go to pot come development time. I have some Kingstons which test fast (probably over the 4 bit bus) but are suspiciously slow talking to my 24F over the SPI bus.

  28. roberto says:

    The link to the source code does not work.
    Someone has a new link?

    Thanks a lot!

  29. asi says:

    Source code link is not working..

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s


Get every new post delivered to your Inbox.

Join 96,598 other followers