Component Video Hat
I just wanted to share a little pet project of mine. I'm pretty obsessed with the authentic CRT so I've been looking into ways to connect the pi to a real analog CRT.
The design uses the GPIO pins in the full 24-bit display parallel interface mode. I built a custom video RGB DAC (similar to gert vga666 but with some enhancements) plus a component video transcoder.
Results are promising, although getting the geometry and scaling is an ongoing challenge. The picture is on a CRT HDTV (480p). With a scanline overlay, the image basically looks exactly like a standard def 240p screen since all of the glorious imperfections of the CRT are still present.
BTW - native 240p output also works, so next step is to craiglist a standard def TV and also add a composite video encoder!
IcyFever last edited by IcyFever
@mikechi2 Very interested in this, do you have anymore info? Do you plan on selling a version of this?
Rion last edited by
@mikechi2 Nice! The more alternatives we have the better. PI2SCAR, RGB-PI and so on.
A beta firmware recently added support for 240p. Have a look at my thread Output 240p (instead of 480i) on composite RCA
Rion last edited by
@HiScoreBob Posted a great guide and comparison screenshots using the far more superior Pi2Scart from Arcadeforge.net on the libretro forums.
ABrugsch last edited by
Ooh! Very nice!
I spot purple PCBs so no guesses where they were fabbed ;) that being the case have you open sourced the design?
Thanks guys for your replies! Update: I found a nice late model Trinitron on Craigslist today to give the 240p mode a shot and works really well!
Except... I'm still struggling with scaling in Retropie. The display resolution is 320 x 240. It seems like the output is being scaled because I can see shimmering and object size variations during scrolling. Does anyone know how to force Retropie to not scaling (e.g., for S/NES games output only to the middle 240 x 224 pixels)? I turned on integer scaling in the options but that made things worse. Any tips would be much appreciated, driving me nuts :-)
@IcyFever This was a pet project and I'm not sure how many more I want to build :-). If there's enough demand I might be interested in doing a small production run after I flush out some more bugs. In terms of info, the board is pretty simple -- it's the same idea as a VGA666 but I used the 24-bit mode to get better color resolution. Instead of a RGB output and the need for an external RGB->Component adapter, I designed an analog transcoder on the board that directly outputs to YPbPr RCA jacks.
@Rion Nice to see the 240p over composite, that's fantastic! I was going to add a composite video encoder next but glad to see you guys already got to it.
@ABrugsch Thanks! Yeah I'll probably open source it at some point. The design is a mess right now, needs a clean up. There's also odd color artifacts that I see on some TVs that I need to figure out.
IcyFever last edited by
@mikechi2 Thanks, well if you ever decided to sell let me know, I'm going to go SCART to Component for now but this is definitely an easier solution. Also what model Trinitron is that? If its the FV310 you really lucked out, its widely considered the best consumer grade CRT for retro gaming.
maxriptide last edited by
If the display resolution is 320x240 the only way to display NES/SNES without artifacts is to set:
custom_viewport_width = "256"
custom_viewport_height = "224"
in retroarch.cfg file for both emulators.
Since 256x244 is not 4:3 you are not going to get the correct aspect ratio on screen and black borders too. A possible solution is to find the correct hdmi_timings to get the 256x224 display resolution (instead of 320x240) but all the emulators which displays different resolution (e.g. Mega Drive, PC Engine) will have artifacts.
We have been talking about this on this thread:
tjohnson last edited by
Looks an interesting project, I thought the gert used a resistor ladder while your solution looks to be using some sort of IC / processor to process the analogue signal?
I've been able to get a nice 240p output using an HDMI to VGA converter and then built a homemade VGA to scart cable with a couple of resistors to combine the horizontal and vertical sync signals into one. Works well, I've had to enable overscanning to bring the image into the edges of the TV. looks 100% genuine arcade quality on my JVC CRT television.
I've tried the 240p beta firmware which also works, I found the 50hz PAL option better quality than the 60hz NTSC option which had more of the rainbow effect which you get with composite but it had none of the horrible flicker of interlaced 480i.
@maxriptide Sweet, thanks! I got the pixel scaling correct.. now need to get the hdmi_timings. Hope I don't have to go to work to use the scope...
mikechi2 last edited by mikechi2
@tjohnson The idea is indeed the same as Gert -- the ICs are amplifiers are for mixing the RGB -> Component. Also there's a voltage regulator; I don't trust the PI to have clean outputs on the GPIOs.
For the next gen, I was thinking of using a real triple video DAC but it looks like they're quite pricey. A R2R ladder would be better though, the problem with the current design is the need for binary scaled resistors which are also hard to find over a range of 8 decades.
@IcyFever Haha, thanks! If I ever get there you'll be the first to know! Yeah, I really lucked out - found one on Craigslist yesterday for $30. I didn't even know about the FV310 until you mentioned it. I used to have an older WEGA but the FV310 really surprised me on how sharp it was.
Here's an update. Thanks again for all your help and kind comments! I figured out all the scaling issues and everything works nicely. I'm as happy as a cat :)
Also designed generation 2:
It should solve the noise problems, be easier to build and adds a NTSC encoder for S-Video and composite outputs!
mikoy last edited by
looking forward to this! just amazing, this is everything i ever wanted.
edmaul69 last edited by
@mikechi2 not sure why i never saw this thread. I am very much i terested. As long as i dont have to do any programming i am ok with assembling it myself if it makes it easier for you. I have been obsessing about going crt lately. Since you mentioned a scope, i also decided to build a circuit to use one of my scopes as a tv. Just because i can. :)
Thanks guys :) The next gen is done. It adds S-Video (which looks awesome and really makes it compatible with most higher end TVs) as well as composite (which is crap):
Still need to shoot down some bugs. In the meantime, I might also suggest checking this out to get your 240p (via composite) fix:
Will keep you posted!
edmaul69 last edited by
@mikechi2 im going to need to buy some some video cables for my pi-station 1. I have the original video port still for composite. Now i am going to have to wire s-video and component to it as well. :) 😊
edmaul69 last edited by edmaul69
@mikechi2 can you post what settings we need to set/add in the config.txt or anything else we need to change to get this to output video?
@edmaul69 Good question. Argh, I don't have permission to upload a file. I'll post detailed instructions on the website this weekend along with some notes about how I'm configuring my emulator settings and get back to you ASAP!