Jump to content

ExpressPCB advice sought for non rectangular boards


lesthegrngo

Recommended Posts

Hi all

For a good while now I have been making PCB's myself for my panels, using a combination of etching and CNC engraving and cutting. It's great for one offs especially if they are small, and by and large my success rate is fairly high.

My problems start when I want to make larger, more complicated PCB's that require finer traces and multiple vias, and double sided so that I can have traces that cross without jumpers. A great example is the MFCD switch PCB's which need to be populated with 28 SMD switches, 28 SMD LED's and two rotary encoders. It must also must have the centre cut out so that the LCD screen shows through, and the outer board profile is not a rectangle, as the two encoders sit on little wings at the bottom on either side. Finally, I need the power connections for the LED's and the 33 pin header for the output to the Bodnar board.

I have them made, and working, but to produce two functioning PCB's was hard; the traces had to be so fine that sometimes they ended up (with my production techniques) either being cut or not fully isolating from the adjacent trace. I spent many hours on post production troubleshooting shorts and open circuits. Additionally getting the SMD devices soldered onto the pads was fraught, as there was not much space, and some ended up detaching duing the soldering process. 

So I looked into the PCB design programs with an eye to getting them made by the online PCB manufacturing companies - I assuse most are based in China or around that region of the world. In order to do so I need to learn programs like ExpressPCB or Fritzing, and have started looking at tutorials for the former. However one part of the process I still have not been able to grasp is when I have a specific PCB board shape I need to work with so that it fits into the mating parts, and that the switches and LED's are correctly located so that the pads for the components are in the right places.

I use a combination of Solidworks and QCAD for designing the PCB's and baseplates, fascias etc, so what I want is to be able to use the .DXF diagram of the board that I know has all the right inner and outer profiles, mounting holes and the correct reference points for the devices so that I can then use ExpressPCB to design the board. This is what I don't seem to be able to find in any of the tutorials, they all seem to deal exclusively with how to populate a board with components, traces and vias, but without the constraints of dimensional requirements of a specific shape of board and datums.

If anyone is able to point me towards a tutorial that explains how to do that, I would be extremely grateful

I would also appreciate any feedback from anyone who had home designed PCB's made. Remember I am looking at small quantities of each one, and I know that the benefits of economies of scale will be lost. If you have had the company populate the board with SMD devices (LED's, switches) I would like to know what your thoughts on the quality were.   

Cheers

Les

Link to comment
Share on other sites

I use KiCAD and Fusion360 myself.

I export the board shape as a DXF and import that into the KiCAD PCB design tool as the board outline layer.

If I need specific component placement (like for switches, etc.) I include markers in the DXF that can be removed.

I'll be doing an MFCD myself soon, and I plan to import the DXF to the outline and another layer, then separate the markers and board outline.

Link to comment
Share on other sites

Solidworks is able to import step and stl files.

 

Let me write more experience:

I personally use Solidworks to model the panels and than export the PCB outline via dxf.

That files can be imported to vector drawing programs to convert it into svg format, that can be used by fritzing.

(The process is tricky and needs some practice. Unfortunately there are no sufficient tutorials on the internet.)

Former I used Inkscape but now found a better handling with Adobe Illustrator.

The svg images of the board can have any shape, including inner cutouts.

I also had to learn how to create my own components in fritzing, what is a more complex thing.

To place components I use temporary outlines from the dxf file that have to be deleted after populating the board.

Most boards are produceable by Aisler, but I have not yet tryed their assembly services. Aisler's "Beautiful Boards Budget" has a minimum order of 3 boards.

They also offer online PCB viewing opertunities, look below for my CSMC panel PCB.

But Aisler accepts KiCad, Eagle, Target, Fusion and Sprint files too.

 

Regards, Vinc

Screenshot 2022-06-02 at 15-55-57 A-10C_Sim _ CMSC-Panel_Platine_V1.1 by Jens on AISLER.png


Edited by Vinc_Vega
typo correction

Regards, Vinc

real life: Royal Bavarian Airforce

online: VJS-GermanKnights.de

[sIGPIC][/sIGPIC]

Link to comment
Share on other sites

I highly recommend on learning KiCAD.

I have been perfecting my CNC PCB milling techniques for years... I am able to produce consistent 10 mil tracks with 5 mils cutters (ok... 5 mils cutter are very expensive and very prone to break so I usually use 10 mil cutter if I could.). That's actually very difficult to achieve consistently. Any mistake, you pay the price of a solid carbide cutter. Lots of tricks to get it to work consistently... but I eventually gave up... not because I couldn't do it. The reason is mainly because of what OP alluded to... the via. My circuits are becoming increasingly complex (try design an RPi UPS circuit without via!). The need for via, a lot of them, is undeniable. I have some expensive copper via rivets, and anvils... very expensive, and they do work. But it's just too much work for other than a few via. Sure, you can use just a bare copper wire and solder instead of via... but the thing is that it's still very labor intensive. For a small one off board, or two, it's ok. More than that, it's a PITA! The same via trouble applies to chemically etched PCBs.

I have been using Eagle for a long time, since the TM Cougar days, (I have several non-commercial licenses), and absolutely refused to go with the AutoDesk subscription model. I had also been playing with KiCAD since the 90's and completely dismissed it then. However, KiCAD has really grown up tremendously in the recent few years (V. 5+). It's now quite good for my purposes. So, I finally took the plunge and learned KiCAD, and am stopping any new development using EagleCAD.

If you are in the US, I would highly recommend using OshPark PCB service. No fuzz, great services, and fast (ok, relatively fast).

Let me tell you my bad experience with one of them Chinese board houses (this does not just apply to Chinese ones). I had been using OshPark for quite a bit... but I decided to give one of those Chinese board houses a try. So, I downloaded their ERC rules and ran through my circuit design. It's just a sensor board... not much really, there is no MCU or anything complicated on it. You know, a simple test case to run through the process, and all that. So, I submitted the order. And a day or two later. I got an email asking me to correct a violation of the board house rule, something about a trace too close to the annular ring. Fine, I corrected it. And a day later, I got another email about yet another violation.... I corrected it. Note that... OshPark had no trouble producing these perfectly. Whatever,.... this one violation/correction at a time thing went on for about a week and I finally had enough, and gave up and requested a refund. They politely apologized and promptly refunded, no bad feelings. But...

Ok... I am not a professional EE engineer. I am mainly a software engineer, but a born tinkerer. I am quite sure there are a lot of good reasons why these board house rules exist. But, rigorous process is one thing... a process that is time consuming and border line bureaucratic is another thing. For goodness sake, just tell me all the violations and let me deal with them in one shot instead of one at a time. What is this? Chinese water torture?

What I am saying is... those Chinese board houses, and other US board houses as well (even my Seattle suburb has 3 professional board houses, and I don't bother with them), they mainly cater to professionals who know WTH they are doing. People like us... are in the corner of who don't know WTH they are doing. And the professionals' volumes make it worthwhile to go through those professional board houses' rigorous rules. I am not saying OshPark is unprofessional. OshPark's business model is that they cater to small tinkers' like us. Collect orders and put them all on a whole board and send it to the professional board houses to be made. They are more tolerant to those little things that don't matter to us unprofessionals (or ignorant of them). And sometimes, I have some small violations that I know of, and deem irrelevant,  OshPark would accept them and make them the way your design is... right or wrong, instead of rejecting your design and make a fuzz. Although I have never seen OshPark made PCBs came out unexpected,  it could happen. Since OshPark caters to small "unprofessionals" like us, they make their process easier for us to get through than those professional board houses.

What I am really saying is that if the Chinese board houses want to "invade" the business of the unprofessionals, they have a long way to go! My local professional board houses don't even try to get into that market.

A warning about OshPark's service though. They are less rigorous in rejecting your design. So, you should make sure your design is really what you want. OshPark will make them exactly as your design file says. I had one design that was totally my fault... and I had to correct and reorder it.

With EagleCAD, you can just drag the .brd file to OshPark order page and they will run a script in the back for generation etc... Can't do that with professional board houses! For KiCAD, OshPark does not accept the board file directly. You are supposed to export them as Gerber files and generate drill files, zip it up and drag it over to OshPark's order page. Easy peasy.

 

Attached in the picture is two PCBs made by OshPark. On the right is a standalone 8-way optical PCB for stuff like MIC switch, and any HAT. It has a provision for pushbutton as well (same PCB, but have to manually cut a trace). All optical, including the pushbutton. The rest of the mechanism are all 3D printed, or made with simple tools commonly found in typical garages (and buy some special tools like a 4mm reamer). The transparent thing on the standalone PCB is a soldering jig. It's there to position the optical sensors accurately in position with positional tolerance around 0.1mm. This was originally designed in EAGLE 7.x. And I recently redid it in KiCAD 6. On the left... that shape should be familiar to you. It's for the F16 control stick, all optical (the upper left circuit is indeed for pushbutton for weapon release button, just populates one optical sensor instead of 4). It's also designed in KiCAD, using a replicating add-on so I don't have to re-layout the same traces (tricky enough for one) 3 more times. That, Eagle 7 cannot do (don't know about Eagle 9, and don't care). Just look at the circuits... 3 via holes per sensor. That's 48 via holes, plus 16 for Vcc and GND (sorry, this design require them to be via holes). That's total 64 via holes. And that's for just one PCB! I am not doing that by hand! And this is just a PCB for sensors, nothing complicated!

With OshPark, minimal order is 3 PCBs. That F16 control stick head PCB costs about USD $19 for 3, plus free s/h if you select USPS. I opted for FedEx for about $8. They shipped it out about 8 days after I ordered it. OshPark is in Oregon. So, time your s/h time with that.

 

 

IMG_1602.png

Screen Shot 2022-06-02 at 9.25.52 AM.png

Link to comment
Share on other sites

Thanks for all the input and feedback guys, much appreciated!

So I started playing with KiCad yesterday, just testing it out on boards I have already made to practice. I imported the DXF of the board with the DXF traces on it just so I could see placement, then tried to insert a component. I found the 0805 LED's and started placing them, although I will have to work out how to turn off the snap to grid as it would not allow me to place exactly. Should be simple enough to figure out. 

However the next component I wanted to insert was a 3mm x 6mm x 2mm high 'tactile' SMD switch.... but it doesn't exist in the library. Curiously, despite them being really frequently used (for example remote control devices),  Mouser don't list them in their catalogue when I tried to find out if it had another callout name. So knowing that they must be listed somewhere, is there an extended listing of components available somewhere to add to the library?  

Cheers

Les


Edited by lesthegrngo
Link to comment
Share on other sites

2 hours ago, lesthegrngo said:

 

However the next component I wanted to insert was a 3mm x 6mm x 2mm high 'tactile' SMD switch.... but it doesn't exist in the library. Curiously, despite them being really frequently used (for example remote control devices),  Mouser don't list them in their catalogue when I tried to find out if it had another callout name. So knowing that they must be listed somewhere, is there an extended listing of components available somewhere to add to the library?  

Cheers

Les

 

Ah... that problem. It's very annoyingly flexible, too flexible and over designed IMHO. Ok... here's the deal. KiCad has a very large document on parts/packages naming convention, officially called KiCAD Library Convention (KLC), here, https://klc.kicad.org/#:~:text=G1.,%2C a-z %2C 0-9 ). It's like it's designed by a very large committee to piss off everybody. It's called European Consensus, or a Camel (a horse designed by a committee).

KiCAD differs from most other EDA software in that the parts in schematic do not specify (usually not, but could) the package/footprint. Ya, so they decoupled symbols and footprints. Yay... modularization! So, a resistor, is just an R, doesn't say if it's SMD or THT, nor the size. Unlike in Eagle, for example, you select an R-0603 in schematics. But KiCAD gives you the flexibility so that you could have one schematic with many different boards that allow you to use different packages in each component in each board for each of the possible combinatoric explosion that you would never ever need, theoretically. But in practice that rarely happened. And they implemented it with, by default, one schematics with one board anyway.  Yes, sometimes it's nice to be able to say, oh... I can't source this part, so I can just replace the footprint with another part, and create a different board so when the first part came in stock I can just switch back to using the original board, particularly in these Pandemic days that a lot of chips are unavailable.  But, you'd have to jump through some little hoops to get multiple boards out of one schematics. Not too bad, it's quite doable. Because of this, you'd be adding something like a generic SW_DPST. And then, you'd have to go to the footprint assignment tool to choose what footprint to use for it. Ah... and the confusion of the long names begin!

I find this process very exhausting and error prone, not to mention those footprints all have very ridiculous long names, per the KLC. One little character read wrong and you end up with something very different from what you want. Don't believe me? Ok... find me the footprint of a common garden variety 1/8W through hole resistor, see the attached screenshot. And note the size of the scroll bar, as you are only seeing a small portion of the footprints in there. Thank goodness SMD resistor footprints names are much easier to decode.

 

But fear not... the "committee" considered that... so you could just download some symbols that have their footprint specified. See... a camel can also do everything a horse can do, just not as well. And, with these "pre-ordained" symbols, you can still change the underlying footprints if you want! Best of the both worlds! Why didn't they just do that to begin with!!!??? *@&#^%@ It’s just that, if you do that, the symbol name and the footprint differ might cause some real confusion.

So, what I find easier to do is to first download the Digikey library (GitHub) and install it. While you are at it, grab the Sparkfun library, and Adafruite library as well. It has a lot of common parts DigiKey sells, and foot prints are associated with the the symbols. This alleviate a lot of "that" problem. The next thing to do is every single part you have you will eventually need to nail down which exact part # to buy, so you could actually go to Digikey or Mouser and download their part symbols/footprints. Mouser uses Samacsys in the back, which requires you to download a Windows version of software called Library Loader and install it in order to search and download symbols and footprints. Technically, they have add-on/plugin so you can do the search/download from Samacsys in the EDA, like Eagle, but I have never been able to get it work right. Snapeda, UltraLibrarians (DigiKey uses this) are also two other good sources. Smacsys will even create symbols for you in a very timely manner if they don't have it and you request it on their website (my past experience is that I got the new symbols created the next working day, and no charge; YMMV).

Short of that, you can always create your own symbols and footprints... it's an essential skill to learn anyway. It's not bad. KiCAD is actually quite alright in this. Moreover, with all those long and confusing names... for simple parts, it's often faster to just create the damned symbol and footprint than sifting through the large # of footprints that are very lacking in detailed description. Surely they have a pad for M2 screws! I ended up creating my own after a long frustrating search.

Good luck!

 

Screen Shot 2022-06-03 at 12.57.18 AM.png


Edited by Hempstead
Link to comment
Share on other sites

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...