Available
Wouldn't it be great if you could display images and graphics from a microcontroller directly to an HDMI monitor or TV? We think so! So the folks at Adafruit designed this RP2040 Feather that has a digital video output (also known as DVI) that will work with any HDMI monitor or display. Note that it doesn't do audio, just graphics!
It's like we put together a Feather RP2040 board and a DVI Breakout. You get all the pins to use on the Feather, the Lipoly battery holder, USB C power/data, onboard NeoPixel, 8MB of FLASH to store code and files, and then with the unused 8 pins, a usable DVI output CircuitPython or with the PicoDVI library on Arduino or Pico SDK
On Arduino, which is what we recommend, we use our fork of PicoDVI to create an internal frame buffer of 320x240 or 400x240 16-bit pixels which is then continuously erased as digital video from 640x480 or 800x480 doubled in pixels. Anything you 'draw' in the internal memory frame buffer appears instantly on the digital display in vivid colour. Since the library is a subclass of AdafruitGFX, it will be familiar to people who have used our TFT or OLED displays before.
There is also DVI output support in CircuitPython as of 8.1.0b2, but be aware that it uses a lot of memory, so in particular if you want to add other accessories and hardware libraries, you may need to configure it to be a monochrome display with less memory. .
Note that the DVI video generation uses a full core, both PIOs and 150K (320x240) or 190K (400x240) of SRAM. It's a bit exhausted, so be aware of the remaining resource limitations.
We also connect the I2C pins of the HDMI connectors to Feather's SDA/SCL (via a safe level shifter) so that it can read the EEPROM EDID from the screens, and CEC and Utility have been broken down. The hot plug detection pin is also available on the 16-pin header end. Read this pin to know when a display has been connected!
RP2040 32-bit Cortex M0+ dual core running at ~125 MHz @ 3.3V logic and power
264 KB RAM
8 MB SPI FLASH chip for storing files and CircuitPython/MicroPython code storage. No EEPROM
21 x GPIO pins with following capabilities:
Four 12-bit ADCs (one more than Pico)
Two I2C, Two SPI, and two UART peripherals, we label one for the 'main' interface in standard Feather locations
16 x PWM outputs - for servos, LEDs, etc
The 8 digital 'non-ADC/non-peripheral' GPIO are consecutive for maximum PIO compatibility
Built-in 200mA+ lipoly charger with charging status indicator LED
Pin #13 red LED for general purpose blinking
RGB NeoPixel for full-color indication.
Sensor conectors
Both Reset button and Bootloader select button for quick restarts (no unplugging-replugging to relaunch code)
3.3V Power/enable pin
USB Type C connector lets you access built-in ROM USB bootloader and serial port debugging
RP2040 Chip features:
Dual ARM Cortex-M0+ @ 133MHz
264kB on-chip SRAM in six independent banks
Support for up to 16MB of off-chip Flash memory via dedicated QSPI bus
DMA controller
Fully-connected AHB crossbar
Interpolator and integer divider peripherals
On-chip programmable LDO to generate core voltage
2 on-chip PLLs to generate USB and core clocks
30 GPIO pins, 4 of which can be used as analog inputs
Peripherals:
2 UARTs
2 SPI controllers
2 I2C controllers
16 PWM channels
USB 1.1 controller and PHY, with host and device support
8 PIO state machines