{"id":23670485,"url":"https://github.com/ankushkun/clickoor","last_synced_at":"2026-05-03T07:47:34.416Z","repository":{"id":223085991,"uuid":"759283642","full_name":"ankushKun/clickoor","owner":"ankushKun","description":"A camera based on raspi","archived":false,"fork":false,"pushed_at":"2024-04-21T14:51:42.000Z","size":1515,"stargazers_count":3,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-05-21T04:14:32.013Z","etag":null,"topics":["arweave","camera","permaweb","raspberry-pi"],"latest_commit_sha":null,"homepage":"","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/ankushKun.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":null,"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},"funding":{"github":"ankushKun","patreon":null,"open_collective":null,"ko_fi":"ankushKun","tidelift":null,"community_bridge":null,"liberapay":null,"issuehunt":null,"lfx_crowdfunding":null,"polar":null,"buy_me_a_coffee":"ankushKun","custom":null}},"created_at":"2024-02-18T06:36:35.000Z","updated_at":"2025-02-01T19:01:20.000Z","dependencies_parsed_at":"2024-02-18T07:28:56.986Z","dependency_job_id":"1168662c-8bf1-4bd6-a781-52bc87a41228","html_url":"https://github.com/ankushKun/clickoor","commit_stats":null,"previous_names":["ankushkun/infinitycam"],"tags_count":5,"template":false,"template_full_name":null,"purl":"pkg:github/ankushKun/clickoor","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ankushKun%2Fclickoor","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ankushKun%2Fclickoor/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ankushKun%2Fclickoor/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ankushKun%2Fclickoor/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ankushKun","download_url":"https://codeload.github.com/ankushKun/clickoor/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ankushKun%2Fclickoor/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32562118,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-03T06:36:36.687Z","status":"ssl_error","status_checked_at":"2026-05-03T06:36:09.306Z","response_time":103,"last_error":"SSL_read: 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":["arweave","camera","permaweb","raspberry-pi"],"created_at":"2024-12-29T09:35:49.210Z","updated_at":"2026-05-03T07:47:34.399Z","avatar_url":"https://github.com/ankushKun.png","language":"Python","funding_links":["https://github.com/sponsors/ankushKun","https://ko-fi.com/ankushKun","https://buymeacoffee.com/ankushKun"],"categories":[],"sub_categories":[],"readme":"# Clickoor Camera\n\n\n\n\u003cdetails\u003e\n\u003csummary\u003e \u003ch3 style=\"display:inline;\"\u003eComponents\u003c/h2\u003e \u003c/summary\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003eHardware\u003c/summary\u003e\n\n- [Raspberry Pi 4b](https://robu.in/product/raspberry-pi-4-model-b-with-2-gb-ram/)\n- [Raspberry Pi HQ Camera](https://robu.in/product/raspberry-pi-hq-camera/) (or any compatible camera module)\n- [Raspi HQ Cam C mount lens](https://robu.in/product/16mm-telephoto-lens-for-raspberry-pi-high-quality-camera/) (optional depending on what camera module you use)\n- [Waveshare 4.3\" touchscreen DSI display](https://robu.in/product/waveshare-4-3-inch-capacitive-touch-display-for-raspberry-pi-800x480/) (or any compatible display)\n- [18650 Li-ion battery](https://robu.in/product/panasonic-ncr18650ga-3300mah-3c-li-ion-battery/)\n- [Powerbank charger module](https://amzn.in/d/1pB2MlH) with LCD (generic)\n- [R13-507 button](https://robu.in/product/red-r13-507-16mm-no-lock-push-button-momentary-switch-3a-250v/) for shutter\n- [Slide switch](https://robu.in/product/slide-switch-ss-12f15-1p2t/) for power\n\nOther common components such as microSD card, keyboard, mouse, hdmi display etc.\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003eSoftware\u003c/summary\u003e\n\n- [Raspberry Pi OS](https://www.raspberrypi.com/software/)\n- [i3](https://i3wm.org/) (window manager)\n- [pygame_gui](https://pygame-gui.readthedocs.io/en/), [pygame-ce](https://pyga.me/)\n- [Picamera2](https://datasheets.raspberrypi.com/camera/picamera2-manual.pdf)\n- [gpiozero](https://gpiozero.readthedocs.io/en/stable/)\n\n\u003c/details\u003e\n\u003c/details\u003e\n\n\n## Setup\n\n\u003cdetails\u003e\n\u003csummary\u003eWifi (using `nmtui` if not already setup)\u003c/summary\u003e\n    \n```bash\nsudo nmtui\n```\n\nHas a nice ncurses interface to connect to wifi networks\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003eUpdate and Upgrade always\u003c/summary\u003e\n\n```bash\nsudo apt update\nsudo apt upgrade\n```\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003ePi HQ Camera\u003c/summary\u003e\n\nConnect the camera module to the camera port using the provided ribbon cable.\n\nNo specific setup is needed in case of pi 4b, the camera module should be detected automatically.\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003eTouchscreen Display\u003c/summary\u003e\n\nNo setup needed for the 4.3\" Waveshare touchscreen display, it should be detected automatically.\n\nIf using a cheaper 3.5\" display, follow these steps:\n\n```bash\ngit clone https://github.com/goodtft/LCD-show\ncd LCD-show\nsudo ./LCD35-show\n```\n\nDisplay should start working after an automatic reboot\n\nInstall the touchscreen calibrator\n\n```bash\ncd LCD-show\nsudo apt install ./xinput-calibrator_0.7.5-1_armhf.deb\nxinput_calibrator\n```\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003ePython GUI (pygame)\u003c/summary\u003e\n\n```bash\ncd clickoor\nbash scripts/setup.sh\nbash scripts/start.sh\n```\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003ei3\u003c/summary\u003e\n\ninstall i3wm\n\n```bash\nsudo apt install i3\nsudo apt remove i3lock # we dont want lockscreen\n```\n\nConfigure to boot into cli and autologin using raspi-config\n\nrun `sudo raspi-config` -\u003e Boot Options -\u003e Desktop / CLI -\u003e Console Autologin\n\nConfigure to use i3 instead of lxde\n\nopen `.bashrc` and add this line at the end\n\n```bash\nstartx /usr/bin/i3\n```\n\n\u003cdetails\u003e\n\u003csummary\u003eDifferent method (Better way but doesnot always work, skill issue)\u003c/summary\u003e\n\n```bash\ncd /etc/xdg/lxsession/LXDE-pi\n```\n\n1. edit `desktop.conf` and set `window_manager=i3` (located at first line)\n2. edit `autostart` and comment all lines about lxpanel, pcmanfm and xscreensaver because we dont want lxde stuff in i3\n\u003c/details\u003e\n\n\nAdd this to the end of your i3 config file (located at ~/.config/i3/config)\n\n```bash\nbindsym $mod+x exec \"i3-msg exit\"\nbindsym $mod+c exec \"bash /home/pi/clickoor/scripts/start.sh\"\nbindsym $mod+i exec \"x-terminal-emulator -e nmtui\"\nexec_always --no-startup-id \"bash /home/pi/clickoor/scripts/start.sh\"\n```\n\nor copy the config file in `configuration/config` to `~/.config/i3/config`\n\n\u003c/details\u003e\n\n## TODO:\n\n- [ ] Wifi connection in a different thread to stop main thread from blocking\n- [ ] Camera preview in a different thread for better performance?\n- [x] Automated setup.sh script for configuring everything\n- [ ] Changable resolution\n- [ ] Video recording option\n- [x] Exception handling wherever possible (starting with gallery image loading)\n- [ ] Options for creation of jwk for first time users\n- [ ] Turbo sdk integration (through ardrive-cli?)\n- [ ] Image compression under 500kb\n- [x] Save each image as new timestamped file instead of overwriting\n- [x] Gallery images view, incl. local and onchain images\n- [x] Wallet options for change seed, upload jwk file (through a webserver)\n- [x] Upload selected images from gallery to Arweave\n- [x] Wifi connection from Wifi Screen\n- [x] Pull latest code whenever there is an update\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fankushkun%2Fclickoor","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fankushkun%2Fclickoor","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fankushkun%2Fclickoor/lists"}