The Graphics Gremlin – An Open Source Retro ISA Video Card
github.com
github.com
Linus Akesson's bit-banger comes to mind, which does so with an Atmel ATtiny15. This microcontroller is - well - tiny, about so tiny:
Bit banger is built around an ATtiny15 microcontroller, which runs at 1.6 MHz and has 1 kB of flash ROM and a claustrophobic 32 bytes of RAM. In fact, those 32 bytes are the CPU registers. Only the most basic AVR instructions are supported; they occupy at least two bytes each, and can obviously not be compressed since they are executing from ROM, so a maximum of 512 instructions will fit inside the chip (fewer if static data is needed). [1]
Another cool project I came about recently, but haven't had time to try out, is bit banging VGA Framebuffer written in Rust. [2]
[1] https://www.linusakesson.net/scene/bitbanger/index.php
[2] https://github.com/thejpster/vga-framebuffer-rs
P.S. To give a bit historic context. I remember having an electronics book with a pattern generator made with only a PIC. Must have been the late 90s, so bit banging graphics is definitely not a recent development but it is still incredible to be able to generate these signals fast enough without special hardware and only in software.
EDIT: Thinking about it, I'm not sure anymore if the PIC project was VGA or PAL and I couldn't find the book quickly.
And once you are past cheap Atmel or ARM micro-controllers, FPGA designs are often the most cost-effective.
This FPGA comes in at a unit cost of just $5.12 and allows a design of just the FPGA, the SRAM and a few level shifters.
Any design around a CPLD and/or raw 74 series logic would end up with a much higher BOM, and you would struggle to implement the scan-doubler functionality for 31khz output at a reasonable price point.
[1] Seriously impressive, check it out: https://www.linusakesson.net/scene/craft/index.php
The only caveat is access to the central memory store inside the microcontroller is round-robin (80MHz / 8 cores), so if the timing requirement was close to that limit (1/10MHz), you might have to do some gymnastics to make sure your routine grabs the right distribution of cores to get auspicious timing, and possibly reset and try again if that can't be achieved.
The c. 1977 Atari 2600 worked in a very similar way, wasting 80+% of the CPU time just to draw the screen. That was seen as a good trade-off back then since the games were simple and not typically doing much else with those CPU cycles.
If you look at https://www.jcmit.net/memoryprice.htm, 1kB RAM cost about $25-$50 at the time. The Atari 2600 sold for $199. The 6502 CPU, at $25 was too expensive for that (https://en.wikipedia.org/wiki/Atari_2600#MOS_Technology_6502...)
Those asrock rack units look like quality, and do have onboard video and IPMI. But they cost a lot more than a B450m pro4. Part of the magic of Ryzen is that you can now get ECC-capable systems at consumer prices, apart from the cost of the RAM itself. This has not been the case since the 486 era.
And a low-end GPU that's not doing anything is also quite power-efficient nowadays, so you don't save much in that regard.
[0]https://www.tomshardware.com/news/asrock-m2-graphics-card
30w TDP, probably lot less idle consumption, can fit to low profile designs, can be cooled passively, and costs probably around $50.
SPI connector: "I SPI WITH MY LITTLE I"
Resistor bank: "YES IT'S A RESISTOR LADDER DAC"
Voltage regulators: "POWER HOUSE"
ISA connector: "SLOW, OLD COMPUTER" (arrow)
Clock modules: "THE TICK" and "THE TOCK"
DIP switches: "MYSTERY SWITCHES"
Composite connector (not populated): "BLURRY PICTURE"
VGA connector: "REGULAR OL' VGA"
TTL monitor connector: "TTL MONITOR"
Did I get all of them?
Others like the Enidan J1 were specifically targeted toward people building clusters out of commodity hardware: https://web.archive.org/web/20010511215150/http://www.enidan...
If I find something's missing and could likely be easily added, it'd be a digital (e.g. HDMI) output.
It'd save many people the step of having to run the output through an OSSC.
>Creative Commons BY-SA 4.0 declared one-way compatible with GNU GPL version 3
>Compatibility means that a person can now take a work they received under the terms of CC BY-SA 4.0 and then distribute adaptations of that work under the terms of GPLv3.
https://www.fsf.org/blogs/licensing/creative-commons-by-sa-4...
Did the FPGA just not have enough block ram to do this?