From fd8b341335c2d11fdfaf10abd164967681a42b23 Mon Sep 17 00:00:00 2001 From: Dave Allie Date: Tue, 2 Dec 2025 19:16:50 +1100 Subject: [PATCH] Initial community-sdk structure --- .gitignore | 2 ++ LICENSE | 21 ++++++++++++++ README.md | 84 +++++++++++++++++++++++++++++++++++++++++++++++++++++ libs/.keep | 0 tools/.keep | 0 5 files changed, 107 insertions(+) create mode 100644 .gitignore create mode 100644 LICENSE create mode 100644 README.md create mode 100644 libs/.keep create mode 100644 tools/.keep diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..090a1f0 --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +.idea +.DS_Store diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..88622d6 --- /dev/null +++ b/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2025 Open X4 E-Paper Contributors + +Permission 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: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE 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. diff --git a/README.md b/README.md new file mode 100644 index 0000000..ab7b118 --- /dev/null +++ b/README.md @@ -0,0 +1,84 @@ +# OpenX4 E-Paper Community SDK + +A **community-maintained SDK** for building firmware and tools for the **Xteink X4** device. +This repository is designed to be included as a **Git submodule** inside PlatformIO projects, providing a shared set of +libraries, utilities, and development workflows that make working with the X4 simple and consistent. + +## ✨ **What is this?** + +The **OpenX4 E-Paper Community SDK** provides: + +* **Common PlatformIO-friendly components** for the Xteink X4 +* **Reusable libraries** for display control, graphics, hardware helpers, utilities, etc. +* **Tools** to support flashing, packaging, testing, and device workflows +* A central place for **community contributions**, improvements, and shared knowledge + +The SDK is intentionally modular - bring it into your project and use only what you need. + +## 📁 Repository Structure + +``` +community-sdk/ +├── libs/ # Reusable components for X4 firmware +│ ├── display/ # E-paper helpers & drivers +│ ├── graphics/ # Drawing, fonts, UI utilities +│ ├── hardware/ # GPIO, power, sensors, timings, etc. +│ └── ... # Add new modules here! +│ +└── tools/ # Dev tools for X4 + ├── flash/ # Flash helpers, scripts, workflows + ├── assets/ # Conversion tools for images/fonts + └── ... # Community-contributed utilities +``` + +Each lib aims to be **self-contained**, **documented**, and **PlatformIO-friendly**. +Libs should be categorized under `libs/` based on functionality, and then contained within a directory under that root. + +## 📦 Adding to Your PlatformIO Project + +Add this repository as a submodule: + +```bash +git submodule add https://github.com/open-x4-epaper/community-sdk.git lib/openx4 +``` + +Then include any library you want in your code: + +```cpp +#include +#include +``` + +Or load tools from the `tools/` directory as needed. + +## 🤝 Contributing + +This is a **community-driven project** - contributions are not only welcome but encouraged! + +Ways you can help: + +* Improve or extend existing libraries +* Add new modules to `libs/` +* Build utilities for the `tools/` directory +* Report issues, propose features, or help refine the API +* Improve documentation + +### Contribution guidelines (short version) + +1. Keep modules self-contained +2. Prefer zero-dependency solutions where practical +3. Document your additions +4. Use clear naming and consistent structure +5. Be friendly and constructive in PR conversations + +A full contributing guide will be added as the project grows. + +## 📝 License + +This SDK is released under an open-source MIT license. To keep things simple, all contributions and code must also +fall under this license. + +## 💬 Community + +Feel free to open GitHub issues for support, improvements, or discussion around the Xteink X4 ecosystem. +Join the discord here: https://discord.gg/2cdKUbWRE8 diff --git a/libs/.keep b/libs/.keep new file mode 100644 index 0000000..e69de29 diff --git a/tools/.keep b/tools/.keep new file mode 100644 index 0000000..e69de29