{"id":15018603,"url":"https://github.com/adafruit/adafruit_circuitpython_neopixel","last_synced_at":"2026-04-23T23:01:04.528Z","repository":{"id":13056028,"uuid":"73440235","full_name":"adafruit/Adafruit_CircuitPython_NeoPixel","owner":"adafruit","description":"CircuitPython drivers for neopixels.","archived":false,"fork":false,"pushed_at":"2026-04-23T21:01:56.000Z","size":195,"stargazers_count":330,"open_issues_count":13,"forks_count":97,"subscribers_count":34,"default_branch":"main","last_synced_at":"2026-04-23T21:05:27.403Z","etag":null,"topics":["circuitpython","hacktoberfest"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/adafruit.png","metadata":{"files":{"readme":"README.rst","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2016-11-11T02:48:56.000Z","updated_at":"2026-04-23T19:01:31.000Z","dependencies_parsed_at":"2026-04-23T21:01:50.645Z","dependency_job_id":null,"html_url":"https://github.com/adafruit/Adafruit_CircuitPython_NeoPixel","commit_stats":{"total_commits":160,"total_committers":23,"mean_commits":6.956521739130435,"dds":0.83125,"last_synced_commit":"21dadd9d52645644e39e15c45ef328678d0088eb"},"previous_names":[],"tags_count":62,"template":false,"template_full_name":null,"purl":"pkg:github/adafruit/Adafruit_CircuitPython_NeoPixel","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/adafruit%2FAdafruit_CircuitPython_NeoPixel","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/adafruit%2FAdafruit_CircuitPython_NeoPixel/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/adafruit%2FAdafruit_CircuitPython_NeoPixel/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/adafruit%2FAdafruit_CircuitPython_NeoPixel/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/adafruit","download_url":"https://codeload.github.com/adafruit/Adafruit_CircuitPython_NeoPixel/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/adafruit%2FAdafruit_CircuitPython_NeoPixel/sbom","scorecard":{"id":164388,"data":{"date":"2025-08-11","repo":{"name":"github.com/adafruit/Adafruit_CircuitPython_NeoPixel","commit":"0ba2f2122a54a71b1bc3576f87b1ba7dfc9db11e"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":3.7,"checks":[{"name":"Code-Review","score":5,"reason":"Found 9/16 approved changesets -- score normalized to 5","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"Dangerous-Workflow","score":10,"reason":"no dangerous workflow patterns detected","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"Maintained","score":2,"reason":"3 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 2","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Pinned-Dependencies","score":0,"reason":"dependency not pinned by hash detected -- score normalized to 0","details":["Warn: third-party GitHubAction not pinned by hash: .github/workflows/build.yml:14: update your workflow using https://app.stepsecurity.io/secureworkflow/adafruit/Adafruit_CircuitPython_NeoPixel/build.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/failure-help-text.yml:19: update your workflow using https://app.stepsecurity.io/secureworkflow/adafruit/Adafruit_CircuitPython_NeoPixel/failure-help-text.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/release_gh.yml:16: update your workflow using https://app.stepsecurity.io/secureworkflow/adafruit/Adafruit_CircuitPython_NeoPixel/release_gh.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/release_pypi.yml:16: update your workflow using https://app.stepsecurity.io/secureworkflow/adafruit/Adafruit_CircuitPython_NeoPixel/release_pypi.yml/main?enable=pin","Info:   0 out of   4 third-party GitHubAction dependencies pinned"],"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}},{"name":"Token-Permissions","score":0,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Warn: no topLevel permission defined: .github/workflows/build.yml:1","Warn: no topLevel permission defined: .github/workflows/failure-help-text.yml:1","Warn: no topLevel permission defined: .github/workflows/release_gh.yml:1","Warn: no topLevel permission defined: .github/workflows/release_pypi.yml:1","Info: no jobLevel write permissions found"],"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#cii-best-practices"}},{"name":"Security-Policy","score":0,"reason":"security policy file not detected","details":["Warn: no security policy file detected","Warn: no security file to analyze","Warn: no security file to analyze","Warn: no security file to analyze"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#fuzzing"}},{"name":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE:0","Info: FSF or OSI recognized license: MIT License: LICENSE:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"Vulnerabilities","score":10,"reason":"0 existing vulnerabilities detected","details":null,"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}},{"name":"Branch-Protection","score":0,"reason":"branch protection not enabled on development/release branches","details":["Warn: branch protection not enabled for branch 'main'"],"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#branch-protection"}},{"name":"Signed-Releases","score":0,"reason":"Project has not signed or included provenance with any releases.","details":["Warn: release artifact 6.3.17 not signed: https://api.github.com/repos/adafruit/Adafruit_CircuitPython_NeoPixel/releases/225921198","Warn: release artifact 6.3.16 not signed: https://api.github.com/repos/adafruit/Adafruit_CircuitPython_NeoPixel/releases/218967437","Warn: release artifact 6.3.15 not signed: https://api.github.com/repos/adafruit/Adafruit_CircuitPython_NeoPixel/releases/197586178","Warn: release artifact 6.3.14 not signed: https://api.github.com/repos/adafruit/Adafruit_CircuitPython_NeoPixel/releases/195198021","Warn: release artifact 6.3.13 not signed: https://api.github.com/repos/adafruit/Adafruit_CircuitPython_NeoPixel/releases/193510846","Warn: release artifact 6.3.17 does not have provenance: https://api.github.com/repos/adafruit/Adafruit_CircuitPython_NeoPixel/releases/225921198","Warn: release artifact 6.3.16 does not have provenance: https://api.github.com/repos/adafruit/Adafruit_CircuitPython_NeoPixel/releases/218967437","Warn: release artifact 6.3.15 does not have provenance: https://api.github.com/repos/adafruit/Adafruit_CircuitPython_NeoPixel/releases/197586178","Warn: release artifact 6.3.14 does not have provenance: https://api.github.com/repos/adafruit/Adafruit_CircuitPython_NeoPixel/releases/195198021","Warn: release artifact 6.3.13 does not have provenance: https://api.github.com/repos/adafruit/Adafruit_CircuitPython_NeoPixel/releases/193510846"],"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"name":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 24 are checked with a SAST tool"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#sast"}}]},"last_synced_at":"2025-08-16T14:24:55.048Z","repository_id":13056028,"created_at":"2025-08-16T14:24:55.048Z","updated_at":"2025-08-16T14:24:55.048Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32201871,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-23T20:19:26.138Z","status":"ssl_error","status_checked_at":"2026-04-23T20:19:23.520Z","response_time":53,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":["circuitpython","hacktoberfest"],"created_at":"2024-09-24T19:52:10.444Z","updated_at":"2026-04-23T23:00:59.511Z","avatar_url":"https://github.com/adafruit.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"\nAdafruit CircuitPython NeoPixel\n===============================\n\n.. image:: https://readthedocs.org/projects/adafruit-circuitpython-neopixel/badge/?version=latest\n    :target: https://docs.circuitpython.org/projects/neopixel/en/latest/\n    :alt: Documentation Status\n\n.. image:: https://github.com/adafruit/Adafruit_CircuitPython_Bundle/blob/main/badges/adafruit_discord.svg\n    :target: https://adafru.it/discord\n    :alt: Discord\n\n.. image:: https://github.com/adafruit/Adafruit_CircuitPython_NeoPixel/workflows/Build%20CI/badge.svg\n    :target: https://github.com/adafruit/Adafruit_CircuitPython_NeoPixel/actions/\n    :alt: Build Status\n\n.. image:: https://img.shields.io/badge/code%20style-black-000000.svg\n    :target: https://github.com/psf/black\n    :alt: Code Style: Black\n\nHigher level NeoPixel driver that presents the strip as a sequence. This is a\nsupercharged version of the original MicroPython driver. Its now more like a\nnormal Python sequence and features slice support, ``repr`` and ``len`` support.\n\nColors are stored as tuples by default. However, you can also use int hex syntax\nto set values similar to colors on the web. For example, ``0x100000`` (``#100000``\non the web) is equivalent to ``(0x10, 0, 0)``.\n\n.. note:: The int hex API represents the brightness of the white pixel when\n  present by setting the RGB channels to identical values. For example, full\n  white is 0xffffff but is actually (0, 0, 0, 0xff) in the tuple syntax. Setting\n  a pixel value with an int will use the white pixel if the RGB channels are\n  identical. For full, independent, control of each color component use the\n  tuple syntax.\n\nDependencies\n=============\nThis driver depends on:\n\n* `Adafruit CircuitPython \u003chttps://github.com/adafruit/circuitpython\u003e`_\n* `Adafruit CircuitPython Pixelbuf library \u003chttps://github.com/adafruit/Adafruit_CircuitPython_Pixelbuf\u003e`_\n\nPlease ensure all dependencies are available on the CircuitPython filesystem.\nThis is easily achieved by downloading\n`the Adafruit library and driver bundle \u003chttps://github.com/adafruit/Adafruit_CircuitPython_Bundle\u003e`_.\n\nInstalling from PyPI\n====================\n\nOn supported GNU/Linux systems like the Raspberry Pi, you can install the driver locally `from\nPyPI \u003chttps://pypi.org/project/adafruit-circuitpython-neopixel/\u003e`_. To install for current user:\n\n.. code-block:: shell\n\n    pip3 install adafruit-circuitpython-neopixel\n\nTo install system-wide (this may be required in some cases):\n\n.. code-block:: shell\n\n    sudo pip3 install adafruit-circuitpython-neopixel\n\nTo install in a virtual environment in your current project:\n\n.. code-block:: shell\n\n    mkdir project-name \u0026\u0026 cd project-name\n    python3 -m venv .venv\n    source .venv/bin/activate\n    pip3 install adafruit-circuitpython-neopixel\n\nUsage Example\n=============\n\nThis example demonstrates the library with the single built-in NeoPixel on the\n`Feather M0 Express \u003chttps://www.adafruit.com/product/3403\u003e`_ and\n`Metro M0 Express \u003chttps://www.adafruit.com/product/3505\u003e`_.\n\n.. code-block:: python\n\n    import board\n    import neopixel\n\n    pixels = neopixel.NeoPixel(board.NEOPIXEL, 1)\n    pixels[0] = (10, 0, 0)\n\nThis example demonstrates the library with the ten built-in NeoPixels on the\n`Circuit Playground Express \u003chttps://www.adafruit.com/product/3333\u003e`_. It turns\noff ``auto_write`` so that all pixels are updated at once when the ``show``\nmethod is called.\n\n.. code-block:: python\n\n    import board\n    import neopixel\n\n    pixels = neopixel.NeoPixel(board.NEOPIXEL, 10, auto_write=False)\n    pixels[0] = (10, 0, 0)\n    pixels[9] = (0, 10, 0)\n    pixels.show()\n\nThis example demonstrates using a single NeoPixel tied to a GPIO pin and with\na ``pixel_order`` to specify the color channel order. Note that ``bpp`` does not\nneed to be specified as it is computed from the supplied ``pixel_order``.\n\n.. code-block:: python\n\n    import board\n    import neopixel\n\n    pixel = neopixel.NeoPixel(board.D0, 1, pixel_order=neopixel.RGBW)\n    pixel[0] = (30, 0, 20, 10)\n\nSetup for sudo-less usage on Raspberry Pi boards\n================================================\n1. Enable both SPI and Serial port hardware (Serial interface). Do it by ``raspi-config`` tool or manually by adding\n\n   ::\n\n      dtparam=spi=on\n      enable_uart=1\n\n   to the ``/boot/config.txt``\n\n2. Reboot the Pi to apply the changes - the hardware setup takes place during boot.\n3. Connect LED's DIN to ``GPIO10`` (physical pin 19)\n\nWhen initializing the ``NeoPixel`` object **always** do it with ``board.D10`` (GPIO10)\n\n.. code-block:: python\n\n    import board\n    import neopixel\n\n    DATA_PIN = board.D10\n    pixel = neopixel.NeoPixel(DATA_PIN, ...)\n\nNow you can execute the code using ``python`` without ``sudo``\n\nDocumentation\n=============\n\nAPI documentation for this library can be found on `Read the Docs \u003chttps://docs.circuitpython.org/projects/neopixel/en/latest/\u003e`_.\n\nFor information on building library documentation, please check out `this guide \u003chttps://learn.adafruit.com/creating-and-sharing-a-circuitpython-library/sharing-our-docs-on-readthedocs#sphinx-5-1\u003e`_.\n\nContributing\n============\n\nContributions are welcome! Please read our `Code of Conduct\n\u003chttps://github.com/adafruit/Adafruit_CircuitPython_NeoPixel/blob/main/CODE_OF_CONDUCT.md\u003e`_\nbefore contributing to help this project stay welcoming.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fadafruit%2Fadafruit_circuitpython_neopixel","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fadafruit%2Fadafruit_circuitpython_neopixel","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fadafruit%2Fadafruit_circuitpython_neopixel/lists"}