I want to put a screen in it and use an Arduino to play Space Invaders.
The screen should probably be around 5 to 7 inches, TFT, and preferably work with an Uno. That means SPI or 8-bit interface (I guess I could add an external 8-bit latch and make a 16-bit interface in a pinch).
I only need 320x240 resolution. If the resolution is any higher (eg. 640x480) I'll be duplicating the pixels.
I've seen some screens on eBay with SSD1963 controllers. They look like exactly the sort of thing I need but they all required an Arduino Mega.
What screen would you recommend? Does such a thing exist for Arduino Uno or am I going to have to bite the bullet and buy a Mega?
For a parallel mode display a shift register or two can be used to drive the
datalines, reducing the number of pins required.... There don't seem to be
very many TFT modules that do that, and the larger displays seem to be
parallel mode in my experience. At 7" most displays will be video only (and
lots more pixels), 5" is more likely to be a framebuffer perhaps.
A converter shield with one or two '595s (and any level shifting needed) could
be done on a prototyping board...
I'm presuming you've scoured eBay for TFT modules?
It kinda looks like what I want and the seller seems to make an effort with support material.
It needs an Arduino mega and a special interface shield... total about $100
Remember SPI can be driven at 8MHz on the Uno, so shift-registers aren't too poor
a cousin to full parallel interface (although that screen has a lot of pixels of course).
With 320x240 module SPI is reasonable I find.
After sleeping on it, I think I'm going to to use a mega2560.
The screen I was looking at is 3.3V and their little interface shield does level shifting for me. Hacking together a level shifter, etc., just to save $20 doesn't sound sensible. With the Mega2560 I just plug a couple of parts together and that's it. All I'll need to hack is a DAC for audio output (resistor ladder, ATtiny85, ...?)
With the extra flash memory of a Mega2560 I can also include a background image to fill out the blank borders that will be left around the screen, like in the image below. Win-win
After drawing mock-ups on bits of paper and sticking them to the cabinet I've decided even the 7" screen is too small. I'll only get an 80mm wide playing area out of it.
I've looked and looked but there's really nothing bigger that works with Arduino, Mega2560 or otherwise.
It means I have to use a Raspberry Pi, but maybe that's not a bad thing. Something new to my resume. The machine could even double up as a RPi computer when I'm not playing Space invaders.