{"id":13592668,"url":"https://github.com/ceoloide/ergogen-footprints","last_synced_at":"2025-04-08T23:33:55.306Z","repository":{"id":219827085,"uuid":"711338338","full_name":"ceoloide/ergogen-footprints","owner":"ceoloide","description":"Ergogen v4 footprints","archived":false,"fork":false,"pushed_at":"2024-10-21T14:04:36.000Z","size":239,"stargazers_count":39,"open_issues_count":9,"forks_count":10,"subscribers_count":3,"default_branch":"main","last_synced_at":"2024-10-21T23:09:20.742Z","etag":null,"topics":["ergogen","ergogen-footprints","footprints","kicad-footprints","mechanical-keyboards","split-keyboards"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ceoloide.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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":"2023-10-28T23:58:45.000Z","updated_at":"2024-10-21T16:47:41.000Z","dependencies_parsed_at":"2024-01-29T23:45:20.269Z","dependency_job_id":"5ac2d55a-9ab7-41b0-b8ad-9d4fac29c5d1","html_url":"https://github.com/ceoloide/ergogen-footprints","commit_stats":null,"previous_names":["ceoloide/ergogen-footprints"],"tags_count":7,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ceoloide%2Fergogen-footprints","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ceoloide%2Fergogen-footprints/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ceoloide%2Fergogen-footprints/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ceoloide%2Fergogen-footprints/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ceoloide","download_url":"https://codeload.github.com/ceoloide/ergogen-footprints/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":223346928,"owners_count":17130531,"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":["ergogen","ergogen-footprints","footprints","kicad-footprints","mechanical-keyboards","split-keyboards"],"created_at":"2024-08-01T16:01:11.892Z","updated_at":"2024-11-06T13:32:05.418Z","avatar_url":"https://github.com/ceoloide.png","language":"JavaScript","funding_links":[],"categories":["JavaScript"],"sub_categories":[],"readme":"# @ceoloide's ergogen PCB footprints\n\n\u003e [!WARNING]\n\u003e These footprints have only been partially tested and are still under active development. Use them at your own risk.\n\n1. [How to use these footprints in Ergogen](#how-to-use-these-footprints-in-ergogen)\n1. [Installation](#installation)\n    1. [How to add the footprints as a local git submodule](#how-to-add-the-footprints-as-a-local-git-submodule)\n    1. [How to add the footprints as a GitHub Codespaces git submodule](#how-to-add-the-footprints-as-a-github-codespaces-git-submodule)\n    1. [How to use the footprints in your ergogen config](#how-to-use-the-footprints-in-your-ergogen-config)\n    1. [How to clone your ergogen repo](#how-to-clone-your-ergogen-repo)\n    1. [How to update footprints dependencies](#how-to-update-footprints-dependencies)\n    1. [How to remove footprints dependencies](#how-to-remove-footprints-dependencies)\n1. [How to design or modify ergogen footprints](#how-to-design-or-modify-ergogen-footprints)\n1. [Licenses and recognition](#licenses-and-recognition)\n\n## How to use these footprints in Ergogen\n\n\u003e [!WARNING]\n\u003e These footprints have been upgraded to KiCad 8 and are only compatible with Ergogen v4.1.0 and above. Make sure to set the `template: kicad8` option in each PCB definition:\n\n```yaml\nmeta:\n  engine: 4.1.0 # Min Ergogen version for KiCad 8 footprints\n[...]\npcbs:\n  main_pcb:\n    template: kicad8 # Required, since footprints are KiCad 8 only\n    outlines:\n      [...]\n    footprints:\n      [...]\n```\n\n\u003e [!NOTE]\n\u003e You can directly use these custom footprints in the experimental GUI at [ergogen.ceoloide.com](https://ergogen.ceoloide.com). Just refer to them as `ceoloide/[footprint_filename]`, for example: `ceoloide/switch_mx`.\n\nUsing custom footprints with a local Ergogen setup is relatively straightforward. You can follow the steps outlined in [this amazing guide](https://flatfootfox.com/ergogen-part4-footprints-cases/) if you want an easy tutorial.\n\nIf you are already comfortable running Ergogen locally, you just need to:\n\n1. rename your Ergogen YAML file to `config.yaml`,\n1. create a `footprints` folder alongside it\n1. clone this repo into the `footprints` folder using a folder name of your choice (see instructions below)\n1. now run Ergogen by passing a folder instead of a YAML file, for example `ergogen .`\n\n## Installation\n\n### How to add the footprints as a local git submodule\n\n\u003e [!WARNING]\n\u003e If you are using GitHub Codespaces, skip the following instructions and go to the next section.\n\nIf you have git setup on your local environment with SSH credentials, you can add the library as a\ngit submodule. To use custom footprint, ergogen requires them to be located under a folder named\n`footprints` placed alongside a `config.yaml` file containing the board definition.\n\nAssuming the above files are located at `./ergogen` from the git folder root, then you can use this\ncommand to add the footprints into a `ceoloide` folder in the right location:\n\n```bash\ngit submodule add git@github.com:ceoloide/ergogen-footprints.git ergogen/footprints/ceoloide\n```\n\nNote that you can customize `ceoloide` to be whatever name you choose. Just make sure to refer to the custom\nname in your YAML file.\n\n### How to add the footprints as a GitHub Codespaces git submodule\n\nDue to the limitations on how GitHub Codespaces handle submodules, use this command instead of the one above:\n\n```bash\ngit submodule add https://github.com/ceoloide/ergogen-footprints.git ergogen/footprints/ceoloide\n```\n\n### How to use the footprints in your ergogen config\n\nAssuming you used `ergogen/footprints/ceoloide` as the destination folder for the submodule, you will be able\nto refer to any footprint contained in that folder as `ceoloide/[footprint_filename]`, which would look something like this:\n\n```yaml\nmeta:\n  engine: 4.1.0 # Min Ergogen version for KiCad 8 footprints\n[...]\npcbs:\n  your_keyboard:\n    template: kicad8 # Required, since footprints are KiCad 8 only\n    outlines:\n      [...]\n    footprints:\n      nice_nano:\n        what: ceoloide/switch_mx\n        [...]\n```\n\n### How to clone your ergogen repo\n\nUsers who clone your ergogen repo, must also include the submodule. So you should instruct them to clone with `--recursive` mode:\n\n```bash\ngit clone --recursive git@github.com:your-user/your-keyboard.git\n```\n\nAlternative they can init and update the submodules in a repo that was already cloned without the `--recursive` argument:\n\n```bash\ngit submodule update --init --recursive --remote\n```\n\n### How to update footprints dependencies\n\nWhen you add a submodule, it won't automatically be updated, meaning that you will maintain files as long as you don't take specific actions. This is great to avoid having to deal with unforseen changes in the source.\n\nShould you however want to update your footprint dependencies, you can run the following command:\n\n```bash\ngit submodule update --recursive --remote\n```\n\nThis will fetch and checkout the latest commits in the source repo and pull the files so they are available.\n\nBe aware that you will need to commit the submodule update change, or it will revert with a subsequent pull. To do so you can run these commands:\n\n```bash\n# First add the updated submodule to the staged files\ngit add ergogen/footprints/ceoloide\n# Then commit the staged files to persist the update\ngit commit -m \"Update footprint submodule\"\n```\n\n### How to remove footprints dependencies\n\nIf you do not longer need the footprint submodule and want to remove it from your repository, you can simply run this command:\n\n```bash\ngit rm ergogen/footprints/ceoloide\n```\n\nThis will update the `.gitmodules` file to remove the submodule reference and remove the submodule directory. Make sure to commit and push the\nchange for it to be persisted and propagated, or it will revert with a subsequent pull:\n\n```bash\ngit commit -m \"Remove footprint submodule\"\n```\n\n## How to design or modify ergogen footprints\n\n[@infused-kim](https://github.com/infused-kim) wrote a [guide on how to convert KiCad footprints to ergogen](https://www.notion.so/nilnil/Convert-Kicad-Footprint-to-Ergogen-8340ce87ad554c69af4e3f92bc9a0898?pvs=4), which\nhas been extensively used to create original ergogen footprints in this repository.\n\n## Licenses and recognition\n\nAll original footprints and those copied from [@MrZealot](https://github.com/mrzealot), [@TildeWill](https://github.com/tildewill), and [@virginia2244](https://github.com/virginia2244) are licensed under [MIT License][mit]. I also extensively used and modified footprints created by [@infused-kim](https://github.com/infused-kim), which are licensed under [Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License][cc-by-nc-sa].\n\n[![CC BY-NC-SA 4.0][cc-by-nc-sa-image]][cc-by-nc-sa]\n\nFurthermore, all of the work I've done wouldn't have been possible without the inspiration or direct reference to the work done by:\n\n- [@foostan](https://github.com/foostan) for the original [Corne keyboard](https://github.com/foostan/crkbd)\n- [@flatfootfox](https://github.com/flatfootfox) for the [Ergogen v4 introductory articles](https://flatfootfox.com/ergogen-introduction/)\n- [@infused-kim](https://github.com/infused-kim) for the [amazing work done with the footprints](https://github.com/infused-kim/kb_ergogen_fp) I ~stole from~ got inspired by\n- [@MrZealot](https://github.com/mrzealot) / [@ergogen](https://github.com/ergogen) for the [amazing tool](https://github.com/ergogen/ergogen) and [amazing community](https://discord.gg/Tj2TUaUW)\n- [@virginia2244](https://github.com/virginia2244) for the [incredible work on MCU footprints](https://github.com/Virginia2244/ergogen_footprints)\n- [@benvallack](https://github.com/benvallack) for the [great video content on YouTube](https://www.youtube.com/watch?v=UKfeJrRIcxw) and getting me started on the Ergogen journey\n\n[mit]: https://opensource.org/license/mit/\n[cc-by-nc-sa]: http://creativecommons.org/licenses/by-nc-sa/4.0/\n[cc-by-nc-sa-image]: https://licensebuttons.net/l/by-nc-sa/4.0/88x31.png\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fceoloide%2Fergogen-footprints","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fceoloide%2Fergogen-footprints","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fceoloide%2Fergogen-footprints/lists"}