WIP / INCOMPLETE: Modification Discussed in Previous Meeting #10

Open
McRaeAlex wants to merge 5 commits from am/develop into main
7 changed files with 5995 additions and 2319 deletions
Showing only changes of commit d9beefc546 - Show all commits

46
.github/workflows/create-outputs.yml vendored Normal file
View File

@ -0,0 +1,46 @@
name: create-ouputs
run-name: ${{ github.actor }} is learning GitHub Actions
on: [push]
jobs:
generate-outputs:
runs-on: ubuntu-latest
container:
image: kicad/kicad:8.0.1
steps:
- uses: actions/checkout@v4
- name: Verify KiCad installation
run: kicad-cli --version
- run: mkdir build
- run: mkdir build/gerbers
- run: mkdir build/drill
- name: Sch ERC
run: kicad-cli sch erc *.kicad_sch -o build/erc.rpt --exit-code-violations
- name: Pcb DRC
run: kicad-cli pcb drc *.kicad_pcb -o build/drc.rpt --exit-code-violations
- name: Export Gerbers
run: kicad-cli pcb export gerbers *.kicad_pcb -o build/gerbers/
- name: Export Drill Files
run: kicad-cli pcb export drill *.kicad_pcb -o build/drill/
# generate dxf
# generate glb
# generate step
# generate SVG
# export Sch to PDF
- name: Export BOM
run: kicad-cli sch export bom badge.kicad_sch -o build/bom.csv
- uses: actions/upload-artifact@v4
with:
name: build
path: build/
# generate interactive BOM

8
.gitignore vendored
View File

@ -31,3 +31,11 @@ fp-info-cache
# Exported Gerbers # Exported Gerbers
*.gbr *.gbr
*.gbrjob
*.gts
*.gto
*.gta
*.gm1
*.gbs
build

View File

@ -6,14 +6,14 @@
"apply_defaults_to_fp_fields": false, "apply_defaults_to_fp_fields": false,
"apply_defaults_to_fp_shapes": false, "apply_defaults_to_fp_shapes": false,
"apply_defaults_to_fp_text": false, "apply_defaults_to_fp_text": false,
"board_outline_line_width": 0.09999999999999999, "board_outline_line_width": 0.1,
"copper_line_width": 0.19999999999999998, "copper_line_width": 0.2,
"copper_text_italic": false, "copper_text_italic": false,
"copper_text_size_h": 1.5, "copper_text_size_h": 1.5,
"copper_text_size_v": 1.5, "copper_text_size_v": 1.5,
"copper_text_thickness": 0.3, "copper_text_thickness": 0.3,
"copper_text_upright": false, "copper_text_upright": false,
"courtyard_line_width": 0.049999999999999996, "courtyard_line_width": 0.05,
"dimension_precision": 4, "dimension_precision": 4,
"dimension_units": 3, "dimension_units": 3,
"dimensions": { "dimensions": {
@ -24,7 +24,7 @@
"text_position": 0, "text_position": 0,
"units_format": 1 "units_format": 1
}, },
"fab_line_width": 0.09999999999999999, "fab_line_width": 0.1,
"fab_text_italic": false, "fab_text_italic": false,
"fab_text_size_h": 1.0, "fab_text_size_h": 1.0,
"fab_text_size_v": 1.0, "fab_text_size_v": 1.0,
@ -58,10 +58,7 @@
"width": 0.0 "width": 0.0
} }
], ],
"drc_exclusions": [ "drc_exclusions": [],
"silk_over_copper|125937379|139159432|5bd8971c-b086-4e86-893d-a946ae743855|00000000-0000-0000-0000-000000000000",
"silk_over_copper|88376794|101220292|0af5989f-38c7-4b37-b934-9628cadc3428|00000000-0000-0000-0000-000000000000"
],
"meta": { "meta": {
"version": 2 "version": 2
}, },
@ -99,7 +96,7 @@
"pth_inside_courtyard": "ignore", "pth_inside_courtyard": "ignore",
"shorting_items": "error", "shorting_items": "error",
"silk_edge_clearance": "warning", "silk_edge_clearance": "warning",
"silk_over_copper": "warning", "silk_over_copper": "ignore",
"silk_overlap": "warning", "silk_overlap": "warning",
"skew_out_of_range": "error", "skew_out_of_range": "error",
"solder_mask_bridge": "error", "solder_mask_bridge": "error",
@ -123,15 +120,15 @@
"min_copper_edge_clearance": 0.0, "min_copper_edge_clearance": 0.0,
"min_hole_clearance": 0.25, "min_hole_clearance": 0.25,
"min_hole_to_hole": 0.25, "min_hole_to_hole": 0.25,
"min_microvia_diameter": 0.19999999999999998, "min_microvia_diameter": 0.2,
"min_microvia_drill": 0.09999999999999999, "min_microvia_drill": 0.1,
"min_resolved_spokes": 2, "min_resolved_spokes": 2,
"min_silk_clearance": 0.0, "min_silk_clearance": 0.0,
"min_text_height": 0.7999999999999999, "min_text_height": 0.8,
"min_text_thickness": 0.08, "min_text_thickness": 0.08,
"min_through_hole_diameter": 0.3, "min_through_hole_diameter": 0.3,
"min_track_width": 0.0, "min_track_width": 0.0,
"min_via_annular_width": 0.09999999999999999, "min_via_annular_width": 0.1,
"min_via_diameter": 0.5, "min_via_diameter": 0.5,
"solder_mask_clearance": 0.0, "solder_mask_clearance": 0.0,
"solder_mask_min_width": 0.0, "solder_mask_min_width": 0.0,
@ -483,7 +480,7 @@
"gencad": "", "gencad": "",
"idf": "", "idf": "",
"netlist": "", "netlist": "",
"plot": "", "plot": "outputs/",
"pos_files": "", "pos_files": "",
"specctra_dsn": "", "specctra_dsn": "",
"step": "", "step": "",
@ -601,7 +598,7 @@
"sheets": [ "sheets": [
[ [
"997a009a-450f-4061-9c08-30af5a78357e", "997a009a-450f-4061-9c08-30af5a78357e",
"" "Root"
] ]
], ],
"text_variables": {} "text_variables": {}

61
flake.lock generated Normal file
View File

@ -0,0 +1,61 @@
{
"nodes": {
"flake-utils": {
"inputs": {
"systems": "systems"
},
"locked": {
"lastModified": 1710146030,
"narHash": "sha256-SZ5L6eA7HJ/nmkzGG7/ISclqe6oZdOZTNoesiInkXPQ=",
"owner": "numtide",
"repo": "flake-utils",
"rev": "b1d9ab70662946ef0850d488da1c9019f3a9752a",
"type": "github"
},
"original": {
"owner": "numtide",
"repo": "flake-utils",
"type": "github"
}
},
"nixpkgs": {
"locked": {
"lastModified": 1711124224,
"narHash": "sha256-l0zlN/3CiodvWDtfBOVxeTwYSRz93muVbXWSpaMjXxM=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "56528ee42526794d413d6f244648aaee4a7b56c0",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixos-23.11",
"repo": "nixpkgs",
"type": "github"
}
},
"root": {
"inputs": {
"flake-utils": "flake-utils",
"nixpkgs": "nixpkgs"
}
},
"systems": {
"locked": {
"lastModified": 1681028828,
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
"owner": "nix-systems",
"repo": "default",
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
"type": "github"
},
"original": {
"owner": "nix-systems",
"repo": "default",
"type": "github"
}
}
},
"root": "root",
"version": 7
}

29
flake.nix Normal file
View File

@ -0,0 +1,29 @@
{
inputs = {
nixpkgs.url = "github:NixOS/nixpkgs/nixos-23.11";
flake-utils.url = "github:numtide/flake-utils";
};
outputs = { self, nixpkgs, flake-utils }:
flake-utils.lib.eachDefaultSystem
(system: let
pkgs = nixpkgs.legacyPackages.${system};
in
{
packages = {
};
devShell = pkgs.mkShell {
buildInputs = [
pkgs.figlet
pkgs.act
];
shellHook = ''
figlet "Badge"
'';
};
}
);
}