{"id":22253950,"url":"https://github.com/mcauser/circuitpython-tinys2-lol-rgb-shield","last_synced_at":"2025-08-15T00:36:28.963Z","repository":{"id":150620429,"uuid":"403999487","full_name":"mcauser/circuitpython-tinys2-lol-rgb-shield","owner":"mcauser","description":"A CircuitPython library for the TinyPICO LOL RGB Shield","archived":false,"fork":false,"pushed_at":"2021-09-07T15:40:11.000Z","size":1530,"stargazers_count":0,"open_issues_count":0,"forks_count":1,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-03-25T12:33:42.139Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"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/mcauser.png","metadata":{"files":{"readme":"readme.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":null,"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}},"created_at":"2021-09-07T14:00:07.000Z","updated_at":"2021-09-07T15:40:13.000Z","dependencies_parsed_at":"2023-05-06T09:32:04.656Z","dependency_job_id":null,"html_url":"https://github.com/mcauser/circuitpython-tinys2-lol-rgb-shield","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/mcauser/circuitpython-tinys2-lol-rgb-shield","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mcauser%2Fcircuitpython-tinys2-lol-rgb-shield","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mcauser%2Fcircuitpython-tinys2-lol-rgb-shield/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mcauser%2Fcircuitpython-tinys2-lol-rgb-shield/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mcauser%2Fcircuitpython-tinys2-lol-rgb-shield/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mcauser","download_url":"https://codeload.github.com/mcauser/circuitpython-tinys2-lol-rgb-shield/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mcauser%2Fcircuitpython-tinys2-lol-rgb-shield/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":270505944,"owners_count":24596505,"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","status":"online","status_checked_at":"2025-08-14T02:00:10.309Z","response_time":75,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":[],"created_at":"2024-12-03T07:21:18.000Z","updated_at":"2025-08-15T00:36:28.904Z","avatar_url":"https://github.com/mcauser.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# CircuitPython TinyS2 LOL RGB Shield\n\nA CircuitPython port of the [MicroPython library](https://github.com/mcauser/micropython-tinypico-lol-rgb-shield) for the TinyPICO LOL RGB Shield, by @tinyledmatrix\n\nThis shield was designed for the [TinyPICO](https://www.tinypico.com/), but also works with the [TinyS2](https://unexpectedmaker.com/tinys2).\n\nNeoPixel data pin on the TinyPICO is IO14 which translates to IO5 on the TinyS2.\n\n## Demo\n\n![demo](docs/demo.gif)\n\n```python\nfrom lolrgb import *\ndisplay = LOLRGB()\n\ndisplay.write('TinyPICO LOL RGB Shield', RAINBOW)\n```\n\n## Examples\n\n```python\nfrom lolrgb import *\ndisplay = LOLRGB()\n\n# persist settings so you dont need to add them to each write() call\ndisplay.set_color(RED)\ndisplay.set_delay(SHORT_PAUSE)\ndisplay.set_boundary(CHAR_BOUNDARY)\n\n# strings inheriting settings\ndisplay.write('Hello World')\ndisplay.write('This is really cool', RED, SHORT_PAUSE)\n\n# providing a colour but not replacing settings\ndisplay.write('Red', RED)\ndisplay.write('Green', GREEN)\ndisplay.write('Blue', BLUE)\n\ndisplay.set_color(GREEN)\ndisplay.write('Green')\n\n# you can provide colours using a color tuple (r,g,b)\ndisplay.write('Bright Red', (255,0,0), SHORT_PAUSE)\ndisplay.write('Bright White', (255,255,255), SHORT_PAUSE)\n# congratulations, you are now blind for the next few minutes\n\n# you can write at different speeds\ndisplay.write('Slow', RED, LONG_PAUSE)\ndisplay.write('Fast', RED, MEDIUM_PAUSE)\ndisplay.write('Faster', RED, SHORT_PAUSE)\ndisplay.write('Fastest', RED, NO_PAUSE)\n\n# you can write in cycling colours by providing a list of color tuples\n# eg. [(r,g,b), (r,g,b), (r,g,b)]\n# colour cycles at word boundaries (spaces)\ndisplay.write('Red Blue Red Blue', [RED,BLUE], SHORT_PAUSE, WORD_BOUNDARY)\ndisplay.write('Red Green Blue', RGB, SHORT_PAUSE, WORD_BOUNDARY)\ndisplay.write('R G B R G B', RGB, SHORT_PAUSE, WORD_BOUNDARY)\ndisplay.write('Rainbow Coloured Words', RAINBOW, MEDIUM_PAUSE, WORD_BOUNDARY)\n\n# colour cycles at character boundaries\ndisplay.write('RGB', RGB, SHORT_PAUSE, CHAR_BOUNDARY)\ndisplay.write('Rainbow Coloured Letters', RAINBOW, MEDIUM_PAUSE, CHAR_BOUNDARY)\n\n# you can write bytes\ndisplay.write(b'Red')\ndisplay.write(bytearray(b'Red'))\n\n# you can write ints\ndisplay.write(1234, RAINBOW, MEDIUM_PAUSE, CHAR_BOUNDARY)\n\n# you can write floats\ndisplay.write(12.34, RAINBOW, MEDIUM_PAUSE, CHAR_BOUNDARY)\ndisplay.write(1/3, RAINBOW, MEDIUM_PAUSE, CHAR_BOUNDARY)\n\n# all supported ascii chars (32-127)\ndisplay.write(''.join(chr(i) for i in range(32,128)), RED, FAST)\n\n# unsupported chars\ndisplay.write(chr(31))   # \u003c 32 == hollow rect\ndisplay.write(chr(128))  # \u003e 127 == filled rect\n```\n\n## TomThumb font\n\nOriginal 3x5 font Brian Swetland.\n\nI've excluding ascii characters \u003c 32 and \u003e 127 to save space.\n\nEnlarged 10x:\n\n![10x](docs/tomthumb@10x.png)\n\nEnlarged 10x spaced apart:\n\n![10x spaced](docs/tomthumb-spaced@10x.png)\n\nActual size:\n\n![actual](docs/tomthumb.png)\n\nWas unable to add [Robey Pointer's](https://robey.lag.net/2010/01/23/tiny-monospace-font.html) improvements as it requires 6 lines and this matrix only has 5.\n\n## Links\n\n* [circuitpython.org](http://circuitpython.org)\n* [Download CircuitPython for TinyS2](https://circuitpython.org/board/unexpectedmaker_tinys2/)\n* [Buy a LOL RGB Shield](https://unexpectedmaker.com/shop/tinypico-shield-lolrgb)\n* [Buy a TinyS2](https://unexpectedmaker.com/shop/tinys2-esp32-s2)\n* [Buy a TinyPICO Side by Side](https://unexpectedmaker.com/shop/tinypico-mzffe-zatnr-zehhx)\n* [TinyS2 Getting Started](https://unexpectedmaker.com/tinys2)\n* [MicroPython version](https://github.com/mcauser/micropython-tinypico-lol-rgb-shield)\n* [Arduino version](https://github.com/tinypico/tinypico-arduino)\n* [Brian Swetlands original 3x5 font](https://vt100.tarunz.org/#font)\n* [Robey Pointers TomThumb improvements](https://robey.lag.net/2010/01/23/tiny-monospace-font.html)\n\n## License\n\nLicensed under the [MIT License](http://opensource.org/licenses/MIT).\n\nCopyright (c) 2021 Mike Causer\n\nTomThumb font\n\nCopyright 1999 Brian Swetland - [CC0 License](https://creativecommons.org/share-your-work/public-domain/cc0/).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmcauser%2Fcircuitpython-tinys2-lol-rgb-shield","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmcauser%2Fcircuitpython-tinys2-lol-rgb-shield","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmcauser%2Fcircuitpython-tinys2-lol-rgb-shield/lists"}