picodvi
DISCONTINUED
pico-extras
Our great sponsors
picodvi | pico-extras | |
---|---|---|
30 | 6 | |
195 | 428 | |
- | 3.7% | |
0.0 | 2.6 | |
about 3 years ago | 8 days ago | |
C | C | |
BSD 3-clause "New" or "Revised" License | BSD 3-clause "New" or "Revised" License |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
picodvi
-
FuryGpu – Custom PCIe FPGA GPU
The RP2040 is a great MCU for playing with graphics as it can bit bang VGA and DVI/HDMI. There's some info on the DVI here: https://github.com/Wren6991/PicoDVI
I wrote a couple of articles on how to do bit banged VGA on the RP2040 from scratch: https://gregchadwick.co.uk/blog/playing-with-the-pico-pt5/ and https://gregchadwick.co.uk/blog/playing-with-the-pico-pt6/ plus an intro to PIO https://gregchadwick.co.uk/blog/playing-with-the-pico-pt4/
-
Video Game Module for Flipper Zero
A few years back someone was bit banging DVI and 720p 30fps video straight off the RP2040 GPIO pins with just inline resistors between not and the HDMI cable.
-
VGA driver using PIO and DMA on the RP2040
I have the Adafruit DVI board and have been hacking on it some. It's more fun than should be allowed.
There's a project to get this running using Rust[1]. Currently it outputs the blue channel with sync, but has trouble with the other two channels. I don't have a hardware lab with scope, logic analyzer, etc., so it's not easy for me to debug.
In the meantime, I've been doing some experiments in the C codebase as well[2], mostly in the direction of proportionally spaced bitmap text, using the fonts in the X11 distribution.
-
Recommend MCU with dual USB - one host and one device IF?
There is even bit-banged DVI library for pico.
-
Show HN: PicoVGA Library – VGA/TV Display on Raspberry Pi Pico
Apparently, there is a digital video output project for the RP2040 already out there [0]! As for why digital video is more rare, it is because the common digital video formats are higher bandwidth and require higher signal integrity.
-
Has anyone created a graphics card/engine?
I have seen Micro controllers bit bang HDMI https://github.com/Wren6991/picodvi
-
My newest project: Dedicated blinkenlights for your rack.
Its a great chip all around. 133Mhz Dualcore M0+ and it has 5 programmable state machines. With those it punches way above its weight. Here is a very interesting dvi project for the pico
-
RP2040 Doom
FWIW, it's possible to bit-bang DVI at 640x480 on the 2040. Takes about half of the available resources:
-
Microcontroller VGA Interface Projects
The RP2040 (as used by the Raspberry Pi Pico) can generate some impressive video thanks to its PIO. E.g. Luke Wren's work giving DVI output https://github.com/Wren6991/picodvi and the scanvideo library: https://github.com/raspberrypi/pico-playground
I did a write up going over how to generate VGA video from scratch to produce some SNES like graphics:
-
A Closer Look at Raspberry Pi RP2040 Programmable iOS (PIO)
> HDMI is a 10Gbps port.
> The PIO ports discussed here are on the order of 100kHz
PIO runs at the system clock, 125 MHz by default, overclocks of over 400 MHz have been reported stable. A single PIO can clock out 32 bits every cycle (with a DMA and a memory system that can feed this), giving you a total of 4 Gbps.
Running at full throttle like that, especially for a decent length of time is tricky if you want to actually do anything other than blast out bits but 16 or 8 bits per cycle is a lot more straight forward, so 2 or 1 Gbps.
DVI output has already been demonstrated, running two displays at 480p: https://github.com/Wren6991/picodvi
The DVI is maybe more of a party trick than something you'd do in production hardware but it does demonstrate how capable the PIO can be. You could happily implement the same concept in a more performant device and reach 10 Gbps or more in a reasonable way.
pico-extras
-
Raspberry Pico C: Remote Sensor
In the Pico Extras repository, find the external/pico_extras_import.cmake file
- VGA driver using PIO and DMA on the RP2040
- External Quad SPI pins?
-
SD/MMC reading/writing with C SDK
There is https://github.com/raspberrypi/pico-extras/tree/master/src/rp2_common/pico_sd_card which is SDIO based, and works for reading/writing sectors, but very bare bones prototype atm.
-
A Closer Look at Raspberry Pi RP2040 Programmable iOS (PIO)
I've just been getting to grips with the PIO, they are a lot of fun to program. Whilst the instruction set is very limited with only enough memory for 32 of them you can do some pretty sophisticated things. A key part of the flexibility is the ability to execute incoming data as instructions. You can stream in a mixture of data and instructions via the DMA, the PIO separates the two and uses the instructions to modify execution so a simple loop becomes a lot more flexible. You can easily sync several of them up to. The scanvideo library: https://github.com/raspberrypi/pico-extras/blob/master/src/c... which is for producing video signals (like VGA) on the fly with scanlines supplied by the CPU is a good example of what's possible. You can have multiple scanline PIO running at once, each decoding a compressed RLE format including transparency and it composes them all together on the fly.
If you've ever played one of the Zachtronics games (in particular Shenzhen IO) it feels like the programming in one of those games. Tight constraints but major possibilities when you think about it for a while.
What are some alternatives?
no-OS-FatFS-SD-SPI-RPi-Pico - A FAT filesystem with SPI driver for SD card on Raspberry Pi Pico
pico-examples
pico-sdk
rpi - Microcontroller projects (RPi, Arduino, ATTiny85, ESP, Pico, STM8/32)
showmewebcam - Raspberry Pi + High Quality Camera = High-quality USB Webcam!
esp-idf - Espressif IoT Development Framework. Official development framework for Espressif SoCs.
Gert-VGA-666 - Resources for Gert VGA 666
Arduino_STM32 - Arduino STM32. Hardware files to support STM32 boards, on Arduino IDE 1.8.x including LeafLabs Maple and other generic STM32F103 and STM32F407 boards.
pico-zxspectrum - ZX Spectrum for Raspberry Pico Pi RP2040
Arduino_Core_STM32 - STM32 core support for Arduino
Arduino_STM32 - Arduino STM32. Hardware files to support STM32 boards, on Arduino IDE 1.8.x including LeafLabs Maple and other generic STM32F103 boards
vga-rpi - VGA interface using Raspberry Pi as a PCXT graphics card emulator