One last thing that will make it much easier for fabricating modules is to have a footprint that provides panelisation in the form of a perforated break-point, so that I can have multiple modules fabricated on a single panel, and also to provide space off of the module itself for the PCB manufacturer to put their job number.
I've done this by hand once for the test board I had made for the castellated module system. PCBWay have a resource that describes their requirements for panelisation.
I'll start by making such a perforisation as a dummy footprint, so that I can look at the resulting KiCad footprint, and then I can incorporate that into my procedural footprint generator as a -PANEL variant for each footprint.
Another option would be to use V scoring, where instead of cut-outs and tabs, a V-shaped scoring is made across a board. But it seems that there is no simple way to specify this in KiCad. So I think I'll stick with the tabs.
PCBWay's documentation on the tabs is a little confusing, in that tabs without drill holes must be at least 2mm wide, while for those with holes, they show an example with only 1.6mm wide. So maybe I'll play it safe and make it >2mm wide.
The result then looks like this:
The next step will be to include this in the edge-cuts for the procedurally generated footprints. This will mean replacing the previous edge-cut which is a rectangle with four lines, so that on the tab-side, I can replace that straight line with one or more of these.
I guess I'll have to come up with some logic for when one or when two of these is required, based on the module width. Probably I'll just make it so that the gap between tabs is >.35mm, so that the minimum spacing requirements between the "mouse bite" small drill holes (they are 0.45mm diameter, and 0.35mm apart) is met. That will allow the panels to be as strong as possible.
All up the goal here is to make something that is 100% compliant with PCBWay's manufacturing standards, so that they just accept boards that I submit without having to wait for engineering feedback rounds etc.
Okay, so after the obligatory mucking about, I now have it procedurally generating and placing either 1 or 2 tabs, depending on how many there is space for, with the spacing and sizes of the mouse-bite holes etc all matching the above. Here's the corner of a module -PANEL variant with this:
Actually, they are very slightly more widely spaced, as I think I had a couple of the gaps not quite wide enough previously. In any case, it looks like a perfectly tab. Let's just make sure it also works for the case with a single tab.
Now I'm trying to use this to make a panel with 2x the solar battery charge regulator, and hit a problem that KiCad doesn't like the drill holes overlapping the edge cut. This was really an oversight on my part, as I should have defined those circles as mechanical non-plated drill-holes, rather than edge-cuts. So I've fixed that:
With that, I am now able to fairly easily setup a panelised version in KiCad:
The big question now is whether PCBWay will accept this. The best way to find out if they have any problems is to submit it for fabrication quote.
I was a bit surprised about the cost of castellated 4-layer fabrication with them for earlier samples, so it will be interesting to see what they price this <100x100mm panel at. It's currently suggesting US$50 for 5 of these panels, i.e., 10 pieces, but I'll know for sure when they respond after doing the engineering checks.
Yup, after verification the price is now US$95 !!
Time to get some other quotes.
Email sent to Victory PCB.
Will also check out SEEED, JLC PCB, ITEAD and NextPCB.
I'm also wondering if I can't get away with some simpler process, e.g., grinding the edges off a normal PCB, leaving just the plated half hole-through, rather than requiring the edge plating, as I suspect that the 1mm diameter hole has plenty of surface area on it, and in fact, the castellated pads have only a very small amount of edge either side of the hole.
I'll ask PCBWay if they can do that, and also just give them a prod on price.
Or how about DIY castellation?
Meanwhile, I'm thinking about horrible hacky DIY castellated PCB strategies. After some brain-storming, I think a piece of mild-steel cut in two in a mitrebox with a hacksaw to create a pair of pieces of steel with straight burred edges can be used to grip the PCB at the limit of where material should be removed, and then that can be held in a vice, and a belt sander, file or whatever you like can then be used to remove the excess material until it's flat and straight at the right depth.
A wooden jig can be made with a slot the right depth (half a 2.5mm pad) so that the PCB can be dropped in there, and the burred steel pieces then placed on the surface of the timber either side, and gripped to pick the PCB up in the right place like a pair of tweezers, and then transferred into a vice, where it can all be sanded down.
The idea of this approach is that the burrs clamp the pads at the point where we want to keep material, so that they can't get easily ripped off. They will also provide some protection for the plated through hole.
As the burred steel wears, it can be recut to put a new burr on it super easily.
This could also be setup with longer pieces to allow processing of multiple boards at the same time.
It feels like it could just work -- especially since we don't need great accuracy on the castellated edges for our purposes.
The question is whether getting PCBWay or someone else to make the boards uncastellated will really save enough money to make this extra processing step that I will have to do worth it.
To test that, I'll need to adjust my procedural footprint generator to make non-castellated versions, i.e., with the full pads on the edges, and get a quote from PCBWay on those. I can also in the meantime do some testing of filing back some hole-through boards, to see how well the plated hole-throughs are likely to stand up to this treatment. For that, I just need to get a piece of mild-steel to cut in my mitre box. That shouldn't be too hard to organise.
I've just called my local metal supply store, and they should have what I need.
Or I could also just use a nibbler tool and sanding block, like in this video:
That would work, but is a bit more involved to get a consistent result, and since I will have quite a few castellated modules to design and test over the coming weeks, having some optimisation in my process is probably still worth it. I.e., it's probably still worth me making my jig idea.
I might explore both at the same time. The obvious optimisation I can make to the nibbler method, is to make the excess material on the PCB exactly match the depth in the nibbler, so that you don't have to guess about how far to slot the board into the nibbler.
Jaycar has nibblers for about AU$20, so I might go and grab one later. Done!
So I tried nibbling and old spare PCB I had laying around, and it does a fair job:
For prototyping, this will be fine, I think.
Due to The Wonders Of The Modern World, a brand-new nibbler purchased in metric Australia chops out 1/16th of an inch! But that's ok. I can accommodate that in KiCad.
So time to modify my procedural footprint generator again, to make a -NIBBLE option for each module footprint, and then let's see what the quote from PCBWay looks like...
Looks pretty good to me! The 1/16th inch is just enough to clear the pads, which is a happy coincidence. So let's see how much PCBWay want to charge for 5 of those... About US$25, which is half the price compared to when it had castellated pads. Looks like that nibbler will pay for itself in a single order!
It's probably about time that I order a batch of each of the modules that I have designed so far -- and probably a test carrier board for them all, as well, so that I can test fit and soldering with the updated procedurally generated footprints.
Okay, so let's make Gerbers for the audio-jack module as well. That one had a really old manually generated footprint, instead of a procedurally generated one, so I had to re-do that. In the process I also improved the generator to add the command line args used to generate a given module into the symbol description to make it easier to re-do.
Audio jack and audio codec gerbers have been generated. Onto the high-efficiency high-current DC:DC converter. This one is also currently using a hand-generated footprint, and is a little trickier to quickly convert, because it uses only 8 pins from 22, but I chose their positions carefully to line up with where I wanted pads for convenience, and consistency. While my tool allows the selection of all possible pinouts in principle, they currently get selected by choosing a variant number, rather than being able to provide the set of pins.
It's clear that having a way to specify exactly which pin positions to use would be helpful. So I'll modify the tool so that if instead of a variant number you provide a string of Pn[,n...] it will use those absolute pin positions. But that's going to have to wait until tomorrow, as it's gotten late again, and I'm tired.
Okay, it's now a few days later, and I have implemented this, and re-done the DC:DC converter footprint to use it:
And then also the MEMS microphone board:
Okay, so now I have five modules ready for PCB fabrication.
All that I need now, is to make a dummy carrier PCB for them, so that I can verify that the procedurally generated footprints actually work between modules and module bays.
I do, of course, have to make sure that I use exactly the right footprints. I could open all the projects and look for them, but it's much easier to use a bit of shell scripting:
$ find modules -iname "*.kicad_pcb" -exec grep MegaCastle "{}" ";" | grep -i "property \"Footprint" | cut -f2 -d: | cut -f1 -d\"
MegaCastle2x23-Module-I30.0x53.6-M80000307FFFC-PANEL-NIBBLE
MegaCastle2x5-Module-I6.4x7.9-M9C4-PANEL-NIBBLE
MegaCastle2x11-Module-I15.7x23.1-MA0780C-PANEL-NIBBLE
MegaCastle2x11-Module-I17.7x23.1-MBFFFFC-PANEL-NIBBLE
MegaCastle2x7-Module-I12.7x13.0-M8314-PANEL-NIBBLE
Okay, so now I can just add those symbols to a scratch project:
Okay. So that's all the PCBs I need to get fabricated right now. And by keeping everything to 2-layer, except the MPPT module, and by using my nibble-method to avoid the need for castellation during manufacture, that has the total order cost under US$100 plus postage. Compare that with the US$93 I was quoted just for the MPPT module when I had it castellated during manufacture!
So now I just have to wait a few minutes for PCBWay to do the final fabrication approval for the scratch board, and then I can submit payment and get it all being manufactured. Frustratingly, they will probably not turn up next weekend, but the following week, because of that 4-layer MPPT board that will take 4-5 days to fabricate, and since its Saturday morning now, they probably won't ship it until Wednesday or Thursday, which is a bit too tight for delivery to here by the following Saturday. But that's okay. I've got plenty more modules to design, and I also need to order the BoM for each of these five modules, in any case.
They rejected the scratch board because it has no drill holes and they can't tell if it's single or double sided -- whoops! I've just added a single via so that there is one hole to drill, and it makes clear that it's two layer. Let's see if that gets it through. If not I'll have to draw a picture on the rear copper layer ;)
Yup -- I need something on the back, too (or to be bothered going into board setup and making it single-sided). So we have a smily face on the rear, with vias for eyes instead.
Nope. Still not working. I guess because there are no pins on the back. I'll just flip a footprint to the back -- that got it through.
Okay, so it's been submitted for fabrication now. I'll head off to bed now, and then tomorrow I'll organise the BoM for each of the modules, and put an order in for the parts.
No comments:
Post a Comment