Author Topic: Feedback on my first pcb  (Read 2153 times)

0 Members and 1 Guest are viewing this topic.

Offline tyrel

  • Contributor
  • Posts: 17
  • Country: be
Feedback on my first pcb
« on: October 09, 2016, 07:07:08 am »
Hey guys,

I have just finished to design and build my first pcb.
It is functionnal (as far as i can tell), but with my limited experience, i would like to have an external feedback/criticism on it.

It is an Arduino shield for the dynamixel servomotors from Robotis (http://www.robotis.com/xe/dynamixel_en).
Those servos use a half-duplex serial protocol to control them.
The schematic is simple, it simply power the servos from a 12V power source, and convert between the arduino uart lines and the half-duplex line of the servo using two 74s components.
The 74s also do level conversion , so both 5v and 3.3v arduino models can be used.

There is a reverse voltage protection, and an overcurrent protection (a fuse) on the power line.
According to the specs, the max current of one motor is 900mA, but they mention up to 1.5A when stalled.
I have dimensionned the board  (traces, reverse protection mosfet and input screw terminal) for 10A max, but each motor connector can take maximum 3A.
Is it ok to use a 10A fuse in these conditions, as long as i make sure that each connector does not have more than 3/4 motor connected (this is what Robotis is doing in their control boards)?

More generally, do you see any rookie error in the design, or something that should be improved?

Thank you very much for your answers!

For those interest, the board design is available at https://github.com/descampsa/DynamixelShield, and the code at  https://github.com/descampsa/ardyno.
 

Offline tautech

  • Super Contributor
  • ***
  • Posts: 11109
  • Country: nz
    • Taupaki Technologies Ltd.
Re: Feedback on my first pcb
« Reply #1 on: October 09, 2016, 07:57:45 am »
Welcome to the forum.

Not too bad for a first effort at all.  :-+

I see some attempt to identify Gnd pins on some connectors, fine but they look a little unusual. Maybe you'd be better with "Gnd" on the overlay.
The X (cross) in the traces from P8 to P9 is the classic acid trap and need be changed so those traces don't meet the other at the same point. Run a trace up the face of P6 to P7 and a branch to P9.

IF you didn't have a solder mask, a small neckdown on the trace where it passes on through the centre pin of P4 might be preferred to alleviate the chance of a solder bridge. One of the outside pads of both P4 and P5 is smaller, why?
Try to keep all TH pads as large as possible and adjust the shape of them to provide clearances required. Think in terms of robustness should the need for rework arise and a lower chance of lifting pads from excessive soldering times.
For both diodes and polarized caps indicate polarity on the overlay or on the copper with a clear symbol such as a "K" or "+".

Not too much to change really.


Avid Rabid Hobbyist & NZ Siglent Distributor
 
The following users thanked this post: tyrel

Offline tyrel

  • Contributor
  • Posts: 17
  • Country: be
Re: Feedback on my first pcb
« Reply #2 on: October 09, 2016, 06:49:20 pm »
Hey tautech, thanks for your answer and your tips!

Quote
I see some attempt to identify Gnd pins on some connectors, fine but they look a little unusual. Maybe you'd be better with "Gnd" on the overlay.
I am not sure what you are referring to here?

Quote
The X (cross) in the traces from P8 to P9 is the classic acid trap and need be changed so those traces don't meet the other at the same point.
Okay, i have checked the pcbs (from seeedstudio), and they seem perfect, but i will change it anyway , better safe than sorry.

Quote
One of the outside pads of both P4 and P5 is smaller, why?
This is an artifact of the rendering process, all pads are the same (the small size). I used the rendering from https://kitnic.it/boards/github.com/descampsa/dynamixelshield/.
I still have to figure out how to get an acceptable rendering out of kicad  |O

Quote
Try to keep all TH pads as large as possible and adjust the shape of them to provide clearances required.
I should probably increase their size on the motor connectors, you are right, they are small compared to the other connectors (other connectors were standard kicad footprints).

Quote
For both diodes and polarized caps indicate polarity on the overlay or on the copper with a clear symbol such as a "K" or "+".
Yep, i noticed that when soldering my board, when i had to look at the traces to know the polarity.

Any thought about the overcurrent protection? By the way, is a simple glass fuse good enough for that kind of application, or is it better to use a ceramic fuse?
 

Offline tautech

  • Super Contributor
  • ***
  • Posts: 11109
  • Country: nz
    • Taupaki Technologies Ltd.
Re: Feedback on my first pcb
« Reply #3 on: October 09, 2016, 07:18:13 pm »
Hey tautech, thanks for your answer and your tips!

Quote
I see some attempt to identify Gnd pins on some connectors, fine but they look a little unusual. Maybe you'd be better with "Gnd" on the overlay.
I am not sure what you are referring to here?
I guess this is the reason:
Quote
This is an artifact of the rendering process, all pads are the same (the small size).


Quote
Any thought about the overcurrent protection? By the way, is a simple glass fuse good enough for that kind of application, or is it better to use a ceramic fuse?
As the energy levels are low (compared to mains) a plain glass fuse will be sufficient.
But they're never fast enough to protect semiconductors.....usually.  >:(
Avid Rabid Hobbyist & NZ Siglent Distributor
 

Offline bktemp

  • Super Contributor
  • ***
  • Posts: 1623
  • Country: de
Re: Feedback on my first pcb
« Reply #4 on: October 09, 2016, 07:27:56 pm »
I would connect the mosfet after the fuse: When the fuse fails, there will be a voltage spike. Since there is no load except the mosfet gate, the voltage spike will damage the mosfet, maybe even shorting gate-source and therefore the input supply. If the gate is connected after the fuse, is will be connected in parallel with C1, providing some protection for the sensitive gate.
 
The following users thanked this post: tyrel

Offline tyrel

  • Contributor
  • Posts: 17
  • Country: be
Re: Feedback on my first pcb
« Reply #5 on: October 10, 2016, 05:05:14 am »
Hey bktemp, thanks, i add not considered that in the design.
I guess that it depends of the exact power supply characteristics, and that the only way to be sure would be to test it, but do you think that the C1 value (47uF) can be enough to limit the voltage spike ?

I noticed that i should also add a protection resistor on the rx line, in case the arduino rx pin would  be set in an output  state.
Without that, i could have the 74AHC125 output and the atmega pin trying to drive the line simultaneously, it could be a problem...

Finally, i would like to add the possibility to program the arduino when the shield is plugged in (currently not possible on some arduino models where the usb connection is shared with the uart).
A first easy step would be to put a pull down resistor on the direction port, to disconnect TX by default and avoid the programming protocol data to go to the motor and possibly mess with their configuration (i should have done that anyway..)
On the RX side, the best option i see is to add a second 74AHC126 with the enable line connected to the reset line of the arduino, so that the RX would be in high impedance when reset is active (low).
Sounds correct? Maybe i am missing a simpler option?

 

Offline tyrel

  • Contributor
  • Posts: 17
  • Country: be
Re: Feedback on my first pcb
« Reply #6 on: October 10, 2016, 06:21:14 am »
By the way, the capacitor and led had silkcreen polarity markings ... on the pads  :palm:
One more thing to be carefull to when using kicad footprints.
 

Offline kasbah

  • Contributor
  • Posts: 35
  • Country: gb
    • My electronics project sharing site, kitnic.it
Re: Feedback on my first pcb
« Reply #7 on: October 10, 2016, 11:11:15 am »
Quote
One of the outside pads of both P4 and P5 is smaller, why?
This is an artifact of the rendering process, all pads are the same (the small size). I used the rendering from https://kitnic.it/boards/github.com/descampsa/dynamixelshield/.
I still have to figure out how to get an acceptable rendering out of kicad  |O

KiCAD is not to blame here and neither is the renderer that I use on kitnic.it ;D.

I double checked with gerbv and viewer.tracespace.io and it is an accurate render of what you will get on the board. Since you have connected the middle pin with a very wide trace the solder resist margin exposes copper and makes the pad look bigger (see attached image). On the ground pads you have thermal relief connections which are showing up in the margin as well and giving them the odd looking shapes. None of this should cause you any problems though.

Do feel free to report any issues you encounter with the renderer at https://github.com/tracespace/pcb-stackup/issues. I might not stumble across your reports on here  ^-^.
« Last Edit: October 10, 2016, 12:33:15 pm by kasbah »
Share your designs on kitspace.org
 

Offline tyrel

  • Contributor
  • Posts: 17
  • Country: be
Re: Feedback on my first pcb
« Reply #8 on: October 10, 2016, 04:53:08 pm »
Yes, you are absolutely right, kasbah.
At a first look, the two round pads looked exactly the same, but looking closer, the middle pad is indeed bigger due to the margin. My bad.

I didn't really blame kicad for the rendering, i just explained that i used this renderer because it was better than anything i managed to get out of kicad.

Thanks for the link to the github repository, i was going to report the issue with inkscape, but i see that you beat me to it.
 
The following users thanked this post: kasbah

Offline bson

  • Supporter
  • ****
  • Posts: 969
  • Country: us
Re: Feedback on my first pcb
« Reply #9 on: October 11, 2016, 05:00:32 am »
I'd give it a few vias between the two ground planes, beyond ground pins.  Don't need to go overboard, just one here and there to keep them electrically close.

To do this in KiCAD (to save you half an hour of googling): use a 30mil or such trace size.  Start a trace (X key, click on either top or bottom zone), draw a short trace, switch to the other side (V key for a via), and draw a short trace to that zone (click to finish the trace).  The reason the trace segments are needed is that KiCAD doesn't know how to join two zones with a via directly and although you can place a via there it won't be connected to anything.  Refill the zones and check that all your vias are properly connected.  Be aware that many of the "cleanup" operations (like removing redundant or unconnected trace segments) will remove your ground stitches.  Hence I always do this last - of course it doesn't make sense to stitch ground planes until done with the layout anyway!  If you want to keep them you need to define nets for them (PITA) or enter them as 1 pin components connected to ground only via the schematic (also PITA and will give you a plated hole rather than a tiny via).  And since any change to the schematic is likely to require updating the stitching there's little reason to make them overly permanent.
« Last Edit: October 11, 2016, 05:11:36 am by bson »
<This space intentionally left blank>
 

Offline tyrel

  • Contributor
  • Posts: 17
  • Country: be
Re: Feedback on my first pcb
« Reply #10 on: October 11, 2016, 09:19:47 am »
Thanks for the detailled explanation , bson.
You have to connect at least one of the traces to a ground pad, right?
If i don't do it, it works at first, but when i reopen kicad and refill the zone, it doesn't work anymore... That's a PITA, indeed.

I hadn't even notice the cleanup tool, not sure i like this feature anyway, it would be better if it would point to possible errors, like the drc, rather than silently 'fixing' them. I had a look to open an issue about that, but someone already did it : https://bugs.launchpad.net/kicad/+bug/1571305, so there is hope.
 


Share me

Digg  Facebook  SlashDot  Delicious  Technorati  Twitter  Google  Yahoo
Smf