{"id":19776,"name":"Charge Controller Firmware","description":"Firmware for LibreSolar MPPT/PWM charge controllers.","url":"https://github.com/LibreSolar/charge-controller-firmware","last_synced_at":"2026-05-15T09:06:15.058Z","repository":{"id":10919991,"uuid":"64753326","full_name":"LibreSolar/charge-controller-firmware","owner":"LibreSolar","description":"Firmware for Libre Solar MPPT/PWM charge controllers","archived":false,"fork":false,"pushed_at":"2023-08-16T11:35:00.000Z","size":4609,"stargazers_count":165,"open_issues_count":10,"forks_count":78,"subscribers_count":31,"default_branch":"main","last_synced_at":"2026-01-13T00:37:42.336Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://libre.solar/charge-controller-firmware/","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/LibreSolar.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null}},"created_at":"2016-08-02T12:03:35.000Z","updated_at":"2025-12-18T10:01:40.000Z","dependencies_parsed_at":"2023-02-12T21:01:43.960Z","dependency_job_id":null,"html_url":"https://github.com/LibreSolar/charge-controller-firmware","commit_stats":{"total_commits":499,"total_committers":12,"mean_commits":"41.583333333333336","dds":0.1302605210420842,"last_synced_commit":"e175ad0fdb1efc7ca0c7e75a947c1cfec49023cd"},"previous_names":[],"tags_count":3,"template":false,"template_full_name":null,"purl":"pkg:github/LibreSolar/charge-controller-firmware","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LibreSolar%2Fcharge-controller-firmware","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LibreSolar%2Fcharge-controller-firmware/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LibreSolar%2Fcharge-controller-firmware/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LibreSolar%2Fcharge-controller-firmware/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/LibreSolar","download_url":"https://codeload.github.com/LibreSolar/charge-controller-firmware/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LibreSolar%2Fcharge-controller-firmware/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29156402,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-06T07:18:23.844Z","status":"ssl_error","status_checked_at":"2026-02-06T07:13:32.659Z","response_time":59,"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"}},"owner":{"login":"LibreSolar","name":"Libre Solar Project","uuid":"17674115","kind":"organization","description":"","email":null,"website":"https://libre.solar","location":"Hamburg, Germany","twitter":null,"company":null,"icon_url":"https://avatars.githubusercontent.com/u/17674115?v=4","repositories_count":46,"last_synced_at":"2024-04-14T08:13:49.584Z","metadata":{"has_sponsors_listing":false},"html_url":"https://github.com/LibreSolar","funding_links":[],"total_stars":1105,"followers":112,"following":0,"created_at":"2022-11-06T05:38:10.395Z","updated_at":"2024-04-14T08:14:02.001Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/LibreSolar","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/LibreSolar/repositories"},"packages":[],"commits":{"id":1253893,"full_name":"LibreSolar/charge-controller-firmware","default_branch":"main","total_commits":499,"total_committers":12,"total_bot_commits":0,"total_bot_committers":0,"mean_commits":41.583333333333336,"dds":0.1302605210420842,"past_year_total_commits":0,"past_year_total_committers":0,"past_year_total_bot_commits":0,"past_year_total_bot_committers":0,"past_year_mean_commits":0.0,"past_year_dds":0.0,"last_synced_at":"2025-12-15T04:39:55.876Z","last_synced_commit":"e175ad0fdb1efc7ca0c7e75a947c1cfec49023cd","created_at":"2023-03-27T10:47:44.937Z","updated_at":"2025-12-15T04:39:34.186Z","committers":[{"name":"Martin Jäger","email":"martin@libre.solar","login":"martinjaeger","count":434},{"name":"hogthrob","email":"hogthrob","login":"hogthrob","count":24},{"name":"Hogthrob","email":"hogthrob@github.com","login":null,"count":12},{"name":"Jordan Silverman","email":"jordanjsilverman@gmail.com","login":"JordanSilverman","count":9},{"name":"azeemshatp","email":"azeemsha.tp@scene.community","login":"azeemshatp","count":7},{"name":"Daniel Fanache","email":"daniel@connectedenergy.net","login":"daniel-connectedenergy","count":5},{"name":"mulles","email":"mulles","login":"mulles","count":2},{"name":"hoijui","email":"hoijui.quaero@gmail.com","login":"hoijui","count":2},{"name":"maclow92","email":"48244314+maclow92","login":"maclow92","count":1},{"name":"Wieland Schopohl","email":"w.schopohl@gmail.com","login":"wschopohl","count":1},{"name":"Rhushabh","email":"rhushabhraghavendrarr@gmail.com","login":"RhushabhRR","count":1},{"name":"Leonard Möller","email":"leonard.moeller@live.com","login":"Gretel5X","count":1}],"past_year_committers":[],"commits_url":"https://commits.ecosyste.ms/api/v1/hosts/GitHub/repositories/LibreSolar%2Fcharge-controller-firmware/commits","host":{"name":"GitHub","url":"https://github.com","kind":"github","last_synced_at":"2025-12-31T00:00:56.974Z","repositories_count":6146605,"commits_count":931092363,"contributors_count":36236558,"owners_count":1130999,"icon_url":"https://github.com/github.png","host_url":"https://commits.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://commits.ecosyste.ms/api/v1/hosts/GitHub/repositories"}},"issues_stats":{"full_name":"LibreSolar/charge-controller-firmware","html_url":"https://github.com/LibreSolar/charge-controller-firmware","last_synced_at":"2025-09-01T03:33:16.667Z","status":"error","issues_count":50,"pull_requests_count":81,"avg_time_to_close_issue":8879144.829268293,"avg_time_to_close_pull_request":441442.9375,"issues_closed_count":41,"pull_requests_closed_count":80,"pull_request_authors_count":15,"issue_authors_count":9,"avg_comments_per_issue":3.96,"avg_comments_per_pull_request":1.7037037037037037,"merged_pull_requests_count":63,"bot_issues_count":0,"bot_pull_requests_count":0,"past_year_issues_count":0,"past_year_pull_requests_count":0,"past_year_avg_time_to_close_issue":null,"past_year_avg_time_to_close_pull_request":null,"past_year_issues_closed_count":0,"past_year_pull_requests_closed_count":0,"past_year_pull_request_authors_count":0,"past_year_issue_authors_count":0,"past_year_avg_comments_per_issue":null,"past_year_avg_comments_per_pull_request":null,"past_year_bot_issues_count":0,"past_year_bot_pull_requests_count":0,"past_year_merged_pull_requests_count":0,"created_at":"2023-05-09T10:37:57.043Z","updated_at":"2025-09-01T03:33:16.667Z","repository_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/LibreSolar%2Fcharge-controller-firmware","issues_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/LibreSolar%2Fcharge-controller-firmware/issues","issue_labels_count":{"enhancement":14,"bug":5,"help wanted":1,"question":1},"pull_request_labels_count":{},"issue_author_associations_count":{"MEMBER":29,"COLLABORATOR":12,"NONE":7,"CONTRIBUTOR":2},"pull_request_author_associations_count":{"COLLABORATOR":39,"CONTRIBUTOR":18,"MEMBER":17,"NONE":6},"issue_authors":{"martinjaeger":29,"hogthrob":12,"DeeFuse":3,"tasiek30":1,"JordanSilverman":1,"luizvilla":1,"itofficeeu":1,"azeemshatp":1,"fhlb-tech":1},"pull_request_authors":{"hogthrob":36,"martinjaeger":17,"azeemshatp":5,"mulles":4,"Gretel5X":3,"maclow92":3,"JordanSilverman":3,"hoijui":2,"luizvilla":2,"RhushabhRR":1,"trillerpfeife":1,"hugueslarrive":1,"foldedtoad":1,"mikelovic":1},"host":{"name":"GitHub","url":"https://github.com","kind":"github","last_synced_at":"2025-12-31T00:00:36.777Z","repositories_count":12502245,"issues_count":35675631,"pull_requests_count":117146314,"authors_count":11079196,"icon_url":"https://github.com/github.png","host_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories","owners_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/owners","authors_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors"},"past_year_issue_labels_count":{},"past_year_pull_request_labels_count":{},"past_year_issue_author_associations_count":{},"past_year_pull_request_author_associations_count":{},"past_year_issue_authors":{},"past_year_pull_request_authors":{},"maintainers":[{"login":"hogthrob","count":48,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/hogthrob"},{"login":"martinjaeger","count":46,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/martinjaeger"},{"login":"Gretel5X","count":3,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/Gretel5X"}],"active_maintainers":[]},"events":{"total":{"WatchEvent":19,"ForkEvent":1},"last_year":{"WatchEvent":12,"ForkEvent":1}},"keywords":[],"dependencies":[{"ecosystem":"pypi","filepath":"docs/requirements.txt","sha":null,"kind":"manifest","created_at":"2022-08-07T06:00:51.326Z","updated_at":"2022-08-07T06:00:51.326Z","repository_link":"https://github.com/LibreSolar/charge-controller-firmware/blob/main/docs/requirements.txt","dependencies":[{"id":588153901,"package_name":"breathe","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":588153902,"package_name":"Sphinx","ecosystem":"pypi","requirements":"\u003c4","direct":true,"kind":"runtime","optional":false},{"id":588153903,"package_name":"sphinx-notfound-page","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":588153904,"package_name":"sphinx-rtd-theme","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":588153905,"package_name":"sphinx-tabs","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false}]},{"ecosystem":"actions","filepath":".github/workflows/docs.yml","sha":null,"kind":"manifest","created_at":"2023-01-11T17:59:25.708Z","updated_at":"2023-01-11T17:59:25.708Z","repository_link":"https://github.com/LibreSolar/charge-controller-firmware/blob/main/.github/workflows/docs.yml","dependencies":[{"id":6870052885,"package_name":"actions/checkout","ecosystem":"actions","requirements":"v2","direct":true,"kind":"composite","optional":false},{"id":6870052886,"package_name":"peaceiris/actions-gh-pages","ecosystem":"actions","requirements":"v3","direct":true,"kind":"composite","optional":false}]},{"ecosystem":"actions","filepath":".github/workflows/zephyr.yml","sha":null,"kind":"manifest","created_at":"2023-01-11T17:59:25.735Z","updated_at":"2023-01-11T17:59:25.735Z","repository_link":"https://github.com/LibreSolar/charge-controller-firmware/blob/main/.github/workflows/zephyr.yml","dependencies":[{"id":6870052888,"package_name":"actions/checkout","ecosystem":"actions","requirements":"v2","direct":true,"kind":"composite","optional":false},{"id":6870052889,"package_name":"actions/setup-python","ecosystem":"actions","requirements":"v1","direct":true,"kind":"composite","optional":false}]}],"score":7.649692623711514,"created_at":"2023-09-11T14:52:07.052Z","updated_at":"2026-05-15T09:06:15.062Z","avatar_url":"https://github.com/LibreSolar.png","language":"C++","category":"Renewable Energy","sub_category":"Photovoltaics and Solar Energy","monthly_downloads":0,"total_dependent_repos":0,"total_dependent_packages":0,"readme":"# Libre Solar Charge Controller Firmware\n\n![build badge](https://github.com/LibreSolar/charge-controller-firmware/actions/workflows/zephyr.yml/badge.svg)\n\nThis repository contains the firmware for the different Libre Solar Charge Controllers based on [Zephyr RTOS](https://www.zephyrproject.org/).\n\nCoding style is described [here](https://github.com/LibreSolar/coding-style).\n\n## Development and release model\n\nThe `main` branch is used for ongoing development of the firmware.\n\nReleases are created from `main` after significant updates have been introduced to the firmware. Each release has to pass tests with multiple boards.\n\nA release is tagged with a version number consisting of the release year and a release count for that year (starting at zero). For back-porting of bug-fixes, a branch named after the release followed by `-branch` is created, e.g. `v21.0-branch`.\n\n## Documentation\n\nThe firmware documentation including build instructions and API reference can be found under [libre.solar/charge-controller-firmware](https://libre.solar/charge-controller-firmware/).\n\nIn order to build the documentation locally you need to install Doxygen, Sphinx and Breathe and run `make html` in the `docs` folder.\n\n## License\n\nThis firmware is released under the [Apache-2.0 License](LICENSE).\n","funding_links":[],"readme_doi_urls":[],"works":{},"citation_counts":{},"total_citations":0,"keywords_from_contributors":[],"project_url":"https://ost.ecosyste.ms/api/v1/projects/19776","html_url":"https://ost.ecosyste.ms/projects/19776"}