Forum: Platinen Kicad Rotation für Footprint bei jlcpcb.com falsch


von Michael D. (nospam2000)


Angehängte Dateien:

Lesenswert?

Hi,

ich bin gerade dabei meine erste mit Kicad erstellte Platine inklusive 
SMT Bestückung bei jlcpcb.com fertigen zu lassen.

In der Bestückungs-Vorschau bei jlcpcb werden alle ICs um 90° gegen den 
Uhrzeigersinn rotiert dargestellt. Die 0805 C und R sind korrekt 
rotiert, d.h. es hängt wohl von der Gehäuseform ab und ist kein 
generelles Problem. In pcbnew sieht alles gut aus, siehe Bilder.

Konkret geht es um folgende Bauteile
 - U1 74ALVC164245DGG mit Package_SO:TSSOP-48_6.1x12.5mm_P0.5mm
 - U9 SN74LVC07APWR Package_SO:TSSOP-14-1EP_4.4x5mm_P0.65mm

Im Hersteller-Datenblatt von 
https://datasheet.lcsc.com/szlcsc/2001050533_Nexperia-74ALVC164245DGG_C477988.pdf: 
wird das Gehäuse auch mit "SOT362-1" bezeichnet.

In der MyProject-top-pos.csv Bestückungsliste sieht das dann so aus:
Designator,Val,Package,Mid X,Mid Y,Rotation,Layer
"U1","74ALVC164245DGG","TSSOP-48_6.1x12.5mm_P0.5mm",68.503800,-102.28600 
0,0.000000,top

Die Ausrichtung ist also 0°.

Die Headerzeile der Datei habe ich nach Vorgabezeile von jlcpcb 
angepasst von "Ref,Val,Package,PosX,PosY,Rot,Side" nach 
"Designator,Val,Package,Mid X,Mid Y,Rotation,Layer".

Die Spalte "Rotation" wird auch tatsächlich verwendet, eben nur mit dem 
falschen Wert (+90°).

Wem kann ich jetzt trauen: ist die Vorschau von jlcpcb korrekt, d.h. 
stimmt sie mit dem überein was tatsächlich bestückt wird?

Falls ja, wie kann ich Kicad davon überzeugen die Rotation richtig zu 
exportieren?

  Michael

: Bearbeitet durch User
von Michael D. (nospam2000)


Lesenswert?

Hat noch nie jemand Platinen bei jlcpcb bestücken lassen und kann seine 
Erfahrungen teilen?

In Kapitel 9 von
http://ohm.bu.edu/~pbohn/__Engineering_Reference/pcb_layout/pcbmatrix/Component%20Zero%20Orientations%20for%20CAD%20Libraries.pdf
wird dieselbe Ausrichtung angegeben wie sie von Kicad verwendet wird.

  Michael

von Jan L. (ranzcopter)


Lesenswert?

- die JLCPCB-Preview zeigt öfters schonmal Schmuh an, ‚rotiert‘ hatte 
ich allerdings noch nicht

- teste deinen Gcode einfach mal mit einem Gcode-Viewer, nicht mit 
pcbnew

von rasz (Gast)


Lesenswert?

Ich hatte auch bereits rotiert angezeigte Bauteile. Der Support meinte, 
dass klappt schon. Schlussendlich war auch alles richtig bestückt. Im 
Zweifel würde ich die mal anschreiben.

von Stevven (Gast)


Lesenswert?

Ich rotiere nachträglich per Hand so dass es preview passt.

von Jens M. (schuchkleisser)


Lesenswert?

Da jedes EDA-Programm und jede Maschine "Nord" und "positive Drehung" 
anders bewertet, ist das normal.
Und: je nachdem ob sich der Teilerersteller im EDA an die "Norm" hält, 
ist das auch noch anders.

IC-Format wie Bildschirm? Was bei QFP?
Pin 1 ist immer links oben? Und zweiseitige BE?
Na gut, Beinchen sind immer links/rechts (oder ist oben unten doch 
besser?)
Oder so wie die Teile im Gurt liegen ist Null? Was ist bei Teilen die es 
in verschiedenen Gurtbreiten und damit Ausrichtungen gibt?
Achleckmichdoch
Verstehste?

Öffne einfach die XY-Datei und ändere die Rotation bis es in der 
Vorschau passt.
Solltest du mit einem Menschenbetrieb arbeiten (also ein ernsthafter 
Bestücker) gibt denen einen Bestückungsplan in PDF, in dem die Richtung 
gut zu sehen ist, fertig.
Deine Daten stimmen eh nie.

von Michael D. (nospam2000)


Lesenswert?

Jens M. schrieb:
> Öffne einfach die XY-Datei und ändere die Rotation bis es in der
> Vorschau passt.

Danke, das werde ich machen. Das war genau die Frage, ob ich der 
Vorschau trauen kann.

> Deine Daten stimmen eh nie.

Natürlich stimmen meine Daten, ich habe gerade eben zum 100sten mal den 
letzten Fehler rausgemacht ;-)

Es wäre schon ein Wunder, wenn alles auf Anhieb korrekt ist, aber 
zumindest die offensichtlichen Fehler sollten vorher raus.

  Michael

von Jens M. (schuchkleisser)


Lesenswert?

Michael D. schrieb:
> Das war genau die Frage, ob ich der
> Vorschau trauen kann.

Bei der Bestückung ja, bei Gerber nicht unbedingt.
Wobei der Mensch an der Maschine in deinem Fall schon sehr blönd sein 
müsste um das durchgehen zu lassen. Aber ob 1 nun oben oder unten ist 
weiß er nicht.
Wenn die Frage gar nicht erst aufkommt, ist das geklärt.

von Totaler Vollidiot (Gast)


Lesenswert?

Stevven schrieb:
> Ich rotiere nachträglich per Hand so dass es preview passt.

Das ist gewagt!

von Michael D. (nospam2000)


Lesenswert?

beim Suchen hab ich noch diesen Thread gefunden:
https://forum.kicad.info/t/jlcpcb-bom-and-pick-and-place/19016

Und folgenden Blog:
https://dubiouscreations.com/2019/10/21/using-kicad-with-jlcpcb-assembly-service/

Dort ist das Repository https://github.com/matthewlai/JLCKicadTools 
verlinkt wo man ein Script findet, welches die Rotation für bekannte 
Komponenten automatisch anpasst.

In den issues finden sich noch weitere Infos:
https://github.com/matthewlai/JLCKicadTools/issues/28#issuecomment-649177142

Und ein Artikel von JLCPCB dazu: 
https://support.jlcpcb.com/article/99-does-the-red-dot-means-pin-1-in-the-placement-previewer

Ich werde es mal ausprobieren.

  Michael

: Bearbeitet durch User
von Michael D. (nospam2000)


Lesenswert?

Hi,

Mittlerweile sind die bestellten Platinen gekommen, alle Bauelemente 
wurden korrekt bestückt.

Mein Script zum Rotieren der ICs hat alle ICs so rotiert, dass die 
Bestückungs-Vorschau passt, dazu musste ich in meinem Fall alle ICs um 
-90° drehen, das kann aber bei anderen ICs anders sein.

Ob meine Daten jetzt gepasst haben oder ob JLCPCB manuell eingegriffen 
hat, weiß ich nicht.

  Michael

von ;) (Gast)


Lesenswert?

Michael D. schrieb:
> Ob meine Daten jetzt gepasst haben oder ob JLCPCB manuell eingegriffen
> hat, weiß ich nicht.

Dann kannst du ein Reproduktionsproblem bekommen, aber es ist kein 
"muss".
Bist halt dann von anderen abhängig.

Michael D. schrieb:
> 68.503800,-102.28600

Bisschen auffällig finde ich den negativen Wert in den Koordinaten.
Wie ist das zu erklären?

von Michael D. (nospam2000)


Lesenswert?

;) schrieb:
> Michael D. schrieb:
>> 68.503800,-102.28600
>
> Bisschen auffällig finde ich den negativen Wert in den Koordinaten.
> Wie ist das zu erklären?

Das liegt daran, dass ich mit dem Koordinatensystem von KiCad auf dem 
Kriegsfuß stehe und nie verstehe wo der Ursprung liegt. Es steht noch 
auf meiner ToDo Liste mich damit zu befassen.

Das zweite Problem ist, dass ich eine Farbsehschwäche habe und die 
schwachen roten Linien des Rasters und die Ränder des Arbeitsblatts von 
KiKad nicht erkennen kann. Bei World of Tanks gibt es einen ColorBlind 
mode, den hab ich bei KiCad noch nicht gefunden.

Davon abgesehen halte ich es für kontraintuitiv, dass die y-Achse nach 
oben hin abnimmt. Ich würde mir ein "rechtshändiges kartesisches 
Koordinatensystem" 
(https://de.wikipedia.org/wiki/Kartesisches_Koordinatensystem) wünschen 
und den Ursprung so verschiebbar wie ich es gerne hätte.

  Michael

: Bearbeitet durch User
von Bernd W. (berndwiebus) Benutzerseite



Lesenswert?

Hallo Michael.

Michael D. schrieb:

>> Bisschen auffällig finde ich den negativen Wert in den Koordinaten.
>> Wie ist das zu erklären?
>
> Das liegt daran, dass ich mit dem Koordinatensystem von KiCad auf dem
> Kriegsfuß stehe und nie verstehe wo der Ursprung liegt. Es steht noch
> auf meiner ToDo Liste mich damit zu befassen.

Der Ursprung des Hauptkoordinatensystems liegt defaultmäßig links oben 
knapp ausserhalb des Zeichnungsrahmens. Den Ursprung des 
Hilfskoordinatensystems setzt Du mit der Leertaste immer da, wo Du 
meinst, dass es gerade sinnvoll ist.

Die Koordinaten zählen positiv von links nach rechts, aber positiv von 
oben nach unten. Damit orientiert es sich an den bei Canvassystemen in 
Programmiersprachen weit verbreiteten und üblichen Verhältnissen, und 
nicht am den "klassischen" kartesischen Schulmatematik 
Koordinatensystemen.

>
> Das zweite Problem ist, dass ich eine Farbsehschwäche habe und die
> schwachen roten Linien des Rasters und die Ränder des Arbeitsblatts von
> KiKad nicht erkennen kann. Bei World of Tanks gibt es einen ColorBlind
> mode, den hab ich bei KiCad noch nicht gefunden.

Einen "ColorBlind" Modus gibt es in dem Sinne auch nicht, aber in PCBnew 
kannst Du im Lagenmanager vor den Lagen auf das Farbfeld klicken (links 
Doppelklick oder Mittelklick). Es poppt ein Fenster auf, in dem Du eine 
X-Beliebige Farbe wählen kannst. Wenn Du im Fenstermanager oben den 
Reiter "Elemente" wählst, kannst Du auch die Farbe von "Arbeitsblatt" 
(der Zeichnungsrahmen) und "Raster" wählen.
Siehe Anhang "PCBnew_FarbaenderungZeichnungsrahmen.jpg"

> Davon abgesehen halte ich es für kontraintuitiv, dass die y-Achse nach
> oben hin abnimmt. Ich würde mir ein "rechtshändiges kartesisches
> Koordinatensystem"
> (https://de.wikipedia.org/wiki/Kartesisches_Koordinatensystem) wünschen

Das geht z.Z. noch nicht, ausser Du schreibst Dir ein Plugin.

> und den Ursprung so verschiebbar wie ich es gerne hätte.

Du hast zwei mögliche Hilfskoordinatensysteme zusätzlich zum 
Hauptkoordinatensystem.


1) Das "schnelle" um schnell mal was auszumessen oder eine Position fest 
zu legen. Das wird Dir am unteren Rand von PCBnew auch angezeigt, und Du 
kannst es mit der Leertaste am aktuellen Cursorpunkt zu Null setzten.
Dieses Hilfskoordinatensystem ist ungemein praktisch, und ich kann immer 
nur raten, es zu benutzten. Wie auch das parametrische Plazieren.
Siehe dazu "PCBnew_HauptUndHilfskoordinatensystem.jpg"

2) Ein extra Plotthilfskoordinatensystem nur für das Plotten. Dessen 
Ursprung setzt Du mit dem untersten Button aus der rechten Buttonleiste 
in PCBnew. Wenn Du dann Gerber oder Bohrdaten plottest, kannst Du dort 
"Verwende Hilfsachsen als Ursprungsort". Das ist aber nur im Notfall 
nötig. Wenn Du das Bedürfnis hast, das machen zu müssen, überlege 
dreimal ob das wirklich nötig ist. In 99,99% aller Fälle ist es nicht 
nötig, und Du stiftest nur Chaos.
Siehe dazu im Anhang "PCBnew_Plotkoordinatensystem_Setzen.jpg"

Mit freundlichem Gruß: Bernd Wiebus alias dl1eic
http://www.l02.de

: Bearbeitet durch User
von Michael D. (nospam2000)


Lesenswert?

Hallo Bernd,

Bernd W. schrieb:
> Der Ursprung des Hauptkoordinatensystems liegt defaultmäßig links oben
> knapp ausserhalb des Zeichnungsrahmens.

Ich hatte mein Board mal so hingeschoben, dass die linke untere Ecke auf 
0,0 lag. Daher sind alle y-Werte negativ. So hat wenigstens der Betrag 
gestimmt.

> Die Koordinaten zählen positiv von links nach rechts, aber positiv von
> oben nach unten. Damit orientiert es sich an den bei Canvassystemen in
> Programmiersprachen weit verbreiteten und üblichen Verhältnissen

Es orientiert sich an dem was der Programmierer kennt, aber nicht an der 
Domain Welt des Anwenders ;-)
Wenn man zwischen Gehäuse in CAD und PCBNew hin und her wechselt, ist 
das unterschiedliche Koordinatensystem ohne gemeinsamem Bezugspunkt 
verwirrend.

Ich habe meine Platinen jetzt komplett bemaßt. Mit einem einheitlichen 
Koordinatensystem hätte es mir gereicht die Maße aus der Status Bar bzw. 
dem Property Dialog abzulesen.

> Einen "ColorBlind" Modus gibt es in dem Sinne auch nicht, aber in PCBnew
> kannst Du im Lagenmanager vor den Lagen auf das Farbfeld klicken

Das hatte ich im Tools und in View Menu gesucht. Auf die Idee, dass ich 
dort in der Leiste clicken kann, bin ich nicht gekommen, ich habe immer 
nur die Checkboxen zum Ein-/Ausschalten wahrgenommen.

Vielen Dank für die Aufklärung!

  Michael

von Bernd W. (berndwiebus) Benutzerseite


Lesenswert?

Hallo Michael.

Michael D. schrieb:

>> Der Ursprung des Hauptkoordinatensystems liegt defaultmäßig links oben
>> knapp ausserhalb des Zeichnungsrahmens.
>
> Ich hatte mein Board mal so hingeschoben, dass die linke untere Ecke auf
> 0,0 lag. Daher sind alle y-Werte negativ. So hat wenigstens der Betrag
> gestimmt.

Wenn Du im (default) Zeichnungsrahmen bleibst, sollten alle Koordinaten 
per default positiv sein.

> Ich habe meine Platinen jetzt komplett bemaßt. Mit einem einheitlichen
> Koordinatensystem hätte es mir gereicht die Maße aus der Status Bar bzw.
> dem Property Dialog abzulesen.

Komisch. Den Status Bar kennst Du.... Zum Abstände bestimmen siehe hier: 
Beitrag "Re: KiCad: Abstände präzis ermitteln"

Wenn Du eine neuere Testing Version hast, könnte das natürlich anders 
sein.

Mieine KiCad-Version:
Application: Pcbnew
Version: 5.1.6+dfsg1-1~bpo10+1, release build
Libraries:
    wxWidgets 3.0.4
    libcurl/7.64.0 OpenSSL/1.1.1d zlib/1.2.11 libidn2/2.0.5 
libpsl/0.20.2 (+libidn2/2.0.5) libssh2/1.8.0 nghttp2/1.36.0 librtmp/2.3
Platform: Linux 4.19.0-13-686-pae i686, 32 bit, Little endian, wxGTK


Mit freundlichem Gruß: Bernd Wiebus alias dl1eic
http://www.l02.de

: Bearbeitet durch User
von Ing-Dom (Firma: OpenKNX) (sirsydom)


Lesenswert?

Bezüglich der Drehung der ICs.
Hatte auch so einen Fall, da meinte ich alles richtig gemacht zu haben, 
ich hab sogar die Ausrichtung der ICs im Tape herausgefunden und 
eigentlich hatte ich alles richtig. Trotzdem zeigte der Preview es 
falsch an.
Trotzdem so bestellt:
Mail, ob es gedreht werden soll. Ja, bitte, Pin 1 soll da sein wo das 
Marking am Silkscreen ist. Kamen korrekt an.
Die nächsten Bestellungen habe ich dann so manipuliert, dass der Preview 
gepasst hat. Da kamen dann keine Rückfrgen mehr und alles kam korrekt 
an.
Wichtig ist ein guter Silkscreen, da schaut ja immer nochmal einer 
drüber und prüft die Rotation.

von Jens M. (schuchkleisser)


Lesenswert?

Die Lage der Teile im Tape hat nichts mit der Ausrichtung auf dem PCB 
oder dem für die Bestückung anzugebenden Winkel zu tun.

Sie wird rein danach entschieden, welches Band wirtschaftlicher ist.
Meist wird ein kurzes breites Band bevorzugt, weil man damit weniger 
Rollen wechseln muss, was weniger Handarbeit bedeutet, aber es gibt 
Teile, die es alternativ auf einem schmalen langen Tape gibt, manche 
Transistoren kann man sogar in allen 4 möglichen Richtungen kaufen, 
damit die Maschine schneller bestücken kann, weil sie nicht drehen muss. 
Oder weil mit schmalem Tape mehr Feeder auf die Maschine passen.
Daher wird der Aufnahmewinkel beim Rüsten eingestellt, und zwar so das 
er zur programmierten Bauteillage für die Bauteilvermessung passt.
Erst danach erfolgt die Drehung in die Bestücklage, und die Angabe ist 
immer absolut, wird von der Maschine aber in eine relative umgerechnet, 
weil die Erkennungsposition und die 0°-Position nicht zwangsläufig 
identisch sind.

von Michael D. (nospam2000)


Lesenswert?

Jens M. schrieb:
> Die Lage der Teile im Tape hat nichts mit der Ausrichtung auf dem PCB
> oder dem für die Bestückung anzugebenden Winkel zu tun.

Ich verstehe nur nicht, warum man sich nicht auf eine normierte Angabe 
der Drehung auf den PCBs einigt.

Der Bestücker muss dann nur noch wissen, wie das Tape von der normierten 
Drehung für diesen Bauteiltyp (bzw. Footprint Typ) abweicht, d.h. das 
Tape bräuchte diese Kennung.

Die Verantwortung würde dann vom Kunden zum Fertiger übergehen.

Vielleicht hat das ja was mit Tradition zu tun.

 Michael

von P. S. (namnyef)


Lesenswert?

Im Grunde ist es egal wie man seine Bauteile rotiert. Man sollte aber 
wenigstens ein einheitliches Vorgehen verwenden.
Denn jeder Bestücker wird die Pick&Place-Daten nochmal manuell 
bearbeiten. Es gibt nämlich schlicht nicht den einen Standard. Selbst 
von IPC gibt es zwei Varianten zur 0°-Lage eines Bauteils. Und zur 
Rotation von Bauteilen auf der Unterseite ist mir gar kein Standard 
bekannt. Das hängt nur davon ab wie das CAD-Tool das handhabt.

Ich würde nicht die eigenen Daten so hin drehen, damit irgendeine 
Preview passt. Die eigenen Daten sollten halt plausibel und eindeutig 
sein. Beim nachträglichen Bearbeiten besteht immer die Gefahr, dass die 
Daten widersprüchlich oder unplausibel werden. Und dann ist die 
Verwirrung beim Bestücker erst recht groß und das Potential für Fehler 
nimmt zu.

von Mathias (Gast)


Lesenswert?

Ich nehm auch die JLCKicadTools um die ICs so zu drehen, dass die 
Preview stimmt. Hatte da auch nie nachfragen und es hat immer gestimmt. 
Ist aber irgendwie umständlich, da verschiedene ICs verschiedene 
rotationen brauchen und man dann immer hin und herklicken muss.

Der Standard müsste nicht "Mittelpunkt+Rotation" sondern "Mittelpunkt + 
Punkt von Pin1" sein. Das wäre dann absolut klar, wie man das zu 
verstehen hat.

von Michael A. (debianfan)


Lesenswert?

KiCad richtet die Drehungen IPC-7351-konform ein, während bei JLCPCB 0° 
der Winkel ist, in dem die Teile vom Band kommen.
Wenn man ICs um -90° und Transistoren um 180° dreht, passt es in der 
Regel für JLCPCB.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.