U8g2 is a monochrome graphics library for embedded devices that supports a wide range of OLED and LCD controllers.
The library solves the problem of rendering graphics and text on small monochrome displays connected to microcontrollers and Arduino boards. U8g2 provides a graphics-focused API with support for drawing lines, boxes, circles, and text using a large selection of fonts with minimal height restrictions. The library maintains an internal buffer in the microcontroller to render the display, allowing complex graphics operations. For applications where memory is severely constrained, U8g2 also includes U8x8, a text-only variant that writes directly to the display without requiring a microcontroller buffer, though it restricts fonts to those fitting within an 8x8 pixel grid.
U8g2 suits embedded projects targeting Arduino and microcontroller platforms where monochrome display output is needed. The library's broad controller support makes it a practical choice when you need compatibility across many display hardware options. Choose U8g2 if your project requires graphics capabilities beyond simple text; choose U8x8 if you are working with extremely memory-constrained devices and only need character output. The library is available through the Arduino IDE library manager, making installation straightforward for Arduino users.
The project maintains active engagement with its user base through the wiki documentation and setup guides. Bug reports and feature requests receive responses indicating ongoing maintenance. The codebase shows consistent refinement of display controller support and font handling. Development activity demonstrates a focus on expanding hardware compatibility while preserving the library's core functionality across different microcontroller platforms.