{"id":35087947,"url":"https://github.com/trichner/fbdraw","last_synced_at":"2026-04-18T00:31:08.858Z","repository":{"id":71057397,"uuid":"158887464","full_name":"trichner/fbdraw","owner":"trichner","description":"Playing around with Linux framebuffer devices","archived":false,"fork":false,"pushed_at":"2018-11-23T23:52:16.000Z","size":4,"stargazers_count":3,"open_issues_count":0,"forks_count":1,"subscribers_count":2,"default_branch":"master","last_synced_at":"2024-11-15T02:59:00.034Z","etag":null,"topics":["framebuffer","golang","linux","raspberry-pi"],"latest_commit_sha":null,"homepage":null,"language":"Go","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/trichner.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,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2018-11-23T23:51:29.000Z","updated_at":"2023-03-27T17:20:33.000Z","dependencies_parsed_at":"2023-08-28T19:19:26.619Z","dependency_job_id":null,"html_url":"https://github.com/trichner/fbdraw","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/trichner/fbdraw","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/trichner%2Ffbdraw","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/trichner%2Ffbdraw/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/trichner%2Ffbdraw/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/trichner%2Ffbdraw/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/trichner","download_url":"https://codeload.github.com/trichner/fbdraw/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/trichner%2Ffbdraw/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31951219,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-17T17:29:20.459Z","status":"ssl_error","status_checked_at":"2026-04-17T17:28:47.801Z","response_time":62,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6: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":["framebuffer","golang","linux","raspberry-pi"],"created_at":"2025-12-27T13:57:41.511Z","updated_at":"2026-04-18T00:31:08.844Z","avatar_url":"https://github.com/trichner.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"\nThose are the chronicles of my search for knowledge about Linux framebuffer devices.\nYou can find the devices in `/dev/fb{0..32}`.\n\n## Drawing\nThe goal here is to create a basic UI on the 4DPi 2.4\" HAT display for the Raspberry Pi.\n\nWhat works:\n- can draw shapes\n- can draw fonts\n\n## Double-Buffering\nThe proper term is 'panning'. The `FBIOGET_FSCREENINFO` `ioctl` indicates if this is supported by the driver or not.\n\nhttps://stackoverflow.com/questions/13907471/linux-framebuffer-graphics-and-vsync\n\n\n## 4DPi-24-HAT Properties\n2.4\" HAT Primary Display for the Raspberry Pi\n\n```\n{ // FBIOGET_FSCREENINFO\n  Id:[108 99 100 112 105 0 0 0 0 0 0 0 0 0 0 0]\n  Smem_start:3154890752\n  Smem_len:155648\n  Type:0\n  Type_aux:0\n  Visual:2\n  Xpanstep:0\n  Ypanstep:0\n  Ywrapstep:0\n  Line_length:640\n  Mmio_start:0\n  Mmio_len:0\n  Accel:0\n  Capabilities:0\n  Reserved:[0 0]\n}\n{ // FBIOGET_VSCREENINFO\n  Xres:320\n  Yres:240\n  Xres_virtual:320\n  Yres_virtual:240\n  Xoffset:0\n  Yoffset:0\n  Bits_per_pixel:16\n  Grayscale:0\n  Red:{Offset:11 Length:5 Msb_right:0}\n  Green:{Offset:5 Length:6 Msb_right:0}\n  Blue:{Offset:0 Length:5 Msb_right:0}\n  Transp:{Offset:0 Length:0 Msb_right:0}\n  Nonstd:0\n  Activate:0\n  Height:49\n  Width:74\n  Accel_flags:0\n  Pixclock:0\n  Left_margin:0\n  Right_margin:0\n  Upper_margin:0\n  Lower_margin:0\n  Hsync_len:0\n  Vsync_len:0\n  Sync:0\n  Vmode:0\n  Rotate:0\n  Colorspace:0\n  Reserved:[0 0 0 0]\n}\n```","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftrichner%2Ffbdraw","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftrichner%2Ffbdraw","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftrichner%2Ffbdraw/lists"}