CYMS (Cheap Yellow Menu System) is an open-source library tailored for creating highly customizable menu systems for a vast amount of boards (The name is a bit misleading). Designed with ease of use and performance in mind, CYMS allows developers to rapidly design intuitive, responsive UIs for embedded systems using the ESP32.
Built on top of the bb_spi_lcd driver, CYMS takes advantage of its low-level optimizations for fast and smooth rendering, while offering an easy-to-use API for crafting menu systems and widgets.
This library has all the features of bb_spi_lcd like:
- Backbuffer operations for smoother UI.
- Built-in touch support for enhanced interaction.
- Support for displaying Windows format BMP files.
CYMS comes packed with features that make creating menus easy and fast.
-
Supports all boards that bb_spi_lcd supports
-
Easy to use API for menu creation
-
Styling widgets, a lot of ways to style your widgets
-
Widget library, Build interfaces using:
- Buttons
- Labels
- Sliders
- Counters
- Linear graphs
-
Fast UI's leveraging bb_spi_lcd for high-speed rendering
-
Built-in 16x16 monochrome icons for:
- Back arrow
- Home
- WiFi / No WiFi
- Bluetooth / No Bluetooth
- Reboot
-
Lightweight and modular design, allowing flexible inclusion widgets as needed
Stay tuned for future updates! 🎉
Currently, CYMS is designed for use with Arduino IDE. Simply follow these steps to get started:
- Download the latest release from the GitHub releases page.
- In Arduino IDE, go to Sketch → Include Library → Add .ZIP Library....
- Select the downloaded
.zip
file and click Open. - You are ready to start building menus with CYMS!
Note: PlatformIO support is coming soon! 🚀
Contributions are welcome!
To contribute:
- Fork the repository.
- Create a new branch:
git checkout -b feature/your-feature
. - Make your changes and commit:
git commit -m 'Add feature'
. - Push your changes:
git push origin feature/your-feature
. - Open a pull request.
Check out the Wiki for guidelines on contributing code or improving the documentation.
For additional documentation and FAQs, visit the CYMS Wiki.
Feel free to submit issues if you encounter any bugs or need assistance.
CYMS is licensed under the GNU Affero General Public License v3.0, ensuring it remains free and open for everyone to use and modify.
- Thanks to Laurence Bank for his amazing bb_spi_lcd library on which this project is based on
For any questions, suggestions, or issues, feel free to reach out via:
- Discord: @zynthrodak
- Email: [email protected], [email protected]
Stay connected for more updates and features! 🎉