The first thing I had to do when designing my Pip-Boy was choose an appropriately-sized screen that I could connect to my Raspberry Pi.
I chose this screen from the marvelous Adafruit – it was about the right size, and it takes a composite-video input:
This screen and its driver-board were probably originally intended for use in an in-car monitor, for a reversing-camera or maybe for a portable DVD-player – it requires 6-12v of power to run, but I reckoned I ought to be able to supply that from some batteries.
The screen’s resolution is quite low (320×240) but that’s just fine for my purposes.
While waiting for that to arrive from far-off New York, I then searched for a rectangular lens to lay over the screen, to give the effect of a curved monitor.
After failing trying to find a cheap separate lens with the right shape and aspect-ratio, I ended up doing what a previous builder had done, and bought likely-looking cheap second-hand slide-viewer from Ebay, which I dismantled.
This slide-viewer contains two chunky plastic lenses, and the largest of the lenses was just the right size and shape for what I needed:
I was pleased to find that I could slot the screen into the slide-viewer where its smaller interior lens originally sat – making a delightful little CRT-looking monitor!
In order to get the RasPi to output to the full screen (i.e. no black borders) I edited its config.txt file with the following lines uncommented/changed:
framebuffer_width=640
framebuffer_height=480
disable_overscan=1
overscan_left=36
overscan_right=18
overscan_top=0
overscan_bottom=0
sdtv_mode=2
That combination of overscan/disabled options might seem a bit weird, but it allowed me to fill the whole of the TFT.
You’ll see that I’ve set it to use twice the screen’s resolution – I found that PyGame (which I’m using to draw the UI graphics) didn’t work right when the system-resolution was lower than 640×480.
The console-text and Xwindows are still just about readable at that resolution, if you squint carefully!
Coming up… how I modified this 6-12v screen to work on the RasPi’s 5v power-supply!