element14 Community
element14 Community
    Register Log In
  • Site
  • Search
  • Log In Register
  • About Us
  • Community Hub
    Community Hub
    • What's New on element14
    • Feedback and Support
    • Benefits of Membership
    • Personal Blogs
    • Members Area
    • Achievement Levels
  • Learn
    Learn
    • Ask an Expert
    • eBooks
    • element14 presents
    • Learning Center
    • Tech Spotlight
    • STEM Academy
    • Webinars, Training and Events
    • Learning Groups
  • Technologies
    Technologies
    • 3D Printing
    • FPGA
    • Industrial Automation
    • Internet of Things
    • Power & Energy
    • Sensors
    • Technology Groups
  • Challenges & Projects
    Challenges & Projects
    • Design Challenges
    • element14 presents Projects
    • Project14
    • Arduino Projects
    • Raspberry Pi Projects
    • Project Groups
  • Products
    Products
    • Arduino
    • Avnet Boards Community
    • Dev Tools
    • Manufacturers
    • Multicomp Pro
    • Product Groups
    • Raspberry Pi
    • RoadTests & Reviews
  • Store
    Store
    • Visit Your Store
    • Choose another store...
      • Europe
      •  Austria (German)
      •  Belgium (Dutch, French)
      •  Bulgaria (Bulgarian)
      •  Czech Republic (Czech)
      •  Denmark (Danish)
      •  Estonia (Estonian)
      •  Finland (Finnish)
      •  France (French)
      •  Germany (German)
      •  Hungary (Hungarian)
      •  Ireland
      •  Israel
      •  Italy (Italian)
      •  Latvia (Latvian)
      •  
      •  Lithuania (Lithuanian)
      •  Netherlands (Dutch)
      •  Norway (Norwegian)
      •  Poland (Polish)
      •  Portugal (Portuguese)
      •  Romania (Romanian)
      •  Russia (Russian)
      •  Slovakia (Slovak)
      •  Slovenia (Slovenian)
      •  Spain (Spanish)
      •  Sweden (Swedish)
      •  Switzerland(German, French)
      •  Turkey (Turkish)
      •  United Kingdom
      • Asia Pacific
      •  Australia
      •  China
      •  Hong Kong
      •  India
      •  Korea (Korean)
      •  Malaysia
      •  New Zealand
      •  Philippines
      •  Singapore
      •  Taiwan
      •  Thailand (Thai)
      • Americas
      •  Brazil (Portuguese)
      •  Canada
      •  Mexico (Spanish)
      •  United States
      Can't find the country/region you're looking for? Visit our export site or find a local distributor.
  • Translate
  • Profile
  • Settings
Project Videos
  • Challenges & Projects
  • element14 presents
  • Project Videos
  • More
  • Cancel
Project Videos
Documents Turning a Raspberry Pi Pico into a GPU! -- Episode-644
  • Documents
  • Members
  • Mentions
  • Sub-Groups
  • Tags
  • More
  • Cancel
  • New
Join Project Videos to participate - click to join for free!
Related
Recommended
Engagement
  • Author Author: tariq.ahmad
  • Date Created: 29 Feb 2024 9:30 PM Date Created
  • Last Updated Last Updated: 29 Feb 2024 9:56 PM
  • Views 8190 views
  • Likes 8 likes
  • Comments 18 comments

Turning a Raspberry Pi Pico into a GPU! -- Episode-644

In this episode, Clem takes us through the intricacies of the Raspberry Pi Pico and graphics cards. Forget the technical jargon; imagine a graphics card as a translator between your CPU and the screen, a bit like those old-school graphics adapters but with a modern twist. Clem, our guide, dives into the world of microcontrollers, specifically the RP2040, cooking up digital concoctions for today's monitors and touchscreens. 

Watch the Video:

You don't have permission to edit metadata of this video.
Edit media
x
image
Upload Preview
image

Downloads & Links | Bill of Material | Discussion

But every journey has its bumps, and Clem hits a roadblock with high-speed video signals. Ever tried hand wiring on a breadboard? It can be a hit or a miss. Spoiler: It's a miss. Clem troubleshoots with DVI-Socks, dealing with impedance-matching intricacies using resistors. It's a bit like walking a tightrope – precision is key, but it's easy to slip. 

image

The video navigates through connection experiments – soldering DVI sockets, trying headers – with Clem emphasizing the importance of stable connections over detachable boards. A nudge in the wrong direction, and the signal's out of sync. Clem wraps it up neatly with a PCB design, a more reliable solution for video signals with the Raspberry Pi Pico. 

image

The plot thickens as Clem tackles the connection conundrum.  In the PCIe connector, Clem spots a hidden SMBus, an I2C bus in disguise.  This lets Clem attach the Pseudo-GPU to the SMBus via the PCI connector. 

image

The grand finale showcases Clem's Arduino code, a practical display of text, colour, and rotation using the Adafruit GFX library. Clem demonstrates using two Raspberry Pi Pico boards, connected via I2C, showing them playing nicely with a small monitor. The graphics are very basic, but the concept opens doors for more creative projects. 

Downloads & Links:

  • Download Code and Schematics!
  • Pico dvi https://github.com/Wren6991/PicoDVI
    DVI Sock https://github.com/Wren6991/Pico-DVI-Sock

Bonus Content Video:

You don't have permission to edit metadata of this video.
Edit media
x
image
Upload Preview
image

Bill of Material:

Product Name Manufacturer Quantity Buy Kit
Raspberry pi pico Raspberry pi 2 Buy Now
 

Additional Parts:

DVI Socket

element14 presents

element14 presents  |  About Clem  |  Project Videos 

  • Electronic circuit design tips
  • Digital video signal generation
  • DVI troubleshooting
  • Creative projects with Pseudo-GPU
  • Raspberry Pi Pico graphics card
  • PCB design for video signals
  • SMBus and I2C communication
  • Microcontroller-based display solutions
  • Impedance matching in electronics
  • PCI Express connector applications
  • Graphics output with microcontrollers
  • High-speed video signal impedance
  • Arduino code for video display
  • Microcontroller video signal
  • Raspberry Pi Pico connection solutions
  • friday_release
  • e14p_CMM
  • Share
  • History
  • More
  • Cancel
Actions
  • Share
  • More
  • Cancel
  • Sign in to reply

Top Comments

  • beacon_dave
    beacon_dave over 1 year ago +1
    Nice project. There are several use cases where you only need a microcontroller but you need to drive a larger display for basic text and graphics. The +5V originally was to power the EEPROM containing…
Parents
  • KallDrexx
    KallDrexx over 1 year ago

    This is awesome. I had a similar thought on a MCU that was SPI bottlenecked to displays, and created a project I call Microgpu (github.com/.../microgpu). Right now it has an SDL and Esp32-S3 implementation, but everything's abstracted that it's expandable to a pi-pico and others as well. I have a Pi Pico with an HDMI port on it but I haven't had to the time to experiment with it yet (been focused on the esp32-S3 just due to higher RAM).

    I used a similar model you are, where you send it draw commands (draw triangle, draw rectangle, draw text) and the GPU then executes those commands on its own internal frame buffer. You can even pre-load textures onto it from the MCU, then do texture draws for sprite drawing. I use the latter to render some small MCU based games, and I've been able to achieve 100+ fps using this to render a 3d octehedron (MCU did the 3d math and determined where triangles go in screen space, then it instructs the GPU to draw them with a solid color based on lighting normals).

    I didn't think about making a PCIE board for it, that's pretty awesome.

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • More
    • Cancel
  • mayermakes
    mayermakes over 1 year ago in reply to KallDrexx

    that is aweseom!
    thanks for sharing your project!
    for time reasons I hvent implemented the drawing functions yet and focused only on text, but maybe it would make more sense to just port your project to a pico for the hdmi compatibility.

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • More
    • Cancel
  • KallDrexx
    KallDrexx over 1 year ago in reply to mayermakes

    Thanks.  Yeah I get the time thing.  I've only implemented a few fonts and a few basic drawing commands.  Last night I did get it working on those all-in-one esp32s3 + display boards that sell on Aliexpress for $14.  So the idea is you just buy those boards, flash the GPU firmware onto it, then wire it up to your MCU and go. 

    So for example there's this: https://www.youtube.com/watch?v=Wso_Nsh81CY.  That's a Meadow stm32 (running C#) using the accelerometer to do 3d math and compute the octohedren rotation.  Then passing the information to the 7" 800x480 all-in-one device for rendering.  I need to do some performance work and reduce memory back and forth, but it at least was pretty fast to spin that up as a proof of concept (previous uses use an ili9341 8-bit parallel display).

    Another example I got my UI example running on it too: https://www.youtube.com/watch?v=96u6pD-FAs8

    I just bought a FPGA and I may start learning FPGA work and maybe turning an FPGA into a GPU with that.  But that's a more long term idea :)

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • More
    • Cancel
Comment
  • KallDrexx
    KallDrexx over 1 year ago in reply to mayermakes

    Thanks.  Yeah I get the time thing.  I've only implemented a few fonts and a few basic drawing commands.  Last night I did get it working on those all-in-one esp32s3 + display boards that sell on Aliexpress for $14.  So the idea is you just buy those boards, flash the GPU firmware onto it, then wire it up to your MCU and go. 

    So for example there's this: https://www.youtube.com/watch?v=Wso_Nsh81CY.  That's a Meadow stm32 (running C#) using the accelerometer to do 3d math and compute the octohedren rotation.  Then passing the information to the 7" 800x480 all-in-one device for rendering.  I need to do some performance work and reduce memory back and forth, but it at least was pretty fast to spin that up as a proof of concept (previous uses use an ili9341 8-bit parallel display).

    Another example I got my UI example running on it too: https://www.youtube.com/watch?v=96u6pD-FAs8

    I just bought a FPGA and I may start learning FPGA work and maybe turning an FPGA into a GPU with that.  But that's a more long term idea :)

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • More
    • Cancel
Children
No Data
element14 Community

element14 is the first online community specifically for engineers. Connect with your peers and get expert answers to your questions.

  • Members
  • Learn
  • Technologies
  • Challenges & Projects
  • Products
  • Store
  • About Us
  • Feedback & Support
  • FAQs
  • Terms of Use
  • Privacy Policy
  • Legal and Copyright Notices
  • Sitemap
  • Cookies

An Avnet Company © 2025 Premier Farnell Limited. All Rights Reserved.

Premier Farnell Ltd, registered in England and Wales (no 00876412), registered office: Farnell House, Forge Lane, Leeds LS12 2NE.

ICP 备案号 10220084.

Follow element14

  • X
  • Facebook
  • linkedin
  • YouTube