Author Topic: Help Validating PCB Design  (Read 4404 times)

0 Members and 1 Guest are viewing this topic.

Offline microcompiler

  • Contributor
  • Posts: 8
  • Country: us
Help Validating PCB Design
« on: May 02, 2017, 11:08:14 am »
I’m new to PBC design and in general the hardware side of electronics is a hobby.  I’ve had a couple of collage classes in electronics and that’s it. I have much more experience on the software side of electronic devices. This is my first real PCB that I plan to have Seeed fabricate and assemble using Ublox’s new dead reckoning GPS unit.  To save on costs I would like to use as many components as I can from Seeed’s “OPL list”.

I’m asking for assistance validating my Raspberry HAT design.  This design is pushing my hardware knowledge to the limits but I really want to see a working version of this board running on Windows IoT core. It's now become a personal mission. Therefore, I’m reaching out to this form for help!

I have created this project using Altium Circuit Maker and it’s published under the project name Raspberry Pi GPS Dead Reckoning HAT.  I included several project screen shots below for review.  I think I’m getting close to a final design but not confident enough to send for fabrication. The down side to this project is the NEO-M8U modules are $40 a piece in small quantities.  Therefore I can’t afford screwing it up.  Any advice you are willing to provide would be great!

Here are the specific areas that I would like to get feedback around:
  • Am I using right capacitors and resistors values on the NEO-M8U, BNO005, ADS1115 chips?
  • Is the overall circuit design solid?
  • Power will be supplied in two ways.  From the Raspberry directly with the usb port or using this battery module.  What is the simplest/cleanest IC to prevent an issue if both power sources are connected at the same time? Both are clean power sources but I want to prevent smoking the device if power is connected both ways at the same time.
  • Do I have the battery correctly designed to charge the rechargeable battery properly once power is restored to the device? I think it’s laid out correctly from a design perspective but I’m not confident it’s correct on the PCB.
  • Do you see any issues with the PCB traces or layout?
  • What other items do you I need to change/fix to increase my chances for a working HAT the first time?
  • I’m actively developing code for a breadboard versions of the NEO-M8U, BNO005, ADS1115 chips therefore at this point I would be stepping backwards if I used other chips.  However, I’m open to changing other components.  Would you change any of the other components and why?





 

Offline sokoloff

  • Frequent Contributor
  • **
  • Posts: 889
  • Country: us
Re: Help Validating PCB Design
« Reply #1 on: May 02, 2017, 11:44:16 am »
The GPIO connector needs to come off the bottom of the board, not the top. (The 3D model shows it coming off the top.) I don't like how the pads for that connector are laying out. (It could just be my unfamiliarity with CircuitMaker. What does the top layer of the board look like without the components? Just the top copper, soldermask, and silkscreen.)

I don't see any fiducials to aid in pick-n-place. (Doesn't matter for hand-assembly.)

If you're doing one-off prototyping, all of that could be reasonably hand-soldered, reducing the risk of wasting the $40 modules. Once you know it works and (ideally) there's a market, then you can have it made by a contract manufacturer.

I'd plan on a hand-assembled test run of a couple boards (maybe more than one spin at that, recycling the module if you need to) before calling the design "done".
 

Online theatrus

  • Frequent Contributor
  • **
  • Posts: 346
  • Country: us
Re: Help Validating PCB Design
« Reply #2 on: May 02, 2017, 12:15:46 pm »
I’m new to PBC design and in general the hardware side of electronics is a hobby.  I’ve had a couple of collage classes in electronics and that’s it. I have much more experience on the software side of electronic devices. This is my first real PCB that I plan to have Seeed fabricate and assemble using Ublox’s new dead reckoning GPS unit.  To save on costs I would like to use as many components as I can from Seeed’s “OPL list”.

I’m asking for assistance validating my Raspberry HAT design.  This design is pushing my hardware knowledge to the limits but I really want to see a working version of this board running on Windows IoT core. It's now become a personal mission. Therefore, I’m reaching out to this form for help!

I have created this project using Altium Circuit Maker and it’s published under the project name Raspberry Pi GPS Dead Reckoning HAT.  I included several project screen shots below for review.  I think I’m getting close to a final design but not confident enough to send for fabrication. The down side to this project is the NEO-M8U modules are $40 a piece in small quantities.  Therefore I can’t afford screwing it up.  Any advice you are willing to provide would be great!

Here are the specific areas that I would like to get feedback around:
  • Am I using right capacitors and resistors values on the NEO-M8U, BNO005, ADS1115 chips?
  • Is the overall circuit design solid?
  • Power will be supplied in two ways.  From the Raspberry directly with the usb port or using this battery module.  What is the simplest/cleanest IC to prevent an issue if both power sources are connected at the same time? Both are clean power sources but I want to prevent smoking the device if power is connected both ways at the same time.
  • Do I have the battery correctly designed to charge the rechargeable battery properly once power is restored to the device? I think it’s laid out correctly from a design perspective but I’m not confident it’s correct on the PCB.
  • Do you see any issues with the PCB traces or layout?
  • What other items do you I need to change/fix to increase my chances for a working HAT the first time?
  • I’m actively developing code for a breadboard versions of the NEO-M8U, BNO005, ADS1115 chips therefore at this point I would be stepping backwards if I used other chips.  However, I’m open to changing other components.  Would you change any of the other components and why?


First off, congrats on a well labeled schematic with an easy to follow design.

1: Since you're pulling power from  the RPi, you may want to add a bulk capacitor (1.0uF-4.7uF) on the board to board connector. A ceramic MLCC X7R would be ideal IMO. This also includes on your power input.
2: Didn't really spend any time here. The reality of getting a full usable 16bits from that ADC may not be possible (just the nature of it). The PGA presumably buffers it so you don't need to buffer further.
3: The simplest is a diode on each input path, though it will drop the voltage to below what the RPi 5V rail expects. There are a number of "ideal diode" controllers, for example: http://www.ti.com/lsds/ti/power-management/oring-and-smart-diodes-overview.page
4: C4/R4 have air wires :) Also, it looks like your ground pour on both layers is more or less randomly connected to components. Think about how this connects to clean it up. Also, is the antenna trace to the recommendation from uBlox? RF traces are critical - they should provide some guidance on width, clearance to the ground planes and bottom plane depending on board thickness.
Software by day, hardware by night; blueAcro.com
 

Offline ziggyfish

  • Regular Contributor
  • *
  • Posts: 97
  • Country: au
Re: Help Validating PCB Design
« Reply #3 on: May 02, 2017, 02:10:11 pm »
I’m new to PBC design and in general the hardware side of electronics is a hobby.  I’ve had a couple of collage classes in electronics and that’s it. I have much more experience on the software side of electronic devices. This is my first real PCB that I plan to have Seeed fabricate and assemble using Ublox’s new dead reckoning GPS unit.  To save on costs I would like to use as many components as I can from Seeed’s “OPL list”.

I’m asking for assistance validating my Raspberry HAT design.  This design is pushing my hardware knowledge to the limits but I really want to see a working version of this board running on Windows IoT core. It's now become a personal mission. Therefore, I’m reaching out to this form for help!

I have created this project using Altium Circuit Maker and it’s published under the project name Raspberry Pi GPS Dead Reckoning HAT.  I included several project screen shots below for review.  I think I’m getting close to a final design but not confident enough to send for fabrication. The down side to this project is the NEO-M8U modules are $40 a piece in small quantities.  Therefore I can’t afford screwing it up.  Any advice you are willing to provide would be great!

Here are the specific areas that I would like to get feedback around:
  • Am I using right capacitors and resistors values on the NEO-M8U, BNO005, ADS1115 chips?
  • Is the overall circuit design solid?
  • Power will be supplied in two ways.  From the Raspberry directly with the usb port or using this battery module.  What is the simplest/cleanest IC to prevent an issue if both power sources are connected at the same time? Both are clean power sources but I want to prevent smoking the device if power is connected both ways at the same time.
  • Do I have the battery correctly designed to charge the rechargeable battery properly once power is restored to the device? I think it’s laid out correctly from a design perspective but I’m not confident it’s correct on the PCB.
  • Do you see any issues with the PCB traces or layout?
  • What other items do you I need to change/fix to increase my chances for a working HAT the first time?
  • I’m actively developing code for a breadboard versions of the NEO-M8U, BNO005, ADS1115 chips therefore at this point I would be stepping backwards if I used other chips.  However, I’m open to changing other components.  Would you change any of the other components and why?



I would make sure you have 50-ohm impedance (this depends on your PCB stack up as well as the width of the trace) on your antenna, also you according to the Hardware Integration Manual (Section 2.4) you will get better sensitivity when it has an external LNA and SAW filter.

Also, make sure you have the right antenna.

Thanks

Brendan
« Last Edit: May 02, 2017, 02:12:03 pm by ziggyfish »
 

Offline microcompiler

  • Contributor
  • Posts: 8
  • Country: us
Re: Help Validating PCB Design
« Reply #4 on: May 02, 2017, 05:05:15 pm »
Regarding the connector on the top of the board I'm trying to stick to the HAT standard as close a possible.  This type of connector has two parts allowing you to stack boards if you by the long pin header.

Yes at this point this is just a prototype and I can try and solder it However, it takes me forever to do right and I normal destroy a few components at the same time.   I'm would like to try the Seeed PCBA to do this board if it doesn't cost me an arm and a leg.  It looks like it's only a $25 setup fee plus another$10 in components labor.  This way I can spend the time working on the Windows IoT drivers.
 
 

Offline cgroen

  • Supporter
  • ****
  • Posts: 205
  • Country: dk
    • Carstens personal web
Re: Help Validating PCB Design
« Reply #5 on: May 02, 2017, 05:17:18 pm »
Regarding the BNO055, I would add the possibility to reset it from the Raspberry (connect a GPIO pin to the RST pin on BNO055). I also add a 6.8 nF capacitor parallel to the 100 nF (on the 3.3V line). This is shown in the datasheet for the BNO055 and this has worked perfect for me on all my BNO055 designs.
The RST line is a "nice to have", in seldom cases the BNO055 can come up after poweron in a suspicious state, issuing the hardware reset makes wonders :)
I have never used the external xtal (32.768 KHz) on it, in the datasheet it just says "to get the best performance use an external crystal". No mentioning on how this improves things, and also nothing about "how much" it improves things....

 

Offline Fortran

  • Regular Contributor
  • *
  • Posts: 204
  • Country: fi
Re: Help Validating PCB Design
« Reply #6 on: May 02, 2017, 05:21:38 pm »
You'll need thermal reliefs on your ground connections. Not just a hole in the soldermask.
It's gonna be damn near impossible to solder as-is.

You should find the relief settings in Design Rules.
 

Offline microcompiler

  • Contributor
  • Posts: 8
  • Country: us
Re: Help Validating PCB Design
« Reply #7 on: May 02, 2017, 05:33:24 pm »
@theatrus - Thanks again for the feedback and have updated the project with your recommended changes.  For the protection circuit would I use two LM5050 and MOSFET in each of the power rails.  I think I get the concept where when power is detected by the LM5050 it then flip the MOSFET but I'm having trouble visualizing how I would build the circuit.  A little more detail would be great.  Could you also recommend a MOSFET that would be good for this application. 

Ok, can you help me understand your comments about the ground a little more.  I'm using a ground copper polyfill on the bottom and top of the board. This way I don't have to put copper traces all over the place.  I was under the impression this is the better way to do it.  Is this not the case?  Or do I just have to isolate/clean up some other ground?  I want to get it right but I'm not sure what to clean up.

@ziggyfish - I also made the changes to account for an active antenna like this.  However, I'm not so sure I understand your comments about the 50-ohm impedance.  Would I just start with the 10-ohm that the datasheet suggests and then test the impedance once I get my first board and adjust R11.

I have uploaded new images with the pollyfil turned off so you can see the traces better.




 

Offline microcompiler

  • Contributor
  • Posts: 8
  • Country: us
Re: Help Validating PCB Design
« Reply #8 on: May 02, 2017, 05:58:19 pm »
I like your idea about the hooking up a gpio to the rest pin. I will make that change.    It looks like this Reset is activated on "low" so I should choose a GPIO that  Power-on Pull is set to "high". Correct?  Otherwise I'm guessing it would just keep resetting it's self until I forced the gpio to "high".  Yeah,  not really sure what the crystal will do to enhance performance but I figured I would do it just in case.  I also noticed that the Adafruit breakout board has this same crystal I would give it a try. 
 

Offline cgroen

  • Supporter
  • ****
  • Posts: 205
  • Country: dk
    • Carstens personal web
Re: Help Validating PCB Design
« Reply #9 on: May 02, 2017, 06:02:04 pm »
Correct about the reset signal (although I guess it would be no problem if the GPIO came up active low, you are not going to use the BNO055 until your software runs anyway ?)
OK on the external crystal, could be interesting to know what exactly it has does with regard to "performance".
Don't forget the extra decoupling cap of 6.8 nF....
 

Offline Fortran

  • Regular Contributor
  • *
  • Posts: 204
  • Country: fi
Re: Help Validating PCB Design
« Reply #10 on: May 02, 2017, 06:12:42 pm »
Both the battery and the diode seems to be hooked up backwards.
 

Offline microcompiler

  • Contributor
  • Posts: 8
  • Country: us
Re: Help Validating PCB Design
« Reply #11 on: May 02, 2017, 06:43:52 pm »
Both the battery and the diode seems to be hooked up backwards.

Yes, fixed... Thank you!
 

Online theatrus

  • Frequent Contributor
  • **
  • Posts: 346
  • Country: us
Re: Help Validating PCB Design
« Reply #12 on: May 03, 2017, 12:08:51 am »
@theatrus - Thanks again for the feedback and have updated the project with your recommended changes.  For the protection circuit would I use two LM5050 and MOSFET in each of the power rails.  I think I get the concept where when power is detected by the LM5050 it then flip the MOSFET but I'm having trouble visualizing how I would build the circuit.  A little more detail would be great.  Could you also recommend a MOSFET that would be good for this application. 

Ok, can you help me understand your comments about the ground a little more.  I'm using a ground copper polyfill on the bottom and top of the board. This way I don't have to put copper traces all over the place.  I was under the impression this is the better way to do it.  Is this not the case?  Or do I just have to isolate/clean up some other ground?  I want to get it right but I'm not sure what to clean up.

@ziggyfish - I also made the changes to account for an active antenna like this.  However, I'm not so sure I understand your comments about the 50-ohm impedance.  Would I just start with the 10-ohm that the datasheet suggests and then test the impedance once I get my first board and adjust R11.

I have uploaded new images with the pollyfil turned off so you can see the traces better.







Page 15 of the LM5050 datasheet describes the selection process: N-channel, logic level, meeting continuous current and voltage ratings for the circuit, with a low but not the lowest Rds(on). However, I realized you were discussing both the Pi and the board being powered, so ORing rails doesn't buy you much since the Pi will always be powered - at best you'd isolate the supply to just the hat board and prevent powering the Pi from the HAT - not sure it's worth it.

Re: grounding. Planes are best, but you have two and very few points (1? 2?) connecting them. Ideally, the ground plane is unbroken (no or minimum number of tracks interrupting it). This is especially critical around the RF section. My suggestion would be to move as many traces to one layer as possible, and sink one or more vias directly adjacent to any ground pin to the ground plane. You can also do via stapling of the planes (unsure if the free Altiums have this as an automatic tool).

Re: RF: this looks far worse than before from what I expect. N

When they say "50 ohms" they mean impedance and 1.5GHz, not at DC. Tuning this ideally uses a VNA, which is not likely something you have kicking around. However, manufacturers generally offer reference designs which includes board layouts - follow these exactly (spacing, dimensions, component size, widths, angles, etc) if they meet the board stackup you are using (0.062 two layer).
Software by day, hardware by night; blueAcro.com
 

Online theatrus

  • Frequent Contributor
  • **
  • Posts: 346
  • Country: us
Re: Help Validating PCB Design
« Reply #13 on: May 03, 2017, 12:13:29 am »
Correct about the reset signal (although I guess it would be no problem if the GPIO came up active low, you are not going to use the BNO055 until your software runs anyway ?)
OK on the external crystal, could be interesting to know what exactly it has does with regard to "performance".
Don't forget the extra decoupling cap of 6.8 nF....


If the GPS module has a reasonable local time (and current ephemeris data), time to first lock or reacquiring signals can go way down.
Software by day, hardware by night; blueAcro.com
 

Offline cgroen

  • Supporter
  • ****
  • Posts: 205
  • Country: dk
    • Carstens personal web
Re: Help Validating PCB Design
« Reply #14 on: May 03, 2017, 12:37:04 am »
Correct about the reset signal (although I guess it would be no problem if the GPIO came up active low, you are not going to use the BNO055 until your software runs anyway ?)
OK on the external crystal, could be interesting to know what exactly it has does with regard to "performance".
Don't forget the extra decoupling cap of 6.8 nF....


If the GPS module has a reasonable local time (and current ephemeris data), time to first lock or reacquiring signals can go way down.

I was talking about the BNO055, not the GPS (but you are still right about the GPS and fix time  :) )
 

Online pigrew

  • Frequent Contributor
  • **
  • Posts: 395
  • Country: us
Re: Help Validating PCB Design
« Reply #15 on: May 03, 2017, 01:16:38 am »
For the antenna track, it looks short enough that being exactly 50 ohms may not be so important. Find a coplanar waveguide calculator online, and adjust your track width/spacing to match its result. However, I would move the inductor so that its pad rests directly in the middle of the RF line, so you do not have a stub.

I also see a few acute angles on the board that you should get rid of.
« Last Edit: May 03, 2017, 01:18:54 am by pigrew »
 

Offline sokoloff

  • Frequent Contributor
  • **
  • Posts: 889
  • Country: us
Re: Help Validating PCB Design
« Reply #16 on: May 03, 2017, 01:18:32 am »
Regarding the connector on the top of the board I'm trying to stick to the HAT standard as close a possible.  This type of connector has two parts allowing you to stack boards if you by the long pin header.
That makes sense, but you still need the female part on the bottom of the board and male pins on the top of the board if I'm thinking about the problem correctly.
 

Online theatrus

  • Frequent Contributor
  • **
  • Posts: 346
  • Country: us
Re: Help Validating PCB Design
« Reply #17 on: May 03, 2017, 02:17:12 am »
For the antenna track, it looks short enough that being exactly 50 ohms may not be so important. Find a coplanar waveguide calculator online, and adjust your track width/spacing to match its result. However, I would move the inductor so that its pad rests directly in the middle of the RF line, so you do not have a stub.

I also see a few acute angles on the board that you should get rid of.

Yeah, agree - the super short length is going to forgive any minor mistakes. For a CPW (grounded) calculation on 2 layer FR-4, a width of about 35mil with a spacing of 8mil gets you to ~53 ohms, which is plenty close enough (as the FR-4 isn't consistent, etc etc). The current design looks more like 10/10 spacing/width which is 82ohms - not great.

Second the stub elimination advice.

Software by day, hardware by night; blueAcro.com
 

Offline h00p

  • Newbie
  • Posts: 2
  • Country: us
Re: Help Validating PCB Design
« Reply #18 on: May 03, 2017, 05:16:50 am »
You have a typo in the UART/ACD/IO silkscreen.
 

Offline ziggyfish

  • Regular Contributor
  • *
  • Posts: 97
  • Country: au
Re: Help Validating PCB Design
« Reply #19 on: May 03, 2017, 01:42:15 pm »
@ziggyfish - I also made the changes to account for an active antenna like this.  However, I'm not so sure I understand your comments about the 50-ohm impedance.  Would I just start with the 10-ohm that the datasheet suggests and then test the impedance once I get my first board and adjust R11.

The impedance I am referring too, and many commentators are referring to is the trace impedance.

To calculate the impedance of that trace, use this tool. Microstrip Impedance Calculator
 

Offline microcompiler

  • Contributor
  • Posts: 8
  • Country: us
Re: Help Validating PCB Design
« Reply #20 on: May 04, 2017, 11:51:00 am »
I was reviewing the datasheet for the BNO055 and I fined this tidbit of info on page 100 "When an internal clock is used, both pins XIN32 and XOUT32 can be left open. The internal clock of the BNO055 can have clock deviation up to +3%".  I'm not sure how much this would throw off the actual measurements from the sensor. 
 

Offline microcompiler

  • Contributor
  • Posts: 8
  • Country: us
Re: Help Validating PCB Design
« Reply #21 on: May 04, 2017, 12:03:24 pm »
For the antenna track, it looks short enough that being exactly 50 ohms may not be so important. Find a coplanar waveguide calculator online, and adjust your track width/spacing to match its result. However, I would move the inductor so that its pad rests directly in the middle of the RF line, so you do not have a stub.

I also see a few acute angles on the board that you should get rid of.

Yeah, agree - the super short length is going to forgive any minor mistakes. For a CPW (grounded) calculation on 2 layer FR-4, a width of about 35mil with a spacing of 8mil gets you to ~53 ohms, which is plenty close enough (as the FR-4 isn't consistent, etc etc). The current design looks more like 10/10 spacing/width which is 82ohms - not great.

Second the stub elimination advice.

I think I have everything finalized and now know more about CPW calculation the when I started this project after some google searching I was able to calculate a trace with 56ohms.  Using dielectric constant: 3.95 / width: .8mm /gap:  .152mm thickness: 1.5mm.  Thanks for your feedback.
 

Offline microcompiler

  • Contributor
  • Posts: 8
  • Country: us
Re: Help Validating PCB Design
« Reply #22 on: May 08, 2017, 12:25:08 pm »
I would like to start by thanking everyone for the advice and feedback on this project.  This last week has been almost entirely consumed (other then work) by reviewing every datasheet from start to finish and YouTube videos on PCB design principals. Here are the items I have hopefully addressed from everyone's comments.

1. Cleaned up the active antenna traces and calculated CPW of the trace to be 56ohms and added components for an active antenna .
2. Cleaned up the grounding and added vias at several points on the board.
3. Switched CAP and RES to 0805 package size (I'm going to try to hot plate my first prototype board).
4. Finalized my BOM and would love any feedback you might have on component selection. 

Here is what hopefully should be my final version. Any feedback would be great. 





 

Online pigrew

  • Frequent Contributor
  • **
  • Posts: 395
  • Country: us
Re: Help Validating PCB Design
« Reply #23 on: May 08, 2017, 01:25:05 pm »
I would like to start by thanking everyone for the advice and feedback on this project.  This last week has been almost entirely consumed (other then work) by reviewing every datasheet from start to finish and YouTube videos on PCB design principals. Here are the items I have hopefully addressed from everyone's comments.
IC3 looks like it has no solder mask between the pins. I'd reduce its solder mask expansion until you have maybe about 6.5 mil (depends on the pcb fabricator) of mask between the pins. My fabricator usually suggests an expansion value of 1mil for 0.5mm pitch parts.
 

Offline stevelup

  • Regular Contributor
  • *
  • Posts: 112
  • Country: gb
Re: Help Validating PCB Design
« Reply #24 on: May 08, 2017, 09:50:13 pm »
Watch your current limiting resistors on the RGB LED - it's unlikely that you want them all to be the same. The red diode has a forward voltage of 2V, the green and blue 3.2V
 


Share me

Digg  Facebook  SlashDot  Delicious  Technorati  Twitter  Google  Yahoo
Smf