{"id":22448580,"url":"https://github.com/themainframe/leptonic","last_synced_at":"2025-08-20T04:31:35.790Z","repository":{"id":65079101,"uuid":"105078751","full_name":"themainframe/leptonic","owner":"themainframe","description":"A web GUI and several utilities for working with FLIR® Lepton® 3 LWIR camera modules.","archived":false,"fork":false,"pushed_at":"2024-06-14T08:59:13.000Z","size":78,"stargazers_count":50,"open_issues_count":2,"forks_count":11,"subscribers_count":7,"default_branch":"master","last_synced_at":"2024-12-06T04:32:21.245Z","etag":null,"topics":["flir","flir-lepton","linux","spi","zeromq"],"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/themainframe.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":"2017-09-27T23:13:00.000Z","updated_at":"2024-06-14T08:59:17.000Z","dependencies_parsed_at":"2024-12-06T04:29:41.477Z","dependency_job_id":"9d664496-0665-4d13-9acb-90ad42d4f2d8","html_url":"https://github.com/themainframe/leptonic","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/themainframe%2Fleptonic","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/themainframe%2Fleptonic/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/themainframe%2Fleptonic/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/themainframe%2Fleptonic/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/themainframe","download_url":"https://codeload.github.com/themainframe/leptonic/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":230394228,"owners_count":18218707,"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":["flir","flir-lepton","linux","spi","zeromq"],"created_at":"2024-12-06T04:29:32.166Z","updated_at":"2024-12-19T07:05:47.104Z","avatar_url":"https://github.com/themainframe.png","language":"C","readme":"# Leptonic\n\n**A web GUI and several utilities for working with FLIR® Lepton® 3 LWIR camera modules.**\n\n\u003cimg src=\"https://i.imgur.com/uULTPun.png\"\u003e\n\n---\n\nLeptonic can:\n\n* Stream a live view from a Lepton® 3 camera to any modern web browser.\n* Be integrated into your own C projects to work with Lepton® 3 cameras.\n\nCurrently supported features:\n\n* VoSPI interface (RAW14 format only, code could be adapted to support RGB888)\n* Telemetry (header-location only)\n* I2C CCI (partial)\n\nCurrently supported hardware:\n\n* FLIR® Lepton® 3 (160x120 resolution) [[link](http://www.flir.com/uploadedFiles/OEM/Products/LWIR-Cameras/Lepton/Lepton-3-Engineering-Datasheet.pdf)]\n\nThe code is written in such a way that adapting it to work with the original 80x60 camera modules should be fairly straightforward. Unfortunately I do not currently own one to develop with, so haven't embarked upon this endeavor just yet.\n\nPull requests are of course welcomed!\n\n## Dependencies\n\nRecommended platform is Raspberry Pi with Raspbian. That's currently the only hardware I've tested this out on, but others should work fine too.\n\n_Generally:_\n\n* Linux, SPI support (via `spidev`)\n* [ØMQ/ZeroMQ](http://zeromq.org/) (`libzmq3-dev`) for the camera interface/frontend IPC [[guide](http://zeromq.org/intro:get-the-software)]\n* I2C support enabled for CCI interface use.\n* NodeJS for the frontend stuff (`yarn`/`npm` to install dependencies)\n\n_Specifically:_\n\n* `spidev`'s `bufsiz` module parameter must be set to a value large enough to receive an entire Lepton® 3 VoSPI segment (10004 bytes with telemetry enabled, 9840 without). By default this isn't the case, so please do check before running the code.\n\n## Building\n\n* Check out the codebase.\n* Make sure you've satisfied the dependencies, namely libzmq3-dev\n* Run `make` to build the Leptonic IPC server. Run `make examples` to build the examples in the `examples` directory.\n* Install the NodeJS dependencies with `yarn install` or `npm install` in the `frontend` subdirectory.\n\n## Running\n\n* Start the IPC server with `./bin/leptonic /dev/spidev0.0` (switching out the name of your `spidev` device file as appropriate). You may optionally also supply a socket address to bind to as a second argument (I.e. `tcp://127.0.0.1:5555`).\n* Start the frontend app with `yarn start` or `npm start` from the `frontend` subdirectory. You may optionally also supply a socket address to connect to as a second argument (I.e. `tcp://127.0.0.1:5555`).\n* The Web UI should now be running on port 3000.\n\n## Performance\n\nThe camera communication process is extremely time-sensitive. There are strict parameters pertaining to how quickly frames and segments must be clocked out of the camera's SPI interface. Any slowdowns/scheduling caused by a master based on a multitasking OS such as Linux can cause the code to lose VoSPI synchronisation. While my code does reacquire synchronisation immediately, this does cause a visible amount of frame-drop in the output.\n\nEmpirically, I've found that the Raspberry Pi 3 Model B struggles a little running _both_ the camera interface and the frontend together. You might find it best to run the frontend server on a separate machine and have the ØMQ traffic go over the network.\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fthemainframe%2Fleptonic","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fthemainframe%2Fleptonic","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fthemainframe%2Fleptonic/lists"}