{"id":20120833,"url":"https://github.com/nthnn/planet096","last_synced_at":"2025-05-06T14:33:24.068Z","repository":{"id":192102280,"uuid":"685146196","full_name":"nthnn/Planet096","owner":"nthnn","description":"SSD1306-based Monochromatic GUI library for OLED 0.96\" inch (128x64 pixels) display in Arduino.","archived":false,"fork":false,"pushed_at":"2023-10-14T05:47:31.000Z","size":2709,"stargazers_count":14,"open_issues_count":0,"forks_count":0,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-04-09T14:07:58.150Z","etag":null,"topics":["adafruit","adafruit-gfx","adafruit-library","arduino","arduino-library","arduino-platform","arduino-project","embedded-devices","embedded-software","embedded-systems","oled-display","oled-display-ssd1306","oled-ssd1306","platformio","platformio-arduino","platformio-library"],"latest_commit_sha":null,"homepage":"https://nthnn.github.io/Planet096","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"lgpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/nthnn.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null},"funding":{"github":"nthnn","custom":"https://www.buymeacoffee.com/nthnn"}},"created_at":"2023-08-30T16:01:10.000Z","updated_at":"2024-09-24T00:40:26.000Z","dependencies_parsed_at":"2023-10-15T06:20:46.334Z","dependency_job_id":null,"html_url":"https://github.com/nthnn/Planet096","commit_stats":null,"previous_names":["nthnn/planet096"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nthnn%2FPlanet096","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nthnn%2FPlanet096/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nthnn%2FPlanet096/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nthnn%2FPlanet096/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/nthnn","download_url":"https://codeload.github.com/nthnn/Planet096/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":252703478,"owners_count":21790891,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":["adafruit","adafruit-gfx","adafruit-library","arduino","arduino-library","arduino-platform","arduino-project","embedded-devices","embedded-software","embedded-systems","oled-display","oled-display-ssd1306","oled-ssd1306","platformio","platformio-arduino","platformio-library"],"created_at":"2024-11-13T19:23:22.279Z","updated_at":"2025-05-06T14:33:23.639Z","avatar_url":"https://github.com/nthnn.png","language":"C++","funding_links":["https://github.com/sponsors/nthnn","https://www.buymeacoffee.com/nthnn"],"categories":[],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\n    \u003cimg src=\"./assets/planet096_logo.png\" width=\"270\" /\u003e\n    \u003ch1 align=\"center\"\u003ePlanet096 GUI Library\u003c/h1\u003e\n\u003c/p\u003e\n\n![Arduino CI](https://github.com/nthnn/Planet096/actions/workflows/arduino_ci.yml/badge.svg) ![Arduino Lint](https://github.com/nthnn/Planet096/actions/workflows/arduino_lint.yml/badge.svg)\n![Arduino Release](https://img.shields.io/badge/Library%20Manager-None-red?logo=Arduino)\n[![License: LGPL3.0](https://img.shields.io/badge/License-LGPL3.0-yellow.svg)](https://github.com/nthnn/Planet096/blob/main/LICENSE)\n\nPlanet096 is an Arduino library designed to simplify the creation of graphical user interfaces (GUIs) on monochromatic OLED displays utilizing the SSD1306 driver. This library provides a flexible framework for constructing scenes and drawing various interactive widgets, enabling users to develop intuitive user interfaces even within the constrained resources of these displays.\n\n- **Scene Creation** - Planet096 introduces the concept of scenes, similar to Android activities, allowing developers to manage different UI screens efficiently.\n\n- **Widget Variety** - The library offers an array of widgets such as bottom menu bars, progress bars, buttons, label texts, scrollable text areas, adjustable sliders, selectable lists, check boxes, and radio buttons, among others.\n\n- **Dependency on Adafruit_SSD1306** - Planet096 builds upon the foundation of the widely-used Adafruit_SSD1306 library, making it easier to integrate into existing projects.\n\n## \"Hello, world!\" Example\n\nPlanet096 restrictively discourages the use of traditional `setup()` and `loop()` in Arduino, hence the `app()` function. The `app()` function is closely similar to the `main()` function of common programming languages.\n\n```cpp\n#include \u003cplanet096.h\u003e\n\nvoid app() {\n    Planet096Scene scene(\"Example\");\n    scene.setAppBarAlignment(PLANET096_APPBAR_ALIGN_CENTER);\n    scene.setAppBarStyle(PLANET096_APPBAR_NORMAL);\n\n    scene.setSceneMenuStyle(PLANET096_SCENE_MENU_BUTTONS);\n    scene.setSceneMenu(\"Back\", \"Set\", \"Ok\");\n\n    Planet096Text text(\u0026scene, \"Hello, world!\");\n    text.setLocation(26, 14);\n\n    scene.setMainWidget(createWidget(\u0026text));\n    Planet096App::start(scene);\n}\n```\n\nAdditionaly, the library incorporates the Android app's activity concept. However, in Planet096, the activities are called scenes, so to speak, which can act as panels or pages of an Arduino application. As shown on the examples, the code above renders an application bar, simple menus at the bottom, and a hello text positioned at the center.\n\n## Example Screenshots\n\n| ![Hello Example](./assets/p096_ss_1.jpg) \u003ccenter\u003eHello Example\u003c/center\u003e | ![Scrollable Example](./assets/p096_ss_2.jpg) \u003ccenter\u003eScrollable Example\u003c/center\u003e |\n|-|-|\n\n\n## Getting Started\n\nTo start using Planet096 library in your Arduino projects, follow these simple steps:\n\n1. Download the Planet096 library from the GitHub repository.\n2. Extract the downloaded archive and rename the folder to \"Planet096\".\n3. Move the \"Planet096\" folder to the Arduino libraries directory on your computer.\n    - Windows: `Documents\\Arduino\\libraries\\`\n    - MacOS: `~/Documents/Arduino/libraries/`\n    - Linux: `~/Arduino/libraries/`\n4. Launch the Arduino IDE.\n\nClick on `Sketch \u003e Include Library \u003e Planet096` to include the library in your sketch.\n\nYou are now ready to use `Planet096` library in your Arduino projects! For detailed information about using this library, please refer to the [documentations](https://nthnn.github.io/Planet096).\n\n## Examples\n\nTo access the examples:\n\n1. Open the Arduino IDE.\n2. Click on `File \u003e Examples \u003e Planet096` to see the list of available examples.\n3. Upload the example sketch to your Arduino board and see the results in action.\n\n## Contribution and Feedback\n\nContributions and feedback are all welcome to enhance this library. If you encounter any issues, have suggestions for improvements, or would like to contribute code, please do so.\n\n## Authors and Contributors\n\n- [Nathanne Isip](https://github.com/nthnn) - *Author and Maintainer*\n- [Lady Selene](https://instagram.com/lady.selenee) - *Logo Designer*\n\n## License\n\nCopyright 2023 - Nathanne Isip\n\nPermission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the “Software”), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnthnn%2Fplanet096","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnthnn%2Fplanet096","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnthnn%2Fplanet096/lists"}