awesome-repositories.com
Blog
MCP
awesome-repositories.com

Discover the best open-source repositories with AI-powered search.

ExploreCurated searchesOpen-source alternativesSelf-hosted softwareBlogSitemap
ProjectMCP serverAboutHow we rankPress
LegalPrivacyTerms
© 2026 Bringes Technology SRL·VAT RO45896025·hello@awesome-repositories.com
olikraus avatar

olikraus/u8g2

0
View on GitHub↗
6,540 stars·1,211 forks·C·20 views

U8g2

u8g2 is a monochrome display driver library written in C and C++ for rendering graphics and text on OLED and LCD screens. It functions as an embedded graphics library and font renderer, providing a hardware abstraction layer to manage communication with display controllers.

The library is distinguished by its flexible memory management, offering both full-screen memory mapping for arbitrary drawing and page-based frame buffering to reduce RAM consumption. It further optimizes resource usage through direct-to-display text rendering, which bypasses intermediate memory buffers.

The framework covers monochrome geometric drawing for lines, boxes, and circles, alongside a font system that supports custom sizes and pre-rendered monochrome font-maps. Hardware integration is handled via support for SPI, I2C, and parallel interfaces, with additional capabilities for image mirroring and rotation in ninety-degree increments.

The library includes build support for the RT-Thread real-time operating system.

Features

  • Embedded Graphics Libraries - Provides a software library designed to manage and render visual displays on small, resource-constrained embedded screens.
  • OLED Display Drivers - Provides drivers for monochrome OLED and LCD display modules.
  • Pixel-Buffer Memory Mapping - Allocates a complete pixel array in RAM to allow arbitrary drawing before pushing the final image to hardware.
  • Monochrome Icon Rendering - Draws text by mapping characters to pre-defined monochrome bitmasks optimized for single-color pixel grids.
  • Monochrome Geometric Drawing - Renders lines, boxes, and circles using a memory buffer to manage complex imagery on screens.
  • Display Communication Interfaces - Provides a hardware abstraction layer to manage communication with controllers via SPI, I2C, and parallel interfaces.
  • SPI I2C One-Wire Serial Activators - Implements SPI, I2C, and parallel interfaces to communicate with external monochrome display controllers.
  • Monochrome Controller Driving - Manages screen output by communicating with various monochrome OLED and LCD hardware controllers.
  • Monochrome Display Drivers - Implements hardware-specific drivers for rendering text and graphics on monochrome OLED and LCD displays.
  • Unified Hardware Communication Interfaces - Provides a unified software bridge that abstracts SPI, I2C, and parallel protocols into a single interface for displays.
  • Hardware Abstraction Layers - Provides a consistent API for interacting with diverse monochrome display controllers via a hardware abstraction layer.
  • Low Memory Display Interfacing - Outputs text and graphics to a screen using page-based buffering or direct writing to save system RAM.
  • Page-Based Frame Buffering - Renders images in horizontal strips to minimize the amount of RAM needed for the display buffer.
  • Font Management - Provides utilities for embedding and loading custom monochrome typography into embedded application binaries.
  • Font Renderers - Implements a library for converting font data into displayable bitmaps for monochrome screens.
  • Display Buffer Managers - Manages frame buffer memory allocation using full-screen or page-based approaches to optimize RAM usage.
  • Degree-Based Rotators - Supports changing display orientation through 90-degree increments and image mirroring.
  • Image Rotation - Implements image rotation and mirroring by transforming pixel coordinates during the buffering process.
  • Direct-to-Display Renderers - Writes character data straight to the hardware controller without using an intermediate memory buffer to save RAM.
  • Custom Font Libraries - Supports the use of custom font sizes and heights optimized for monochrome screens.
  • Bitmap Font Rendering - Provides a system for rendering text by mapping characters to monochrome bitmap atlases.
  • Graphical User Interfaces - Monochrome graphics library for embedded displays.
  • Graphics and UI - Graphics library for monochrome displays.

Star history

Star history chart for olikraus/u8g2Star history chart for olikraus/u8g2

How this analysis was created: This summary and feature list are AI-generated from collected project material and can contain mistakes. Stars, license and language are imported from GitHub. Inclusion does not mean that we have tested or audited this project. Check the source documentation for any feature you depend on. Learn more on our About page.

AI search

Explore more awesome repositories

Describe what you need in plain English — the AI ranks thousands of curated open-source projects by relevance.

Start searching with AI

Frequently asked questions

What does olikraus/u8g2 do?

u8g2 is a monochrome display driver library written in C and C++ for rendering graphics and text on OLED and LCD screens. It functions as an embedded graphics library and font renderer, providing a hardware abstraction layer to manage communication with display controllers.

What are the main features of olikraus/u8g2?

The main features of olikraus/u8g2 are: Embedded Graphics Libraries, OLED Display Drivers, Pixel-Buffer Memory Mapping, Monochrome Icon Rendering, Monochrome Geometric Drawing, Display Communication Interfaces, SPI I2C One-Wire Serial Activators, Monochrome Controller Driving.

Which projects share features with olikraus/u8g2?

Projects with overlapping indexed features include: terrycavanagh/vvvvvv — This project is a cross-platform game engine framework and build pipeline designed to produce playable executable… googlefonts/noto-emoji — Noto Emoji is a Unicode emoji font collection and SVG asset library designed to ensure consistent emoji rendering… lvgl/lvgl — This project is a high-performance, lightweight C graphics library designed for creating interactive user interfaces… apache/nuttx — NuttX is a POSIX-compliant real-time operating system designed for microcontrollers ranging from 8-bit to 64-bit… lvgl/lv_binding_rust — Lv_binding_rust is an embedded graphics framework and resource-efficient user interface library implemented as a Rust… tinygo-org/tinygo — TinyGo is a specialized compiler and development toolkit designed to bring the Go programming language to…

Projects sharing features with U8g2

These projects share indexed features with U8g2. Shared tags can include platform or build tooling; verify the primary use case before treating a result as a replacement.
  • terrycavanagh/vvvvvvTerryCavanagh avatar

    TerryCavanagh/VVVVVV

    7,916View on GitHub↗

    This project is a cross-platform game engine framework and build pipeline designed to produce playable executable binaries for desktop and Android devices. It provides a collection of core libraries for game development, including a native Android build system and a C++ build pipeline. The framework features a specialized bitmap font rendering system that displays stylized typography by mapping character indices to image atlases using coordinate and spacing metadata. It also implements a hardware abstraction layer to decouple application logic from graphics and audio drivers, ensuring portabl

    ActionScript
    View on GitHub↗7,916
  • googlefonts/noto-emojigooglefonts avatar

    googlefonts/noto-emoji

    4,580View on GitHub↗

    Noto Emoji is a Unicode emoji font collection and SVG asset library designed to ensure consistent emoji rendering across different operating systems and web browsers. It functions as a color-font rasterization engine that embeds pre-rendered bitmaps into font files to display multicolored glyphs. The project includes a variable-font emoji set that utilizes axes to adjust stroke thickness and style for both colorful and monochrome glyphs. It also maintains a Unicode emoji metadata registry that maps characters to shortcodes and ASCII equivalents. The collection provides capabilities for color

    Python
    View on GitHub↗4,580
  • lvgl/lvgllvgl avatar

    lvgl/lvgl

    23,880View on GitHub↗

    This project is a high-performance, lightweight C graphics library designed for creating interactive user interfaces on resource-constrained embedded hardware. It functions as a comprehensive framework that provides a widget toolkit, a rendering engine, and hardware-agnostic drivers to support the development of graphical displays on microcontrollers and embedded systems. The framework distinguishes itself through a flexible, object-oriented widget hierarchy and a declarative layout engine that supports responsive design patterns like flexbox and grid systems. It enables developers to synchro

    Ccembeddedgraphics
    View on GitHub↗23,880
  • apache/nuttxapache avatar

    apache/nuttx

    3,912View on GitHub↗

    NuttX is a POSIX-compliant real-time operating system designed for microcontrollers ranging from 8-bit to 64-bit architectures. It provides a deterministic execution environment with a real-time task scheduler and a POSIX embedded kernel to ensure portable code execution across diverse hardware targets. The project distinguishes itself through a comprehensive hardware abstraction layer that provides standardized drivers for I2C, SPI, CAN, and USB across various semiconductor chipsets. It also features an embedded networking stack supporting TCP, UDP, IPv4, and IPv6, alongside industrial proto

    Cembeddedmcumicrocontroller
    View on GitHub↗3,912
  • Compare all 30 related projects→