{"id":20936208,"url":"https://github.com/adzerk/rbpi_displays","last_synced_at":"2025-09-04T07:13:49.173Z","repository":{"id":137060889,"uuid":"39788545","full_name":"adzerk/Rbpi_Displays","owner":"adzerk","description":"Public Repository for Raspberry Pi Displays","archived":false,"fork":false,"pushed_at":"2015-07-30T03:20:54.000Z","size":177,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":38,"default_branch":"master","last_synced_at":"2025-03-13T02:43:36.786Z","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":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/adzerk.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2015-07-27T17:37:33.000Z","updated_at":"2021-03-11T13:07:38.000Z","dependencies_parsed_at":"2023-03-13T03:16:30.567Z","dependency_job_id":null,"html_url":"https://github.com/adzerk/Rbpi_Displays","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/adzerk/Rbpi_Displays","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/adzerk%2FRbpi_Displays","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/adzerk%2FRbpi_Displays/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/adzerk%2FRbpi_Displays/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/adzerk%2FRbpi_Displays/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/adzerk","download_url":"https://codeload.github.com/adzerk/Rbpi_Displays/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/adzerk%2FRbpi_Displays/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":273569677,"owners_count":25129047,"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-09-04T02:00:08.968Z","response_time":61,"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-11-18T22:18:23.909Z","updated_at":"2025-09-04T07:13:49.118Z","avatar_url":"https://github.com/adzerk.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"Both displays use unicurses, a python wrapper for ncurses, which can be found\nhere: https://github.com/Chiel92/unicurses. To run the application on your\ncomputer you can follow the install instructions for unicurses or move the\nunicurses.py file from the raspberry pi into your directory.\n\n#ASCII art chat leaderboard/trello tickets:\n\nA dashboard displaying stats. This is kind of a temporary dashboard (maybe a\nclick map or something will take its place later)!\n\nDashboard currently displays a slack leader board for the #engineering channel\nand the number of tickets that have moved to the \"CRUSHED!\" board this month\n(according to the slack trello channel).\n\nThe launch script for this is ll.sh (only works on rbpi and must be run with\nsudo) or you can run it with `python stats_dash.py 2\u003e err`. The file\n`fonts_list.txt` contains a list of the fonts provided by the pyfiglet library\nand how they look printed out (quick reference if you are trying to change the\nfonts on the display).\n\n#Graph Display:\n\nMake an application that plots datadog stats in real (ish) time. There's a 5\nminute delay. Right now, there are four graphs displayed using datadog data. \n\nTo run, make sure to redirect the error messages or they will show up on the\nscreen. They're still useful when stuff goes wrong.\n\n`python dd_terminal.py 2\u003e err` \n\n##Make the request file:\n\nTo display different graphs from data dog, put the request names in a file\ncalled `yourName_graphs_{#}.txt`. (TODO: changing the number of graphs isn't\nimpemented yet).\n\nThere should be one request per line, no blank lines, and a maximum of 4 graphs\nwill be displayed (if you have more than this in the file, nothing bad will\nhappen, but they won't be graphed). There's no error checking for now, so make\nsure that the requests are in the correct format and that they actually exist.\nAn example file, called `audrey_graphs_2.txt` :\n\n``` \navg:adserver.api.request.avg{*} \navg:adserver.ados.request.avg{*}\n```\nExample for four `audrey_graphs_4.txt`:\n```\nsum:adserver.api.request.count{*} \navg:adserver.api.request.avg{*} \navg:adserver.ados.request.avg{*}\nsum:eventserver.events.impression{*} \n```\n\nAlso, there's no ordering of who's files are graphed right now, so if there are\nmultiple files they'll each get ~5 minutes on the screen and then the last one\nwill stay on the screen until a new file shows up.\n\n##Get the file to the Raspberry Pi:\n\nPut this file in the right directory on the raspberry pi\n`/home/pi/rbpi/unicurses_display/`. You can do this with scp:\n\n```\nscp /path/to/your/file pi@\u003cIP_Adress\u003e:/home/pi/rbpi/unicurses_displays/. \n```\n\nAfter a file has been logged, it will appear in the 'done' folder in the\ndirectory that contains the python script on the Raspberry Pi, and the name will\nappear as `yourname_graph_log.txt`.\n\n##Running display on login (this should already be setup):\n\n###Auto Login\n\n`sudo vim /etc/inittab`\n\nNavigate to the following line `1:2345:respawn:/sbin/getty 115200 tty1` and\ncomment it out.\n\nAdd this just below the commented line:\n\n`1:2345:respawn:/bin/login -f pi tty1 \u003c/dev/tty1 \u003e/dev/tty1 2\u003e\u00261`\n\nThis will run the login program with pi user and without any authentication.\n\n###Run a Script after login:\n\n`sudo vim /etc/profile`\n\nIf you are trying to run the graphs:\n\n`sudo /home/pi/rbpi/unicurses\\_displays/launcher.sh`\n\nOr, if you are trying to do the chat leaderboard:\n\n`sudo /home/pi/rbpi/unicurses\\_displays/ll.sh`\n\n###Prevent Sleep:\n\n`sudo vim /etc/kbd/config`\n\nReplace BLANK\\_TIME and POWERDOWN\\_TIME with the appropriate values:\n\n```\n#BLANK_TIME=30 BLANK_TIME=0 ...  #POWERDOWN_TIME=30 POWERDOWN_TIME=0\n```\nThen, enter `sudo vim /etc/lightdm/lightdm.conf` and add the line:\n`xserver-command=X -s 0 dpms`.\n\n###Crontab:\n\nThis should already be set up. If not, there is a shell script (launcher.sh)\nthat allows you to run the program when the rbpi boots. To do this, make sure\nthat '/home/pi/logs' exists on your pi. If it doesn't, go ahead and create it.\nNow, make sure that crontab is set up. \n\n``` \nsudo crontab -e \n``` \nMake sure that the following line is at the bottom of\nthe file, if it isn't, add it:\n\n``` \n@reboot sh /home/pi/rbpi/unicurses_displays/launcher.sh \u003e/home/pi/logs/cronlog 2\u003e\u00261\n\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fadzerk%2Frbpi_displays","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fadzerk%2Frbpi_displays","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fadzerk%2Frbpi_displays/lists"}