Close
0%
0%

Open Source Graphics Card

Advanced graphics for anything from homebrew computers to weather reporting boxes and everything that can communicate over 3.3-5v UART.

Similar projects worth following
I have had this graphics card I made and was using for another project. The other project was being documented, but I realized that this card deserved documentation and a project of its own. It uses a Parallax Propeller to output VGA and NTSC video. It can be interfaced with 115200 baud UART. Now with a datasheet!

The NGT20 was originally designed to be a terminal for my custom computers. It executes this task amazingly well. With the default color configuration there are 3 foreground colors: white, red, and green. Red is great for STDERR or other error output. White for normal text, and green for anything you want to stand out. It automatically scrolls the screen when the cursor needs space to go down, making programming even easier.

How did you come to make this project???

Well I love to build computers. So I tried to make a single board computer with a parallax propeller.... and it never worked. The pcb was kinda scrapped and the project abandoned. Later, again working on an FPGA computer, I didn't want to make the FPGA do graphics, so I thought "Hey, why not use that old, scrapped and otherwise useless board to generate graphics?" Now, the remains of an old single board computer became my first version of this project! I never knew I could love a design so much, and I made another graphics card. A cleaner version. Now I am making them using boards from OSH Park! All thanks to a scrapped single board computer.

Where is the project now?

Pretty much got everything working. Will still improve it more sometime, so its still an ongoing project.

Quick specs:

  • Supports 3.3v and 5v UART
  • supports NTSC and VGA video output
  • Support for sprite rendering
  • RAM on card can be modified for quick, repeated draws of complex objects
  • Can be an arduino shield
To come once updated:

  • Any suggestions?

My latest version is the NGT20, an advanced and refined product with all the latest bells and whistles.

Now available on Tindie here!

Documentation/Resources

It's best to see the Documentation Portal instead.

Arduino Library:

GitHub

Firmware Source Code:

GitHub

Datasheets:

NGT20 Datasheet

NGT15 Datasheet (WIP) (Outdated design! Why is this here?)

Please help me improve my datasheets! I would greatly appreciate feedback on these documents.

kicad_pcb - 147.70 kB - 04/24/2017 at 05:39

Download

sch - 23.16 kB - 04/24/2017 at 05:39

See BOM Download

NGT15-20_test.ino

A cool test program for an NGT15 or NGT20. Not compatible with GFXCard.spin firmware ;(

ino - 4.24 kB - 04/01/2017 at 03:12

Download

  • 1 × Parallax Propeller GPU
  • 1 × 5Mhz crystal
  • 1 × 24LC256 Memory ICs / EEPROMs
  • 1 × 1.1k resistor
  • 1 × 560 Ohm resistor

View all 9 components

  • Integration into my computer building obsession

    Dylan Brophy04/09/2017 at 05:44 1 comment

    If you've read my profile much you will see that I really, really like to make computers. For no apparent reason. I have done (or at least attempted) in many ways, like building a z80 computer, or trying to make CPUs out of CMOS ICs, or using an arduino yun + a screen + a keyboard. Well, a wile back I made this really cool system with an arduino. It even did some multitasking. Two things really sucked about it: its display output and the user input. For user input it had 2 buttons and a potentiometer. It used a 2x16 character LCD screen. It was really cool, but I found the code recently and decided "Why not add a keyboard and an NGT20?" I needed some videos showing my NGT20 anyways, so I have been porting most of it to the new design. I added a GUI and a nicer shell program. No file system yet, but the beginnings of the OS and all the programs are emerging. Here is the video.

    This is how far I've gotten. I want to make a Terraria like game on the arduino using my NGT20. It probably wouldn't be as complex as Terarria itself, but similar idea. So cool because I always want to play Terraria but I never want to actually pay for the game.

  • Arduino library fixes, finished datasheet, and TINDIE!

    Dylan Brophy04/05/2017 at 00:30 0 comments

    I've been wanting to post this project on Tindie for a while so I've been working hard on the documentation and Arduino library. Now that that stuff's done, I can focus on selling. I'm working on the description and more pictures and such. So yea, tomorrow you'll be able to order one for yourself! Im really excited because I always want to grow my money, I want to be an entrepreneur, and I never want to spend anything on a project. Maybe this will be the avanue to extra cash for everything I love to make. Anyways, I'll be posting a link to my Tindie store soon. In the meantime, I have these much better photos that are fit for an online store:

    Hope this works!

  • VGA and NyanCat

    Dylan Brophy04/02/2017 at 21:15 0 comments

    Finally messed around with VGA output. Had some color issues at first but I find that I like the VGA color code system better. Although it's only 6-bit color, it is easy to make a color because the bits all align in a way that makes sense. blue is lower 2 bits, then 2 bits for green, then 2 for red. Easy.

    Got an OK picture of the new NGT20 board. Too bad, my phone camera isn't great.

    Its stacked on an arduino.

    I worked on displaying NyanCat on the monitor. Added a keyboard to the arduino and now he moves! Came out good:

    The NyanCat is a sprite uploaded to the shield from the arduino, then easily displayed many times very quickly.

    Also, I got an arduino library underway. I plan on making it so the library can generate a sprite on demand, while the arduino is running. Would make coding SO much easier. The NyanCat in a c hex array is not nice for a programmer.

    Will add the arduino library's GitHub to the project.

  • Final OSH Board, NGT20, and sprites working well

    Dylan Brophy04/01/2017 at 03:11 0 comments

    I got the final 3 boards from OSH Park today and assembled my latest version. It now properly supports VGA, although I haven't messed with this yet. I moved the uart pins to arduino pins 6 and 9, as RX and TX respectively. I found that, strangely, the arduino Leonardo does NOT like software serial for my shield! It does however work great on my arduino uno. I have no doubt that it would work great on almost any other arduino board, and that the Leonardo issue can be solved.

    I improved on my arduino test sketch, so now my arduino draws some cool trees and rainbow lines. It's pretty cool! will put up my arduino sketch soon.

  • Improvements : Prototype made on OSH park board!

    Dylan Brophy03/20/2017 at 23:27 0 comments

    I made a schematic for a new graphics card with KiCad, and ordered my prototype on OSH Park! The boards came in last friday and I have since started creating new firmware. The new prototype comes with a 74lvc245 to allow communication with 5v devices. The new card also fits on the arduino, however it makes it a bit difficult to program, but it's still really cool! It would also support VGA output however I goofed up the schematic.

    In short, my new design is awesome and arduino - compatible.

    I also made a new schematic yesterday with the VGA and some other problems fixed, and ordered those boards. I will upload some pictures later today.

View all 5 project logs

Enjoy this project?

Share

Discussions

Mark Sherman wrote 03/27/2017 at 21:16 point

I would like to see this with a SPI bus. A lowly Arduino can output SPI with a few Mhz SCLK, beats out 115kbps pretty well.

  Are you sure? yes | no

Dylan Brophy wrote 03/28/2017 at 01:27 point

I would love to add a faster serial interface. the only issue is the boards I have only 2 connections between the arduino and propeller. If you have any other fast serial protocol ideas i would love to hear, and I myself will think and look into this. Thankyou :D

P.S. - creating a project to solve this. bidirectional pins is out of the question for my OSH park boards ;( but im sure I can still make a custom high speed serial protocol. #2-pin SuperSerial

  Are you sure? yes | no

Steven Gann wrote 10/19/2016 at 22:56 point

Lovely. I can't wait to mess around with it this weekend.

  Are you sure? yes | no

Dylan Brophy wrote 10/28/2016 at 00:11 point

How'd it go?

  Are you sure? yes | no

Steven Gann wrote 10/03/2016 at 11:52 point

I've been working on a homebrew CPU and am looking for a graphics adapter. The last Parallax product I used was the Basic Stamp II, back when the BoE used RS-232, so I don't know a lot about Propeller. I do happen to have a Propeller Demo F board in my collection, but never used it.

Definitely excited for more information on this.

  Are you sure? yes | no

Dylan Brophy wrote 10/05/2016 at 02:06 point

Il make a schematic of the board I made and upload it.  If your making your own cpu, are you using an FPGA or discreet logic, or something else?  If your cpu is 5v or needs UART support you may need a few chips, but with a Demo Board you will have a great graphics adapter. I would recommend it.

  Are you sure? yes | no

Steven Gann wrote 10/05/2016 at 19:22 point

Right now, all I have is an emulator (https://github.com/stevengann/sg16). I picked up a Max II CPLD to learn VHDL, because I've been wanting to get involved with FPGAs anyway.

A schematic would be helpful, thank you. It seems the Prop is popular as a video adapter.

  Are you sure? yes | no

Dylan Brophy wrote 10/18/2016 at 13:21 point

Ok I have made a schemtic and it is in the source code.  If you open the GFXcard.spin in the Propeller Tool, you will see the code and the documentation.

  Are you sure? yes | no

Dylan Brophy wrote 03/26/2017 at 16:24 point

Hey, haven't heard from you in a while. How has it come?

  Are you sure? yes | no

Similar Projects

Does this project spark your interest?

Become a member to follow this project and never miss any updates