Raspberry Pi Pico becomes a GPU: how is it possible

Raspberry Pi Pico becomes a GPU: how is it possible

Raspberry Pi Pico is a low-cost, high-performance microcontroller introduced in January 2021. It is the first Raspberry Pi board to use the RP2040 chip developed in-house by the same company.

The microcontroller integrates a 133 MHz ARM Cortex-M0+ dual-core processor and 264 KB of RAM. The board offers 26 GPIO pins for connecting sensors, actuators and other devices, supports various communication modes (serial, I2C, SPI, PWM) and has 2 MB of flash memory on-board. It can be programmed in different languages ​​such as Assembly, C, C++, Free Pascal, Rust, Go, MicroPython, CircuitPython, Ada and TypeScript. Even with the simple BASIC language.

Have you ever thought you could use a Raspberry Pi Pico as a GPU?

I single-board computer Raspberry are extremely complete and versatile, even when it comes to graphics abilities. But it’s hard to think of a Raspberry Pi Pico that performs the functions of GPU. Nevertheless Clem Mayer from Element14 has proven that this is indeed possible.

As he explains in this YouTube video, Mayer needed to add graphics capabilities to an ESP32-S3 SoC device developed by Espressif Systems.

Mayer designed a printed circuit board on which to house the Pi Pico board. A DVI port is positioned on one side and there is a compartment to expose the GPIO contacts.

The end result is a graphics processor working capable of handling some low level processing for small machines. In his video, the researcher developed code using theIDE Arduino and made use of a lightweight Linux-based setup.

Pico DVI

The DVI, DisplayPort, HDMI, and even VGA standards all rely on I2C to set up the initial connections to the host device and configure the display before you even need to switch to using a dedicated driver.

Mayer then took advantage of Wren6991’s PicoDVI library, which allows an RP2040 chip to send DVI signals via PIO and control a display.

Mayer’s code is still based on the PicoDVI design, but instead of manipulating individual pixels, he made the microcontroller act as an I2C peripheral device to accept commands and convert them into calls Adafruit GFX which are ultimately written about drawing from a buffer.

Leave a Reply

Your email address will not be published. Required fields are marked *