mikrocontroller.net

Forum: Platinen PCB Ringform und ~1000 Komponenten


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
Autor: Phil G. (phil333)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo an alle!

Ich möchte eine Platine in Ringform erstellen auf die SMD-LEDs platziert 
werden sollen.
Auf dieser Platine sollen 800-1000 LEDs drauf.

Mein Problem ist jetzt, dass ich zum Einen noch nie eine ringförige 
Platine erstellt habe und es zum Anderen auch SEHR viele SMD-LEDs sind.

Daher würde ich gerne mal von den erfahrenen Benutzern unter euch 
wissen, wie ihr so etwas angehen würdet?

Zum Einen wäre da die Frage, wie man so viele Bauteile platziert (gibt 
es da etwas, das man vorgeben kann und es wird dann grob automatisch 
platziert?) und wie es vom workflow am sinnvollsten ist.

Alle LEDs einzeln zu setzen würde sicherlich Tage dauern - und wenn dann 
doch noch was geändert werden muss, dann war das alles umsonst.

Ich habe bisher etwas Erfahrung mit EAGLE, muss aber KiCad verwenden und 
kenne mich da kaum aus (abgsehen davon, wäre ich aber bei EAGLE auch bei 
so einem board überfragt).
Ich weiß auch nicht mal, wie man Komponenten in KiCad rotiert (außer in 
90° Schritten mit "r").

Vielen lieben Dank!

Autor: Christian B. (luckyfu)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ringförmig ist erstmal kein Problem. Viele Layoutprogramme unterstützen 
Polarkoordinatensysteme. Einige (Altium z.B.) richten die Bauteile 
entsprechend automatisch aus...

Was genau ist dein Problem dabei?

Autor: Runterholer C++ (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Du kannst Eagle in KiCad importieren. Somit kannst du Eagle weiter 
nutzen.

Autor: Holle (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Moin Moin,

ich war auch mal in der Situation und dieser freundliche Inder hat's mir 
erklärt:

Youtube-Video "Circular LED placement in Eagle PCB"

;)

Das kannst Du dann in Eagle machen und später nach KiCAD exportieren...

Autor: flip (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
kicad unterstützt auch python scripting. Wie wäre es, den ring in n 
teilstücke aufzuteilen, die sich auch besser handlen und nesten lassen 
und dann ein batch bei einem dienstleister bestücken zu lassen? bei 10 
teilstücken wird das nicht mehr als 100$ /ring kosten,  bei höheren 
mengen so maximal 25$

Autor: Falk B. (falk)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Phil G. schrieb:

> Alle LEDs einzeln zu setzen würde sicherlich Tage dauern - und wenn dann
> doch noch was geändert werden muss, dann war das alles umsonst.

Dann sollte man VORHER gut überlegen und ein paar Tests mit nur wenigen 
LEDs machen.

Eagle hat ein ULP namens cmd_draw.ulp, damit kann man Bauteile 
kreisförmig anordnen.

Autor: Phil G. (phil333)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke erstmal für eure Beiträge!

Aktuell ist aber mein Problem, dass ich keine EAGLE Lizenz an dem 
Rechner habe.
Daher wäre es gut, wenn es irgendwie über KiCad machbar wäre.

Autor: mukel (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Dann ist dein stichwort python skripting, einfach mal googlen. Dann 
kannst du die Bauteile einfach parametrisch setzten. und durch ändern 
des skriptes alle leds in sekunden neu setzten.

Autor: Stefan S. (chiefeinherjar)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
https://forum.kicad.info/t/python-scripting-example-studio-clock/5387

Das wäre ein erster Ansatz für ein Python-Script.

Autor: Mampf F. (mampf) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Phil G. schrieb:
> Mein Problem ist jetzt, dass ich zum Einen noch nie eine ringförige
> Platine erstellt habe und es zum Anderen auch SEHR viele SMD-LEDs sind.
>
> Daher würde ich gerne mal von den erfahrenen Benutzern unter euch
> wissen, wie ihr so etwas angehen würdet?

KiCad verwenden und mit einem Python-Script oder mit einem Bash-Script 
die Platzierung erledigen.

ULP in Eagle kann es vmtl auch.

Autor: Bernd W. (berndwiebus) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Phil.

Phil G. schrieb:

>
> Ich habe bisher etwas Erfahrung mit EAGLE, muss aber KiCad verwenden und
> kenne mich da kaum aus (abgsehen davon, wäre ich aber bei EAGLE auch bei
> so einem board überfragt).

1. Ansatz:
In KiCad einen Footprint plazieren, Mit rechter Maustaste anklicken, 
ev. Feinauswahl des Footprints > " Array erstellen " wählen. Es popt 
ein Fenster auf, dort den Reiter "Kreisarray" wählen.

2. Ansatz:
Für kompliziertere Fälle ein Python Skript erstellen, wie oben genannt.

> Ich weiß auch nicht mal, wie man Komponenten in KiCad rotiert (außer in
> 90° Schritten mit "r").

Footprint mit rechter Maustaste anklicken,  ev. Feinauswahl des 
Footprints > " Parameter editieren " wählen. Es popt ein Fenster auf, 
dort können vier verschiedene Winkelpositionen direkt gewählt werden und 
zusätzlich in einem Feld eine beliebige Winkelposition eingetragen 
werden.

Du kennst https://www.mikrocontroller.net/articles/KiCad?

Viel Erfolg!

Mit freundlichen Grüßen: Bernd Wiebus alias dl1eic
http://www.dl0dg.de

Autor: Phil G. (phil333)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Vielen Dank für die bisherigen Beiträge!

Da ich kein python kann, würde ich das gerne erstmal hinten anstellen.

Danke @berndwiebus für diesen Alternativweg.
Ich hab das mal ausprobiert und mir auch deinen Link angeschaut :)

Momentan habe ich in meinem Schaltplan ein ratsnest von ~1184 
Komponenten.
Jeweils 7 LEDs in Reihe mit einem Vorwiderstand und das 184 mal parallel 
geschaltet.

Kann ich dieses ratsnest irgendwie automatisch außeinander ziehen 
lassen?
Alle Reihenschaltungen manuell zu sortieren würde ja Tage dauern.
Laut Anleitung sollte das mit "Mode footprint" gehen, aber in v5.1.2 
gibts das nicht mehr, bzw. ist nicht auffindbar für mich.
(Oder soll ich nur eine Reihenschaltung im Schaltplan machen und dann 
dieses ratsnest im PCB Layout dublizieren?)

Bei dem circular array muss ich die Komponenten auswählen, die 
angeordnet werden sollen.
Wenn ich das mache, werden diese so oft kopiert, wie die Zahl, die bei 
"count/Anzahl" eingegeben wurde.
Das ist etwas seltsam - es entstehen damit ja mehr Komponenten, als im 
Schaltplan sind.
Ich dachte ich mache den Schaltplan und muss dann die netlist speichern, 
um sie im PCB Layout Editor zu laden und dann alles anzuordnen.

Außerdem sollen die LEDs in mehreren Kreisbahnen angeordnet werden (auf 
der Ring-Platine).
Das bedeutet auch, dass ich auf den Außenbahnen mehr LEDs haben muss 
(aus Platzgründen und wegen einer homogeneren Ausleuchtung) als auf den 
kürzeren Innenbahnen.
Mit dem Circular Array Tool werden die Komponenten allerdings mit 
gleichem Winkel vom Zentrum aus, Kreisförmig angeordnet.
Daher wären später auf den inneren Kreisbahnen zu viele LEDs (zu wenig 
Platz) und außen zu wenige.
Hast du dafür eventuell auch eine Idee?

Ich kann übrigens seltsamerweise beim "Radius" keinen Wert eingeben.
Der ist in meinem Falle schon mit 362,54...mm vorgegeben.
So groß soll es aber gar nicht werden.

Für jeden Tipp und Hilfe bin ich dankbar!

: Bearbeitet durch User
Autor: Bernd W. (berndwiebus) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Phil.

Auf die schnelle aus der Frühstückspause....

Phil G. schrieb:

>
> Da ich kein python kann, würde ich das gerne erstmal hinten anstellen.
>

Nun, Python ist meines erachtens die am allereinfachsten zu erlernende 
Programiersprache.

> Danke @berndwiebus für diesen Alternativweg.
> Ich hab das mal ausprobiert und mir auch deinen Link angeschaut :)
>
> Momentan habe ich in meinem Schaltplan ein ratsnest von ~1184
> Komponenten.
> Jeweils 7 LEDs in Reihe mit einem Vorwiderstand und das 184 mal parallel
> geschaltet.
>
> Kann ich dieses ratsnest irgendwie automatisch außeinander ziehen
> lassen?


> Alle Reihenschaltungen manuell zu sortieren würde ja Tage dauern.
> Laut Anleitung sollte das mit "Mode footprint" gehen, aber in v5.1.2
> gibts das nicht mehr, bzw. ist nicht auffindbar für mich.
> (Oder soll ich nur eine Reihenschaltung im Schaltplan machen und dann
> dieses ratsnest im PCB Layout dublizieren?)

Das mit den unterschiedlichen versionen, die sich Unterschiedlich 
Verhalten liegt eventuell daran, dass es auch verschiedene Grafikmodi 
gibt, die sich unterschiedlich verhalten. Da ist noch viel in 
Umstellung.
Darum probier mal unter "Einstellungen" die dort auswählbaren 
Grafikmodi.
(geht auch mit <F9>, <F11> und <F12>).

> Bei dem circular array muss ich die Komponenten auswählen, die
> angeordnet werden sollen.
> Wenn ich das mache, werden diese so oft kopiert, wie die Zahl, die bei
> "count/Anzahl" eingegeben wurde.
> Das ist etwas seltsam - es entstehen damit ja mehr Komponenten, als im
> Schaltplan sind.
> Ich dachte ich mache den Schaltplan und muss dann die netlist speichern,
> um sie im PCB Layout Editor zu laden und dann alles anzuordnen.

Es bleibt das Problem des Löschens der alten "originale" bzw dass 
passende Umbenennen der neuen Bauteile.

>
> Außerdem sollen die LEDs in mehreren Kreisbahnen angeordnet werden (auf
> der Ring-Platine).
> Das bedeutet auch, dass ich auf den Außenbahnen mehr LEDs haben muss
> (aus Platzgründen und wegen einer homogeneren Ausleuchtung) als auf den
> kürzeren Innenbahnen.
> Mit dem Circular Array Tool werden die Komponenten allerdings mit
> gleichem Winkel vom Zentrum aus, Kreisförmig angeordnet.
> Daher wären später auf den inneren Kreisbahnen zu viele LEDs (zu wenig
> Platz) und außen zu wenige.
> Hast du dafür eventuell auch eine Idee?

Einen "Spezialfootprint machen, der zig LEDs enthält, so dass Du dadurch 
größere Gruppen von LEDs anordenen kannst?

Unterschaltpläne aus mehreren LEDs machen, denen Du separate Boardfiles 
zuweist, die Du später zusammengruppierst? Das Umbenennproblem bleibt 
aber bestehen.

>
> Ich kann übrigens seltsamerweise beim "Radius" keinen Wert eingeben.
> Der ist in meinem Falle schon mit 362,54...mm vorgegeben.
> So groß soll es aber gar nicht werden.

Ich hänge zu Hause auf einer alten 4er und einer alten 5er 
Experimentierversion herum. Die Bedienung ist möglicherweise anders....
Oder Deine Version hat einen Bug.

Pause rum. ;O)

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

Autor: Ich liebe Schmarotzer (Gast)
Datum:

Bewertung
-2 lesenswert
nicht lesenswert
Phil G. schrieb:
> Aktuell ist aber mein Problem, dass ich keine EAGLE Lizenz an dem
> Rechner habe.

Dann wechsel den Rechner. Oder kauf dir eine weitere Lizenz.

Phil G. schrieb:
> Da ich kein python kann, würde ich das gerne erstmal hinten anstellen.

Kicad ist open source. Du kannst fehlende Funktionen hinzuprogrammieren. 
Vermutlich in C++, dann brauchst du kein Python.

Ach, C++ kannst du auch nicht? Und von Elektronik verstehst du auch 
nichts? Wenn du möchtest, dass wir dir die Schaltung entwerfen, routen, 
1000x fertigen lassen und dann dir schenken, dann schreib das von Anfang 
an, so dass wir zielgerichtet helfen können.

Autor: Christian B. (luckyfu)
Datum:

Bewertung
1 lesenswert
nicht lesenswert
Ich liebe Schmarotzer schrieb:
> Ach, C++ kannst du auch nicht? Und von Elektronik verstehst du auch
> nichts? Wenn du möchtest, dass wir dir die Schaltung entwerfen, routen,
> 1000x fertigen lassen und dann dir schenken, dann schreib das von Anfang
> an, so dass wir zielgerichtet helfen können.

Na, nun übertreib mal nicht. Er schreibt nirgends, daß er Hilfe dafür 
brauch. er moniert nur, daß es recht lange dauern würde (was ja 
nachvollziehbar ist) So lang, wie er aber schätzt ist es dann doch auch 
wieder nicht. Evtl zeichnet man sich einfach erstmal das benötigte 
Placement in einem anderen CAD programm und exportiert die DXF Datei. 
Diese kann dann wieder in fast allen Layoutprogrammen geladen werden. 
Damit hat man seine Fangpunkte. Der Rest ist Fleißarbeit. Die 
Ausrichtung des Winkels sollte hier ebenfalls wurst sein, man muss also 
nicht so sehr darauf achten, esseidenn, man hat ästhetischen Anspruch an 
seine Platine. (aber wer hat den nicht?)
Ich schätze, daß das allenfalls 2 Tage dauert (incl. Erstellung der 
"Plazierungshilfe" Allein 1000 LEDs auf 2 7h Tage aufgeteilt würde das 
einer notwendigen Geschwindigkeit von ca. 71LEDs pro h entsprechen. Das 
sollte nun wirklich machbar sein.). Natürlich ist das Mühsam aber wenn 
man exklusives haben will muss man auch etwas investieren. In dem Fall 
Zeit.

: Bearbeitet durch User
Autor: Bernd W. (berndwiebus) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Phil.

Phil G. schrieb:
> Momentan habe ich in meinem Schaltplan ein ratsnest von ~1184
> Komponenten.
> Jeweils 7 LEDs in Reihe mit einem Vorwiderstand und das 184 mal parallel
> geschaltet.

184 mal 7 LEDs sind 1288 LEDs. Plus 184 Vorwiderstände macht 1472 
Bauteile.

Keine Ahnung, was für LEDs Du hast, aber es könnte dabei eine erhebliche 
Leistung zusammenkommen, die natürlich auch erhebliche Verlustleistung 
bedeutet. Du könntest Dir ein Kühlungsproblem einhandeln. Vor allem, 
wenn Du Die LEDs zu dicht zusammen montierst.

Eine mir vorliegende LED Lampe verteilt darum die LEDs relativ weit auf 
einem relativ dicken Aluuntergrund.

32 LEDs (Nach Typenschild 22W Leistungsaufnahme für die gesamte Lampe), 
sind auf einer 120mm x 120mm großen Platine mit Alukern verteilt, die 
ganzflächig auf den Aluminiumrumpf der Lampe geklebt ist. Der 
Aluminiumrumpf der Lampe ist aber wesentlich größer, Durchmesser ca 
270mm. Laut Typenschild für eine maximale Umgebungstemperatur von 30°C. 
Ok, Vorschaltnetzteil ist auch noch dabei.

Vieleicht könntest Du aus diesen Daten den Flächenbedarf Deiner 1288 
LEDs abschätzen. Und Dabei könntest Du an eine Obergrenze von Platinen 
stossen, die (problemlos) in einer Fabrik hergestellt werden können.
Ruwel gab mal 2013(?) als "Arbeitsplattenformat" 613x610mm an, wovon 
aber nur  578x581mm als "aktive" Fläche genutzt werden konnten.

Die Tafeln sind aber noch größer:
Leiterplattenformate:

Herstellung:
1165mm x 1070mm Europa-format
1225mm x 1070mm Uni-Format
1225mm x 925mm   US-Format
1285mm x 1070mm Italo-Format

Üblich zur Verarbeitungen sind aber Unterteilungen dieser Formate in 
Arbeitsplatten, z.B. Uni-Format geviertelt (+Schnittrest): 640mm x 530mm


Nur so zur Abschätzung der Randbedingungen.

Idee:

Daher könnte es sinnvoll sein, Deine komplette Fläche in Kreissegmente 
zu zerlegen, und diese dann noch einmal in innere und äßere Bereiche 
aufzuteilen.
Du hättest Dann halt nicht eine fast nicht herstellbare Riesenplatine, 
sondern kleinere Platinen als sektorförmige Kacheln, die fast alle 
gleich sind, und aus denen Du die Gesamtfläche zusammensetzt. Diese ein 
oder zwei Typen von Kacheln enthalten dann deutlich weniger LEDs, und 
Dein Problem ist zumindest teilweise kleingeschnitten.

Auch wenn Du wesentlich leistungsschwächer bist, und mit einer kleineren
Fläche auskommst, das Unterteilen erleichtert Dir trozdem die 
Positionierarbeit.


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

: Bearbeitet durch User

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.