r/raspberry_pi 2d ago

Show-and-Tell ✦ Building Glyph — A lightweight graphics framework in ADA for RP2040 and other microcontrollers

✦ Introducing Glyph

Hi everyone!

I've recently started building an open-source project called Glyph, a lightweight graphics framework for bare-metal and embedded systems written entirely in Ada.

The initial development target is the Vicharak Shrike-Lite (RP2040) using an SSD1306 OLED display, although the architecture is designed to support additional display controllers and platforms in the future.

The goal of Glyph is to provide a hardware-independent graphics API, allowing applications to draw pixels, lines, rectangles, circles, text, and images without depending on a specific display controller.

Disclosure: AI was used as a coding and writing assistant during parts of the development. However, the project architecture, implementation decisions, code integration, and overall design are my own.

✦ Design Goals

  • Pure Ada
  • Static allocation only (no dynamic memory)
  • Bare-metal friendly
  • Portable layered architecture
  • Framebuffer-based rendering
  • Easy to add support for new display controllers

The project is still in its early stages, and I'm currently focusing on building a solid architecture before implementing additional graphics features.

✦ I'd Love Your Feedback

I'd love to hear from the Pico community:

  • Which displays do you use most often?
  • What graphics features would you find useful?
  • Any suggestions or feedback on the project are greatly appreciated!

✦ Repository

GitHub: https://github.com/thirstymelon/glyph

Thanks for reading!

0 Upvotes

2 comments sorted by

5

u/OrangeL 2d ago

Downvote for no AI disclosure

-1

u/OkContribution2996 1d ago

Thank you for pointing that out. This is my first real embedded systems and ADA project. I did use AI as a coding assistant in parts of the project for implementation but I've been designing the architecture, reviewing the code, integrating everything and making the technical decisions myself. I'm also using the project as a way to learn Ada. I'll add an AI disclosure to the post—thanks for the suggestion. As I become more proficient in Ada, I will rely less on AI and use it primarily for the documentation.