{"id":22712543,"url":"https://github.com/infusion/pcd8544","last_synced_at":"2026-05-18T03:03:38.443Z","repository":{"id":66009643,"uuid":"315585826","full_name":"infusion/PCD8544","owner":"infusion","description":"A Nokia 5110 display driver library","archived":false,"fork":false,"pushed_at":"2021-06-25T22:08:21.000Z","size":31,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-09-25T20:58:32.864Z","etag":null,"topics":["arduino","arduino-library","display","microcontroller","nokia5110"],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/infusion.png","metadata":{"files":{"readme":"readme.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-11-24T09:45:01.000Z","updated_at":"2021-09-08T07:56:56.000Z","dependencies_parsed_at":null,"dependency_job_id":"49be11f5-756c-4825-934a-c099acb1b9c5","html_url":"https://github.com/infusion/PCD8544","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/infusion/PCD8544","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/infusion%2FPCD8544","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/infusion%2FPCD8544/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/infusion%2FPCD8544/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/infusion%2FPCD8544/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/infusion","download_url":"https://codeload.github.com/infusion/PCD8544/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/infusion%2FPCD8544/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33163414,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-17T22:39:12.733Z","status":"online","status_checked_at":"2026-05-18T02:00:06.436Z","response_time":71,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["arduino","arduino-library","display","microcontroller","nokia5110"],"created_at":"2024-12-10T13:12:29.490Z","updated_at":"2026-05-18T03:03:38.436Z","avatar_url":"https://github.com/infusion.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"\n# Nokia 5110 Display Driver for Arduino\n\n**PCD8544** is a library for the [Arduino](http://arduino.cc/) to interface with LCDs based on the\nPhilips PCD8544 controller. These displays are commonly found on monochrome mobile phones, such as the\n[Nokia 3310](http://en.wikipedia.org/wiki/Nokia_3310) or [5110](http://en.wikipedia.org/wiki/Nokia_5110). \n\nThe library has a small memory footprint and is optimized a lot for fast refresh rates. \n\nA full description to set up your display can be found [here](https://www.xarg.org/2014/06/how-to-use-a-nokia-5110-graphical-display-with-arduino/).\n\n# Functionality\n\n## Constructor\n\nInitialize with software SPI with explicit CS pin\n\n```\nPCD8544(int8_t rst, int8_t sce, int8_t dc, int8_t din, int8_t sclk)\n```\n\n\nInitialize with software SPI with CS tied to ground. Saves a pin but the other pins can't be shared with other hardware\n```\nPCD8544(int8_t rst, int8_t dc, int8_t din, int8_t sclk)\n```\n\nInitialize with hardware SPI with hardware controlled SCK (SCLK) and MOSI (DIN). SCE is controlled by IO pin\n```\nPCD8544(int8_t rst, int8_t sce, int8_t dc)\n```\n\n\n## Methods\n\n### Initialize the module with default settings\n\n```\ninit(uint8_t contrast = 60, uint8_t bias = 0x03, uint8_t tempCoeff = 0x02)\n```\n\n\n### Set contrast within interval `[0-127]`\n\n```\nsetContrast(uint8_t contrast)\n```\n\n### Set bias within interval [0-7]\n\n```\nsetBias(uint8_t bias)\n```\n\n### Set temperature coefficent within interval [0-3]\n\n```\nsetTempCoeff(uint8_t temp)\n```\n\n### Turn module on or off\n\n```\nsetPower(bool on)\n```\n\n### Set display mode\n\n- PCD8544_DISPLAY_BLANK: All pixels blank\n- PCD8544_DISPLAY_NORMAL: Normal operation\n- PCD8544_DISPLAY_ALL_ON: All pixels set\n- PCD8544_DISPLAY_INVERTED: All pixels inverted\n\n```\nsetDisplayMode(pcd8544_display_t mode)\n```\n\n### Set a pixel\n\n```\nsetPixel(uint8_t x, uint8_t y, uint8_t color = 1)\n```\n\n### Get pixel at position\n\n```\ngetPixel(uint8_t x, uint8_t y)\n```\n\n### Draw outline of a rectangle\n\n```\nstrokeRect(uint8_t x1, uint8_t y1, uint8_t width, uint8_t height, uint8_t color = 1)\n```\n\n### Draw a filled rectangle\n\n```\nfillRect(uint8_t x1, uint8_t y1, uint8_t width, uint8_t height, uint8_t color = 1)\n```\n\n### Draw outline of a circl\n\n```\nstrokeCircle(uint8_t x0, uint8_t y0, uint8_t radius, uint8_t color = 1)\n```\n\n### Draw a filled circle\n\n```\nfillCircle(uint8_t x0, uint8_t y0, uint8_t radius, uint8_t color = 1)\n```\n\n### Draw a line from point (x1, y1) to (x2, y2)\n\n```\nstrokeLine(int8_t x1, int8_t y1, int8_t x2, int8_t y2, uint8_t color = 1)\n```\n\n### Set a font face\n\n```\nsetFont(uint8_t *font)\n```\n\n### Write characters or strings at position (x, y)\n\n- FONT_MODE_DEFAULT: Default behavior of font\n- FONT_MODE_TRANSPARENT: Unset pixels of a font are transparent\n- FONT_MODE_INVERTED: The written text is inverted\n- FONT_MODE_AUTO_LINEBREAK: make linebreak when necessary (not good for marquees)\n- FONT_MODE_IGNORE_NEWLINE: Replaces a `\\n` character with a space.\n\n```\nprint(char c, int16_t x, int16_t y, pcd8544_fontmode_t mode = FONT_MODE_DEFAULT)\n```\n\n```\nprint(char *c, int16_t x, int16_t y, pcd8544_fontmode_t mode = FONT_MODE_DEFAULT)\n```\n\n```\nprint(String st, int16_t x, int16_t y, pcd8544_fontmode_t mode = FONT_MODE_DEFAULT)\n```\n\n\n### Send drawn buffer to the device\n\n```\nupdate()\n```\n\n### Send a bitmap to the device\n\n```\nupdateImage(const uint8_t *image)\n```\n\n### Clears the canvas\n\n```\nclearBuffer()\n```\n\n### Clears the display pixels\n\n```\nclear()\n```\n\n# Bitmap support\n\nYou can easily generate images using our [LCD image generator](https://www.xarg.org/tools/lcd-image-generator/) and put them on the display:\n\n![](https://www.xarg.org/image/nokia5110/nokia5110-cat.jpg)\n\n# Geometry support\n\nYou can easily draw geometries like lines, rectangles or circles:\n\n![](https://www.xarg.org/image/nokia5110/nokia5110-pyramid.jpg)\n\n# Installation\n\nClone this repo directly into your Arduino libraries folder:\n\n```\ncd ~/Documents/Arduino/libraries\ngit clone https://github.com/infusion/PCD8544\n```\n\nAlternatively download this repo as a zip file and open it from the `Sketch \u003e Include Library \u003e Add .ZIP Library...` menu inside the Arduino IDE. \n\nCopyright and licensing\n===\nCopyright (c) 2014, [Robert Eisele](https://www.xarg.org/)\nDual licensed under the MIT or GPL Version 2 licenses.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Finfusion%2Fpcd8544","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Finfusion%2Fpcd8544","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Finfusion%2Fpcd8544/lists"}