Robvansuilen
Met vriendelijke groet, Rob
EDIT: na wat gepruts en vervangen lijkt het nu goed te gaan. Dank voor deze Tip, anders hadden er nog flinke fouten in het schema gezeten.
Met het NAME command kon ik ook e.a. aanpassen zodat bijvoorbeels alle GND's nu ook echt met elkaar zijn verbonden.
[Bericht gewijzigd door Robvansuilen op (30%)]
Robvansuilen
Met vriendelijke groet, Rob
Inmiddels ben ik aan het routen. Meeste gaat met het handje. GND vlak heb ik op de onderzijde van de print liggen alsmede de meeste voedingslijnen. Waarschijnlijk maak ik aan de bovenkant ook een GND vlak.
Signalen probeer is zoveel mogelijk aan de bovenzijde te houden.
Hier een afbeelding van hoever ik nu ben.
Aan de onderkant en rechts op de print is het meeste op orde. Nu moet ik de IO's van de raspberry nog verbinden met de connectoren aan de bovenkant. Dat wordt nog een uitdaging. Het is nog rommelig en incompleet.
Alle tips en opmerkingen zijn heel welkom.
buckfast_beekeeper
Van Lambiek wordt goede geuze gemaakt.
De led aan R0 zou ik de wire toch wat verder van het gat weg brengen. Je hebt de ruimte. Je led omdraaien maakt het ook eenvoudiger naar de weerstand toe.
Heb je al een DRC gerund?
Waarom laat je de signalen van de PCA kruisen? Ik probeer altijd zo gunstig mogelijk te routen. Moeten er enkele IO verwisseld worden? Dan is dat maar zo. De IO pas je aan in software.
fatbeard
Honourable Member
Een goed begin is geen excuus voor half werk; goed gereedschap trouwens ook niet. Niets is ooit onmogelijk voor hen die het niet hoeven te doen.
Daar komt het gemak van een microcontroller naar voren: GPIO's zijn makkelijk toe te kennen, even een ander nummertje in de software...
Begin in het schema met de 'onderste' GPIO en knoop die aan R49 (dat heb je al gedaan), dan de volgende naar R43, enzovoort. Je houdt dan vanzelf een goed routeerbaar PCB over.
Eenzelfde strategie kun je volgen voor U0, dan ben je van de via's af.
Wat in een schema mooi uitkomt leidt op de PCB vaak tot 'creatieve' routing, en andersom. Het gebruik van een bus kan helpen, het herordenen van de connectoren op de PCB ook.
Robvansuilen
Met vriendelijke groet, Rob
Dank voor jullie snelle reactie heren! Heel fijn, ik zit toch een beetje in het onbekende te ploeteren.
De LED is omgedraaid en verplaatst.
Wat betreft de headers aan de PCA. Is het kruisen van de uitgaande PWM lijnen een probleem? (interferentie ofzo) Deze lijnen gaan ledjes servos en de IRL540 aansturen (slotjes, RGB strips). Gevoelsmatig heb ik deze toch liever op de "juiste volgorde". Pwm 1 eerst en dan PWM2 vind ik prettig. Dat geld (misschien in mindere mate) ook de voor IO lijnen direct naar de raspberry. Als ik over een aantal jaar hier weer een aan moet werken (software of hardware matig) dan is het fijn als er een logica in de nummering zit.
Dan de DRC. Nog nooit gebruikt en hij gaf best veel fouten. de warning waren alle maal wirestubs. Die heb ik opgelost.
Dan 25 errors waarvan 11 airwires. (logisch).
Drill size errors (ik had drill size op minimaal 0,3 staan. Sommige via's zijn 0,2 dus die vergroot ik.
en de 5 copperclearance ook opgelost
buckfast_beekeeper
Van Lambiek wordt goede geuze gemaakt.
Voor zowat elk PCB pakket heeft JLCPCB (en de anderen) een DRU pakket beschikbaar. Vaak in 10mill, 8mill en 6mill. Als ik me niet vergis ook voor 4-layer. Download ze en gebruik ze. Voor een PCA9685 zal je 8mill nodig hebben denk ik. Voor eagle kan ik ze je wel bezorgen.
Voor de uitgangen gebruik je gewoon een array. Bijvoorbeeld PWM[]={1, 5, 7, 9}; Servo[]={2, 6, 10, 11};
Denk eraan dat je voor servo's een mooie 50Hz nodig hebt. Adafruit lost dat op door proefondervindelijk bij te sturen.
#define SERVO_FREQ 50 // Analog servos run at ~50 Hz updates
/*
* In theory the internal oscillator (clock) is 25MHz but it really isn't
* that precise. You can 'calibrate' this by tweaking this number until
* you get the PWM update frequency you're expecting!
* The int.osc. for the PCA9685 chip is a range between about 23-27MHz and
* is used for calculating things like writeMicroseconds()
* Analog servos run at ~50 Hz updates, It is importaint to use an
* oscilloscope in setting the int.osc frequency for the I2C PCA9685 chip.
* 1) Attach the oscilloscope to one of the PWM signal pins and ground on
* the I2C PCA9685 chip you are setting the value for.
* 2) Adjust setOscillatorFrequency() until the PWM update frequency is the
* expected value (50Hz for most ESCs)
* Setting the value here is specific to each individual I2C PCA9685 chip and
* affects the calculations for the PWM update frequency.
* Failure to correctly set the int.osc value will cause unexpected PWM results
*/
pwm.setOscillatorFrequency(27000000);
pwm.setPWMFreq(SERVO_FREQ); // Analog servos run at ~50 Hz updatesIk gebruik een 25MHz oscillator en dan is het altijd correct (pwm.setOscillatorFrequency(25000000);).
De minimum en maximum puls lengte ga je even moeten zoeken. Adafruit geeft
#define SERVOMIN 150 // This is the 'minimum' pulse length count (out of 4096)
#define SERVOMAX 600 // This is the 'maximum' pulse length count (out of 4096)Ik heb 100 voor minimale en 500 voor maximale uitslag.
Je moet ook even bekijken dat je PWM frequentie niet voor het ganse IC is. Ik vermoed van wel en dan is 50Hz wel laag voor PWM sturing van leds. Voor leds gebruik ik minstens 100Hz op 2 andere PCA9685 zonder 25MHz oscillator. Daar is de exacte frequentie minder van belang.
Robvansuilen
Met vriendelijke groet, Rob
Buckfast gatekeeper, dank voor je reactie. Wat betreft de designrules (DRU) had ik al wat gedownload. Standaard stonden sporen op een minimum van 0,13mm. Dat heb ik al veranderd naar 0,25. Zo heb ik nog wat aanpassingen gedaan. Dat zou dus goed moeten gaan.
Mocht je de files nog hebben liggen dan houd ik me alsnog aanbevolen. Beter 2x checken dan te weinig.
Bij de PCA kun je inderdaad maar een PWM frequentie instellen. Geen probleem in mijn toepassing. Ik noemde overigens servos. Maar tot nu toe heb ik die nog niet in mijn toepassing zitten.
Robvansuilen
Met vriendelijke groet, Rob
Ik ben klaar met routen. Hierbij de toplayer
en de bottom layer.
En wat de camjob ervan maakt
Top
Bottom (spiegelbeeld over verticale as)
[Bericht gewijzigd door Robvansuilen op (36%)]
buckfast_beekeeper
Van Lambiek wordt goede geuze gemaakt.
Je probleem met logische volgordes is ook nog op een andere wijze op te lossen en ook eenvoudiger in gebruik. In plaats van altijd aan een IO nummer te moeten denken, geef je ze een logische naam.
const uint8_t PWM1 = 5;
const uint8_t PWM2 = 8;
const uint8_t PWM3 = 16; Verder heb je dan niet meer te doen dan:
PWM.setPWM(PWM1, 0 , 2000);fatbeard
Honourable Member
Een goed begin is geen excuus voor half werk; goed gereedschap trouwens ook niet. Niets is ooit onmogelijk voor hen die het niet hoeven te doen.
Vergeet niet om rijkelijk te strooien met via's om de GND vlakken aan boven- en onderzijde te verbinden, speciaal op hoekpunten en stubs; streef naar een maximale stublengte van 10mm of minder.
De DRC zal het worst zijn, maar voor de EMC is het meer dan aan te raden.
Robvansuilen
Met vriendelijke groet, Rob
Op vrijdag 27 maart 2026 15:08:07 schreef fatbeard:
Vergeet niet om rijkelijk te strooien met via's om de GND vlakken aan boven- en onderzijde te verbinden, speciaal op hoekpunten en stubs; streef naar een maximale stublengte van 10mm of minder.
De DRC zal het worst zijn, maar voor de EMC is het meer dan aan te raden.
Dank voor de tip, maar wat zijn stubs?
Robvansuilen
Met vriendelijke groet, Rob
Op vrijdag 27 maart 2026 14:59:22 schreef buckfast_beekeeper:
Je probleem met logische volgordes is ook nog op een andere wijze op te lossen en ook eenvoudiger in gebruik. In plaats van altijd aan een IO nummer te moeten denken, geef je ze een logische naam.const uint8_t PWM1 = 5; const uint8_t PWM2 = 8; const uint8_t PWM3 = 16;Verder heb je dan niet meer te doen dan:
PWM.setPWM(PWM1, 0 , 2000);
Dank voor de DRU files en de tip. Bovenstaande is een goede oplossing. Ik moet echter mijn ele print verbouwen. Denk je dat het voor mijn toepassing problemen op gaat leveren zoals ik het nu gedaan heb?
Arco
Special Member
Arco - "Simplicity is a prerequisite for reliability" - hard-, firm-, en software ontwikkeling: www.arcovox.com
A PCB stub is an unused, conductive portion of a via or trace that extends beyond the required signal path, acting as an unterminated transmission line. These stubs act as tiny antennas, causing signal reflections, severe attenuation, and impedance discontinuities that degrade signal integrity in high-speed circuits
Robvansuilen
Met vriendelijke groet, Rob
Ok Ik heb extra via's tussen de grounds aangelegd. Verder heb ik een BOM en een CPL file gemaakt. (Veel werk want de trough hole componenten moest ik handmatig de coordinaten voor opgeven.) Allemaal een eerste keer,maar het lijkt goed te gaan.
Ik ben dus klaar om de print te laten maken bij JLCPCB.
Willen jullie nog een laatste keer meekijken of er geen rare dingen zijn?
Het schema:
Concrete vragen:
- Voor de PCA9685 heb ik 220ohms weerstanden op de uitgang. Dit is overgenomen uit Het ontwerp van Adafruit. Ik zie op een chenese namaak ook 330 ohm zitten. De PCA leverd max 25Ma op iedere uitgang. 220Ohm lijkt me dus prima. Klopt dat?
- Voor de led heb ik een 140Ohm weerstand berekend. (supply is 5v en de led wil 25Ma @ 2V.)
Robvansuilen
Met vriendelijke groet, Rob
Robvansuilen
Met vriendelijke groet, Rob
Dan de bestukte print in de 3d render van JLCPCB
Bovenkant
Onderkant spiegelbeeld
Ik maakte me zorgen over de plaatsing van de trough hole compontenten, vooral de fuses zijn lastig. JLCPCB geeft aan dat deze met de hand worden geplaatst en dat een kleine afwijking geen problemen opleverd. Iemand daar ervaring mee?
Robvansuilen
Met vriendelijke groet, Rob
buckfast_beekeeper
Van Lambiek wordt goede geuze gemaakt.
Op woensdag 1 april 2026 09:54:50 schreef Robvansuilen:
Ok Ik heb extra via's tussen de grounds aangelegd. Verder heb ik een BOM en een CPL file gemaakt. (Veel werk want de trough hole componenten moest ik handmatig de coordinaten voor opgeven.) Allemaal een eerste keer,maar het lijkt goed te gaan.
Ik ben dus klaar om de print te laten maken bij JLCPCB.
Willen jullie nog een laatste keer meekijken of er geen rare dingen zijn?Het schema:
[bijlage]
Concrete vragen:
- Voor de PCA9685 heb ik 220ohms weerstanden op de uitgang. Dit is overgenomen uit Het ontwerp van Adafruit. Ik zie op een chenese namaak ook 330 ohm zitten. De PCA leverd max 25Ma op iedere uitgang. 220Ohm lijkt me dus prima. Klopt dat?
- Voor de led heb ik een 140Ohm weerstand berekend. (supply is 5v en de led wil 25Ma @ 2V.)
25Ma???? Waarschijnlijk is 25mA bedoeld. 5V - 2V = 3V. 3V/0,025A = 120Ω. Met 140Ω kom je dan aan 21,43mA. Maar 140Ω is geen E12 reeks. Wel E96. Probeer voor eigen gebruik zo veel als mogelijk E12 reeks te gebruiken. Voor het overgrote deel is de nauwkeurigheid voldoende. Bij meetwaardes ligt het anders. Voor leds is een grotere waarde vaak meer dan voldoende.
Als je achter de PCA9685 leds gaat gebruiken, gebruik dan gewoon de berekende waarde. Ik vermoed dat Adafruit het doet om de inrush van de servo's te verkleinen. Er gaat geen significante spanningsval zijn omdat er geen grote stroom loopt. Ik heb een servo bordje gemaakt voor 16 servo's en die geeft problemen bij meerdere aangesloten servo's. De voeding zakt in 5V 5A MeanWell met 470µ aan de ingang en 10µ voor de PCA9685. Ik start de servo's nu na elkaar op.
TH componenten kan je beter zelf plaatsen. Maakt het goedkoper.
Scherpe hoeken zoals op de onderzijde rechts naast Vin van je DC-DC converter kan je beter vermijden.
fatbeard
Honourable Member
Een goed begin is geen excuus voor half werk; goed gereedschap trouwens ook niet. Niets is ooit onmogelijk voor hen die het niet hoeven te doen.
Nou ja, goed... Voor een eerste print is het prima, ik zou je er een 7½ voor geven.
Er zitten zo her en der wel wat schoonheidsfoutjes in:
* scherpe hoeken (<90°) in printsporen (+12V net)
* onlogische omwegen in signalen en voedingen (VCC net, GPIO's)
* rechtop staande axiale componenten (power diodes)
Die scherpe hoeken kunnen tot problemen leiden bij de fabricage van de PCB, als mekkeren er tegenwoordig nog maar weinig PCB-bakkers over: in die scherpe hoek kunnen verschillende processen met een andere snelheid plaatsvinden dan elders, wat de kwaliteit negatief kan beïnvloeden. De hechting van het soldeermasker kan ook minder zijn op zulke plekken.
Door de GPIO en PWM nummers 'op volgorde' te willen houden heb je het jezelf onnodig moeilijk gemaakt met routen, hoe dat beheersbaar op te lossen is al uitgelegd.
Rechtop staande axiale componenten kunnen voorzover mij bekend door geen enkele bestukker geplaatst worden, of brengen exorbitante kosten met zich mee: componenten moeten met de hand worden gebogen en geplaatst. TO220 dioden zouden m.i. een betere keuze geweest zijn.
Verder is het misschien een overweging om in Europa gangbare symbolen te gebruiken in je schema, dat maakt het voor anderen ook beter begrijpbaar.
Robvansuilen
Met vriendelijke groet, Rob
Dank allemaal voor de input, ik ben heel blij dat er niks fundamenteels in zit want de print is gister voordat ik deze commentaren las besteld. Helaas waren er niet genoeg PCA's op voorraad meer. En dus krijg ik 2 bestukte en 3 lege PCB's. En dat is dan een relatief duur grapje, want met verzenden en de BTW zit ik toch op 120 euro voor twee stuks. Aan de andere kant is dit een eerste versie en mochten er nu nog echte fouten inzetten gaat er weer voor minder geld verloren. Het zij zo.
Een 7,5 ben ik heel tevreden mee. 
Wat de diodes betreft, die heb ik expres rechtop gezet; sterker nog ik heb de componentlayout speciaal ervoor getekend. Reden is ruimte besparing op de print. 4 van de diodes zijn blusdiodes en die worden in eerste instantie niet op de print geplaatst, ze zijn lang niet altijd nodig (RGB strip). Als er iets wordt aangestuurd dat een blusdiode nodig heeft, dan komt die zo dicht mogelijk bij de verbruiker. Ik wilde echter wel de mogelijkheid hebben om een diode te plaatsen op de print, zonder daar al te veel ruimte voor in te leveren.
De andere tips neem ik voor een volgend ontwerp zeker ter harte. Dank!
@fatbeard, welke symbolen zijn europees gangbaar en welke niet (misschien beperken tot mijn schema, anders wordt het zo'n lange lijst
)?
Robvansuilen
Met vriendelijke groet, Rob
Op donderdag 2 april 2026 15:42:49 schreef buckfast_beekeeper:
[...]25Ma???? Waarschijnlijk is 25mA bedoeld. 5V - 2V = 3V. 3V/0,025A = 120Ω. Met 140Ω kom je dan aan 21,43mA. Maar 140Ω is geen E12 reeks. Wel E96. Probeer voor eigen gebruik zo veel als mogelijk E12 reeks te gebruiken. Voor het overgrote deel is de nauwkeurigheid voldoende. Bij meetwaardes ligt het anders. Voor leds is een grotere waarde vaak meer dan voldoende.
Als je achter de PCA9685 leds gaat gebruiken, gebruik dan gewoon de berekende waarde. Ik vermoed dat Adafruit het doet om de inrush van de servo's te verkleinen. Er gaat geen significante spanningsval zijn omdat er geen grote stroom loopt. Ik heb een servo bordje gemaakt voor 16 servo's en die geeft problemen bij meerdere aangesloten servo's. De voeding zakt in 5V 5A MeanWell met 470µ aan de ingang en 10µ voor de PCA9685. Ik start de servo's nu na elkaar op.
TH componenten kan je beter zelf plaatsen. Maakt het goedkoper.
Scherpe hoeken zoals op de onderzijde rechts naast Vin van je DC-DC converter kan je beter vermijden.
Ach ja die hoofdletters in Ma draai ik regelmatig om, het is niet dagelijkse kost voor mij, voor de echte elektrotechnici natuurlijk onverteerbaar, ik betracht beterschap 
R0 had ik inderdaad ook op 120Ohm berekend, maar ik wilde niet op het randje gaan zitten en de eerst volgende waarde bij JCBPCB was toevallig 140ohm. Dus die maar genomen.
Het probleem met de PCA is dat ik nog niet weet wat er aan de uitgangen gaat komen. Met 220 ohm houd ik de stroom in ieder geval beperkt tot de 25Ma die de PCA kan leveren of sinken. Toch een goede tip, zodat ik wanneer nodig, niet vergeet eventueel een weerstand toe te voegen aan de verbruikers kant.
Ik ga zeker eens kijken of ik de Th componenten volgende keer beter zelf plaats toch viel de opslag hiervoor wel mee (ik geloof 25 euro voor 5 printen)
fatbeard
Honourable Member
Een goed begin is geen excuus voor half werk; goed gereedschap trouwens ook niet. Niets is ooit onmogelijk voor hen die het niet hoeven te doen.
Deze gebruik ik (en velen met mij):
De power symbolen worden (in Eagle in elk geval) voorzien van de dienstdoende spanning zoals +3V3 of VDD, waardoor gelijke spanningssymbolen automagisch aan elkaar komen te zitten in de netlist; een soortgelijk mechanisme is er voor GND symbolen.
Er zijn 'officiële' symbolen gedefiniëerd door IEC, maar die worden voorzover mij bekend alleen in serieuze settings gebruikt...
De symbolen die jij op dit moment gebruikt zijn de zgn ANSI symbolen die vooral in de USA gebruikt worden.
Als je op het web zoekt naar "electronic symbols" krijg je een plethora aan varianten van zowat elk denkbaar symbool, gebruik wat voor jou werkt en voor anderen begrijpelijk is.
Ik heb het mezelf (60 jaar geleden) geleerd uit JongensRadio boeken, Radio Bulletin en VT Vrije Tijd...
Merk op dat al mijn symbolen dezelfde 'steek' hebben, dat maakt het tekenen wat makkelijker...
picsels
Volgend project: 7-seg gaming displays; dan dec-1982 labvoeding afmaken, dan funcgen met ad9833 afmaken, dan...