https://github.com/gavinlyonsrepo/displaylib_1bit_PICO
Display Library for 1-bit color graphic displays for Raspberry PI PICO C++ SDK
https://github.com/gavinlyonsrepo/displaylib_1bit_PICO
ch1115 display-library erm19264 library nokia5110 oled-screens oled-ssd1306 pcd8544 pico pico-sdk raspberry-pi rp2040 rpi-pico sdk sh1106 sh1107 ssd1306 ssd1306-oled ssd1306-oled-example uc1609
Last synced: 5 months ago
JSON representation
Display Library for 1-bit color graphic displays for Raspberry PI PICO C++ SDK
- Host: GitHub
- URL: https://github.com/gavinlyonsrepo/displaylib_1bit_PICO
- Owner: gavinlyonsrepo
- License: gpl-3.0
- Created: 2023-12-19T21:18:18.000Z (almost 2 years ago)
- Default Branch: main
- Last Pushed: 2025-03-27T20:24:00.000Z (6 months ago)
- Last Synced: 2025-04-06T20:51:16.974Z (6 months ago)
- Topics: ch1115, display-library, erm19264, library, nokia5110, oled-screens, oled-ssd1306, pcd8544, pico, pico-sdk, raspberry-pi, rp2040, rpi-pico, sdk, sh1106, sh1107, ssd1306, ssd1306-oled, ssd1306-oled-example, uc1609
- Language: C++
- Homepage: https://gavinlyonsrepo.github.io/
- Size: 2.16 MB
- Stars: 23
- Watchers: 2
- Forks: 2
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
[](https://gavinlyonsrepo.github.io/) [](https://gavinlyonsrepo.github.io//feed.xml) [](https://www.paypal.com/paypalme/whitelight976)
# Display Library for 1-bit color graphic displays for Raspberry PI PICO
## Table of contents
* [Overview](#overview)
* [Documentation](#documentation)
* [Supported devices](#supported-devices)
* [API documentation](#api-documentation)
* [Fonts](#fonts)
* [Software](#software)
* [Test](#test)
* [Advanced Graphics](#advanced-graphics)
* [Print](#print)
* [File-system](#file-system)
* [Error Codes](#error-codes)
* [Notes](#notes)
* [Older versions](#older-versions)## Overview
* Name : displaylib_1bit_PICO
* Description :0. C++ Library to support 1-bit color graphic displays
for the Raspberry PI PICO.
1. 10 fonts included, fonts can easily be added or removed.
2. Graphics class included.
3. Bitmaps supported.
4. Polymorphic print class included to print many data types.
5. Multiple displays supported, see supported-devices, new components can be easily added.
6. [URL project github link](https://github.com/gavinlyonsrepo/displaylib_1bit_PICO)* Author: Gavin Lyons
* Developed on Toolchain:
1. Raspberry pi PICO RP2040
2. SDK(1.4.0) C++20
3. compiler G++ for arm-none-eabi((15:10.3-2021.07-4)
4. CMAKE(VERSION 3.18) , VScode(1.84.2)
5. Linux Mint 22.1## Documentation
### Supported devices
| Component name | Type | Interface | Readme URL link |
| -------- | ---------- | --------- | ---------- |
| ERM19264 UC1609| LCD|SPI| [Readme](extra/doc/erm19264/README.md) |
| PCD8544| LCD|SPI | [Readme](extra/doc/nokia5110/README.md) |
| ERM1 CH1115 | OLED |SPI| [Readme](extra/doc/ch1115/README.md) |
| SSD1306|OLED| I2C | [Readme](extra/doc/ssd1306/README.md) |
| SH1106 SH1107| OLED | I2C | [Readme](extra/doc/sh110x/README.md) |### API Documentation
The application programming interface html [documentation is at link](https://gavinlyonsrepo.github.io/misc/software_docs/displaylib_1bit_PICO/index.html)
hosted on github pages and generated by Doxygen. Detailed project overview images are available there.### Fonts
The font system readme for the graphic displays is in the 'doc' folder [at link.](extra/doc/fonts/README.md)
## Software
### Test
There are multiple examples for each device,
User picks the one they want by editing the:
CMakeLists.txt :: add_executable(${PROJECT_NAME} section.
Comment in one path and one path ONLY. See displays readme's for more details.### Advanced Graphics
There is an advanced graphics modes in library.
Standard graphics supports drawing lines, pixels
rectangles, triangles, circles and rounded rectangles.
Advanced graphics supports drawing polygons, dot grid, quadrilaterals,
arcs, ellipses and lines at an angle.
If you don't want these 'advanced' functions and want to save memory space: Simply
comment out line 14 #define ADVANCED_GRAPHICS_ENABLE in display_graphics.hpp.
This will disable advanced graphics mode.The print class can print integers, floats, characters, character arrays
and C++ std::strings. It can also format floating point numbers to a number of
decimal places. and format integers in different base number systems.
Support for other data types can be added.### File system
Class diagram:

### Error Codes
Most functions that return a value, return a enum 'DisplayRet::Ret_Codes_e'.
Zero for success and a positive number for an error code.## Notes
### Older versions
* This repo before version 2.0.0 was originally called SSD1306_OLED_PICO and just supported ssd1306.