Graphics Processing Speculating

A project log for 7" LCD Nametag

Share your name in shining technical prowess.

DepotDepot 06/04/2015 at 03:530 Comments

The thing I could use most right now is a good camera. I have an old smartphone camera, but LCDs and LEDs glowing don't look very good on it. Next update will feature pictures of some hardware I've got already, but for now I'm talking about the things I've found on google like specifications and the calculations I'm figuring. I'm not a graphics processor guru, so correct me if I'm wrong because I'm only thinking out loud.

Naturally there are some interesting problems with this project. Otherwise, more people would be using 7" LCDs or selling them for small projects with 32 bit microcontrollers.

First, 800 x 480 pixels is five times as many pixels as say 320 x 240, and also there are more bits per pixel in a 24 bit RGB format. I think I can cut this down to 16 bits without losing much for the purposes of this project but I'd prefer not to. Why have a 7" screen if it's terrible resolution and color? But if I spring for 16 bits, it would cut the amount of data I need to store and shuffle around by a third.

And I think the big thing for this project will be storing and accessing that data as quick as it needs. 800 x 480 x 24 means 9 million bits for the whole screen. I'd rather not use a processor with a large amount of memory like that, so we'd have to pull it in from somewhere. If we let the display run at 10fps (slow!), that takes 7MB per second to pipe into ram (overwriting some other section of the screen) and out. So we're getting into computer-sized numbers.

Naturally, you can fix this with money. Or, if you have large quantities in manufacture and an amazing relationship with some people then you can get more for less, like a 9$ computer. I'd just like to see what I can do with chips from vendors like Mouser and how much it costs.

An SD card can be accessed by an SPI connection at maybe 25MHz, but that's only 3MB per second. The STM32 I was looking at had a 85MHz SDIO module for a more tolerable 10MBps. That's still not much; I'd hate to be stuck around ~10fps in the best of worlds. Sounds like I need to venture into RAM, which I'm not too familiar with. If you can read one byte in 20ns, parallel, then that's 50MBps. Sounds like something more like 60fps might be possible there if the data acrobatics work.

I like the RAM idea and I'd like to reinvent the whole graphics thing (it'd be fun) but I'm wondering if someone has already made a cheap chip for it. Better look around more.