# Pi5Neo
### Simplifying NeoPixel LED Control on Raspberry Pi 5 via SPI (GPIO 10)
[![PyPI version](https://badge.fury.io/py/Pi5Neo.svg)](https://badge.fury.io/py/Pi5Neo)
[![Python Versions](https://img.shields.io/pypi/pyversions/Pi5Neo.svg)](https://pypi.org/project/Pi5Neo)
[![License](https://img.shields.io/github/license/vanshksingh/Pi5Neo)](LICENSE)
![IMG_7596](https://github.com/user-attachments/assets/6fb727ae-789e-4d25-9dd7-38599fdbb81e)
Pi5Neo is a Python library designed to make controlling **NeoPixel LED strips** super easy and efficient on the **Raspberry Pi 5** (or equivalent boards). Whether you're creating dazzling light shows, informative displays, or ambient lighting, Pi5Neo simplifies the process using the Raspberry Piβs **SPI interface** for high-performance communication.
## π Key Features
- **Easy NeoPixel Control**: Send commands to any NeoPixel LED strip connected to the Raspberry Pi 5βs SPI interface.
- **Smooth Transitions**: Enjoy vibrant color transitions with rainbow effects, loading bars, blinking patterns, and more.
- **Optimized for Performance**: Tailored for the Raspberry Pi 5, ensuring fast and reliable communication with NeoPixel strips.
- **Minimalistic API**: A simple API lets you focus on creativity without worrying about low-level hardware details.
- **Flexible Configurations**: Control various effects and animations by easily setting colors, durations, and brightness levels.
## π Installation
You can install Pi5Neo via `pip`:
```bash
pip install pi5neo
```
### Requirements
- **Python 3.6+**
- **spidev** (automatically installed with Pi5Neo)
### Hardware
- **Raspberry Pi 5** (or equivalent with SPI interface)
- **NeoPixel LED Strip** (WS281x family)
## π Usage
Pi5Neo makes it straightforward to set up and control your NeoPixel strip. Here's a simple example:
```python
from pi5neo import Pi5Neo
# Initialize the Pi5Neo class with 10 LEDs and an SPI speed of 800kHz
neo = Pi5Neo('/dev/spidev0.0', 10, 800)
# Fill the strip with a red color
neo.fill_strip(255, 0, 0)
neo.update_strip() # Commit changes to the LEDs
# Set the 5th LED to blue
neo.set_led_color(4, 0, 0, 255)
neo.update_strip()
```
## π Examples
You can find more advanced examples in the [examples](examples) directory. Hereβs a quick showcase of some cool effects you can create with Pi5Neo:
### Example 1: Rainbow Cycle
```python
from pi5neo import Pi5Neo
import time
def rainbow_cycle(neo, delay=0.1):
colors = [
(255, 0, 0), # Red
(255, 127, 0), # Orange
(255, 255, 0), # Yellow
(0, 255, 0), # Green
(0, 0, 255), # Blue
(75, 0, 130), # Indigo
(148, 0, 211) # Violet
]
for color in colors:
neo.fill_strip(*color)
neo.update_strip()
time.sleep(delay)
neo = Pi5Neo('/dev/spidev0.0', 10, 800)
rainbow_cycle(neo)
```
### Example 2: Loading Bar Effect
```python
from pi5neo import Pi5Neo
import time
def loading_bar(neo):
for i in range(neo.num_leds):
neo.set_led_color(i, 0, 255, 0) # Green loading bar
neo.update_strip()
time.sleep(0.2)
neo.clear_strip()
neo.update_strip()
neo = Pi5Neo('/dev/spidev0.0', 10, 800)
loading_bar(neo)
```
## βοΈ Configuration
You can configure Pi5Neo by passing in different parameters for the number of LEDs, SPI speed, and more:
```python
Pi5Neo('/dev/spidev0.0', num_leds=20, spi_speed_khz=1000)
```
- **`/dev/spidev0.0`**: SPI device path
- **`num_leds`**: Number of LEDs in the NeoPixel strip
- **`spi_speed_khz`**: SPI speed in kHz (default 800)
## π οΈ Contributing
We welcome contributions from the community! To contribute:
1. Fork the repo.
2. Create a new branch (`git checkout -b my-feature`).
3. Commit your changes (`git commit -m 'Add new feature'`).
4. Push to the branch (`git push origin my-feature`).
5. Create a new Pull Request.
Feel free to open issues for bugs, questions, or feature requests.
## π License
This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.
## β€οΈ Acknowledgements
Pi5Neo was inspired by various open-source projects that aim to make hardware control easier and more accessible. Special thanks to the contributors of `spidev` and Raspberry Pi for their amazing support!
---
Now, let your **Raspberry Pi 5** light up the room with **Pi5Neo**!
---
### π Useful Links
- [Pi5Neo on PyPI](https://pypi.org/project/Pi5Neo)
- [Pi5Neo GitHub Repository](https://github.com/vanshksingh/Pi5Neo)
- [Raspberry Pi Official Website](https://www.raspberrypi.org)
Raw data
{
"_id": null,
"home_page": "https://github.com/vanshksingh/pi5neo",
"name": "Pi5Neo",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.6",
"maintainer_email": null,
"keywords": "raspberrypi5, neopixel, spi, led-strip, hardware",
"author": "Vansh Kumar Singh",
"author_email": "vsvsasas@gmail.com",
"download_url": "https://files.pythonhosted.org/packages/45/b6/c8d24e7306d7c6e670086c7f7c2c9dd3ae596a20b82aee3ce839ced2dd7f/pi5neo-1.0.5.tar.gz",
"platform": "Raspberry Pi 5",
"description": "# Pi5Neo\n\n### Simplifying NeoPixel LED Control on Raspberry Pi 5 via SPI (GPIO 10)\n\n[![PyPI version](https://badge.fury.io/py/Pi5Neo.svg)](https://badge.fury.io/py/Pi5Neo) \n[![Python Versions](https://img.shields.io/pypi/pyversions/Pi5Neo.svg)](https://pypi.org/project/Pi5Neo)\n[![License](https://img.shields.io/github/license/vanshksingh/Pi5Neo)](LICENSE)\n\n![IMG_7596](https://github.com/user-attachments/assets/6fb727ae-789e-4d25-9dd7-38599fdbb81e)\n\nPi5Neo is a Python library designed to make controlling **NeoPixel LED strips** super easy and efficient on the **Raspberry Pi 5** (or equivalent boards). Whether you're creating dazzling light shows, informative displays, or ambient lighting, Pi5Neo simplifies the process using the Raspberry Pi\u2019s **SPI interface** for high-performance communication.\n\n## \ud83c\udf1f Key Features\n\n- **Easy NeoPixel Control**: Send commands to any NeoPixel LED strip connected to the Raspberry Pi 5\u2019s SPI interface.\n- **Smooth Transitions**: Enjoy vibrant color transitions with rainbow effects, loading bars, blinking patterns, and more.\n- **Optimized for Performance**: Tailored for the Raspberry Pi 5, ensuring fast and reliable communication with NeoPixel strips.\n- **Minimalistic API**: A simple API lets you focus on creativity without worrying about low-level hardware details.\n- **Flexible Configurations**: Control various effects and animations by easily setting colors, durations, and brightness levels.\n\n## \ud83d\ude80 Installation\n\nYou can install Pi5Neo via `pip`:\n\n```bash\npip install pi5neo\n```\n\n### Requirements\n- **Python 3.6+**\n- **spidev** (automatically installed with Pi5Neo)\n\n### Hardware\n- **Raspberry Pi 5** (or equivalent with SPI interface)\n- **NeoPixel LED Strip** (WS281x family)\n\n## \ud83d\udcda Usage\n\nPi5Neo makes it straightforward to set up and control your NeoPixel strip. Here's a simple example:\n\n```python\nfrom pi5neo import Pi5Neo\n\n# Initialize the Pi5Neo class with 10 LEDs and an SPI speed of 800kHz\nneo = Pi5Neo('/dev/spidev0.0', 10, 800)\n\n# Fill the strip with a red color\nneo.fill_strip(255, 0, 0)\nneo.update_strip() # Commit changes to the LEDs\n\n# Set the 5th LED to blue\nneo.set_led_color(4, 0, 0, 255)\nneo.update_strip()\n```\n\n## \ud83c\udf08 Examples\n\nYou can find more advanced examples in the [examples](examples) directory. Here\u2019s a quick showcase of some cool effects you can create with Pi5Neo:\n\n### Example 1: Rainbow Cycle\n```python\nfrom pi5neo import Pi5Neo\nimport time\n\ndef rainbow_cycle(neo, delay=0.1):\n colors = [\n (255, 0, 0), # Red\n (255, 127, 0), # Orange\n (255, 255, 0), # Yellow\n (0, 255, 0), # Green\n (0, 0, 255), # Blue\n (75, 0, 130), # Indigo\n (148, 0, 211) # Violet\n ]\n for color in colors:\n neo.fill_strip(*color)\n neo.update_strip()\n time.sleep(delay)\n\nneo = Pi5Neo('/dev/spidev0.0', 10, 800)\nrainbow_cycle(neo)\n```\n\n### Example 2: Loading Bar Effect\n```python\nfrom pi5neo import Pi5Neo\nimport time\n\ndef loading_bar(neo):\n for i in range(neo.num_leds):\n neo.set_led_color(i, 0, 255, 0) # Green loading bar\n neo.update_strip()\n time.sleep(0.2)\n neo.clear_strip()\n neo.update_strip()\n\nneo = Pi5Neo('/dev/spidev0.0', 10, 800)\nloading_bar(neo)\n```\n\n\n## \u2699\ufe0f Configuration\n\nYou can configure Pi5Neo by passing in different parameters for the number of LEDs, SPI speed, and more:\n\n```python\nPi5Neo('/dev/spidev0.0', num_leds=20, spi_speed_khz=1000)\n```\n\n- **`/dev/spidev0.0`**: SPI device path\n- **`num_leds`**: Number of LEDs in the NeoPixel strip\n- **`spi_speed_khz`**: SPI speed in kHz (default 800)\n\n## \ud83d\udee0\ufe0f Contributing\n\nWe welcome contributions from the community! To contribute:\n\n1. Fork the repo.\n2. Create a new branch (`git checkout -b my-feature`).\n3. Commit your changes (`git commit -m 'Add new feature'`).\n4. Push to the branch (`git push origin my-feature`).\n5. Create a new Pull Request.\n\nFeel free to open issues for bugs, questions, or feature requests.\n\n## \ud83d\udcdd License\n\nThis project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.\n\n## \u2764\ufe0f Acknowledgements\n\nPi5Neo was inspired by various open-source projects that aim to make hardware control easier and more accessible. Special thanks to the contributors of `spidev` and Raspberry Pi for their amazing support!\n\n---\n\nNow, let your **Raspberry Pi 5** light up the room with **Pi5Neo**!\n\n---\n\n### \ud83d\udd17 Useful Links\n- [Pi5Neo on PyPI](https://pypi.org/project/Pi5Neo)\n- [Pi5Neo GitHub Repository](https://github.com/vanshksingh/Pi5Neo)\n- [Raspberry Pi Official Website](https://www.raspberrypi.org)\n\n",
"bugtrack_url": null,
"license": null,
"summary": "A NeoPixel LED control library for Raspberry Pi 5 using SPI",
"version": "1.0.5",
"project_urls": {
"Homepage": "https://github.com/vanshksingh/pi5neo"
},
"split_keywords": [
"raspberrypi5",
" neopixel",
" spi",
" led-strip",
" hardware"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "b3173bbcfc633d59f6c5058fbaa603fe3a76569c83727bf109ed71fe6903cc44",
"md5": "7acf420b678f9f679d01810b3a4c3c72",
"sha256": "1bc9ddbe83940e42df2f4068c743a66e22ccf1f8b06954796c9fe47c6ff023ed"
},
"downloads": -1,
"filename": "Pi5Neo-1.0.5-py3-none-any.whl",
"has_sig": false,
"md5_digest": "7acf420b678f9f679d01810b3a4c3c72",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.6",
"size": 5715,
"upload_time": "2024-09-15T19:26:26",
"upload_time_iso_8601": "2024-09-15T19:26:26.184459Z",
"url": "https://files.pythonhosted.org/packages/b3/17/3bbcfc633d59f6c5058fbaa603fe3a76569c83727bf109ed71fe6903cc44/Pi5Neo-1.0.5-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "45b6c8d24e7306d7c6e670086c7f7c2c9dd3ae596a20b82aee3ce839ced2dd7f",
"md5": "31297110c4bf26007eced551e78ed5d7",
"sha256": "490a8c54c769ccb1a578e81f68d301ee6af3129126bc58585e79de24f82811e2"
},
"downloads": -1,
"filename": "pi5neo-1.0.5.tar.gz",
"has_sig": false,
"md5_digest": "31297110c4bf26007eced551e78ed5d7",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.6",
"size": 8782,
"upload_time": "2024-09-15T19:26:27",
"upload_time_iso_8601": "2024-09-15T19:26:27.660920Z",
"url": "https://files.pythonhosted.org/packages/45/b6/c8d24e7306d7c6e670086c7f7c2c9dd3ae596a20b82aee3ce839ced2dd7f/pi5neo-1.0.5.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-09-15 19:26:27",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "vanshksingh",
"github_project": "pi5neo",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"lcname": "pi5neo"
}