Coder Social home page Coder Social logo

ergogen-footprints's Introduction

@ceoloide's ergogen PCB footprints

Warning

These footprints have only been partially tested and are still under active development. Use them at your own risk.

  1. How to use these footprints in Ergogen
  2. Installation
    1. How to add the footprints as a local git submodule
    2. How to add the footprints as a GitHub Codespaces git submodule
    3. How to use the footprints in your ergogen config
    4. How to clone your ergogen repo
    5. How to update footprints dependencies
    6. How to remove footprints dependencies
  3. How to design or modify ergogen footprints
  4. Licenses and recognition

How to use these footprints in Ergogen

Warning

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:

meta:
  engine: 4.1.0 # Min Ergogen version for KiCad 8 footprints
[...]
pcbs:
  main_pcb:
    template: kicad8 # Required, since footprints are KiCad 8 only
    outlines:
      [...]
    footprints:
      [...]

Note

You can directly use these custom footprints in the experimental GUI at ergogen.ceoloide.com. Just refer to them as ceoloide/[footprint_filename], for example: ceoloide/switch_mx.

Using custom footprints with a local Ergogen setup is relatively straightforward. You can follow the steps outlined in this amazing guide if you want an easy tutorial.

If you are already comfortable running Ergogen locally, you just need to:

  1. rename your Ergogen YAML file to config.yaml,
  2. create a footprints folder alongside it
  3. clone this repo into the footprints folder using a folder name of your choice (see instructions below)
  4. now run Ergogen by passing a folder instead of a YAML file, for example ergogen .

Installation

How to add the footprints as a local git submodule

Warning

If you are using GitHub Codespaces, skip the following instructions and go to the next section.

If you have git setup on your local environment with SSH credentials, you can add the library as a git submodule. To use custom footprint, ergogen requires them to be located under a folder named footprints placed alongside a config.yaml file containing the board definition.

Assuming the above files are located at ./ergogen from the git folder root, then you can use this command to add the footprints into a ceoloide folder in the right location:

git submodule add [email protected]:ceoloide/ergogen-footprints.git ergogen/footprints/ceoloide

Note that you can customize ceoloide to be whatever name you choose. Just make sure to refer to the custom name in your YAML file.

How to add the footprints as a GitHub Codespaces git submodule

Due to the limitations on how GitHub Codespaces handle submodules, use this command instead of the one above:

git submodule add https://github.com/ceoloide/ergogen-footprints.git ergogen/footprints/ceoloide

How to use the footprints in your ergogen config

Assuming you used ergogen/footprints/ceoloide as the destination folder for the submodule, you will be able to refer to any footprint contained in that folder as ceoloide/[footprint_filename], which would look something like this:

meta:
  engine: 4.1.0 # Min Ergogen version for KiCad 8 footprints
[...]
pcbs:
  your_keyboard:
    template: kicad8 # Required, since footprints are KiCad 8 only
    outlines:
      [...]
    footprints:
      nice_nano:
        what: ceoloide/switch_mx
        [...]

How to clone your ergogen repo

Users who clone your ergogen repo, must also include the submodule. So you should instruct them to clone with --recursive mode:

git clone --recursive [email protected]:your-user/your-keyboard.git

Alternative they can init and update the submodules in a repo that was already cloned without the --recursive argument:

git submodule update --init --recursive --remote

How to update footprints dependencies

When 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.

Should you however want to update your footprint dependencies, you can run the following command:

git submodule update --recursive --remote

This will fetch and checkout the latest commits in the source repo and pull the files so they are available.

Be 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:

# First add the updated submodule to the staged files
git add ergogen/footprints/ceoloide
# Then commit the staged files to persist the update
git commit -m "Update footprint submodule"

How to remove footprints dependencies

If you do not longer need the footprint submodule and want to remove it from your repository, you can simply run this command:

git rm ergogen/footprints/ceoloide

This will update the .gitmodules file to remove the submodule reference and remove the submodule directory. Make sure to commit and push the change for it to be persisted and propagated, or it will revert with a subsequent pull:

git commit -m "Remove footprint submodule"

How to design or modify ergogen footprints

@infused-kim wrote a guide on how to convert KiCad footprints to ergogen, which has been extensively used to create original ergogen footprints in this repository.

Licenses and recognition

All original footprints and those copied from @MrZealot, @TildeWill, and @virginia2244 are licensed under MIT License. I also extensively used and modified footprints created by @infused-kim, which are licensed under Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.

CC BY-NC-SA 4.0

Furthermore, all of the work I've done wouldn't have been possible without the inspiration or direct reference to the work done by:

ergogen-footprints's People

Contributors

ceoloide avatar dieseltravis avatar grazfather avatar hyperpuncher avatar mlilley avatar nxtk avatar virginia2244 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

ergogen-footprints's Issues

Add option to resist mirroring of coordinates

Some footprints (e.g. switches) should resist mirroring by default to avoid them being flipped in a phisically impossible way.

Others, like diodes, should be evaluated and perhaps have an option to enable / disable mirror resist.

choc footprint produces kicad pcb file error

Choc footprint seems to have broken sometime in the last few weeks.
This:

      switches:
        what: switch_choc_v1_v2
        where: true
        params:
          choc_v2_support: false
          from: "{{column_net}}"
          to: "{{colrow}}"
        adjust:
          rotate: 180

produces a pcb file that kicad can't load:

Expecting 'end' in '/Users/aaaa/bbbb/cccc/dddd.kicad_pcb', line 272, offset 32.

the footprint at that location looks like (I've marked line 272 with a comment):

  (footprint "ceoloide:switch_choc_v1_v2"
    (layer "B.Cu")
    (at 70.7106781 122.4744871 165)
    (property "Reference" "S1"
      (at 0 8.8 165)
      (layer "B.SilkS")
      hide
      (effects (font (size 1 1) (thickness 0.15)))
    )
    (attr exclude_from_pos_files exclude_from_bom allow_soldermask_bridges)

    
    
    (pad "" np_thru_hole circle (at 0 0 165) (size 3.4 3.4) (drill 3.4) (layers "*.Cu" "*.Mask"))
    
    
    
    (pad "" np_thru_hole circle (at 5.5 0 165) (size 1.9 1.9) (drill 1.9) (layers "*.Cu" "*.Mask"))
    (pad "" np_thru_hole circle (at -5.5 0 165) (size 1.9 1.9) (drill 1.9) (layers "*.Cu" "*.Mask"))
    
    
    
    
    (pad "" np_thru_hole circle (at 0 -5.95 165) (size 3 3) (drill 3) (layers "*.Cu" "*.Mask"))
    
    
    
    
    (fp_line (start -1.5 -8.2) (end -2 -7.7) (layer "B.SilkS") (stroke (width 0.15) (type solid)))
    (fp_line (start 1.5 -8.2) (end -1.5 -8.2) (layer "B.SilkS") (stroke (width 0.15) (type solid)))
    (fp_line (start 2 -7.7) (end 1.5 -8.2) (layer "B.SilkS") (stroke (width 0.15) (type solid)))
    (fp_line (start 2 -7.7) (end 2 -6.78) (layer "B.SilkS") (stroke (width 0.15) (type solid)))
    (fp_line (start 2.52 -6.2) (end 7 -6.2) (layer "B.SilkS") (stroke (width 0.15) (type solid)))
    (fp_line (start 7 -6.2) (end 7 -5.6) (layer "B.SilkS") (stroke (width 0.15) (type solid)))
    (fp_arc (start 2.52 -6.2) (mid 2.139878 -6.382304) (end 2 -6.78) (layer "B.SilkS") (stroke (width 0.15) (type solid)))  # <-- Line 272
  
    
    (fp_line (start -1.5 -3.7) (end -2 -4.2) (layer "B.SilkS") (stroke (width 0.15) (type solid)))
    (fp_line (start 0.8 -3.7) (end -1.5 -3.7) (layer "B.SilkS") (stroke (width 0.15) (type solid)))
    (fp_line (start 2.5 -1.5) (end 2.5 -2.2) (layer "B.SilkS") (stroke (width 0.15) (type solid)))
    (fp_line (start 7 -1.5) (end 2.5 -1.5) (layer "B.SilkS") (stroke (width 0.15) (type solid)))
    (fp_line (start 7 -2) (end 7 -1.5) (layer "B.SilkS") (stroke (width 0.15) (type solid)))
    (fp_arc (start 0.8 -3.7) (mid 1.956518 -3.312082) (end 2.5 -2.22) (layer "B.SilkS") (stroke (width 0.15) (type solid)))

    
    
    
    (pad "1" smd rect (at -3.275 -5.95 165) (size 2.6 2.6) (layers "B.Cu" "B.Paste" "B.Mask") (net 0 ""))
    

    
    (pad "2" smd rect (at 8.275 -3.75 165) (size 2.6 2.6) (layers "B.Cu" "B.Paste" "B.Mask") (net 1 "outer_bottom"))

    
    (pad "" np_thru_hole circle (at 5 -3.75 360) (size 3 3) (drill 3) (layers "*.Cu" "*.Mask"))
    
    
  )

If I minimally change to the ergogen included choc footprint with the following, the pcb file can be read fine.

      switches:
        what: choc
        where: true
        params:
          from: "{{column_net}}"
          to: "{{colrow}}"
        adjust:
          rotate: 180

Ergogen 4.0.5, Kicad 8.0.1

Update reference on all footprints

Footprint reference should be placed on *.Fab layer when silkscreen is not included, else it should be on the p.side Silkscreen layer.

If board is reversible, a secondary reference as user text should be added on the reverse side.

All reference labels should be positioned so that they are visible and won't overlap other footprint elements.

Missing silkscreen text on mcu nice nano

Missing silk screen at the bottom left of the nice nano.
image

Is this intentional to help users key/align the mcu? Or are those pins not to be used or just mistakenly left off?

Feature: Add extra pins to footprint for nice!nano

I'd like to use the three middle pins and the battery terminals on my board.
Specifically pins 101, 102, 107 and B+ and B- shown here: https://nicekeyboards.com/docs/nice-nano/pinout-schematic
I'm using the nice!nano as a reversible footprint for my split design.

Note: the battery terminals are smaller holes, not full pins, for direct soldering of wires. I'm not sure what that means for connecting them to a PCB so a battery connector can be used elsewhere on the PCB; maybe I should just solder my battery directly to it and forget about it?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.