Archief - Hulp met PCB design

Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.

P4man

Legacy Member
Is er hier iemand met ervaring (en tools) voor custom PCB design die mij zou willen helpen? Ik heb het al in Fritzing uitgetekend, maar de PCB routering daarvan trekt op niks. ik heb al wat geprobeerd in Eagle CAD, maar die stappenmotor controller zit in geen enkele bibliotheek, en daar zit ik ook strop. Ik snap het programma ook niet echt en ben een EE noob.

Dit is het fritzing diagram:



Zoals je ziet, is het niet heel erg complex. Een arduino/ESP32 "shield" met:
- stappen motor controller (AX1201728SG, SOP28 package)
- RS232 /TTL transceiver
- 12V > 5V regulator
- een paar condensatoren
- RJ45 connector
- aansluitingen (gewoon soldeer punten op pcb) voorzien voor: 2 schermen , stappen motor en een draai encoder. Evt ook nog voor vrije IO pinnen op de ESP32.

Het circuit zelf is getest op breadboard, behalve de RS232 (ga ik dit weekend proberen) en zonder de voltage regeling. En zonder die caps op de controller, maar die heb ik uit de datasheet gehaald.

Het moet dienen voor een opensource variometer indicator voor een zweefvliegtuig, te koppelen aan OpenVario vlucht computer. Hier zie je een prototype:

[video=youtube;abkQcF7Kuv4]https://www.youtube.com/watch?v=abkQcF7Kuv4&[/video]

Epyon

Legacy Member
Ik teken wekelijks PCB's, wil je hierbij wel helpen. Maar je zal wel wat meer info moeten geven ;) .

- Is het de bedoeling alles op één PCB te monteren? Ik kan me inbeelden dat het scherm en de stepper eerder met kabels aan de PCB verbonden moet worden? Gesoldeerd of met een connector?
- Kunnen de componenten op de breakout boards rechtstreeks op de PCB?
- SMD of through hole?
- Constraints mbt de afmetingen van de PCB? Mounting holes voorzien?
- Waar ga je het laten fabben? Zelf etsen (1-laags?) of een PCB service (2-laags)?

Een schema ipv een Fritzing tekening is handiger voor mij. Mocht je in Eagle alvast het schema kunnen tekenen kan ik in no time een board maken, maar is niet vereist. Je kan veel footprints vinden in de Adafruit Eagle lib of de Sparkfun lib.

P4man

Legacy Member
Wow, alvast heel erg bedankt!

Ik dacht alles op 1 PCB te doen, waar de ESP32 module op "klikt", zoals een shield. Als het even klein kan als die ESP zou dat geweldig zijn, maar dat wordt nipt denk ik, en wat groter mag ook. 50mm breedte is het absolute maximum. Mounting holes ergens op de hoeken is goed, ik pas mijn behuizing er wel aan aan. En ik ga het laten maken. Ik had dit al gevonden als goedkope fabrikant: pcbGO - Online PCB quote maar dat mag ergens anders ook, je kent er meer van dan ik. 2 zijdig is prima.
De componenten mogen (/moeten) SMD zijn. Wel liefst niet de allerkleinste, ik ga het met de hand solderen.

De stepper, het scherm, en the rotary module zitten vast op 3D geprinte houders, niet op het PCB. Ik moet dus enkel de draden solderen. Stekkertjes kan eventueel ook, welke heb ik geen idee van, als ze maar klein zijn, en niet los kunnen trillen. Vermogen is verwaarloosbaar.

Even meer in detail over de componenten:
ESP32 module die ik gebruik is deze:
https://learn.adafruit.com/adafruit-huzzah32-esp32-feather
Is geen must, is gewoon wat ik heb, en is makkelijk verkrijgbaar. Je vindt daar ook de eaglecad pcb files van op github, als dat helpt:
https://github.com/adafruit/Adafruit-HUZZAH32-ESP32-Feather-PCB

Een "naakte" wroom32 module zou wel leuk zijn, maar is zo veel meer werk en brengt eigenlijk niets bij.

De AX1201728SG stepper controller heeft geen breakout board. Enfin, ik gebruik een generiek SOP28 breakout om alles makkelijk op een breadboard te kunnen testen, maar de bedoeling is dat die chip rechstreeks op het pcb gaat. Dit is geen courante chip! Ik vind er zelfs geen datasheet van. Maar ze is compatibel met de VID6606, ook niet echt courant, maar wel een datasheet(je):
https://guy.carpenter.id.au/gaugette/resources/vid/2009111391612_VID6606 manual 060927.pdf

De RS232 transceiver moet er ook op zonder breakout board. Ik weet nog niet zeker welke chip ik precies moet nemen, ik heb hier een test breakout bordje op basis van de MAX3232:
https://datasheets.maximintegrated.com/en/ds/MAX3222-MAX3241.pdf
Welke variant ik nodig heb, of dat dat iets uitmaakt, hopelijk kan je daar mee helpen. De openvario RS232 lijkt me 10V levels te gebruiken? De ESP is uiteraard 3.3V.

De RJ45 connector moet op het bord, ergens aan de rand liefst :) De pinout is "IGC compatibel" en levert ook de +12V:
https://www.openvario.org/doku.php?...ical_tests:rj45-board#rj45-igc_pin_assignment
Welke connector je daarvoor precies kiest, maakt me niet veel uit. Wat nu RX en TX moet zijn is mij niet 100% duidelijk, daar voor niet afgaan op mijn fritzel, ik heb daar gewoon gegokt !

Van de schermen ga ik wel de breakoutboards gebruiken. Je kan de schema's daarvan online vinden, maar dat heeft weinig zin om dat te dupliceren. Bovendien gaat maar 1 scherm echt aangesloten worden; ik voorzie wel 2 soorten, een eink en een reflectief, maar dat is een keuze.

De rotary encoder; welke rotary ik uiteindelijk ga gebruiken ligt nog niet vast. diegene die ik nu gebruik (klassieke Keyes040) heeft een breakout bordje, maar dat is groot, onhandig, die componenten kunnen beter op het custom PCB. Maar ik denk dat dat enkel pull up weerstanden zijn? Dan is dat zelfs niet nodig (esp heeft die aanboord). Debouncing doe ik in software, dus caps hoeft niet.

Voltage regeling; ik dacht gewoon linear, want we spreken hier toch over milliamps, en ik wil zo min mogelijk risico op storing van radio/flarm/transponder. De ESP32 heeft zelf een 5V->3V regulator voor USB. Al moet ik nog even checken of hij ook langs de "USB" power pin gevoed kan worden, maar dat lijkt me wel (geeft USB 5V uit). De stappenmotor en controller werken op 5V. De rest op 3V via de ESP.

Wat eaglecad betreft; ik ben meer dan een dag bezig geweest en heb enkel een verkeerde MAX chip en een RJ45 kunnen verbinden met een ESP32 bord:


Als je wil, mail ik je dat, maar of het je veel tijd gaat besparen, betwijfel ik :).

Als je dit voor me doet, dan bedenk je wel iets waar ik je een plezier mee terug kan doen? Vluchtje in zweefvliegtuig of iets dergelijks?

Epyon

Legacy Member
P4man zei:
Wow, alvast heel erg bedankt!

Ik dacht alles op 1 PCB te doen, waar de ESP32 module op "klikt", zoals een shield. Als het even klein kan als die ESP zou dat geweldig zijn, maar dat wordt nipt denk ik, en wat groter mag ook. 50mm breedte is het absolute maximum. Mounting holes ergens op de hoeken is goed, ik pas mijn behuizing er wel aan aan. En ik ga het laten maken. Ik had dit al gevonden als goedkope fabrikant: pcbGO - Online PCB quote maar dat mag ergens anders ook, je kent er meer van dan ik. 2 zijdig is prima.
De componenten mogen (/moeten) SMD zijn. Wel liefst niet de allerkleinste, ik ga het met de hand solderen.
Je hebt een aantal hobbyist PCB fabs. OSH park, Seeed fusion, elecrow etc. Je moet er wel wat geduld voor hebben. Voordeel is wel dat je bij hen leuke extra's zoals andere PCB kleuren zonder (veel) meerkost kunt kiezen. Zelf fab ik bij Eurocircuits, maar dat is meestal buiten het budget van een hobbyist. Een collega maker is wel tevreden van Elecrow.

De stepper, het scherm, en the rotary module zitten vast op 3D geprinte houders, niet op het PCB. Ik moet dus enkel de draden solderen. Stekkertjes kan eventueel ook, welke heb ik geen idee van, als ze maar klein zijn, en niet los kunnen trillen. Vermogen is verwaarloosbaar.
Ik zou dan aanraden gewoon een rij gaten voor een 0,1" header te voorzien. Je kan je draden er dan gewoon aan solderen, of een standaard connector met die pitch er op solderen. Vind je wel goedkoop op Aliexpress.

Even meer in detail over de componenten:
ESP32 module die ik gebruik is deze:
https://learn.adafruit.com/adafruit-huzzah32-esp32-feather
Is geen must, is gewoon wat ik heb, en is makkelijk verkrijgbaar. Je vindt daar ook de eaglecad pcb files van op github, als dat helpt:
https://github.com/adafruit/Adafruit-HUZZAH32-ESP32-Feather-PCB
Hier voorzie ik dan gewoon de footprint in headers.

De AX1201728SG stepper controller heeft geen breakout board. Enfin, ik gebruik een generiek SOP28 breakout om alles makkelijk op een breadboard te kunnen testen, maar de bedoeling is dat die chip rechstreeks op het pcb gaat. Dit is geen courante chip! Ik vind er zelfs geen datasheet van. Maar ze is compatibel met de VID6606, ook niet echt courant, maar wel een datasheet(je):
https://guy.carpenter.id.au/gaugette/resources/vid/2009111391612_VID6606 manual 060927.pdf
Idd zeer obscure chip precies :wtf: . Ik zal wss een custom footprint moeten maken.

De RS232 transceiver moet er ook op zonder breakout board. Ik weet nog niet zeker welke chip ik precies moet nemen, ik heb hier een test breakout bordje op basis van de MAX3232:
https://datasheets.maximintegrated.com/en/ds/MAX3222-MAX3241.pdf
Welke variant ik nodig heb, of dat dat iets uitmaakt, hopelijk kan je daar mee helpen. De openvario RS232 lijkt me 10V levels te gebruiken? De ESP is uiteraard 3.3V.
RS-232 is aan de buskant 12V, aan de microcontroller kant TTL. Is er een reden waarom je voor RS-232 gaat? Ik dacht dat bij servo's vooral RS-485 gebruikt werd (maar ik ben geen expert in robotics).
*edit* ahja, het zal voor de inferfacing met die openvario computer zijn zeker?

De RJ45 connector moet op het bord, ergens aan de rand liefst :) De pinout is "IGC compatibel" en levert ook de +12V:
https://www.openvario.org/doku.php?...ical_tests:rj45-board#rj45-igc_pin_assignment
Welke connector je daarvoor precies kiest, maakt me niet veel uit. Wat nu RX en TX moet zijn is mij niet 100% duidelijk, daar voor niet afgaan op mijn fritzel, ik heb daar gewoon gegokt !
Ok

Van de schermen ga ik wel de breakoutboards gebruiken. Je kan de schema's daarvan online vinden, maar dat heeft weinig zin om dat te dupliceren. Bovendien gaat maar 1 scherm echt aangesloten worden; ik voorzie wel 2 soorten, een eink en een reflectief, maar dat is een keuze.
Dus die worden 'gestacked' op de PCB? Of verbind je de breakouts via een kabeltje naar de PCB?

De rotary encoder; welke rotary ik uiteindelijk ga gebruiken ligt nog niet vast. diegene die ik nu gebruik (klassieke Keyes040) heeft een breakout bordje, maar dat is groot, onhandig, die componenten kunnen beter op het custom PCB. Maar ik denk dat dat enkel pull up weerstanden zijn? Dan is dat zelfs niet nodig (esp heeft die aanboord). Debouncing doe ik in software, dus caps hoeft niet.
Een encoder heeft idd enkel pull-ups/downs en eventueel current limiting weerstanden nodig ja. Ik zie dat je vijf draden gebruikt, dus wss is het een encoder met drukknopfunctie?

Voltage regeling; ik dacht gewoon linear, want we spreken hier toch over milliamps, en ik wil zo min mogelijk risico op storing van radio/flarm/transponder. De ESP32 heeft zelf een 5V->3V regulator voor USB. Al moet ik nog even checken of hij ook langs de "USB" power pin gevoed kan worden, maar dat lijkt me wel (geeft USB 5V uit). De stappenmotor en controller werken op 5V. De rest op 3V via de ESP.
Voor lage vermogens is een LDO idd het meest eenvoudige. Een ESP32 trekt 250mA tijdens verzenden.

Mind you dat je de ESP niet vanuit twee 5V voedingen tegelijk mag voeden! Als je de ESP via zijn USB headerpin voedt (via het PCB en zijn LDO) en je plugt ook een USB voeding in kan de ESP schade oplopen. Ik kan wel eens zien of ik geen power supply selection circuit kan voorzien, zoals ook een Arduino gebruikt.

Wat eaglecad betreft; ik ben meer dan een dag bezig geweest en heb enkel een verkeerde MAX chip en een RJ45 kunnen verbinden met een ESP32 bord:

Als je wil, mail ik je dat, maar of het je veel tijd gaat besparen, betwijfel ik :).
Jah, kzal het wel zelf doen :p . Zal er een zondagprojectje van maken.

Als je dit voor me doet, dan bedenk je wel iets waar ik je een plezier mee terug kan doen? Vluchtje in zweefvliegtuig of iets dergelijks?
Sure, we zien wel ;) . Laten we het eerst werkende krijgen.

Nog enkele algemene vragen:
- Waarom de ESP32 als microcontroller? Er bestaan immers beter gedocumenteerde en energiezuiniger micro's die ook met de Arduino IDE programmeerbaar zijn (bijv. Teensy)
- Komt de 12V voor het bord van een gestabiliseerde voeding of rechtstreeks van de accu's van het zweefvliegtuig? Indien dit laatste voorzie ik best ook iets voor overspanningen en reverse polarity protection.

P4man

Legacy Member
Epyon zei:
Idd zeer obscure chip precies :wtf: . Ik zal wss een custom footprint moeten maken.

Opgelet, ik heb niet gekeken wat de formfactor van die VID6606 is, die is misschien anders. De AXkweeniewat chip die ik gebruik heeft een vrij standaard SOP28 1.27mm pitch footprint.

RS-232 is aan de buskant 12V, aan de microcontroller kant TTL. Is er een reden waarom je voor RS-232 gaat? Ik dacht dat bij servo's vooral RS-485 gebruikt werd (maar ik ben geen expert in robotics).
*edit* ahja, het zal voor de inferfacing met die openvario computer zijn zeker?

Yep, IGC RS232 is de standaard in de zweefvliegerij voor loggers, GPS, flarm, en andere instrumenten.

Dus die worden 'gestacked' op de PCB? Of verbind je de breakouts via een kabeltje naar de PCB?

Yep, stacken lijkt me het handigste.

Een encoder heeft idd enkel pull-ups/downs en eventueel current limiting weerstanden nodig ja. Ik zie dat je vijf draden gebruikt, dus wss is het een encoder met drukknopfunctie?

Ja, met druk knop. Daarvan gesproken, er komen mogelijk nog 3 druk knoppen bij. Dus de ongebruikte IO's zou je ook naar buiten moeten brengen, of naar die header.

Mind you dat je de ESP niet vanuit twee 5V voedingen tegelijk mag voeden! Als je de ESP via zijn USB headerpin voedt (via het PCB en zijn LDO) en je plugt ook een USB voeding in kan de ESP schade oplopen. Ik kan wel eens zien of ik geen power supply selection circuit kan voorzien, zoals ook een Arduino gebruikt.

PSU selection zou heel handig zijn tijdens het testen en developpen, maar de USB zal niet gebruikt of aangesloten worden in het vliegtuig. Die connectie is te fragile.

Nog enkele algemene vragen:
- Waarom de ESP32 als microcontroller? Er bestaan immers beter gedocumenteerde en energiezuiniger micro's die ook met de Arduino IDE programmeerbaar zijn (bijv. Teensy)

Een teensy 3.x had wellicht ook gekunnen, maar stroomverbruik is niet zo'n probleem. De ingebouwde wifi en bluetooth van de ESP kan op termijn heel handig worden om het instrument te koppelen aan een smartphone of Kobo reader (wordt vaak gebruikt als navigatie scherm). En dual core CPU is verdomd makkelijk, omdat de drivers van die schermen blokkerend zijn, en ik toch steevast (micro)step updates moet kunnen doen aan 30 microseconden, en de encoder snel genoeg uitlezen, de seriele poort aan 256Kbaud en meer floating point wiskunde dan mij lief is. Een betere programmeur dan ik kan dat zeker op tragere hardware voor elkaar krijgen, maar ik vind het wel fijn dat ik sommige van die taken in een thread kan steken en vastpinnen op een core, en nooit mijn interrupts mis.

- Komt de 12V voor het bord van een gestabiliseerde voeding of rechtstreeks van de accu's van het zweefvliegtuig? Indien dit laatste voorzie ik best ook iets voor overspanningen en reverse polarity protection.

"rechtstreeks" van de batterij. Enfin, elektrisch gezien toch, maar met polyfuses op het de Openvario RJ45 bord. Dat zijn klassieke lood batterijen. Reverse polarity, mja, als je het voor elkaar krijgt om die batterij verkeerd aan te sluiten denk ik dat er meer kapot zal gaan dan mijn instrument, maar als het niet veel moeite is, waarom niet.

Epyon

Legacy Member
Tijdens het tekenen van het schema zijn er wat onduidelijkheden opgedoken:
- De MAX232 transceiver werkt op 5V. Een ESP32 is niet 5V tolerant. Je zal hier een MAX3232 voor moeten kopen. Pinout is hetzelfde, package is SOIC en dus nog soldeerbaar.
- Ben je zeker dat de aansluiting van de RX/TX op de MAX232 in je schema klopt?
- Wat is het merk/type tweede scherm dat je wil gebruiken?
- Is de AX1201728SG SSOP?

Kan je ook een schets maken hoe je de pcb en de schermen wil stacken (mechanisch)? Kan je mss ook op aanduiden aan welke rand je de RJ45 en de ESP wil (naar toegankelijkheid toe).

P4man

Legacy Member
Epyon zei:
Tijdens het tekenen van het schema zijn er wat onduidelijkheden opgedoken:
- De MAX232 transceiver werkt op 5V. Een ESP32 is niet 5V tolerant. Je zal hier een MAX3232 voor moeten kopen. Pinout is hetzelfde, package is SOIC en dus nog soldeerbaar.

Max3232 is wat ik heb, en van plan was te gebruiken. Had ik de verkeerde datasheet gelinkt misschien? Ik dacht dat 1 datasheet was voor 4 vergelijkbare max chips. Ik heb ook gezien dat in de openvario een max3232 zit.

- Ben je zeker dat de aansluiting van de RX/TX op de MAX232 in je schema klopt?

Absoluut en compleet niet. Zoals gezegd, dat was een pure gok, ik raak altijd in de war vanuit welk perspectief tx en rx beschreven wordt. Morgen ga ik eens met mijn breakout board testen dan kan ik het wel met zekerheid zeggen.

- Wat is het merk/type tweede scherm dat je wil gebruiken?

Het een is sharp memory display:
https://learn.adafruit.com/adafruit-sharp-memory-display-breakout

Het ander een waveshare 1.54" eink display:
https://www.waveshare.com/wiki/1.54inch_e-Paper_Module

Kan je ook een schets maken hoe je de pcb en de schermen wil stacken (mechanisch)? Kan je mss ook op aanduiden aan welke rand je de RJ45 en de ESP wil (naar toegankelijkheid toe).

PCb en schermen worden niet gestackt. Daar is geen plaats voor, de stappenmotor en naald moet vlak onder het scherm. Misschien dat deze foto's helpen:







Of het huidige 3D ontwerp:
https://www.thingiverse.com/thing:2579583

Maar dat is niet klaar, en ik heb nog niets voorzien om de overige electronica te monteren, dat design ik wel eens ik een bord of ontwerp heb. Maar de buitenafmetering van het instrument moeten 60x60mm zijn (reken 50mm binnen diameter, want er zijn nog bouten ook) en ik kan eigenlijk zo diep gaan als ik wil. De RJ45 zou wel "achteraan" moeten komen, dus misschien best parallel en dichtbij de USB aansluiting van de ESP. En dan de pinnen voor scherm misschien aan de "voorkant" van het bord, tegenover de RJ45. Maar ook dat is niet echt belangrijk.

Epyon

Legacy Member
P4man zei:
Max3232 is wat ik heb, en van plan was te gebruiken. Had ik de verkeerde datasheet gelinkt misschien? Ik dacht dat 1 datasheet was voor 4 vergelijkbare max chips. Ik heb ook gezien dat in de openvario een max3232 zit.
My bad, ik had enkel op je Fritzing tekening gekeken en er van uitgegaan dat je een MAX232 had gebruikt. Solved dus.

Absoluut en compleet niet. Zoals gezegd, dat was een pure gok, ik raak altijd in de war vanuit welk perspectief tx en rx beschreven wordt. Morgen ga ik eens met mijn breakout board testen dan kan ik het wel met zekerheid zeggen.
Ken het, twijfel ook nog soms :) . T.o.v. de microcontroller is Tx uitgaand, Rx ingaand. Tx moet aan pin 11 DIN1 (Driver In 1), Rx moet aan pin 12 ROUT1 (Receiver Out 1). Ik zal het voorlopig zo houden tot je dit kan bevestigen met je test.

Het een is sharp memory display:
https://learn.adafruit.com/adafruit-sharp-memory-display-breakout

Het ander een waveshare 1.54" eink display:
https://www.waveshare.com/wiki/1.54inch_e-Paper_Module

PCb en schermen worden niet gestackt. Daar is geen plaats voor, de stappenmotor en naald moet vlak onder het scherm. Misschien dat deze foto's helpen:
Ok, dat maakt het veel eenvoudiger :) . Ik voorzie dan gewoon een footprint voor headers, waar je eventueel ook gewoon draden aan kan solderen.

De RJ45 zou wel "achteraan" moeten komen, dus misschien best parallel en dichtbij de USB aansluiting van de ESP. En dan de pinnen voor scherm misschien aan de "voorkant" van het bord, tegenover de RJ45. Maar ook dat is niet echt belangrijk.
Ok.

Epyon

Legacy Member
Ziezo: het eerste schema ;) .

7K5MmH.jpg


Ik kan je een HR pdf of de Eagle file bezorgen. Zoals je ziet heb ik voor het overzicht geen net getrokken tussen alle verbindingen, maar alle pinnen met dezelfde naam hangen aan elkaar.

Ik heb voorlopig gewoon het schema van je Fritzing tekening overgenomen. Enkele openstaande punten die je eens moet bekijken:
- Alle verbindingen na te kijken
- Tx/Rx verbindingen (polariteit?) tussen de ESP en de RS232 transceiver na te kijken!
- TX/Rx verbindingen (polariteit) tussen de RJ45 en de RS232 transceiver na te kijken!
- AX1201 pinout na te kijken
- Verbinding met rotary encoder: ik heb dit nu getekend als een gewone rotary encoder. Na te kijken, want ik snap de bedrading van de encoder in je Fritzing niet volledig.
- Ik heb eigen waardes voor de condensators bij de RS232 en de AX1201 genomen, tenzij je zelf waardes hebt?
- Ik heb diagnostische LEDs voor de seriële communicatie toegevoegd. Uit ondervinding weet ik dat dit zeer handig kan zijn, maar je hoeft het niet te solderen als je het niet wilt.

P4man

Legacy Member
Epyon zei:
Z
Ik heb voorlopig gewoon het schema van je Fritzing tekening overgenomen. Enkele openstaande punten die je eens moet bekijken:
- Alle verbindingen na te kijken
- Tx/Rx verbindingen (polariteit?) tussen de ESP en de RS232 transceiver na te kijken!
- TX/Rx verbindingen (polariteit) tussen de RJ45 en de RS232 transceiver na te kijken!
- AX1201 pinout na te kijken
- Verbinding met rotary encoder: ik heb dit nu getekend als een gewone rotary encoder. Na te kijken, want ik snap de bedrading van de encoder in je Fritzing niet volledig.
- Ik heb eigen waardes voor de condensators bij de RS232 en de AX1201 genomen, tenzij je zelf waardes hebt?
- Ik heb diagnostische LEDs voor de seriële communicatie toegevoegd. Uit ondervinding weet ik dat dit zeer handig kan zijn, maar je hoeft het niet te solderen als je het niet wilt.

Schitterend :)

AX pinout is correct.
Rotary encoder niet, een van de pinnen moet aan 3V ipv grond.
RS232 laat ik morgen weten.
Scherm aansluitingen lijken me juist.

Caps, weet jij meer van dan ik, maar ik snap niet helemaal waarom je twee caps can van 1uF in parallel hebt gehangen voor de AX controller?
FWIW, In de datasheet staat
To filter fast voltage transients, it is highly recommended to connect two 100nF ceramic
capacitors to the power supply pins, one on either side and as close as possible to the
chip.
Moreover, to protect the chip against latch-up, a 5uF capacitor per motor connected
should be added. Thus, for 4 motors, typically a 22uF capacitor must be used, either
electrolytic or tantalum. Note this capacitor can be placed close to the voltage
regulator.

Voor 1 motor is dat dan ~5uF ?
Niet dat het veel zal uitmaken, het werkt ook prima zonder enige caps ;).

Epyon

Legacy Member
P4man zei:
Rotary encoder niet, een van de pinnen moet aan 3V ipv grond.
Je bedoelt van de ingebouwde switch dan? Voorzie ik dan niet beter een pull-up?

RS232 laat ik morgen weten.
Scherm aansluitingen lijken me juist.
Ok!

Caps, weet jij meer van dan ik, maar ik snap niet helemaal waarom je twee caps can van 1uF in parallel hebt gehangen voor de AX controller?
Op het schema lijkt dit idd zo, maar op het board zal ik die twee caps dicht bij de voedingspinnen van de AX chip zetten. Het is gewoon ordelijker dit zo op het schema te tekenen.

Voor 1 motor is dat dan ~5uF ?
Niet dat het veel zal uitmaken, het werkt ook prima zonder enige caps ;).
Steppers kunnen idd grote stroompieken trekken, en als je geen condensators voorziet kan dit de spanning drastisch doen dalen. Maar ik neem aan dat er hier geen grote verplaatsingen gebeuren, gezien het op je breadboard ook werkt zonder grote condensators?

P4man

Legacy Member
Epyon zei:
Je bedoelt van de ingebouwde switch dan? Voorzie ik dan niet beter een pull-up?

Ik dacht dat niet nodig was, omdat de ESP interne pullups heeft, maar nu begin ik twijfelen. Ik gebruik nu een encoder met breakout board hetzelfde type dat je hier ziet:

Arduino Rotary Encoder Wiring

Dat zijn alleen pullups, niet? Maar ik ga wellicht een 'gewone' encoder gebruiken zonder breakout, omdat die helemaal in de hoek moet. Als je denkt dat het nodig is, zet die pull ups er dan maar bij. Zal sowieso geen kwaad kunnen.

Op het schema lijkt dit idd zo, maar op het board zal ik die twee caps dicht bij de voedingspinnen van de AX chip zetten. Het is gewoon ordelijker dit zo op het schema te tekenen.

Oki

Steppers kunnen idd grote stroompieken trekken, en als je geen condensators voorziet kan dit de spanning drastisch doen dalen. Maar ik neem aan dat er hier geen grote verplaatsingen gebeuren, gezien het op je breadboard ook werkt zonder grote condensators?

Ja, die chip hangt nu rechtstreeks aan de ESP en dat werkt prima. Ik heb pas later die datasheet gevonden waarin ze die caps suggereren.

Epyon

Legacy Member
P4man zei:
Ik dacht dat niet nodig was, omdat de ESP interne pullups heeft, maar nu begin ik twijfelen. Ik gebruik nu een encoder met breakout board hetzelfde type dat je hier ziet:

Arduino Rotary Encoder Wiring

Dat zijn alleen pullups, niet? Maar ik ga wellicht een 'gewone' encoder gebruiken zonder breakout, omdat die helemaal in de hoek moet. Als je denkt dat het nodig is, zet die pull ups er dan maar bij. Zal sowieso geen kwaad kunnen.
Als je een aparte 'bare' encoder gaat gebruiken zijn die pull-ups vereist, anders ga je nooit een signaal krijgen op je pinnen. Ik zal ze voorzien op de PCB. Ga je de encoder monteren op de PCB (m.a.w. voorzie ik een footprint) of ga je hem ook met kabels verbinden (dan voorzie ik een soldeerbare header).

Ja, die chip hangt nu rechtstreeks aan de ESP en dat werkt prima. Ik heb pas later die datasheet gevonden waarin ze die caps suggereren.
Ik denk dat de 1µF die ik nu voorzien heb aan de LDO dan wel zal volstaan. Worst case moet je die verwijderen en een grotere capaciteit solderen.

P4man

Legacy Member
Epyon zei:
Als je een aparte 'bare' encoder gaat gebruiken zijn die pull-ups vereist, anders ga je nooit een signaal krijgen op je pinnen. Ik zal ze voorzien op de PCB. Ga je de encoder monteren op de PCB (m.a.w. voorzie ik een footprint) of ga je hem ook met kabels verbinden (dan voorzie ik een soldeerbare header).

Die encoder, dat zijn eigenlijk toch maar gewoon schakelaartjes die 3V schakelen naar een input pin? Dat zou toch moeten werken met de interne pullups (pin als input definiëren) of begrijp ik dat mis?
Soit, op het PCB kan niet, ik zal sowieso kabeltjes moeten trekken, dus gewoon een header is prima. Alvast reuze bedankt!

Epyon

Legacy Member
P4man zei:
Die encoder, dat zijn eigenlijk toch maar gewoon schakelaartjes die 3V schakelen naar een input pin? Dat zou toch moeten werken met de interne pullups (pin als input definiëren) of begrijp ik dat mis?
Soit, op het PCB kan niet, ik zal sowieso kabeltjes moeten trekken, dus gewoon een header is prima. Alvast reuze bedankt!
Het is good design practice om 3.3V niet rechtstreeks op een input pin te zetten. Je doet dit via een pull-up weerstand, waarbij de schakelaar tijdens het schakelen de weerstand met GND verbindt en de input pin dan 0V leest. Als de ESP idd internal pull-ups heeft kan het zonder externe pull-ups, maar als je breadboard schakeling nu pull-ups gebruikt (op dat break-out board) is het beter dat we ze ook op de PCB voorzien.

Morgen het echte werk, de routing op het board :D .

P4man

Legacy Member
Heb even gechecked met adafruit, en de ESP kan wel degelijk gevoed worden langs de 'USB' pin. Ze raden wel aan om er een diode tussen te zetten, voor hetgeen jij aanhaalde, als je per ongelijk tegelijk USB en externe 5V gebruikt. De 0.7V drop van de diode is geen probleem voor de regulator van de ESP maar ik weet niet of de AX chip en motor even blij gaan zijn met zo'n voltage drop. De stappen motor heeft een rating van 5-10V, en 'meer is beter' hier, want dat betekent een snellere naald. Dus mja, wat mij betreft mag je die diode er uit laten, ik zal op de bench gewoon de +12V uit van de openvario afkoppelen, kan er niet veel misgaan, en eenmaal gemonteerd zal niemand per ongeluk een USB poort aansluiten op de achterkant van een instrument :).

Epyon

Legacy Member
Het probleem is meestal niet zozeer de voltage drop, wel het vermogen dat de diode dissipeert. Stel dat je 0,7V drop op een verbruik van 500mA hebt, dan moet die diode 350mW dissiperen. Er bestaat een trucje om die voltage drop te vermijden, heb je wel twee extra weerstanden, een opamp en een mosfet voor nodig. Dan kan je probleemloos langs twee kanten voeden. Maar als je het niet nodig vindt is dat ook goed, gewoon opletten bij het voeden dan :) .

P4man

Legacy Member
ok de max3232 werkt. Ik heb hem zo aangesloten (seriele poort connector wel negeren, zie verder):

arduino_rs232.png


Als ik het goed heb, betekent dat tussen de esp en de max:
pin 17 (TX) -> T1 in
pin 16 (RX) -> R1 out
(en 3V en gnd)

Van de max naar de RJ45:
T1 out -> pin 6 (beschreven in IGC als "TX to device"
R1 in -> pin 5 (beschreven in IGC als RX from device"
GND -> pin 8

Gebaseerd op dit schema:
Zsk0TTj.png


Overigens trekt die stappen motor niet meer dan ~25mA. Die kan rechtstreeks aangesloten worden op 5V arduino pinnen, zonder controller. Maar dan heb je geen microstepping, en beweegt hij iets schokkeriger.

Epyon

Legacy Member
Ziezo: het nieuwe schema:
dzFDNX.jpg


Kijk je dit nog eens na? T.o.v. van de vorige versie is de encoder vervangen door een header en zijn er pullup weerstanden voorzien. Ik heb de verbinding tussen de 5V van de LDO en de VUSB van de ESP via een header laten verlopen. Hier kan je een jumper opzetten, of een brugje solderen. Als je debugt neem je dan gewoon die jumper/brugje wegje en zal je nooit twee voedingen kortsluiten :) .

En het concept van de board layout:
RkS9yc.jpg


Het bord is nu 79x45mm. Zoals je ziet kan ik nog wat compacter, bijv door dual sided te werken en de MAXRS3232 aan de andere kant van het bord (onder de ESP) te zetten. Dat verhoogt de routing complexiteit wel wat.

Alle weerstanden en caps zijn 1206 en dus makkelijk met de hand te solderen. De elco's aan de LDO zijn Panasonic Type D. Als je liever andere footprints gebruikt moet je dit zeggen (als je bijv. al condensators liggen hebt).

Geef gerust je bemerkingen over de layout, ik heb nog niks gerouterd dus alles mag nog veranderen :) .

*edit* mounting holes vergeten te voorzien...

P4man

Legacy Member
Die encoder, dat snap ik niet? 3 van die pinnen zouden naar digitale IO's van de ESP moeten (2 voor de rotary, eentje voor de druknop), en dan 3V en GND. Dit is zoals het nu is:

rotary-encoder-arduino-robotic-respberry-littlecraft-1604-16-littlecraft@3.jpg


Kan best zijn dat je het juist hebt hoor, ik begrijp het alleen niet :)
Al de rest ziet er mij juist uit.

Het valt een beetje groter uit dan ik verwacht had, en als het niet te moeilijk is, mag je zeker onder de ESP componenten plaatsen en/of tweezijdig werken. Maar desnoods, zoals het nu, krijg ik het wel kwijt, en het ziet er mooi uit. Net echt :).

De keuze van de componenten maakt mij niet uit, die spullen moet ik toch bestellen.
Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.
Terug
Bovenaan