VGAtonic
Entry level embedded video card in a neat little CPLD package.
Install / Use
/learn @dqydj/VGAtonicREADME
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)
Related Skills
qqbot-channel
344.1kQQ 频道管理技能。查询频道列表、子频道、成员、发帖、公告、日程等操作。使用 qqbot_channel_api 工具代理 QQ 开放平台 HTTP 接口,自动处理 Token 鉴权。当用户需要查看频道、管理子频道、查询成员、发布帖子/公告/日程时使用。
docs-writer
99.8k`docs-writer` skill instructions As an expert technical writer and editor for the Gemini CLI project, you produce accurate, clear, and consistent documentation. When asked to write, edit, or revie
model-usage
344.1kUse CodexBar CLI local cost usage to summarize per-model usage for Codex or Claude, including the current (most recent) model or a full model breakdown. Trigger when asked for model-level usage/cost data from codexbar, or when you need a scriptable per-model summary from codexbar cost JSON.
Design
Campus Second-Hand Trading Platform \- General Design Document (v5.0 \- React Architecture \- Complete Final Version)1\. System Overall Design 1.1. Project Overview This project aims t
