Building first Propeller PCB (in KiCad)- proofreading/ feedback anyone?
WildManDan
Posts: 7
Hello Propeller Community!
My friend and I have been working on a project to create an LED stick that can create custom patterns of light on an LED strip. We are now at the point where we would like to create a PCB to make it more finalized. Using the information suggested by the Parallax forums, I created the layout for it using KiCad. We are hoping to create this board sometime in the near future, but before doing so, I was hoping to get some feedback/ constructive criticism as to how I can make this board more correct, or better. I have attached the schematic and .brd file to this thread, and would love to hear input from people who have built Propeller-based PCBs before. I am nearly certain there are things I have neglected (admittedly, out of ignorance) or ways to make what I have better. If you have experience with this, I would love to hear what you have to say so that I can incorporate your recommendations before pushing further.
Thanks so much for your help in advance!
P.S. If there is a need for any further documentation or resources to get the flavor of what I'm trying to do, please let me know. I can supply anything from the KiCad suite.
My friend and I have been working on a project to create an LED stick that can create custom patterns of light on an LED strip. We are now at the point where we would like to create a PCB to make it more finalized. Using the information suggested by the Parallax forums, I created the layout for it using KiCad. We are hoping to create this board sometime in the near future, but before doing so, I was hoping to get some feedback/ constructive criticism as to how I can make this board more correct, or better. I have attached the schematic and .brd file to this thread, and would love to hear input from people who have built Propeller-based PCBs before. I am nearly certain there are things I have neglected (admittedly, out of ignorance) or ways to make what I have better. If you have experience with this, I would love to hear what you have to say so that I can incorporate your recommendations before pushing further.
Thanks so much for your help in advance!
P.S. If there is a need for any further documentation or resources to get the flavor of what I'm trying to do, please let me know. I can supply anything from the KiCad suite.
Comments
1. Always connect both sets of VDD and VSS on the Propeller.
2. You should keep the crystal as close as possible to the Propeller.
3. You should add decoupling capacitors close to each pair of Propeller and EEPROM power pins.
4. If your battery voltage is high it may be better to chain your 3.3v regulator off the 5v rail.
5. You should consider heatsink options for your regulators, particularly the 5.0v one. The easiest option is to solder the big back tab directly to a plane on the board (not Ground!).
6. Mounting holes for the PCB are always handy.
7. You may want to add additional options such as plated holes or a terminal block for the battery connection. Same for the LED strip connection.
8. You may want to add an on/off switch.
9. You should make the high current traces thicker (I'm assuming your LEDs will draw quite a bit). In fact, you could make everything thicker and it may reduce costs.
10. You should add some silkscreen detailing the board version, contact info, etc.
11. Are all your through holes the correct diameter? Some things, like pin headers and regulator pins, can be bigger than you expect.
I would also add strip headers next to rows of unused pins so that the board could be used for other projects or to make it easier to add additional peripherals.
Not sure if it would help, but maybe take a look at my M44D40+ Propeller Module and how it is laid out. It uses a QFN Prop, but can also be used for the DIP chips as seen on post #8. On that thread is a picture of the module with my PowerTwig power supply board that together, accomplishes close to what you are doing (but limited to 800mA).
You should also add a pull-up to the EEPROM SCL pin. The Propeller doesn't need this, but many I2C objects (like mine) do. Yes, the Propeller violates the I2C spec; still, you should setup your board to accommodate code that doesn't.
I'm guessing you're going to run a WS2812 or compatible string. You have a beefy 5v regulator, but a wimpy trace carrying the 5v to the header.
Thanks so much for your feedback! All your comments are extremely helpful, and I learned quite a bit about making boards just by reading about the things you guys mentioned.
In regards to SRLM's suggestions, I have a few questions that have arisen in response (numbered based on his list):
1. This may be super obvious, but why do you need to connect both sets? The setup works fine on a breadboard, so is this just to increase robustness?
3. With decoupling capacitors is there a way to know what the most appropriate value is for a particular application? I looked through the datasheet for the EEPROM and saw a value Cin/Cout (Pin capacitance) of 10 nF, is this the correct value to look for? Also, when connecting these is it OK for the Vss to go into the ground plane, so long as the Vdd side is close to the Vdd pin?
4. I am planning to use a 3.7V Li-Ion power source. In this particular case, I am now thinking it's a better idea to run the 3.3V regulator off the 5V line like you mentioned- is that correct?
7. I was going to use female headers like the following throughout:
http://www.pololu.com/product/1018
Would these work for all my peripheral connections, or are you suggesting other connection for the battery and strip because they are going to require greater current demands? If you are, what type of terminals do you suggest?
9. Is there any rule of thumb to know what width is appropriate for a given amount of expected current?
11. I'll double check all these as per the data sheets.
@Andrew- AWESOME call on the strip headers. Here I was about to render half a Propeller's pins useless down the road Also, the project that you sited was very useful, and helped me see how to lay things out.
@JonnyMac- Thanks for the tip on the EEPROM pin, I used the same layout as I saw with the SDA pin, so hopefully that's right. Additionally, I am using the WS2812 strip (Adafruit Neopixel), as well as your object to run it I've found it and your 1wire object both to be extremely useful, and they saved me a lot of time getting my projects going! I'll also beef up that trace- I want my LEDs glowing bright.
Again, thanks to all of you for your replies- you guys make the Parallax community a great place to learn and grow. I really appreciate all the information, and I will keep you guys updated on my progress.
3. It depends on the frequency of the device and it's power draw. A good rule of thumb is 0.1uF.
4. You won't be able to get 5v from 3.7v with the regulator that you spec'd (LM1085). That only drops voltages, not raises them. Possible solutions include 2S lipos or a boost switching regulator. Note also that your 3.3v will get pretty close to the minimum drop out as well.
7. The alternates are mostly for reasons of convenience and reliability. Headers are cheap and standard, but they're not very strong. You should also consider making your connections polarized.
9. Trace size vs current depends on all sorts of things. Do a Google search for table or calculator to get the different formats. But, if you have the space, you might as well make them big.
And a few new suggestions:
12. Be careful using Lipo batteries. At a minimum you'll want something to detect the charge level and turn off the device when the voltage get's too low. Otherwise you'll permanently ruin the battery. You can use simple voltage based techniques, or more advanced chips ("fuel gauge").
13. You might want to consider charging options for your battery.
I wanted to write a quick note to pass along an update to let you guys know my progress on this project.
My friend and I had a go at creating the circuit you guys helped design, and it seems to have gone pretty well! I have attached a photo of the (unpopulated) board here. We are waiting on a few parts to arrive in the mail this week, at which point we will solder it up to see if it works! Just practicing on the first couple boards we put together illustrated to me that bigger is definitely better for both the traces and pads. Even after taking your suggestions into consideration, I found that what I thought was large values in reality was nowhere near big enough. I have attached the most current board design here as well to show what parameters we found to actually be workable.
I'll be sure to post again once we have a go at assembling the board this week, but in the meantime thanks again for your help! I know it may be a bit premature to be considering these things as we're still building our through hole model, but are there any particularly important things to know when switching from through- ole to surface mount technologies, or are they pretty similar overall other than size? I've just had so much fun building these first few boards that I'm already antsy for the next step!
Thanks again guys!
-WMD
I'd stick with through hole boards for your next few iterations, at least until you get the hang of designing PCBs. My favorite book on the subject is The Circuit Designer's Companion by Peter Wilson.
When you're designing you should occasionally print out a 1:1 scale copy of the PCB, then lay out the components on it. This way you can make sure that everything fits. KiCAD has the option somewhere in there. "Plot as SVG" or something like that IIRC...