autorouting met kicad


buckfast_beekeeper

Golden Member

Gebruik gewoon geen autorouter. Begin met de power en gnd.

De printjes die hier verschijnen, gemaakt met de autoroute functie haal je er (bijna) altijd zo uit.

Van Lambiek wordt goede geuze gemaakt.

Ik gebruik de autorouter ook zelden: kans op een fatsoenlijke layout is vrij klein, met de hand is het veel mooier te routen.
Ik gebruik 'm soms alleen als 'opzet'. Ik doe dan een eerste routing met de autorouter, nadat ik de powerplanes heb geplaatst.
Daarna ga ik handmatig de spoortjes 'goedleggen'.

Tot nu toe heb ik alleen van de hele dure paketten een goede print uit de autorouter zien rollen...

Arco - "Simplicity is a prerequisite for reliability" - hard en software ontwikkeling: www.arcovox.com
Thevel

Golden Member

In de laatste versies van KiCad zit volgens mij geen aotorouter meer.
Je kan hem wel "toevoegen" hoe dat moet geen idee, ik gebruik ook nooit een aotorouter.

Een TomTom is ook een autorouter... ;)

Arco - "Simplicity is a prerequisite for reliability" - hard en software ontwikkeling: www.arcovox.com

uit interesse:

zijn die autorouters in pakweg Eagle, kicad,... dan zo beroerd dat niemand ze gebruikt?

Wat heet beroerd: alles komt (met wat geluk) aan elkaar te zitten...
Alleen is dat vaak niet de mooiste en/of efficientste routing (een autorouter doet nu eenmaal niet aan 'mooi')

Arco - "Simplicity is a prerequisite for reliability" - hard en software ontwikkeling: www.arcovox.com
EricP

mét CE

Beroerd is denk ik niet het goede woord. Het kost best een hoop tijd om de autorouter van alle info te voorzien die nodig is om er wat leuks van te maken. De afweging is dan wat meer tijd kost: handmatig routen of de autorouter temmen.

Denk bijvoorbeeld aan power. Sommige tracks voeren meer stroom dan anderen. Regelmatig zul je daar bij de routing wat mee moeten. Je kunt het allemaal opgeven. Als ik handmatig routeer, dan weet ik doorgaans wel wat 'zwaar belast' is en wat niet. Dan komt het zonder nadenken goed.
Een andere: een high-speed bus. Wellicht moet je wat met looptijden. Dingen bij elkaar houden. Geen (of zo min mogelijk...) via's.
Gevoelig spul: wellicht wil je dat uit de buurt houden bij ander spul.

Het kan vast allemaal. Voor 'grote' PCBs loont het ongetwijfeld om de autorouter te temmen. Maar voor een eurokaart max. 2 layer is het doorgaans de moeite niet waard.

buckfast_beekeeper

Golden Member

Net wat EricP al zegt. Het temmen kost tijd. Per trace ga je een level moeten toekennen. Dat level hangt dan weer samen met de breedte. Ingeven hoeveel via's, aantal pogingen tot routen en wat nog meer. Ik heb in het verleden Eagle professional altijd gehad zonder autorouter.

Een autorouter gaat ook niet de meest gunstige layout maken. Hij blijft met trial en error proberen alles aan elkaar te knopen. Zijn alle airwire weg, dan is de autorouter heel content en stopt die er mee. Op dat ogenblik ga ik toch nog eens bekijken of er bepaalde baantjes niet netter kunnen gelegd.

Van Lambiek wordt goede geuze gemaakt.

Op 20 april 2021 12:47:32 schreef Arco:
Wat heet beroerd: alles komt (met wat geluk) aan elkaar te zitten...
Alleen is dat vaak niet de mooiste en/of efficientste routing (een autorouter doet nu eenmaal niet aan 'mooi')

Wat ik "mooi" vind is dat als een haakse bocht in m'n spoortje een vierkant omsluit waar geen andere sporen binnen de helft het dichtst bij de originele haakse bocht bevat, dat dan de shortcut over de diagonaal genomen wordt...

Dat is een post-processing stap die helemaal niet moeilijk is om te programmeren, maar de eagle autorouter doet het in ieder geval niet....

En stel je optimaliseert voor ieder spoortje: "rechtdoor (haaks) kost 9" andere haakse richtingen kosten 10, diagonaal kost 14, en dat vierkant van hierboven had een zijde van 10, dan kost diagonaal oversteken maar 131, terwijl de haakse bocht 181 heeft gekost.

(1 korting voor "rechtdoor" zodat ie ook nog de neiging heeft om nodeloze bochten te voorkomen.)

Dit laatste met "kosten" is hoe autorouters werken. Nu wil je eigenlijk "globaal" alle kosten optimaliseren, maar het totale aantal mogelijke "alle spoortjes" is zo enorm groot dat dit niet haalbaar is, dus worden de spoortjes 1 voor 1 gelegd, en wordt er gezocht naar een oplossing als je vastloopt. Dus als je bijvoorbeeld eerst spoortje 1 en 3 hebt gelegd, maar zodanig dat spoortje 2 er niet meer tussen kan liggen (wij mensen zien dat in een oogopslag, een computer niet). dan loopt ie vast bij spoortje twee en kan ie beslissen: ik pleur spoortje 3 even weg, leg dan spoortje 2, en probeer vervolgens 3 opnieuw.

four NANDS do make a NOR . Kijk ook eens in onze shop: http://www.bitwizard.nl/shop/

Veel autorouters hebben ook niet de mogelijkheid om bepaalde handgeroute sporen 'vast' te zetten jammer genoeg.
(m.a.w: "autorouter, hier mag je niet aankomen" ;) )

Arco - "Simplicity is a prerequisite for reliability" - hard en software ontwikkeling: www.arcovox.com

KiCAD heeft tegenwoordig wel een interactieve router die standaard geïmplementeerd is die een deel van het probleem oplost. Je kunt hem ook instellen om andere traces uit de weg te duwen:

Dan krijg je zoiets als dit:

Je kunt ook instellen dat hij niets verandert en alleen de problematische traces toont of een omweg probeert te vinden, maar dat vind ik vrij vervelend. Hij gaat dan nogal lopen "springen" tussen allemaal "net niet" oplossingen.

Nee, het is geen echte autorouter, maar als je de sporen op volgorde van relevantie legt lost dat al een hoop op met deze router.

Nou ben ik op zich wel voorstander van gezelligheid maar ik dacht, hee, laat ik eens antwoord geven op de vraag.

Waarschijnlijk gebruikt TS Kicad 5. De autorouter zit daar niet in ingebouwd, deze moet apart worden geinstalleerd.

De autorouter heet FreeRouting, een java applicatie (--> indien nodig de java runtime engine installeren). Deze komt als een file, bijvoorbeeld freeroute_pack.jar .

Vanuit PCBnew moet je met File/Export/Specctra een .DSN file exporteren.
Na de routing moet die sessie weer terug geimporteerd worden (File/Import/Specctra Session).

Met wat googlen kom je er vast wel uit, er zijn veel tutorials/videos over.

https://freerouting.org/freerouting/using-with-kicad

eSe

Honourable Member

Zoals @kojazz zegt, exporteren naar .DSN bestand door Freerouting jagen en terug inlezen. Je kan in Freerouting weer een zillioen instellingen wijzigen om het spul te versnellen, mooier te maken, minder/meer via's...

Ik gebruik het enkel om een eerste indicatie te krijgen, ik doe het altijd 'met de hand'. Opstelling: eerst de connectoren en andere externe aansluitingen, dan de onderdelen plaatsen met behulp van 'ratsnest'. Veel mooier, minder via's. Het duurt alleen wat langer, maar ik doe dat graag, lijkt wat op puzzelen :-)

Groetjes,
eSe

Het jammerlijkste aspect van het leven nu is dat de wetenschap sneller kennis vergaart dan de maatschappij wijsheid. Asimov, Isaac

Je hebt ze ook nog met Autoplace en Autoroute, da's helemaal een droevige boel...
(je onderdelen staan dan niet waar je ze hebben wilt, en de baantjes ook niet... ;) )

Arco - "Simplicity is a prerequisite for reliability" - hard en software ontwikkeling: www.arcovox.com

Ik ben ook geen fan van een autorouter, vrijwel altijd een hele rommelige layout en niet wat je wilt. Dus zoals de meeste zeggen: Lekker handmatig routen.

Ik ben ook eens bezig geweest powersporen van spoordiktes te voorzien: Bij SMD een drama en werkt ook niet zonder gebeten te worden door de DRC. Kortom laat ook maar op de default trace breedte staan en pas de dikte van het spoor aan op de plaatsen waar je het nodig hebt.
Waarom gaat het mis: Pads van SMD componenten zijn vaak kleiner dan de trace breedte van de voeding die je wilt gebruiken. Grote kans op tombstoning als je dan er een dik spoor overheen legt. Ook bij fijnere pitch ICs past het spoor nog niet eens tussen de pootjes. Je bent dan vaker bezig met sporen te versmallen dan met het "opdikken" van sporen daar waar het kan.

Henri's Law 1: De wet van behoud van ellende. Law 2: Ellende komt nooit alleen.
bprosman

Golden Member

Kwam deze tegen in de JLCPCB groep, dit lijkt me echt een "Autoroute gedrocht".

De jongere generatie loopt veel te vaak zijn PIC achterna.
buckfast_beekeeper

Golden Member

Daar mag je bijna zeker van zijn. Meerdere zaken die er op wijzen. Spoortje niet net tussen 2 ic pennen is er al 1-tje van. Ook C9 en de baantjes tussen de connector links van C9 zijn stille getuigen.

Van Lambiek wordt goede geuze gemaakt.
bprosman

Golden Member

Op 21 april 2021 15:12:46 schreef buckfast_beekeeper:
Daar mag je bijna zeker van zijn. Meerdere zaken die er op wijzen. Spoortje niet net tussen 2 ic pennen is er al 1-tje van. Ook C9 en de baantjes tussen de connector links van C9 zijn stille getuigen.

Inderdaad bevestigd door de maker.

De jongere generatie loopt veel te vaak zijn PIC achterna.
ritmeester

Golden Member

Toch heb ik hier wel een opmerking over:

Ik maak gebruik van Eagle 7.7 en ELECTRA Shape-Based Autorouting.

Deze autorouter is echt heel efficiënt en doet precies wat jij wilt.
Het maakt gebruik van de .dru file en de net classes in het schema. (in dit geval Eagle)

Als je eenmaal een .dru file hebt gemaakt wat volgens jouw de specificaties moet bevatten voor jouw board en de net classes hebt ingesteld in het schema dan draai je een bijgeleverde .ulp en importeert de output (een .dsn file) in ELECTRA)

Je krijgt dan wat opties te zien hoe de routing aan de bovenkant en onderkant moet verlopen en druk op Run. In no-time is je routing klaar. Lukt dit niet omdat je .dru file en net classes ELECTRA geen mogelijkheid geven om door pads een trace te leggen dan gaat of deze eromheen of geeft aan dat het niet te routen is met deze vooraf opgegeven instellingen.

Dit is echt een professionele autorouter maar heeft behoefte aan goed gepositioneerde onderdelen die voldoen aan de .dru file en de net classes.

Als alles goed gepositioneerd is volgens de .dru file en de net classes dan krijg je echt de meest mooie en beste routing.

Natuurlijk kun je ook nog eerst handmatig wat traces leggen als je dat wilt voordat je ELECTRA gaat gebruiken.

I love it when a plan comes together !
buckfast_beekeeper

Golden Member

En dan kom je weer bij EricP zijn opmerking terecht.

Op 20 april 2021 13:04:31 schreef EricP:
Beroerd is denk ik niet het goede woord. Het kost best een hoop tijd om de autorouter van alle info te voorzien die nodig is om er wat leuks van te maken. De afweging is dan wat meer tijd kost: handmatig routen of de autorouter temmen.
[...]

Net classes koppelen aan elke connectie kost vaak meer tijd dan het routen zelf.

Van Lambiek wordt goede geuze gemaakt.

Eerst:
Het gebruik van een netlist maken met Eeschema, en die dan in Pcbnew laden is nogal ouderwets. Als sinds ong. 3 jaar kun je rechtstreeks van Eeschema -> Pcbnew met [F8], of met: "Update PCB from Schematic" uit het menu.

Lang geleden heb ik wel eens een autorouter geprobeerd. Die kwam in 2 minuten tot 98% spagetti, maar met geen enkele mogenlijkheid meer om die laatste 2% op de print te krijgen.Bij een ander experiment had ik een verbinding die ong. 1cm lang had moeten zijn, en die zigzagde op en neer over de hele print. Yuch! Die dingen opschonen kostte ongeveer evenveel tijd als het handmatig routen van de print zelf. Autorouters hebben ook meer ruimte nodig om een print te routen.
Ik ben zelf erg blij met de "interactive router" in KiCad. Daarmee moet je wel zelf alle verbindingen leggen, maar je kunt gemakkelijk een stuk of 5 (of 30) printsporen "opzij duwen" om ruimte te maken voor een spoortje extra of voor een via.

Ik krijg vaak de indruk dat beginners een "autorouter" interessant vinden, met waarschijnlijk het idee er achter van "Je duwt op een knop en even later is het klaar". Maar dat is niet hoe het werkt. Voor een autorouter om goed z'n werk te kunnen doen is de plaatsing van de componenten op de print essentieel. Het vinden van een goede comonentenplaatsing kan moelijker zijn dan het leggen van de koperbanen zelf. Om dit goed te doen heb je inzicht en ervaring nodig. En dat leer je niet door op de knop van een autorouter te duwen. Die ervaring en dat inzicht krijg je alleen door zelf printen te routen. KiCad heeft geen ingebouwde autorouter, en een gedeelte van de reden is omdat dit helemaal niet zo'n interesant stuk is. Maar zelfs als er een autorouter ingebakken zou zitten, dan raadt ik nog aan om eerst te leren printen handmatig te routen, met inachtname van alle essentiele aspecten voor jouw project.

Autorouters kunnen een geweldig stuk gereedschap zijn. Tegenwoordig is blijkbaar de trend naar "Guided Autorouters". Die proberen niet in een keer een hele print te routen, maar je vertelt tegen het programma globale regels zoals: Bedraad de databus van dit IC, naar dat andere IC, en doe dat ongeveer op deze plaats van de print". Ik heb hier zelf nog nooit mee gewerkt, maar filmpjes op youtube zien er wel indrukwekkend uit.

Nog een aspekt:
Als je een print handmatig routert (is dat fatsoenlijk NL?) dan zie je alle signalen nog een keer, en dat is een goed moment om nog even na te denken of dat signaal speciale eisen heeft. Hoeveel stroom? lengte? gevoelig voor oppikken of afstalen van storing? Ik heb het al een par keer gehad dat ik tijdens het handmatig routen ineens zag dat er "iets" niet klopte. Dan zoek je verder en ontdek je dat je een fout hebt gemaakt in het schema. Een autorouter had het simpelweg fout bedraad. Dat is nog al een reden om autorouters te wantrouwen, en het resultaat grondig te controleren. En dat gaat weer af van de vermeende tijdwinst van de autorouter. Als je de sporen handmatig legt controleer je jezelf automatisch tijdens het werken.

Ook: Ik vind het routen van een PCB een leuke puzzel, en ik ben zeker niet de enige die er zo over denkt. Het zorgt ook voor meer afwisseling in het bezig zijn met je electronica hobby (of werk).

Thevel

Golden Member

Ook: Ik vind het routen van een PCB een leuke puzzel

Helemaal mee eens!

Als je een mooie print wil is de componenten opstelling misschien wel belangrijker dan netjes routen, immers door het soldeermasker zie je vaak de printsporen nauwelijks maar de componenten wel.
Soms zie printen volgens het "sleur en pleur" principe, componenten staan kris-kras door elkaar. oké, het werkt wel maar het ziet er niet uit...

Ik probeer altijd de componenten in raster en in één lijn te zetten en indien mogelijk ic's en dergelijke altijd een kant op te laten wijzen.
Hier een voorbeeld van een eenvoudig printje.

Als je weinig ervaring hebt en het routen wordt problematisch kun je ook een meerlaags print ontwerpen, routen is dan een stuk eenvoudiger.
Een kleine 4 laags print is bij JLCpcb niet veel duurder dan een 2 laags.

Op 24 april 2021 00:21:52 schreef Kortsluiting_Online:
Eerst:
Het gebruik van een netlist maken met Eeschema, en die dan in Pcbnew laden is nogal ouderwets. Als sinds ong. 3 jaar kun je rechtstreeks van Eeschema -> Pcbnew met [F8], of met: "Update PCB from Schematic" uit het menu.

Die sneltoets kende ik niet, handig om te weten. Ik ga meestal eerst langs drie menu's voor ik hem vindt omdat ik de functie maar af en toe gebruik. 8)7

Ook: Ik vind het routen van een PCB een leuke puzzel, en ik ben zeker niet de enige die er zo over denkt. Het zorgt ook voor meer afwisseling in het bezig zijn met je electronica hobby (of werk).

Ik denk dat we het hier wel redelijk over eens zijn, maar ik wil toch een lans breken voor mensen die niet zo diep in de elektronica zitten. De leercurve voor CAD programma's is best steil, en vooral voor simpele schakelingen met een paar knopjes, wat logische IC's en een LEDje of 2 hoeft het allemaal niet zo een drama te zijn om de makkelijke optie te kiezen, zeker omdat een dubbelzijdig bord met via's (van minder dan 10x10cm) nu nauwelijks meer wat kost, dat was weleens anders! Nadeel is alleen dat ze dit in China ook denken, en vervolgens deze matige ontwerpen massaproduceren... :(

Zelfde geldt voor wat er nu gebeurt met microcontrollers. Eigenlijk zou ik moeten leren om de programma's in mijn Arduino te optimaliseren, maar het is veel makkelijker om bij een timingsissue of performance-probleem eerst te proberen het op een 'black pill' of een ander (sneller) compatibel gemaakt bordje te draaien. Het is niet "juist", maar soms wel makkelijker en kost nauwelijk meer wat.

Op 24 april 2021 10:54:44 schreef Kruimel:
Eigenlijk zou ik moeten leren om de programma's in mijn Arduino te optimaliseren, maar het is veel makkelijker om bij een timingsissue of performance-probleem eerst te proberen het op een 'black pill' of een ander (sneller) compatibel gemaakt bordje te draaien. Het is niet "juist", maar soms wel makkelijker en kost nauwelijk meer wat.

Ik ontwerp op dit moment een test-bord voor een klant. Ze gaan er mischien 10, misschien 20 assembleren en daarmee dingen uitproberen.

Dat bord kan ik met veel moeite (uren!) in 4 lagen krijgen. Ik kan het ook (veel sneller) in 6 lagen doen.
Die twee extra lagen kosten de klant een paar honderd euro.
Alles in 4 lagen kost de klant veel meer.

Dus ik knal 2 lagen extra in mijn board design, en geef mijn klant in feite betere waar voor zijn geld.

(Oh, en het gaat niet door de autorouter :-))

EricP

mét CE

Ook: Ik vind het routen van een PCB een leuke puzzel, en ik ben zeker niet de enige die er zo over denkt. Het zorgt ook voor meer afwisseling in het bezig zijn met je electronica hobby (of werk).

Tsja... Ieder z'n hobby zeg maar. Er zijn ook mensen die kruiswoordpuzzels maken.

Mijn overweging is vooral dat het met een autorouter meer tijd kost, meer frustratie oplevert en een slechter resultaat tot gevolg heeft. Dan houdt het gewoon op. Zoals reeds eerder opgemerkt: in de context van de PCB. Als het 'groot' wordt, ontkom je er bijna niet meer aan om een autorouter te temmen.

Met 'een sneller bordje' code niet optimizen is betrekkelijk. De tijd dat je machine cycles zat te tellen om te kijken of het ging passen is goeddeels wel voorbij. Aan de andere kant zie ik het excuus best vaak om bagger code de produceren: ja, maar met een iets sneller bordje is het snel genoeg. Waarop ik dan denk... met iemand die kan programmeren, was het dat al geweest...

Voor wat betreft de bord layers: ook dat is zo'n overweging. Andere zijn: levertijd en impedantie-gedoe. De kosten van de PCB zelf zijn zelden de moeite waard. Zo maak ik nog wel eens wat zelf. Dan moet het eigenlijk wel single-layer. Alhoewel dual wel kan (maar het is meer gepiel).
Is het goedkoper? Nah... met alles erbij zal het op materiaal basis lood om oud ijzer zijn. Qua uren: kan absoluut niet uit... Maar doorgaans - als ik het zelf doe - heb ik er 1 nodig en wel NU (dus niet over 2 dagen en over volgende week praten we dan maar niet eens). Dan kan ik prima verdedigen om een uurtje langer te routeren ipv. een dual layer en dan met zelf via's knutselen de tijd te besteden.
Voor de rest: lang leve de chinees!