N64 and LCD Screen

genious 7

Member
Well... in the future I am planning to redesign the N64 on a smaller PCB, much like Kibble attempted on Ben Heck. the idea of it is to have EVERYTHING on one board. While I'm not ready for that stage yet, I already rigged a prototype of how the video will work and thought others might be interested in hearing. I used the screen LQ035NC111.

b5d53b19540881899566deb847387fa4.image.150x113.jpg


I know what you are thinking: "You cant use that screen, it doesn't have " a driver. Well, that is the point of this exercise, making one.

IMG583.jpg


The board itself uses a cpld and takes the digital data from the RCP-NUS, ignoring the MAV-NUS (in this case) or the DENC-NUS. I found the following link immensely helpful when trying to understand the N64 video protocol. It also has an integrated dc converter to generate the ~20v required for the back light. The rest of the screen runs on 3.3V, which is one of the reasons I am trying to accomplish this: eliminating the 5v supply and the 12v supply, being able to power the whole thing from a single cell (voltage wise).

IMG585.jpg


If you look closely, you'll see that the colors are off and look bad. In part, the camera angle in that picture is partly responsible, see the next picture.
IMG584.jpg


However, most of the color discrepancy is caused by rather simple issue: I'm throwing half the picture away because my test probes can't be on adjacent pins and I also had a limited number of test probes. I'm not even trowing the least significant bits only, but every other bit since, well, the probes only let me reach every other pin and the vsync/hsync are present on the least significant bits. Which means, I'm throwing most of the picture quality away.

IMG581.jpg


Of course, if I manage to make the N64 into a board, I would use all pins instead of throwing half the image away. If I have time, I will be posting the schematic and CPLD code (well, schematic since I used the schematic-like programming provided by Altera) tomorrow for educational purposes. The schematic has a mistake, as evidenced by the wire on the PCB and the CPLD code....well, lets just say there where parts were I proceeded by trial and error, thus, the solution is not exactly the most elegant one :) .

Michael Chen
 
Awesome project!

If your successful in making massvely simplified and reduced size boards, you will revolutionalise N64 portabilising.

If your successful, I would love to be on the list for one of these boards.

Nick
 
Color me super, super interested. I'd even just buy a 3.5" screen that could take raw N64 signals and I know others would too. Even just the RGB or whatever that comes out of the VDC-NUS would be better than composite!

A redesigned(likely multilayer?) board that had the LCD driver on it as well as an audio amp, the 3.3v converter and controller points would be amazing, just add batteries and buttons!

SS
 
Well... ok, onto the explanation of how it works (or how it should work, there are still several kinks in it.)
http://members.optusnet.com.au/eviltim/n64rgb/n64rgb.html


The following link contains the digital protocol that goes in between the RCP-NUS and the VDC-NUS. The signal has a 48 mhz (the web page rounds it to 50) clock that transmits the sync, red, green, and blue signals in that order. In other words, it takes 4 clock cycles to transmit the data corresponding to a single pixel. If we converted that from serial to parallel with the CPLD, we would be able to transmit a full pixel every four clock cycles, in other words, at 12 mhz.

If you look at the screen data sheet, the clock cycle for parallel input is 6 MHz, which happens to be exactly half of 12. There is a reason for that; the N64 has two output modes, 240 progressive and 480 interlaced. When you run at 480 interlaced (480i for short), the pixels are transmitted at the 12MHz freq. When you are running at 240p, you are transmitting half the horizontal data. Since the N64 still sends a pixel at 12 MHz, every other pixel is a copy of the previous one. Thus, if we drop every other pixel and therefore, half the frequency we use to feed a pixel to the screen, we end up with the required 6MHz.

Something you may be wondering is that then, wouldn't we be dropping actual data when playing an interlaced signal, which uses the full bandwidth? While the answer is yes, it doesn't matter because the screen's (my screen at least) horizontal resolution is 240 pixels; dropping half of the interlaced frame leads us from 480 to 240, satisfying the screen specs. (At least in theory, I haven't been able to try it with any interlaced game yet)

Now, for the schematic, go here. The upper portion is the dc-dc converter for the back light. The large part in the middle is the CPLD. The lower group of parts is not required. It was a clock generator, as there was a .5 mHz (6 vs 6.5 mhz) difference between the CPLD output and the screen data sheet when the math is done with decimals. I added it in case it made a difference. As you can observe in the circuit board on the pictures at the first post, I never soldered this as it wasn't necessary.

The CPLD code/schematic/whatever its called is here. However, I really really really advise against using it as there are many bad practices/guesswork/unnecessary stuff in there. Yea, it kinda works, but it is still wrong. I've attached it just for reference.

I must point out that this isn't perfect yet and still needs testing. Known issues:
A) First, I haven't tested it with an interlaced game. (480i)
B) Second, the image was rather unstable. However, this was caused by the wires and probes. They aren't exactly designed for high speed signals, and the 48mhz clock from the N64 classifies as one. Poking the wires fixed and unfixed the image. The contacts were rather bad. Most likely, it will work fine on a circuit board.
C) Third, the image was slightly off-center (no idea why, but it can be fixed with code)
D) On the picture on the first post, the image was stretched towards the end (horizontally). Just to point out, I managed to fix that today.

However, this proves that a one-board N64 is feasible. I know there is already an N64 schematic somewhere in this forum; it was posted not too long ago. I probably won't do much more testing on this board; I already know what I wanted to know: that it can be made to work. Hopefully, I'll be able to get that portable-on-a-board in the near future, but I'll take some time as I need to make a schematic with my modifications, lay out the circuit board, and then hope for the best.

Things I learned:
-High Freq and cheap wires/probes is not a good combination
-Buy a bigger cpld (memory-wise, not pin count or physical size) to have more code space to fix anything that needs fixing, such as the off-centerness
-Soldering a .5mm pitch ribbon wire connector (for the screen) on a PCB with a large soldering iron tip sucks. A lot.

Color me super, super interested. I'd even just buy a 3.5" screen that could take raw N64 signals and I know others would too. Even just the RGB or whatever that comes out of the VDC-NUS would be better than composite!

This screen cannot take raw N64 signals; the CPLD in the middle does the conversion from serial to parallel. I think some 5" screens can take analogue rgb from the VDC-NUS. The beauty of this project is that it would allow everything to be powered from 3.3V, there would be no screen board (thus helping make everything thinner) and, while there is a conversion going on, it is fully digital.
 
Nah, my issue was the tip I used. I had kinda misplaced my smaller soldering iron tip, so I was left with two options, either use a larger tip or buy another tip and delay the project a few days. As I said, soldering .5mm pitch ribbon wire connector with a large tip sucks. A lot. :) Thanks for the links, however. I haven't seen those yet and they might come handy when I make the portable.
 
Back
Top