{"id":16993809,"url":"https://github.com/njfdev/liblumix","last_synced_at":"2025-10-03T20:11:17.984Z","repository":{"id":241390388,"uuid":"806145855","full_name":"njfdev/liblumix","owner":"njfdev","description":"A reverse engineered C++ driver for Panasonic Lumix cameras.","archived":false,"fork":false,"pushed_at":"2024-06-08T15:28:29.000Z","size":25,"stargazers_count":11,"open_issues_count":1,"forks_count":1,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-03-28T23:43:41.968Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"C++","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/njfdev.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":"2024-05-26T14:00:17.000Z","updated_at":"2025-03-15T10:27:55.000Z","dependencies_parsed_at":"2024-06-08T16:43:21.189Z","dependency_job_id":null,"html_url":"https://github.com/njfdev/liblumix","commit_stats":null,"previous_names":["njfdev/liblumix"],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/njfdev%2Fliblumix","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/njfdev%2Fliblumix/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/njfdev%2Fliblumix/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/njfdev%2Fliblumix/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/njfdev","download_url":"https://codeload.github.com/njfdev/liblumix/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":249129955,"owners_count":21217475,"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":[],"created_at":"2024-10-14T03:44:04.573Z","updated_at":"2025-10-03T20:11:12.950Z","avatar_url":"https://github.com/njfdev.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Reverse Engineered C++ Lumix Driver\n\n\u003e NOTE: this driver is EXTREMELY early in development and expect frequent issues. However, my goal is for this to become a stable, open-sourced driver over time.\n\nThis project provides a C++ driver for Panasonic Lumix cameras using the WiFi API used internally by the Lumix Sync app. This is a hobby project and I am not a professional C++ developer, so best code practices may not be used. However, I encourage you to make a Pull Request if you feel inclined.\n\n## Features\n\n- Connect to Lumix Camera using WiFI over LAN connection\n- Take a photo at any specified exposure length\n- Download and parse the RAW and JPEG versions of a photo that was taken\n\n## Purpose for Building\n\nI have gotten interested into Astrophotography, which as you may expect, requires a camera. I could have bought a new camera, but I already have a good Lumix camera. However, there is no Linux driver out there to work with Astrophotography software. Panasonic offers an official SDK, however, it is Windows only, which will not work with my Raspberry Pi Controller.\n\nI am making the code open source so anyone can build it for any platform (x86 Linux, x86 Windows, Arm on Raspberry Pi, etc.).\n\nThis driver is designed to be used with [INDI](https://www.indilib.org/), which is a set of Astrophotography drivers.\n\n## Method of Building\n\nI own a Lumix S5IIX, so this driver is entirely built and tested with this camera in mind. Other cameras should work, but I cannot make any guarantees.\n\nI tried using the USB protocol to control the camera, but I was having issues downloading images from the camera, so I switched to the WiFi API.\n\nTo reverse engineer, I have a local WiFi hotspot setup on my computer. I have my phone and camera both connected to that hotspot. Then, I send commands to the camera with the Lumix Sync app and intercept the packets with Wireshark.\n\n## Installation\n\nThese are the requirements to install, but this is not an exhaustive list. It you have errors when building, create an \"Issue\" here on GitHub, as it might be a required library that is not installed.\n\n```bash\n# for debian based systems\nsudo apt update\nsudo apt install git libssl-dev libpoco-dev libpugixml-dev libjpeg-dev libfmt-dev\n```\n\n[LibRaw snapshot 202403](https://github.com/LibRaw/LibRaw/commit/12b0e5d60c57bb795382fda8494fc45f683550b8) is required for support of the Lumix S5II cameras. If you need support for these cameras, then you must build from source from this snapshot or later. If you have an older camera (released over 1-2 years ago), installing the latest stable release of LibRaw should be fine.\n\n```bash\n# ONLY if your camera was released over 1-2 years ago\nsudo apt install libraw\n```\n\nThen make a copy of this repository and go into the folder:\n\n```bash\ngit clone https://github.com/njfdev/liblumix\ncd liblumix\n```\n\nMake a build folder and go into it:\n\n```bash\nmkdir build\ncd build\n```\n\nThen, build and install the library:\n\n\u003e NOTE: The build can sometimes fail when building the zlib dependency. If this happens, it is usually okay to run it a few more times until it successfully builds.\n\n```bash\ncmake ../ -DCMAKE_BUILD_TYPE=Release\nmake\nsudo make install\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnjfdev%2Fliblumix","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnjfdev%2Fliblumix","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnjfdev%2Fliblumix/lists"}