How do you test your module prototypes?
Do you test it on a breadboard? It’s not very funny with SMD components =/
Or do you double / triple check the layout ,order the pcb and hope that everything will be fine - because the costs for the pcb’s are so low?
How do you test your module prototypes?
Personally i wing it
That’s what I’ve been doing. I at least triple check then decide it will work perfectly and order 50 PCBs… Don’t do what I do. Order 10. I have a box full of useless PCBs because despite my triple checks there seems to always be something I couldn’t anticipate. Also, be sure and open your Gerber files in a viewer and double check them in addition to your Eagle files. Everything can look great in Eagle but then you will find that you’re going to end up with solder mask on top of your pads or silk on the wrong side of the board, etc.
Also, a good tip that someone in my user group gave me was to print your business card info on the back side of your prototypes. Then you can hand the extras out as business cards. Of course, you’ll probably want to remove that on your final order.
Don’t mess with breadboards. EVER. Like, that’s not really the first step in the design process, unless you really have no clue how something works (if that’s the case, you probably shouldn’t attempt to make a board for it!)
You can use breadboards to experiment with concepts, but not as a first step in doing designs. Breadboards: offer no ability to prototype designs that use any appreciable amount of power or frequency; offer no way for you to transfer the design into your EDA; are really only useful for selecting components in low-frequency analog designs.
There are really three things that can go wrong I’ve found: nets, footprints, and layout. Breadboards can only help you with maybe the first one.
Nets: Make sure you actually understand what you’re doing. I know that sounds stupid, but when I started doing PCBs, I often copied app schematics into my PCB editor without really understanding why components are connected the way they are. If you do that, you’re prone to make mistakes. My boards would come back, and I would have accidentally hooked up a USB pull-up resistor on the wrong side of the termination resistor, or I’d accidentally flip the + and - of an op amp. Stupid stuff like that. Once you know how a circuit works, you won’t make nearly as many errors, because rookie mistakes like the ones mentioned pop out at you immediately. I’d recognize a flipped +/- input on an inverting op-amp even if I was completely intoxicated – but only because I know what negative feedback is! With respect to pin-outs, look for the “top side view” label on diagrams – if you don’t see it, don’t assume. Keep digging.
Footprints: Don’t blindly use footprints you find on the internet. Find the actual, exact part you intend to purchase. I’m not talking about a “PIC18F1825” – I’m talking about the actual part, with the footprint suffix. Look up the part’s datasheet, and make sure you carefully look at the pinout and the package description. Carefully select the footprint from your library – most JEDEC packages come in different sizes that have the same number of pins and look indistinguishable. Measure them once they’re on the screen, just to make sure. If you’re doing ANYTHING with connectors, always use 3D models. Connectors tend to have oddly-positioned pads and holes (the holes are easy to forget!), so I always place the 3D model inside the editor, and draw the footprint around it, and then verify with the datasheet.
Layout: Figure out your PCB manufacturer’s specs first. Set up rules from them before you ever start routing. Don’t let all of your knowledge of electronics get thrown away simply because it feels like you’re playing an adult version of etch-a-sketch. You can’t blindly connect the dots – you have to be conscientious of what each signal is. Use net labels, so you know what you’re actually routing. If you’re about ready to connect two pads together, and you don’t even know what signal the pads carry, how will you possibly know how to route it? Use your EDA package’s tools with respect to differential routing. Any sort of high-speed design should be done carefully. Usually datasheets have recommendations for NET lengths and stuff – use those recommendations, even if they look silly or overly strict. Heck, WHENEVER someone gives you layout recommendations in a datasheet, it usually means it’s important. Use DRC; it will tell you if you’ve forgotten a route – but it’s only as good as your netlist is.
EDIT: Most gadgeteer modules are very small, so this isn’t usually a useful recommendation, but when you’re building a big thing, I’d highly recommend working in terms of modules. Want to build a big embedded system around an STM32F4? Grab a discovery board, and make/buy some peripheral boards that have everything you want. You’ll be able to hook them up with header wires (make sure you have lots of F-F and M-F header cables!), and pull signals off of them really easily for use on a scope/multimeter/spectrum analyzer.
Nothing screams “competent engineer” like a business card printed on the back side of a PCB labeled “REV G”…
I see where you’re coming from. Fortunately, I usually begin my talks with “I am not a EE. This is my hobby.” So, I view revisions as a badge of pride. Every one usually means I learned at least one new thing. However, if I were getting paid to produce PCB’s I’d certainly be a little more sensitive to your perspective.
I would think that most of you do all the routing manually. As for me I spend lots of time designing the schematic and leave the routing to the auto router. I grant you that the layout might not be as sexy as a manually routed board, but it saves a lot of time. And if I change the schematic its just reroute the complete board, -it normally only takes 30sec.
This is a picture of one of my PCBs. For a full description have a look at this http://letsmakerobots.com/node/33670
I have never had an error on any of my designs due to the auto router. The error has always come from my schematic and general design errors.
PS. I used DipTrace by the way.
Great tips, thanks!
I ordered my first module pcbs a few weeks ago and had some footprint mistakes =
So next time I will check that better before ordering the new ones
@ Jay: thank you for your helpful explanation…can you explain that point woth the 3D connectors? Wich 3d editor do you use? and what do you mean with “so I always place the 3D model inside the editor, and draw the footprint around it, and then verify with the datasheet.”? Can you explain that step please
I’m guessing that the DipTrace auto-route works alot better than the Eagle auto-route. I’ve tried Eagles a few times and it always leaves enough unrouted that I basically have to route the whole thing anyway. Also, it doesn’t do anything in regards to laying out the parts in the most efficient manner. If DipTrace does those two things well, then I might just be willing to buy a license. I usually spend 2-3 nights manually routing the module I’ve been working on every time I have to make a major change
I use Altium Designer for my PB designs. Even this expensive software has a very poor autorouter and I have for the past 5 years being doing them all manually now. Rework is simply a matter to adding or deleting traces. Have the whole board re-routed risks timing changes if there are issues with this. I new board typically takes from 2-3 days to manually route depending on complexity. The likes of my ChipworX board, it took 2 days. If you have the right tools, manual is pretty quick and you end up with a nicer looking layout.
For the likes of USB, the D+ and D- tracks should really be laid out using differential routing. As most boards are low speed, it should work but I prefer to stick with preferred methods, even more so when it comes to Ethernet tracks
DipTrace gives you 300 pins and two layer design for free. You can get additional free pins if your become a member of LMR http://letsmakerobots.com/ . This gives you a total of 500 pins. As a reference this board has 347 pins.
There is no size limit on the free design.
Just for a test I un-routed this board and did a new auto-route. It took less than 10 seconds.
With Net Classes you can change trace with, clearance etc. You can also set trace limits (min, max) and autorouting priority along with lots of other stuff.
You are also free to route your critical traces manually and let the autorouter do the rest.
I also like the built in 3D visualizer.
So its DipTrace all the way for me
It’s simple, with time, many of the circuits that we use in our PCBs are what we have already tested and tried so we usually don’t need to do it again and again. This is how I do it. Whatever circuit I’m putting into the board, I first simulate it using NI MultiSim. Then it is up to me to decide whether the circuit is crucial enough to be bread boarded or not. This is an informed decision which is directly influenced by the cost of the board. If the cost of the board is too low and there aren’t many smaller circuits that I’m worried about then I simply just send the design and get it made.