{"id":19320848,"url":"https://github.com/dominicmaas/astrohelper","last_synced_at":"2026-05-15T11:11:07.086Z","repository":{"id":96745373,"uuid":"398905607","full_name":"DominicMaas/AstroHelper","owner":"DominicMaas","description":"A react client \u0026 c++ server that runs on a Raspberry Pi, allowing remote control of DLSR cameras from a mobile phone","archived":false,"fork":false,"pushed_at":"2025-02-02T23:53:54.000Z","size":1452,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-02-24T05:28:17.996Z","etag":null,"topics":["astrophotography","camera","gphoto2","raspberry-pi"],"latest_commit_sha":null,"homepage":"","language":"Rust","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/DominicMaas.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":"2021-08-22T21:33:11.000Z","updated_at":"2025-02-02T23:53:57.000Z","dependencies_parsed_at":"2024-11-10T01:32:37.564Z","dependency_job_id":"a6f1ef14-5a80-4f86-aaed-e328474a7ba9","html_url":"https://github.com/DominicMaas/AstroHelper","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/DominicMaas/AstroHelper","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DominicMaas%2FAstroHelper","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DominicMaas%2FAstroHelper/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DominicMaas%2FAstroHelper/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DominicMaas%2FAstroHelper/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/DominicMaas","download_url":"https://codeload.github.com/DominicMaas/AstroHelper/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DominicMaas%2FAstroHelper/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33064662,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-13T13:14:54.681Z","status":"online","status_checked_at":"2026-05-15T02:00:06.351Z","response_time":103,"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":["astrophotography","camera","gphoto2","raspberry-pi"],"created_at":"2024-11-10T01:32:32.091Z","updated_at":"2026-05-15T11:11:07.060Z","avatar_url":"https://github.com/DominicMaas.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Astro Helper\n\nAstro helper is a Raspberry Pi peripheral and Flutter Mobile app that work together to expose functions from a DLSR to a mobile device over BLE.\n\nIt's aim is to help in astrophotograpy configuration and capture without needing to touch the camera (or be connected to any networks)\n\n![image](https://github.com/user-attachments/assets/f3b09351-1ff8-4bfd-8cc9-a1fd81f6ca70)\n\n![image](https://github.com/user-attachments/assets/be29e7be-18ba-410b-b544-a46a2c974725)\n\n```\n[2025-02-02T23:51:36Z DEBUG astro] WriteRequest: PeripheralRequest { client: \"BC:F1:71:AC:61:E1\", service: 6c7028e2-dc4a-11ef-9134-75e88a34574d, characteristic: 87bdecc4-dc4a-11ef-ab7f-b7e88a34574d } Offset: 0 Value: [105, 115, 111]\n[2025-02-02T23:51:36Z INFO  astro::camera_controller] get_config(iso)\n[2025-02-02T23:51:37Z DEBUG astro] Config Data is Some(CameraConfig { id: \"iso\", value: \"3200\", choices: [\"100\", \"200\", \"400\", \"800\", \"1600\", \"3200\", \"6400\", \"12800\", \"25600\"], readonly: false })\n[2025-02-02T23:51:37Z DEBUG astro::data] Uncompressed Data Size: 142\n[2025-02-02T23:51:37Z DEBUG astro::data] Compressed Data Size: 89\n[2025-02-02T23:51:42Z DEBUG astro] WriteRequest: PeripheralRequest { client: \"BC:F1:71:AC:61:E1\", service: 6c7028e2-dc4a-11ef-9134-75e88a34574d, characteristic: 87bdecc4-dc4a-11ef-ab7f-b7e88a34574d } Offset: 0 Value: [102, 45, 110, 117, 109, 98, 101, 114]\n[2025-02-02T23:51:42Z INFO  astro::camera_controller] get_config(f-number)\n[2025-02-02T23:51:42Z DEBUG astro] Config Data is Some(CameraConfig { id: \"f-number\", value: \"f/6.3\", choices: [\"f/4.8\", \"f/5\", \"f/5.6\", \"f/6.3\", \"f/7.1\", \"f/8\", \"f/9\", \"f/10\", \"f/11\", \"f/13\", \"f/14\", \"f/16\", \"f/18\", \"f/20\", \"f/22\", \"f/25\"], readonly: true })\n[2025-02-02T23:51:42Z DEBUG astro::data] Uncompressed Data Size: 235\n[2025-02-02T23:51:42Z DEBUG astro::data] Compressed Data Size: 129\n[2025-02-02T23:51:51Z DEBUG astro] WriteRequest: PeripheralRequest { client: \"BC:F1:71:AC:61:E1\", service: 6c7028e2-dc4a-11ef-9134-75e88a34574d, characteristic: 87bdecc4-dc4a-11ef-ab7f-b7e88a34574d } Offset: 0 Value: [115, 104, 117, 116, 116, 101, 114, 115, 112, 101, 101, 100]\n[2025-02-02T23:51:51Z INFO  astro::camera_controller] get_config(shutterspeed)\n[2025-02-02T23:51:51Z DEBUG astro] Config Data is Some(CameraConfig { id: \"shutterspeed\", value: \"0.0050s\", choices: [\"0.0002s\", \"0.0003s\", \"0.0004s\", \"0.0005s\", \"0.0006s\", \"0.0008s\", \"0.0010s\", \"0.0012s\", \"0.0015s\", \"0.0020s\", \"0.0025s\", \"0.0031s\", \"0.0040s\", \"0.0050s\", \"0.0062s\", \"0.0080s\", \"0.0100s\", \"0.0125s\", \"0.0166s\", \"0.0200s\", \"0.0250s\", \"0.0333s\", \"0.0400s\", \"0.0500s\", \"0.0666s\", \"0.0769s\", \"0.1000s\", \"0.1250s\", \"0.1666s\", \"0.2000s\", \"0.2500s\", \"0.3333s\", \"0.4000s\", \"0.5000s\", \"0.6250s\", \"0.7692s\", \"1.0000s\", \"1.3000s\", \"1.6000s\", \"2.0000s\", \"2.5000s\", \"3.0000s\", \"4.0000s\", \"5.0000s\", \"6.0000s\", \"8.0000s\", \"10.0000s\", \"13.0000s\", \"15.0000s\", \"20.0000s\", \"25.0000s\", \"30.0000s\"], readonly: false })\n[2025-02-02T23:51:51Z DEBUG astro::data] Uncompressed Data Size: 834\n[2025-02-02T23:51:51Z DEBUG astro::data] Compressed Data Size: 292\n[2025-02-02T23:52:10Z DEBUG astro] WriteRequest: PeripheralRequest { client: \"BC:F1:71:AC:61:E1\", service: 6c7028e2-dc4a-11ef-9134-75e88a34574d, characteristic: 994e9452-dc4a-11ef-b90e-f0e88a34574d } Offset: 0 Value: [115, 104, 117, 116, 116, 101, 114, 115, 112, 101, 101, 100, 61, 48, 46, 48, 51, 51, 51, 115]\n[2025-02-02T23:52:10Z INFO  astro::camera_controller] set_config(shutterspeed, 0.0333s)\n[2025-02-02T23:52:15Z DEBUG astro] WriteRequest: PeripheralRequest { client: \"BC:F1:71:AC:61:E1\", service: 6c7028e2-dc4a-11ef-9134-75e88a34574d, characteristic: 114fc821-6a6e-4e81-bd05-1dd5ab7a679b } Offset: 0 Value: [118]\n[2025-02-02T23:52:15Z INFO  astro::camera_controller] capture()\n[2025-02-02T23:52:15Z INFO  astro::camera_controller] set_config(capturetarget, Memory card)\n[2025-02-02T23:52:15Z INFO  astro::camera_controller] set_config(viewfinder, 0)\n[2025-02-02T23:52:15Z INFO  astro::camera_controller] set_config(imagequality, NEF (Raw))\n[2025-02-02T23:52:16Z INFO  astro::camera_controller] Capture Success: capture_preview.jpg\n```\n\n## Building\n\n### Application (via Windows)\n\n- `cross build`\n- `scp .\\target\\aarch64-unknown-linux-gnu\\debug\\astro_server astro@192.168.1.88:/home/astro`\n\n### Library\n\n- `cargo build --release`\n\n## BLE Service\n\nThe Astro Helper peripheral exposes a few services.\n\n### Battery Service\n**UUID:** 0x0000180F_0000_1000_8000_00805f9b34fb\n\n### Configuration Service\n\n**UUID:** 0x6C7028E2_DC4A_11EF_9134_75E88A34574D\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdominicmaas%2Fastrohelper","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdominicmaas%2Fastrohelper","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdominicmaas%2Fastrohelper/lists"}