You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
627 lines
21 KiB
627 lines
21 KiB
// ============================================================================
|
|
// presentation.typ - KiCad: vom Schaltplan zum Gerber (4 Layer als Standard)
|
|
//
|
|
// Bauen: make presentation.pdf bzw. typst compile presentation.typ
|
|
//
|
|
// Screenshots:
|
|
// Die Folien enthalten Platzhalter (`shot(...)`), die genau beschreiben,
|
|
// welche KiCad-Aufnahme fehlt. So wird's ersetzt:
|
|
// 1. Screenshot in KiCad machen (Fenster vorher auf ~16:9-Zuschnitt bringen)
|
|
// 2. Als PNG speichern unter assets/<name>.png
|
|
// (Name steht im Platzhalter, z. B. assets/07-routing.png)
|
|
// 3. Die `shot(...)`-Zeile durch ein Bild ersetzen, z. B.
|
|
// #img("assets/07-routing.png", width: 76%, caption: [Routing in Pcbnew])
|
|
// Die Folie "Screenshot-Checkliste" am Ende listet die fehlenden Aufnahmen.
|
|
// ============================================================================
|
|
|
|
#import "template.typ": *
|
|
|
|
// ---- Palette-Erweiterung (nur für die Querschnitts-Diagramme) --------------
|
|
#let cu = ember // Kupfer -> Terrakotta aus der Deck-Palette
|
|
#let mask = accent // Lötstopp -> Petrol ("blaue Platine")
|
|
#let fr4 = luma(226) // FR4-Kern
|
|
#let prepreg = luma(238) // Prepreg
|
|
|
|
// ---- Helfer -----------------------------------------------------------------
|
|
|
|
// Quellenzeile am Folienboden (wie in presentation01.typ).
|
|
#let src(body) = {
|
|
v(0.3em)
|
|
block(
|
|
width: 100%,
|
|
fill: paper.darken(3%),
|
|
inset: (x: 6pt, y: 3.5pt),
|
|
radius: 2pt,
|
|
text(size: 9.5pt, fill: luma(145))[#text(fill: accent)[Quellen:] #body],
|
|
)
|
|
}
|
|
|
|
// Screenshot-Platzhalter: beschreibt die fehlende Aufnahme + Zieldatei.
|
|
// Ersetzen durch: #img("assets/<name>.png", width: .., caption: [..])
|
|
#let shot(name, what, tip: none) = block(
|
|
breakable: false,
|
|
width: 100%,
|
|
stroke: (paint: luma(190), thickness: 1pt, dash: "dashed"),
|
|
fill: wash,
|
|
radius: 3pt,
|
|
inset: (x: 0.6em, y: 0.5em),
|
|
{
|
|
text(font: mono, size: 0.58em, weight: "bold", fill: ember, tracking: 0.08em)[
|
|
SCREENSHOT → assets/#(name + ".png")
|
|
]
|
|
v(0.12em)
|
|
text(size: 0.72em)[#what]
|
|
if tip != none {
|
|
v(0.08em)
|
|
text(size: 0.62em, fill: luma(110))[#tip]
|
|
}
|
|
},
|
|
)
|
|
|
|
// Ganze Folie für einen Screenshot: großes Bild + kleine Bildunterschrift.
|
|
#let shot-slide(title, path, height: 250pt, caption: none) = slide(title: title)[
|
|
#align(center, image(path, height: height))
|
|
#if caption != none [
|
|
#v(0.2em)
|
|
#align(center, text(size: 0.75em, fill: luma(110))[#caption])
|
|
]
|
|
]
|
|
|
|
// Schichtband: lückenlos gestapelt (Grid mit row-gutter 0 = kein Par-Abstand).
|
|
#let _layer(fill, h, round: none) = rect(
|
|
width: 100%,
|
|
height: h,
|
|
fill: fill,
|
|
stroke: 0.5pt + luma(150),
|
|
radius: if round == none { 0pt } else { round },
|
|
)
|
|
|
|
#let _stack(..layers) = grid(columns: (1fr,), row-gutter: 0pt, ..layers)
|
|
|
|
// Legendenzeile: Farbfeld + Text.
|
|
#let _sw(c, note) = grid(
|
|
columns: (14pt, 1fr),
|
|
column-gutter: 0.45em,
|
|
align(horizon, rect(width: 14pt, height: 9pt, fill: c, stroke: 0.5pt + luma(160), radius: 1.5pt)),
|
|
align(horizon, text(size: 8.5pt)[#note]),
|
|
)
|
|
|
|
#let cu2 = rgb("#d5501795")
|
|
#let cu3 = rgb("#eb6228")
|
|
|
|
// Querschnitt 4-Layer: Stack links, Legende rechts.
|
|
#let stack-4() = grid(
|
|
columns: (0.5fr, 1fr),
|
|
gutter: .5em,
|
|
_stack(
|
|
_layer(mask.lighten(40%), 8pt, round: (top-left: 2pt, top-right: 2pt)),
|
|
_layer(cu, 11pt),
|
|
_layer(prepreg, 7pt),
|
|
_layer(cu2, 11pt),
|
|
_layer(fr4, 18pt),
|
|
_layer(cu3, 11pt),
|
|
_layer(prepreg, 7pt),
|
|
_layer(cu, 11pt),
|
|
_layer(mask.lighten(40%), 8pt, round: (bottom-left: 2pt, bottom-right: 2pt)),
|
|
),
|
|
grid(
|
|
row-gutter: 4pt,
|
|
_sw(mask.lighten(40%), [Lötstopp]),
|
|
_sw(cu, [Kupfer 35 µm - Signale]),
|
|
_sw(prepreg, [Prepreg ≈ 0,2 mm]),
|
|
_sw(cu2, [In1.GND - Masse]),
|
|
_sw(fr4, [FR4-Kern ≈ 1,0 mm]),
|
|
_sw(cu3, [In2.PWR - Versorgung]),
|
|
),
|
|
)
|
|
|
|
// Prozesskasten für die Werkzeugkette (Stil wie diagrams.typ::_pipebox).
|
|
#let _kbox(title, ..lines, highlight: false) = block(
|
|
width: 100%,
|
|
stroke: (
|
|
paint: if highlight { accent } else { luma(205) },
|
|
thickness: if highlight { 1.1pt } else { 0.6pt },
|
|
),
|
|
fill: if highlight { accent.lighten(94%) } else { paper },
|
|
radius: 3pt,
|
|
inset: (x: 5pt, y: 6pt),
|
|
align(center)[
|
|
#text(size: 10pt, weight: "bold")[#title]
|
|
#v(2pt)
|
|
#for l in lines.pos() [ #text(size: 8.5pt, fill: luma(110))[#l] #v(1pt) ]
|
|
],
|
|
)
|
|
|
|
#let _arrow = text(fill: accent)[→]
|
|
|
|
// Werkzeugkette in zwei Reihen.
|
|
#let workflow-pipeline() = block(width: 100%, {
|
|
grid(
|
|
columns: (1fr, 10pt, 1fr, 10pt, 1fr, 10pt, 1fr),
|
|
_kbox("Schaltplan", "Eeschema:", "Symbole & Werte"),
|
|
_arrow,
|
|
_kbox("ERC", "Verbindungen &", "Flags prüfen"),
|
|
_arrow,
|
|
_kbox("Footprints", "Symbol ↔ Gehäuse", "zuweisen"),
|
|
_arrow,
|
|
_kbox("PCB-Import", "Netzliste &", "Ratsnest in Pcbnew"),
|
|
)
|
|
align(center, text(fill: accent, size: 0.85em)[↓])
|
|
grid(
|
|
columns: (1fr, 10pt, 1fr, 10pt, 1fr, 10pt, 1fr, 10pt, 1fr),
|
|
_kbox("Platzieren", "Umriss &", "Signalfluss"),
|
|
_arrow,
|
|
_kbox("Routen", "Leitungen & Vias"),
|
|
_arrow,
|
|
_kbox("Zonen", "GND-Flächen"),
|
|
_arrow,
|
|
_kbox("DRC & 3D", "Regeln prüfen"),
|
|
_arrow,
|
|
_kbox("Gerber", "Plotten & Bohren", "→ Fertigung", highlight: true),
|
|
)
|
|
})
|
|
|
|
// ---- Folientext -------------------------------------------------------------
|
|
|
|
#show: presentation.with(
|
|
title: "KiCad",
|
|
subtitle: "Vom Schaltplan zur fertigen Platine - 4 Layer als Standard",
|
|
author: "flop + mc_thomas3",
|
|
)
|
|
|
|
#slide(title: "Ablauf")[
|
|
- *Was ist KiCad?* · Projekt & Schaltplan
|
|
- *Layout*: Platzieren · Routen · Zonen · Prüfen
|
|
- *4 Layer* statt 2 - warum
|
|
- *Praxis*: USB-C & 5 V · 0-Ω-Retter · Löten
|
|
- *Fertigung*: Gerber · Kosten · China vs. EU
|
|
#v(2.6em)
|
|
1. Präsentation + Live Demo parallel
|
|
2. Wir zeigen euch parallel was ihr wissen wollt
|
|
3. Fragt direkt nach, spart euch die fragen nicht bis zum Ende
|
|
4. Zum Schluss: Wovon wollt ihr mehr sehen?
|
|
]
|
|
|
|
// Big-Picture-Folie: der komplette Weg von der Idee zum fertigen Gerät.
|
|
#slide(title: "Von der Idee zur Platine")[
|
|
#grid(
|
|
columns: (1fr, 10pt, 1fr, 10pt, 1fr, 10pt, 1fr),
|
|
_kbox("1 · Schaltplan", "Schaltung zeichnen"),
|
|
_arrow,
|
|
_kbox("2 · Layout", "Platine entwerfen"),
|
|
_arrow,
|
|
_kbox("3 · Export", "Gerber-Dateien"),
|
|
_arrow,
|
|
_kbox("4 · Bestellen", "hochladen + Stückliste", highlight: true),
|
|
)
|
|
#align(center, text(fill: accent, size: 0.85em)[↓])
|
|
#grid(
|
|
columns: (1fr, 10pt, 1fr, 10pt, 1fr, 10pt, 1fr),
|
|
[],
|
|
[],
|
|
_kbox("5 · Versand", "Platine kommt per Post"),
|
|
_arrow,
|
|
_kbox("6 · Löten", "Bauteile auflöten"),
|
|
_arrow,
|
|
_kbox("7 · Test", "läuft alles?"),
|
|
)
|
|
#v(0.8em)
|
|
Heute: Schritte 1-3 in KiCad - ab 4 übernimmt die Fertigung.
|
|
]
|
|
|
|
// ===================================================================
|
|
#section("KiCad-Überblick", note: "Werkzeuge & Workflow")
|
|
// ===================================================================
|
|
|
|
#slide(title: "Was ist KiCad?")[
|
|
#grid(
|
|
columns: (4fr, 1.35fr),
|
|
gutter: 1.6em,
|
|
[
|
|
- Leiterplattendesignsoftware
|
|
- Schaltplan und Layout
|
|
- git support - Projektdateien sind Text
|
|
- Windows / Linux / Mac
|
|
- vom CERN, open source
|
|
- Eigentlich eine Sammlung von Programmen
|
|
- Python-Api für Automation
|
|
]
|
|
)
|
|
#img("assets/01_projectmanager.png", width: 120%)
|
|
]
|
|
|
|
#slide(title: "Werkzeugkette")[
|
|
#workflow-pipeline()
|
|
#v(0.5em)
|
|
- Später etwas geändert? Ein Klick: Schaltplan → Platine aktualisieren
|
|
- Erst Electrical Rule check sauber haben, dann Layouten
|
|
]
|
|
|
|
#slide(title: "Projekt & Schaltplan")[
|
|
- An Beispielschaltungen aus dem Datenblatt orientieren - platzieren, verdrahten
|
|
- Sorgfalt und Zeit investieren - sauber gruppieren, nach Funktion:
|
|
- Stecker & Montage
|
|
- Stromversorgung - geht an alle anderen Gruppen
|
|
- Zentraler Prozessor + Debug
|
|
- Funktionale Gruppen - z. B. Schaltergruppe 1: Schalter + Sensor + LED + ...
|
|
]
|
|
|
|
#slide(title: "Beispiel: gruppierte Schaltung")[
|
|
#align(center, image("assets/02_schaltplan.png", height: 16em))
|
|
#v(0.2em)
|
|
#align(center, text(size: 0.75em, fill: luma(110))[Jede Funktionsgruppe bekommt ihren eigenen Kasten - so bleibt der Plan lesbar.])
|
|
]
|
|
|
|
#slide(title: "Bauteile & Lieferbarkeit")[
|
|
#grid(
|
|
columns: (1.15fr, 1fr),
|
|
gutter: 1.2em,
|
|
[
|
|
- Direkt beim Zeichnen konkret aussuchen - was es gibt und was lieferbar ist
|
|
- "irgendein 100 nF" ist okay - "der Schaltregler, aber in der 5-V-Variante" nicht
|
|
- Check: LCSC · Mouser · DigiKey - Lagerstand, Preis bei 1 / 10 / 100 Stück
|
|
- LCSC-Nummer als Feld ins Symbol → fertige Stückliste
|
|
- LCSC gibts als Plugin
|
|
- Schönster Schaltplan nützt nichts *ohne Bauteile*
|
|
],
|
|
img("assets/04_properties.png", width: 100%, caption: [Symbol-Eigenschaften: Felder, z. B. für die LCSC-Nummer]),
|
|
)
|
|
]
|
|
|
|
#slide(title: "ERC - Schaltung prüfen")[
|
|
- `Prüfen → Elektrische Regeln prüfen`
|
|
- Findet: offene Pins · vergessene Drähte · fehlende `PWR_FLAG`
|
|
- Warnungen *beheben* - nicht wegklicken
|
|
- ERC grün → weiter zum Layout
|
|
#v(0.4em)
|
|
#img("assets/03_erc.png", width: 62%, caption: [ERC-Dialog: 10 Fehler - genau die müssen weg])
|
|
]
|
|
|
|
// ===================================================================
|
|
#section("Layout-Workflow", note: "Der Standard-Workflow")
|
|
// ===================================================================
|
|
|
|
#slide(title: "Footprints zuweisen")[
|
|
- `Werkzeuge → Footprints zuweisen`: Symbol → Gehäuse
|
|
- Mechanische Maße vorher im Datenblatt prüfen
|
|
]
|
|
|
|
#shot-slide(
|
|
"Footprint Chooser",
|
|
"assets/05_footprint_assign.png",
|
|
height: 265pt,
|
|
caption: [Filter + Vorschau: passt das Gehäuse zum Symbol?],
|
|
)
|
|
|
|
#shot-slide(
|
|
"PCB aus Schaltplan aktualisieren",
|
|
"assets/06_update_pcb.png",
|
|
height: 265pt,
|
|
caption: [`Tools → Update PCB from Schematic` (F8) - Bauteile landen auf der Platine],
|
|
)
|
|
|
|
#slide(title: "Setup, Umriss & Platzieren")[
|
|
#grid(
|
|
columns: (3.5fr, 0fr),
|
|
gutter: 1.4em,
|
|
[
|
|
- Umriss auf *Edge.Cuts* (z. B. 80 × 50 mm)
|
|
- *Board-Setup* (Standard):
|
|
- Signal 0,25 mm · PWR 0,5-0,8 mm
|
|
- Via 0,6/0,3 mm
|
|
- Platzieren nach *Signalfluss*:
|
|
- Stecker & Befestigung zuerst - als fix markieren
|
|
- Dann Bauteile grob zusammenschieben wie auf dem Schaltplan gruppiert
|
|
- Entkopplungs-Cs direkt an die Versorgungspins
|
|
- *Platinenbeschriftung*: auf wichtige Eckpunkte reduzieren
|
|
- z.B. Stecker-Polarität
|
|
- max Spannung
|
|
- Versionierung
|
|
],
|
|
// shot("07_floorplan", [Pcbnew: Umriss + platzierte Footprints mit Ratsnest]),
|
|
)
|
|
]
|
|
|
|
#slide(title: "Routen")[
|
|
- `X` - *kritische Signale zuerst*: Takt · PWM · Analog
|
|
- Kurze Wege, wenige Vias
|
|
- `V` beim Routen → Via, Lagewechsel
|
|
- PWR breiter (Netz-Klasse) · GND → Massefläche
|
|
- Raster: 1,27 / 0,635 mm (THT) · 0,25 mm (SMD)
|
|
]
|
|
|
|
#shot-slide(
|
|
"Routen in Pcbnew",
|
|
"assets/07_routing.png",
|
|
height: 280pt,
|
|
caption: [F.Cu - die dünnen Linien (Ratsnest) zeigen, welche Verbindungen noch fehlen],
|
|
)
|
|
|
|
#slide(title: "Zonen - GND-Fläche")[
|
|
- Werkzeug *Kupferfläche*: Netz *GND* · Lage wählen \
|
|
(4 Layer: In1.GND · 2 Layer: B.Cu)
|
|
- Thermische Reliefs für Pads
|
|
- *Stitch-Vias* nahe kritischen Bauteilen \
|
|
(Entkopplung · Quarze · Spannungsregler)
|
|
- Nach jeder Änderung: `B` (Zonen auffüllen) → erst dann DRC
|
|
#v(0.5em)
|
|
// #shot(
|
|
// "09_zone",
|
|
// [Zonen-Eigenschaften: Netz GND, Lage B.Cu, Füllparameter],
|
|
// tip: [Rechtsklick auf die Fläche → "Flächen..."],
|
|
// )
|
|
]
|
|
|
|
#slide(title: "Prüfen & Exportieren")[
|
|
- *DRC - nie vergessen!* Nach dem Layout + *nochmal vor dem Export*
|
|
- *3D-Viewer*: kollidieren Gehäuse & Stecker?
|
|
- Hilft aber auch nur wenn die 3D-Modelle korrekt sind
|
|
- Export: Gerber X2 + Bohrdaten → ZIP → Fertigung
|
|
#v(0.5em)
|
|
// #shot("11_3d_viewer", [3D-Betrachter: fertige Platine mit Bauteilen])
|
|
]
|
|
|
|
#shot-slide(
|
|
"DRC",
|
|
"assets/10_drc.png",
|
|
height: 210pt,
|
|
caption: [16 Warnungen - jede anschauen und verstehen, nicht sofort wegklicken],
|
|
)
|
|
|
|
// ===================================================================
|
|
#section("4-Layer", note: "Stackup, Masse & Versorgung")
|
|
// ===================================================================
|
|
|
|
#slide(title: "2 oder 4 Lagen?")[
|
|
#grid(
|
|
columns: (1.6fr, 1fr),
|
|
gutter: 1.4em,
|
|
[
|
|
- *4 Lagen als Standard* - Aufpreis klein (oder nicht vorhanden), Nutzen groß
|
|
- Massefläche unter jedem Signal → weniger Abstrahlung
|
|
- Impedanzkontrolle (USB · Ethernet · Funk)
|
|
- Tools in Kicad!
|
|
- Versorgung als eigene Lage
|
|
- 2 Lagen: nur Adapter- & Breakout-Boards
|
|
- Billigvariante des Stackups reicht fast immer
|
|
],
|
|
stack-4(),
|
|
)
|
|
]
|
|
|
|
// #shot-slide(
|
|
// "Preis: 2 Lagen",
|
|
// "assets/13_2layer_jlc.png",
|
|
// height: 165pt,
|
|
// caption: [JLCPCB, 50 × 50 mm, 5 Stück: 20,56 \$ - davon 16,56 \$ für "Via Covering", eine Option, die man selten braucht],
|
|
// )
|
|
|
|
// #shot-slide(
|
|
// "Preis: 4 Lagen",
|
|
// "assets/13_4layer_jlc.png",
|
|
// height: 165pt,
|
|
// caption: [Gleiche Größe: 8,00 \$ (Aktion) - vier Lagen sind hier billiger als zwei],
|
|
// )
|
|
|
|
#slide(title: "Advanced: Stackup in KiCad einrichten")[
|
|
- Board-Setup → *Stapelaufbau*: Innenlagen anlegen, benennen, Dicken eintragen
|
|
- *Impedanz* im selben Dialog: Ziel 50 Ω → empfohlene Bahnbreite
|
|
- Netzklassen & Abstände wie gehabt
|
|
#img("assets/12_stackup.png", width: 80%, caption: [Physical Stackup: hier über "Copper layers" auf 4 Kupferlagen erhöhen])
|
|
]
|
|
|
|
// #slide(title: "Layout-Aufgaben bei 4 Layern")[
|
|
// #grid(
|
|
// columns: (2.1fr, 1fr),
|
|
// gutter: 1.4em,
|
|
// [
|
|
// - *GND-Ebene durchgehend halten* - Schlitze = Rückstromfallen
|
|
// - *GND-Via direkt neben* dem Signal-Via
|
|
// - *Stitching-Vias* regelmäßig verteilen
|
|
// - Entkopplung: Pad → Via → Plane, so kurz wie möglich
|
|
// - Versorgung: Via-Paare an In2
|
|
// ],
|
|
// // shot(
|
|
// // "14_4l_fertig",
|
|
// // [4-Layer-Board, nur In1.GND sichtbar: durchgehende Massefläche mit Stitching-Vias],
|
|
// // tip: [Lagen-Liste links: nur In1.Cu + Vias einblenden],
|
|
// // ),
|
|
// )
|
|
// ]
|
|
|
|
// ===================================================================
|
|
#section("Praxis-Fragen", note: "Erfahrungswerte fürs erste Board")
|
|
// ===================================================================
|
|
|
|
#slide(title: "Wie starte ich?")[
|
|
- *Klein anfangen*: eine Platine, ein Ziel \
|
|
(z. B. Versorgung + MCU-Modul - das Vortrags-Beispiel)
|
|
- *Bewährtes kopieren*: Referenzdesigns · Open-Source-Boards
|
|
- Review von Bekannten anfragen
|
|
- z.B. Mitglieder im Chaos-Verein
|
|
|
|
- Revision 1 = Lernprojekt: *2-3 Anläufe* sind normal
|
|
- Beispiel Busanzeiger: Versorgung · Mikrocontroller · Display-Anbindung
|
|
|
|
]
|
|
|
|
#slide(title: "USB-C & 5 V - ein gutes Konzept?")[
|
|
- *Ja - guter Standard*: robust · überall verfügbar · nur 5 V
|
|
- *CC1 & CC2: je 5,1 kΩ nach GND* - sonst kein Strom
|
|
- A/B-Pins *gespiegelt, nicht gedreht* - Footprint prüfen
|
|
- USB-2: A6↔B6 (D+) · A7↔B7 (D-)
|
|
- VBUS: *NIE zurückeinspeisen*
|
|
- Schützen mit Verpoldiode + ESD-Netzwerk
|
|
#v(0.2em)
|
|
#grid(
|
|
columns: (1fr, 1fr),
|
|
column-gutter: 1.2em,
|
|
align(center, image("assets/USB-C-Breakout_Schematic-_PD5V.png", height: 190pt)),
|
|
align(center, image("assets/usb_2.png", height: 190pt)),
|
|
)
|
|
// #src[Rd (5,1 kΩ): USB-IF, USB Type-C Spec]
|
|
]
|
|
|
|
#slide(title: "EMV als Anfänger?")[
|
|
- *Bewusste EMV-Optimierung (Funkstörungen): zu früh*
|
|
- Grundset bringt schon den Großteil:
|
|
- durchgehende *GND-Fläche* (deshalb 4 Layer)
|
|
- *Entkopplungs-Cs* an jeden Versorgungspin
|
|
- Einplanen: *2-3 Revisionen* + *Yellow-Wire* für Rev. 1
|
|
]
|
|
|
|
#slide(title: "Wie flexibel designen?")[
|
|
- Jumper *Ja* · Bestückoptionen des gleichen Teils? *Eher nicht*
|
|
- aber z.B. optionaler pulldown Widerstand: *Ja*
|
|
- Die nächste Platine ist schnell & günstig
|
|
- Flexibilität kostet: Platz · Zeit · Nerven
|
|
- *Ausnahme: ab ~100+ Stück* → Varianten lohnen
|
|
]
|
|
|
|
#slide(title: "Retter in der Not: 0 Ω & 1 R")[
|
|
- *0 Ω in Serie* zu Strom- & heiklen Signalleitungen \
|
|
- im Notfall: austauschen · überbrücken
|
|
- Gehäuse: *0805 / 0603 - nicht kleiner* (handlötbar)
|
|
- *1 R in 0805 als Sicherung* - geht durch statt abzufackeln
|
|
]
|
|
|
|
// ===================================================================
|
|
#section("Bestückung & Equipment", note: "Löten, Werkzeug & PCBA")
|
|
// ===================================================================
|
|
|
|
#slide(title: "Bestückung: klein nach groß")[
|
|
- *Klein nach groß* - sonst kommt der Lötkolben nicht mehr dran
|
|
- *Erst SMD, dann THT* - Stecker blockieren sonst SMD-Plätze
|
|
- *Zoom nicht übertreiben*: Bildschirm ≠ Realität
|
|
- SMD in einem Rutsch: Lötpaste → setzen → Hotplate / Heißluft
|
|
- Bestückungsdruck mit Bauteilnamen?
|
|
- Lohnt sich so wirklich - erst ab ~1 000 Stück
|
|
- HTML-Bom-Viewer: Ein Traum-Werkzeug zum Bestücken
|
|
- mit Abhakfunktion und Bauteilfinder
|
|
- PCBA (Bestückt von Fabrik) möglich, aber oft nicht nötig
|
|
]
|
|
|
|
#slide(title: "Equipment - was lohnt sich?")[
|
|
#grid(
|
|
columns: (1fr, 1fr),
|
|
gutter: 1.2em,
|
|
panel(c: accent)[
|
|
*Kaufen / Vereinsmaterial*
|
|
|
|
- *Lötkolben* - temperaturgeregelt, feine Spitzen, aber auch eine fette Spitze für Steckverbinder
|
|
- *Lötpaste & Lötzinn*
|
|
- *Lupe*
|
|
- *Heißluftfön* - Rework · QFN/DFN
|
|
],
|
|
panel(c: ember)[
|
|
*später bis GANZ SPÄTER*
|
|
|
|
- *Bauteilordnung* - Schrank / Kästchen / ...
|
|
- *Hotplate* - SMD-Lötpaste im kleinen Reflow
|
|
- *Reflow-Ofen* eher nicht
|
|
- *Automatischer Picker* - Pinzette tut's
|
|
- Großes *Mikroskop*
|
|
],
|
|
)
|
|
]
|
|
|
|
// #slide(title: "Factory-Bestückung (PCBA)")[
|
|
// - *Lohnt sich eher nicht - öfter als gedacht* (JLCPCB · AISLER)
|
|
// - V. a. bei *feinen Gehäusen*: 0402 · QFN · BGA
|
|
// - Aus KiCad: *BOM* + *Pick-and-Place* \
|
|
// (`Datei → Fertigungsoutputs`)
|
|
// - Split: *SMD ab Werk · THT & Stecker selbst*
|
|
// ]
|
|
|
|
// ===================================================================
|
|
#section("Prüfung & Fertigung", note: "DRC, Gerber, Bohrdaten & Kosten")
|
|
// ===================================================================
|
|
|
|
#slide(title: "Endkontrolle")[
|
|
- *Innenlagen sichtbar machen*: GND wirklich geschlossen?
|
|
- *DRC* mit den Regeln des Herstellers (Clearance · Annular Ring · Bohrung)
|
|
- *3D-Check* + STEP-Export (`Datei → Exportieren → STEP`)
|
|
- kann helfen, muss aber nicht, wenn die 3D-Modelle nicht genau sind
|
|
- Hilft dann, um zu sehen ob alle Anschlüsse erreichbar sind
|
|
- Faustregel: erst Zonen auffüllen, dann DRC
|
|
]
|
|
|
|
#slide(title: "Gerber & Bohrdaten")[
|
|
- `Fertigungsoutputs → Plotten...`: *Gerber X2*
|
|
- Kupfer · Lötstopp · Bestückungsdruck · Umriss
|
|
- Bohrdaten (Excellon) separat → beides ins ZIP
|
|
// - Kontrolle in *GerbView*: jede Lage durchschauen
|
|
- Kontrolle im Webviewer beim bestellen
|
|
|
|
#heading()[Alternativ]
|
|
- direkt das Kicad-Projekt hochladen
|
|
- oder: Plugins für Fertiger verwenden
|
|
#v(0.5em)
|
|
#grid(
|
|
columns: (1fr, 1fr),
|
|
gutter: 1.2em,
|
|
// shot("15_plot", [Plot-Dialog: Gerber X2, Layer-Liste mit Haken]),
|
|
// shot("16_gerbview", [GerbView mit geladenen Lagen (F.Cu, B.Cu, Masken)]),
|
|
)
|
|
]
|
|
|
|
#slide(title: "Was kostet eine Platine?")[
|
|
- Preis-Treiber: *Fläche · Lagenzahl · Mindestabstände*
|
|
- Kleine Platine (50x50) ungefähr
|
|
#table(
|
|
columns: (auto, 1fr),
|
|
stroke: (bottom: 0.5pt + luma(210)),
|
|
inset: (x: 4pt, y: 2.5pt),
|
|
[*Stückzahl*], [*Richtwert (kleine 4-Layer-Platine, China)*],
|
|
[1-5], [ca. 10-25 € - fast nur Grundgebühr, Panel & Versand],
|
|
[10], [kaum teurer als 5 - Setup einmal bezahlt],
|
|
[100], [ca. 1-2 € pro Stück],
|
|
[1000], [ca. 0,3-0,8 € pro Stück],
|
|
)
|
|
#v(0.4em)
|
|
- *Kleinmengen = Fixkosten*: Setup · Panel · Versand
|
|
#v(0.3em)
|
|
// #src[Richtwerte - aktuell immer im Preisrechner prüfen (jlcpcb.com, aisler.net)]
|
|
]
|
|
|
|
#slide(title: "China oder EU?")[
|
|
#grid(
|
|
columns: (1fr, 1fr),
|
|
gutter: 1.2em,
|
|
panel(c: ember)[
|
|
*China - JLCPCB, PCBWay, SEEED*
|
|
- sehr günstig · riesige Auswahl
|
|
- Versand 1-2 Wochen teuer
|
|
- Versand 3-4 Wochen billiger
|
|
- lange Transportwege
|
|
- und: Import / Zoll
|
|
- Nicht automatisch billig für Prototyping
|
|
],
|
|
panel(c: accent)[
|
|
*EU - AISLER, Beta layout, Würth*
|
|
- schnell & unkompliziert
|
|
- Preisunterschied kaum vorhanden (bei ähnlicher Dringlichkeit)
|
|
- deutschsprachiger Support · Gewährleistung
|
|
- kurze Wege → besser für Umwelt & Klima
|
|
- Prototyping
|
|
],
|
|
)
|
|
#v(0.5em)
|
|
- China: günstige Stückzahl · EU: Zeit, Service, CO₂, Prototyping
|
|
]
|
|
|
|
#slide(title: "Quellen & Links")[
|
|
- `docs.kicad.org` - Handbuch & Getting Started (de/en)
|
|
- `kicad.org` - Downloads · Release Notes · Blog
|
|
- `forum.kicad.info` - Community-Forum
|
|
- Design-Rules der Fertigung (JLCPCB · PCBWay · AISLER) \
|
|
- vor dem Layout ins Board-Setup
|
|
- Tools:
|
|
- https://github.com/hulryung/kicad-lcsc-manager
|
|
- https://github.com/dsa-t/jlc-kicad-lib-loader
|
|
]
|
|
|
|
#slide(title: "Diskussion")[
|
|
#v(6em)
|
|
#align(center, text(size: 4.3em, weight: "bold")[Danke - Fragen?])
|
|
]
|
|
|