{"id":17925054,"url":"https://github.com/zerowidth/lightbar","last_synced_at":"2026-06-17T21:01:50.895Z","repository":{"id":66410100,"uuid":"77860144","full_name":"zerowidth/lightbar","owner":"zerowidth","description":"attiny84 + neopixel + serial control via softuart","archived":false,"fork":false,"pushed_at":"2017-01-02T20:58:09.000Z","size":13,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-02-08T23:12:11.299Z","etag":null,"topics":["attiny","avr","neopixel"],"latest_commit_sha":null,"homepage":"","language":"C","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/zerowidth.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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":"2017-01-02T20:33:21.000Z","updated_at":"2017-01-02T20:58:59.000Z","dependencies_parsed_at":"2023-04-29T07:38:41.457Z","dependency_job_id":null,"html_url":"https://github.com/zerowidth/lightbar","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zerowidth%2Flightbar","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zerowidth%2Flightbar/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zerowidth%2Flightbar/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zerowidth%2Flightbar/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/zerowidth","download_url":"https://codeload.github.com/zerowidth/lightbar/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246972539,"owners_count":20862891,"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","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":["attiny","avr","neopixel"],"created_at":"2024-10-28T20:52:06.264Z","updated_at":"2025-11-08T01:02:07.768Z","avatar_url":"https://github.com/zerowidth.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"# lightbar\n\n## What is?\n\n* Firmware for an attiny84 to drive a 16-pixel neopixel bar via softuart serial control.\n* A ruby script to talk to the serial port and display colors and animations.\n\n## Why for?\n\nSo I can make pretty colors.\n\n## Is it any good?\n\nYes.\n\n## How do?\n\n### Firmware\n\nDependencies:\n\n* `brew install avrdude`\n* `brew tap osx-cross/avr`\n* `brew install avr-libc`\n\n```\ncd firmware\nmake flash\n```\n\n### Circuit\n\n#### Parts\n\n* ATTiny84, programmed as above\n* Two [neopixel sticks](https://www.adafruit.com/product/1426) soldered together. If you've got something else, edit the firmware/ruby script to change the number of pixels accordingly.\n* A big ol' electrolytic capacitor (100uF+) for power conditioning\n* A 470Ω resistor\n* A [5V FTDI breakout](https://www.sparkfun.com/products/9716) and USB cable, for power and comms.\n\n#### Assembly\n\n- [ ] Capacitor bridges 5V and GND, near the pixel stick.\n- [ ] FTDI TX goes to pin 12\n- [ ] FTDI RX goes to pin 11\n- [ ] FTDI 5V and GND for power\n- [ ] Pin 8 goes to resistor, goes to pixel stick data line\n\nThe firmware restricts total max rgb output levels to 127, which (give or take) will prevent 16 pixels from consuming more than 500mA to keep USB hosts happy. If you want more light or are driving more pixels, don't rely on USB for power.\n\n### Blinkenlights\n\nPlug in the FTDI breakout and you should have a `/dev/cu.usbserial-*` device.\n\nFor a preset animation:\n\n```\ncd controller\nruby animation.rb\n```\n\nFor console shenanigans:\n\n```\ncd controller\nirb -r./animation\n\n\u003e # helper for easy hex input:\n\u003e wipe \"0f0\"\n\u003e wipe \"ff0088\"\n\u003e loop { wipe gets.strip }\n\u003e # or control manually:\n\u003e strip.rainbow_cycle\n\u003e # etc.\n```","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzerowidth%2Flightbar","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fzerowidth%2Flightbar","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzerowidth%2Flightbar/lists"}