create gerber files in CI pipeline
All checks were successful
continuous-integration/drone/push Build is passing
All checks were successful
continuous-integration/drone/push Build is passing
This commit is contained in:
parent
8c775e9705
commit
8eb51b5aa9
7 changed files with 157 additions and 25 deletions
|
@ -23,13 +23,6 @@ steps:
|
||||||
commands:
|
commands:
|
||||||
- apt update
|
- apt update
|
||||||
- apt install -y make zip
|
- apt install -y make zip
|
||||||
- cd pcb
|
|
||||||
- kibot -d gen -c fiatlux.kiplot.yaml -s update_xml,run_drc -i
|
|
||||||
- kibot -d gen -c fiatlux.kiplot.yaml -s update_xml,run_erc -i
|
|
||||||
- kibot -d gen -c fiatlux.kiplot.yaml -s run_drc,run_erc print_sch
|
|
||||||
- kibot -d gen -c fiatlux.kiplot.yaml -s all print_front gerbers
|
|
||||||
- ls -lA
|
|
||||||
- cd -
|
|
||||||
- make pcb -j$(nproc)
|
- make pcb -j$(nproc)
|
||||||
|
|
||||||
- name: case
|
- name: case
|
||||||
|
@ -64,6 +57,7 @@ steps:
|
||||||
base_url: https://git.neulandlabor.de/
|
base_url: https://git.neulandlabor.de/
|
||||||
files:
|
files:
|
||||||
- firmware/firmware/fiatlux.bin
|
- firmware/firmware/fiatlux.bin
|
||||||
|
- pcb/pcb.zip
|
||||||
checksum:
|
checksum:
|
||||||
- sha512
|
- sha512
|
||||||
- md5
|
- md5
|
||||||
|
|
30
Makefile
30
Makefile
|
@ -6,17 +6,6 @@ all: firmware case pcb
|
||||||
firmware:
|
firmware:
|
||||||
+@make -C firmware html all
|
+@make -C firmware html all
|
||||||
|
|
||||||
clean:
|
|
||||||
+@make -C firmware clean
|
|
||||||
|
|
||||||
firmware_docker:
|
|
||||||
sh -c "docker build -t fiatlux_env docker"
|
|
||||||
sh -c "docker run --volume "$$(pwd)"/firmware:/app/firmware fiatlux_env make -C firmware all"
|
|
||||||
|
|
||||||
clean_docker:
|
|
||||||
sh -c "docker build -t fiatlux_env docker"
|
|
||||||
sh -c "docker run --volume "$$(pwd)"/firmware:/app/firmware fiatlux_env make -C firmware clean"
|
|
||||||
|
|
||||||
flash:
|
flash:
|
||||||
+@make -C firmware flash
|
+@make -C firmware flash
|
||||||
|
|
||||||
|
@ -25,3 +14,22 @@ case:
|
||||||
|
|
||||||
pcb:
|
pcb:
|
||||||
+@make -C pcb all
|
+@make -C pcb all
|
||||||
|
|
||||||
|
clean:
|
||||||
|
+@make -C firmware clean
|
||||||
|
+@make -C pcb clean
|
||||||
|
|
||||||
|
firmware_docker:
|
||||||
|
sh -c "docker build -t fiatlux_firmware_env docker/firmware"
|
||||||
|
sh -c "docker run --volume "$$(pwd)"/firmware:/app/firmware fiatlux_firmware_env make -C firmware all"
|
||||||
|
|
||||||
|
pcb_docker:
|
||||||
|
sh -c "docker build -t fiatlux_pcb_env docker/pcb"
|
||||||
|
sh -c "docker run --volume "$$(pwd)"/pcb:/app/pcb fiatlux_pcb_env make -C pcb all"
|
||||||
|
|
||||||
|
clean_docker:
|
||||||
|
sh -c "docker build -t fiatlux_firmware_env docker/firmware"
|
||||||
|
sh -c "docker build -t fiatlux_pcb_env docker/pcb"
|
||||||
|
sh -c "docker run --volume "$$(pwd)"/firmware:/app/firmware fiatlux_firmware_env make -C firmware clean"
|
||||||
|
sh -c "docker run --volume "$$(pwd)"/pcb:/app/pcb fiatlux_pcb_env make -C pcb clean"
|
||||||
|
|
||||||
|
|
7
docker/pcb/Dockerfile
Normal file
7
docker/pcb/Dockerfile
Normal file
|
@ -0,0 +1,7 @@
|
||||||
|
# syntax=docker/dockerfile:1
|
||||||
|
FROM setsoft/kicad_auto
|
||||||
|
RUN apt update && apt install -y make zip; mkdir /app; chown 1000:1000 /app; cd /app; useradd user
|
||||||
|
RUN mkdir -p /home/user; cp -r /root/.config /home/user/.config; chown 1000:1000 -R /home/user
|
||||||
|
RUN ls -la /home/user/.config
|
||||||
|
USER 1000
|
||||||
|
WORKDIR /app
|
2
pcb/.gitignore
vendored
2
pcb/.gitignore
vendored
|
@ -33,4 +33,4 @@ fp-info-cache
|
||||||
|
|
||||||
*-bak
|
*-bak
|
||||||
gen/
|
gen/
|
||||||
gen.zip
|
pcb.zip
|
||||||
|
|
56
pcb/Makefile
56
pcb/Makefile
|
@ -1,4 +1,54 @@
|
||||||
all:
|
.NOTPARALLEL: gen/fab/fiatlux-F_Cu.gbr gen/fab/fiatlux-B_Cu.gbr gen/fab/fiatlux-F_Mask.gbr gen/fab/fiatlux-B_Mask.gbr gen/fab/fiatlux-F_Paste.gbr gen/fab/fiatlux-B_Paste.gbr gen/fab/fiatlux-F_SilkS.gbr gen/fab/fiatlux-B_SilkS.gbr
|
||||||
|
|
||||||
|
all: test fab doc pcb.zip
|
||||||
|
|
||||||
|
pcb.zip: fab doc
|
||||||
@mkdir -p gen
|
@mkdir -p gen
|
||||||
@touch gen/foo
|
@cd gen; zip -r ../pcb.zip fab.zip fiatlux.csv fiatlux-top-pos.csv fiatlux-front.svg fiatlux-back.svg fiatlux.pdf
|
||||||
@cd gen; zip ../gen.zip *
|
@cd gen; zip -r ../debug.zip .
|
||||||
|
|
||||||
|
test: gen/fiatlux-drc.txt gen/fiatlux-erc.txt
|
||||||
|
|
||||||
|
doc: gen/fiatlux.pdf gen/fiatlux-front.svg gen/fiatlux-back.svg
|
||||||
|
|
||||||
|
fab: test gen/fab.zip gen/fiatlux.csv gen/fiatlux-top-pos.csv
|
||||||
|
|
||||||
|
gen/fab.zip: gen/fab/fiatlux-F_Cu.gbr gen/fab/fiatlux-B_Cu.gbr gen/fab/fiatlux-F_Mask.gbr gen/fab/fiatlux-B_Mask.gbr
|
||||||
|
gen/fab.zip: gen/fab/fiatlux-F_Paste.gbr gen/fab/fiatlux-B_Paste.gbr gen/fab/fiatlux-F_SilkS.gbr gen/fab/fiatlux-B_SilkS.gbr
|
||||||
|
@mkdir -p gen/fab
|
||||||
|
@cd gen/fab; zip -r ../fab.zip *.gbr
|
||||||
|
|
||||||
|
gen/fiatlux-erc.txt: fiatlux.kiplot.yaml fiatlux.pro fiatlux.kicad_pcb
|
||||||
|
@mkdir -p gen
|
||||||
|
kibot -d gen -c fiatlux.kiplot.yaml -s update_xml,run_drc -i
|
||||||
|
|
||||||
|
gen/fiatlux-drc.txt: fiatlux.kiplot.yaml fiatlux.pro fiatlux.sch
|
||||||
|
@mkdir -p gen
|
||||||
|
kibot -d gen -c fiatlux.kiplot.yaml -s update_xml,run_erc -i
|
||||||
|
|
||||||
|
gen/fab/%.gbr: fiatlux.kiplot.yaml fiatlux.pro fiatlux.kicad_pcb
|
||||||
|
@mkdir -p gen
|
||||||
|
kibot -d gen -c fiatlux.kiplot.yaml -s all print_front gerbers
|
||||||
|
|
||||||
|
gen/fiatlux-top-pos.csv: fiatlux.kiplot.yaml fiatlux.pro fiatlux.kicad_pcb
|
||||||
|
@mkdir -p gen
|
||||||
|
kibot -d gen -c fiatlux.kiplot.yaml -s all print_front position
|
||||||
|
|
||||||
|
gen/fiatlux.csv: fiatlux.kiplot.yaml fiatlux.pro fiatlux.kicad_pcb
|
||||||
|
@mkdir -p gen
|
||||||
|
kibot -d gen -c fiatlux.kiplot.yaml -s all print_front bom
|
||||||
|
|
||||||
|
gen/fiatlux.pdf: fiatlux.kiplot.yaml fiatlux.pro fiatlux.sch
|
||||||
|
@mkdir -p gen
|
||||||
|
kibot -d gen -c fiatlux.kiplot.yaml -s run_drc,run_erc print_sch
|
||||||
|
|
||||||
|
gen/fiatlux-front.svg: fiatlux.kicad_pcb
|
||||||
|
@mkdir -p gen
|
||||||
|
pcbdraw --libs default $< $@
|
||||||
|
|
||||||
|
gen/fiatlux-back.svg: fiatlux.kicad_pcb
|
||||||
|
@mkdir -p gen
|
||||||
|
pcbdraw --libs default --back $< $@
|
||||||
|
|
||||||
|
clean:
|
||||||
|
@rm -rf gen
|
|
@ -13,20 +13,39 @@ preflight:
|
||||||
# kiauto_wait_start: 60
|
# kiauto_wait_start: 60
|
||||||
# kiauto_time_out_scale: 2
|
# kiauto_time_out_scale: 2
|
||||||
|
|
||||||
|
filters:
|
||||||
|
- name: fix_rotation
|
||||||
|
comment: 'Adjust rotation for JLC'
|
||||||
|
type: rot_footprint
|
||||||
|
|
||||||
|
- name: only_jlc_parts
|
||||||
|
comment: 'Only parts with JLC code'
|
||||||
|
type: generic
|
||||||
|
include_only:
|
||||||
|
- column: 'LCSC#'
|
||||||
|
regex: '^C\d+'
|
||||||
|
|
||||||
|
variants:
|
||||||
|
- name: rotated
|
||||||
|
comment: 'Just a place holder for the rotation filter'
|
||||||
|
type: kibom
|
||||||
|
variant: rotated
|
||||||
|
pre_transform: fix_rotation
|
||||||
|
|
||||||
outputs:
|
outputs:
|
||||||
- name: 'print_sch'
|
- name: 'print_sch'
|
||||||
comment: "Print schematic (PDF)"
|
comment: "Print schematic (PDF)"
|
||||||
type: pdf_sch_print
|
type: pdf_sch_print
|
||||||
dir: .
|
dir: .
|
||||||
options:
|
options:
|
||||||
output: Schematic.pdf
|
output: fiatlux.pdf
|
||||||
|
|
||||||
- name: 'print_front'
|
- name: 'print_front'
|
||||||
comment: "Print F.Cu+Dwgs.User"
|
comment: "Print F.Cu+Dwgs.User"
|
||||||
type: pdf_pcb_print
|
type: pdf_pcb_print
|
||||||
dir: .
|
dir: .
|
||||||
options:
|
options:
|
||||||
output_name: PCB_Top.pdf
|
output_name: fiatlux-top.pdf
|
||||||
layers:
|
layers:
|
||||||
- layer: B.Cu
|
- layer: B.Cu
|
||||||
- layer: F.SilkS
|
- layer: F.SilkS
|
||||||
|
@ -34,7 +53,7 @@ outputs:
|
||||||
- name: 'gerbers'
|
- name: 'gerbers'
|
||||||
comment: "Gerbers for the board house"
|
comment: "Gerbers for the board house"
|
||||||
type: gerber
|
type: gerber
|
||||||
dir: Gerbers
|
dir: fab
|
||||||
options:
|
options:
|
||||||
# generic layer options
|
# generic layer options
|
||||||
exclude_edge_layer: true
|
exclude_edge_layer: true
|
||||||
|
@ -56,11 +75,65 @@ outputs:
|
||||||
use_gerber_net_attributes: true
|
use_gerber_net_attributes: true
|
||||||
|
|
||||||
layers:
|
layers:
|
||||||
|
- layer: F.Cu
|
||||||
|
suffix: F_Cu
|
||||||
- layer: B.Cu
|
- layer: B.Cu
|
||||||
suffix: B_Cu
|
suffix: B_Cu
|
||||||
- layer: F.SilkS
|
- layer: F.SilkS
|
||||||
suffix: F_SilkS
|
suffix: F_SilkS
|
||||||
|
- layer: B.SilkS
|
||||||
|
suffix: B_SilkS
|
||||||
|
- layer: F.Paste
|
||||||
|
suffix: F_Paste
|
||||||
|
- layer: B.Paste
|
||||||
|
suffix: B_Paste
|
||||||
|
- layer: F.Mask
|
||||||
|
suffix: F_Mask
|
||||||
|
- layer: B.Mask
|
||||||
|
suffix: B_Mask
|
||||||
- layer: Edge.Cuts
|
- layer: Edge.Cuts
|
||||||
suffix: Edge_Cuts
|
suffix: Edge_Cuts
|
||||||
|
|
||||||
|
- name: 'position'
|
||||||
|
comment: "Pick and place file, JLC style"
|
||||||
|
type: position
|
||||||
|
options:
|
||||||
|
variant: rotated
|
||||||
|
output: '%f-top-pos.%x'
|
||||||
|
format: CSV
|
||||||
|
units: millimeters
|
||||||
|
separate_files_for_front_and_back: false
|
||||||
|
only_smd: true
|
||||||
|
columns:
|
||||||
|
- id: Ref
|
||||||
|
name: Designator
|
||||||
|
- Val
|
||||||
|
- Package
|
||||||
|
- id: PosX
|
||||||
|
name: "Mid X"
|
||||||
|
- id: PosY
|
||||||
|
name: "Mid Y"
|
||||||
|
- id: Rot
|
||||||
|
name: Rotation
|
||||||
|
- id: Side
|
||||||
|
name: Layer
|
||||||
|
|
||||||
|
- name: 'bom'
|
||||||
|
comment: "BoM for JLC"
|
||||||
|
type: bom
|
||||||
|
options:
|
||||||
|
output: '%f.%x'
|
||||||
|
exclude_filter: 'only_jlc_parts'
|
||||||
|
ref_separator: ','
|
||||||
|
columns:
|
||||||
|
- field: Value
|
||||||
|
name: Comment
|
||||||
|
- field: References
|
||||||
|
name: Designator
|
||||||
|
- Footprint
|
||||||
|
- field: 'LCSC#'
|
||||||
|
name: 'LCSC Part #'
|
||||||
|
csv:
|
||||||
|
hide_pcb_info: true
|
||||||
|
hide_stats_info: true
|
||||||
|
quote_all: true
|
Loading…
Reference in a new issue