Code Monkey home page Code Monkey logo

vgatonic's Introduction

VGAtonic

4 MBit Video Card supporting up to 640x480 resolution and 8 bit color depth over SPI. Outputs to any standard VGA Monitor.

What it is:

VGAtonic is a video card for adding graphics output to computers, microcontrollers, and devices with SPI output. It can generally support 5v, 3.3v and 2.5v SPI without level conversion, and can accept SPI of up to 60 MHz (or higher), giving 24.4 FPS as a worst case top speed for it's highest resolution and color depth. It is also an entry to the 2015 and 2014 Hackaday Prize competitions.

It additionally has hardware supported accelerations for various things, meaning that slower SPI links can still have useful display output:

  • 640x480 resolution
  • 320x240 resolution
  • 160x120 resolution
  • 80x60 resolution
  • 8 bit color (256 colors)
  • 4 bit color (16 colors)
  • 2 bit color (4 colors)
  • 1 bit color (black & white)

Last, it also accelerates screen positioning, so the entire framebuffer need not be updated for a single refresh (allowing, for example, a menubar at the bottom of the screen to be updated at the full 60 Hz possible in the 640x480 resolution mode).

Importantly, all of these accelerations stack, so if you have a 4 MHz link, you can choose to target, say, 160x120x4 bits for 52 FPS worst case.

How it's made:

See the entire parts list in this Hackaday Prize post. As part of the project, to keep it interesting (and keep costs down) I used modestly spec'd parts - a 144 Macrocell Xilinx XC95144XL CPLD instead of a large FPGA, and an 8 bit 128-Bytes of RAM Atmel ATTiny 2313a Microcontroller instead of one of the larger Atmel parts or something 32-bit (it's not even the largest part in its footprint). Additionally, the pixel clock is provided by Linear Technology's LTC6903, allowing it to be changed on the fly (and, undoubtedly, tuned for specific monitors) by the microcontroller.

You can find the schematics in the Rev A directory..

As for the software:

  • KiCad for the layout and Schematic
  • VHDL on Xilinx's ISE Webpack for the CPLD
  • C/C++ for any Microcontroller and Computer glue
  • C for the kernel code for the VGATonic Linux framebuffer drivers
  • Python where necessary

How it's licensed:

MIT (Hardware, Firmware, Python Examples, Arduino Code)

GPL (Linux Framebuffer Drivers, Linux Userspace Code)

LGPL (Changes to Arduino-Tiny Core)

vgatonic's People

Contributors

dqydj avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

vgatonic's Issues

Supplying chain

Hi,
it seems to be a very appealing project.
Would it be possible to have the board available as a Kit or pre-assembled ?

Kind regards,
Dominique

Low speed specs?

Hi there, the docs for VGAtonic says that it supports anything that can talk SPI, I'm wondering what minumum speed would be? In other words, what does it do if the SPI clock in is literally toggling at millisecond speeds? Does it work, or does it flip out? The reason I ask, is I'd like to use VGATonic as a graphics card for an 8-bit TTL-based computer (breadboard stuff) that I'm building with some high school kids as a learning exercise. So, we could generate SPI signals, but they're going to be slow, and actually since we enable a "single step mode" for the CPU components, it could end up being very very very slow.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.