Place more than one (same !) PCB at the time
Re: Place more than one (same !) PCB at the time
I try to remove the restirictions, that is a dumb configuration.
Re: Place more than one (same !) PCB at the time
ok, I sent you a message.
Re: Place more than one (same !) PCB at the time
I almost overlooked this myself :
Working with panelized boards actually implies another dimension in itself : the number of panels. Look here (total size you see is ~ 15x15cm) :
It may have seemed obvious but if you look above then you see the borders on the bottom and top of the two panels layed under each other and they can not be removed in advance. Why ? how to pick up the panel ...
Well, in this case it coincidentally can because of the throug-holes at the top and bottom of the individual boards, so just imagine that what you see at the sides is all over all the edges.
If I am correct that it will be tough to break off those top and bottom strips (for further nice operation throughout), you can see that there's 3 dimensions in order now :
1. The indicual PCB which preferably is in the P&P file as the only one;
2. The amount of individual PCB's in one panel (plus their direction/positioning);
3. The number of panels (and their direction/positioning).
And ehm, the fiducials are in the panel (are at the panel level). So now supposed those strips can be broken off (and the panels can still be dealt with for pickup into the oven etc.) and one dimension disappears, we can wonder what will be more difficiult : have the one dimension less and no fiducials or have nice fiducials which readily will indicate the size of that extra dimension. I am not sure ...
Peter (also in The Netherlands but not really close to the south )
Working with panelized boards actually implies another dimension in itself : the number of panels. Look here (total size you see is ~ 15x15cm) :
It may have seemed obvious but if you look above then you see the borders on the bottom and top of the two panels layed under each other and they can not be removed in advance. Why ? how to pick up the panel ...
Well, in this case it coincidentally can because of the throug-holes at the top and bottom of the individual boards, so just imagine that what you see at the sides is all over all the edges.
If I am correct that it will be tough to break off those top and bottom strips (for further nice operation throughout), you can see that there's 3 dimensions in order now :
1. The indicual PCB which preferably is in the P&P file as the only one;
2. The amount of individual PCB's in one panel (plus their direction/positioning);
3. The number of panels (and their direction/positioning).
And ehm, the fiducials are in the panel (are at the panel level). So now supposed those strips can be broken off (and the panels can still be dealt with for pickup into the oven etc.) and one dimension disappears, we can wonder what will be more difficiult : have the one dimension less and no fiducials or have nice fiducials which readily will indicate the size of that extra dimension. I am not sure ...
Peter (also in The Netherlands but not really close to the south )
Re: Place more than one (same !) PCB at the time
Not sure if I understand your point there Peter ...
This morning I wrote a short perl script - it takes two input files :
boards.txt - this gives a simple "ID" for each board in the panel, and the XY of its origin in the panel. This example would be for four boards spaced on a 100mm matrix. Note that every board, including the one at 0,0, is listed.
A 0 0
B 100 0
C 0 100
D 100 100
components.txt - the P&P file (from the one that Rinus gave):
Component X Y Rotation Side Package
--------------------------------------------------------------------------------
BCS100 21.50000 2.50000 0.000 Top CON_SPOT-200X500
BCS101 27.75000 2.50000 0.000 Top CON_SPOT-250X300
BCS200 21.50000 6.50000 0.000 Top CON_SPOT-200X500
BCS201 27.70000 6.50000 0.000 Top CON_SPOT-250X300
R100 16.40000 2.75000 90.000 Top RESC1608x60
R101 10.00000 2.75000 270.000 Top RESC2012X65
R200 16.40000 6.25000 90.000 Top RESC1608x60
R201 10.00000 6.25000 270.000 Top RESC2012X65
T100 13.35000 2.75000 0.000 Top SOT95P240X110-3
T200 13.35000 6.25000 0.000 Top SOT95P240X110-3
Y001 0.00000 4.50000 0.000 Top CON_EDGE
and it makes this output file:
Component X Y Rotation Side Package
BCS100_A 21.5 2.5 0.000 Top CON_SPOT-200X500
BCS100_B 121.5 2.5 0.000 Top CON_SPOT-200X500
BCS100_C 21.5 102.5 0.000 Top CON_SPOT-200X500
BCS100_D 121.5 102.5 0.000 Top CON_SPOT-200X500
BCS101_A 27.75 2.5 0.000 Top CON_SPOT-250X300
BCS101_B 127.75 2.5 0.000 Top CON_SPOT-250X300
BCS101_C 27.75 102.5 0.000 Top CON_SPOT-250X300
BCS101_D 127.75 102.5 0.000 Top CON_SPOT-250X300
BCS200_A 21.5 6.5 0.000 Top CON_SPOT-200X500
BCS200_B 121.5 6.5 0.000 Top CON_SPOT-200X500
BCS200_C 21.5 106.5 0.000 Top CON_SPOT-200X500
BCS200_D 121.5 106.5 0.000 Top CON_SPOT-200X500
BCS201_A 27.7 6.5 0.000 Top CON_SPOT-250X300
BCS201_B 127.7 6.5 0.000 Top CON_SPOT-250X300
BCS201_C 27.7 106.5 0.000 Top CON_SPOT-250X300
BCS201_D 127.7 106.5 0.000 Top CON_SPOT-250X300
R100_A 16.4 2.75 90.000 Top RESC1608x60
R100_B 116.4 2.75 90.000 Top RESC1608x60
R100_C 16.4 102.75 90.000 Top RESC1608x60
R100_D 116.4 102.75 90.000 Top RESC1608x60
R101_A 10 2.75 270.000 Top RESC2012X65
R101_B 110 2.75 270.000 Top RESC2012X65
R101_C 10 102.75 270.000 Top RESC2012X65
R101_D 110 102.75 270.000 Top RESC2012X65
R200_A 16.4 6.25 90.000 Top RESC1608x60
R200_B 116.4 6.25 90.000 Top RESC1608x60
R200_C 16.4 106.25 90.000 Top RESC1608x60
R200_D 116.4 106.25 90.000 Top RESC1608x60
R201_A 10 6.25 270.000 Top RESC2012X65
R201_B 110 6.25 270.000 Top RESC2012X65
R201_C 10 106.25 270.000 Top RESC2012X65
R201_D 110 106.25 270.000 Top RESC2012X65
T100_A 13.35 2.75 0.000 Top SOT95P240X110-3
T100_B 113.35 2.75 0.000 Top SOT95P240X110-3
T100_C 13.35 102.75 0.000 Top SOT95P240X110-3
T100_D 113.35 102.75 0.000 Top SOT95P240X110-3
T200_A 13.35 6.25 0.000 Top SOT95P240X110-3
T200_B 113.35 6.25 0.000 Top SOT95P240X110-3
T200_C 13.35 106.25 0.000 Top SOT95P240X110-3
T200_D 113.35 106.25 0.000 Top SOT95P240X110-3
Y001_A 0 4.5 0.000 Top CON_EDGE
Y001_B 100 4.5 0.000 Top CON_EDGE
Y001_C 0 104.5 0.000 Top CON_EDGE
Y001_D 100 104.5 0.000 Top CON_EDGE
It's pretty simple, but I think it does the job? I will clean it up a bit and post it here if this seems to solve the problem. (perl is fastest for me to do this kind of job - it runs fine in windows with strawberry perl.)
Let me know if this looks useful.
This morning I wrote a short perl script - it takes two input files :
boards.txt - this gives a simple "ID" for each board in the panel, and the XY of its origin in the panel. This example would be for four boards spaced on a 100mm matrix. Note that every board, including the one at 0,0, is listed.
A 0 0
B 100 0
C 0 100
D 100 100
components.txt - the P&P file (from the one that Rinus gave):
Component X Y Rotation Side Package
--------------------------------------------------------------------------------
BCS100 21.50000 2.50000 0.000 Top CON_SPOT-200X500
BCS101 27.75000 2.50000 0.000 Top CON_SPOT-250X300
BCS200 21.50000 6.50000 0.000 Top CON_SPOT-200X500
BCS201 27.70000 6.50000 0.000 Top CON_SPOT-250X300
R100 16.40000 2.75000 90.000 Top RESC1608x60
R101 10.00000 2.75000 270.000 Top RESC2012X65
R200 16.40000 6.25000 90.000 Top RESC1608x60
R201 10.00000 6.25000 270.000 Top RESC2012X65
T100 13.35000 2.75000 0.000 Top SOT95P240X110-3
T200 13.35000 6.25000 0.000 Top SOT95P240X110-3
Y001 0.00000 4.50000 0.000 Top CON_EDGE
and it makes this output file:
Component X Y Rotation Side Package
BCS100_A 21.5 2.5 0.000 Top CON_SPOT-200X500
BCS100_B 121.5 2.5 0.000 Top CON_SPOT-200X500
BCS100_C 21.5 102.5 0.000 Top CON_SPOT-200X500
BCS100_D 121.5 102.5 0.000 Top CON_SPOT-200X500
BCS101_A 27.75 2.5 0.000 Top CON_SPOT-250X300
BCS101_B 127.75 2.5 0.000 Top CON_SPOT-250X300
BCS101_C 27.75 102.5 0.000 Top CON_SPOT-250X300
BCS101_D 127.75 102.5 0.000 Top CON_SPOT-250X300
BCS200_A 21.5 6.5 0.000 Top CON_SPOT-200X500
BCS200_B 121.5 6.5 0.000 Top CON_SPOT-200X500
BCS200_C 21.5 106.5 0.000 Top CON_SPOT-200X500
BCS200_D 121.5 106.5 0.000 Top CON_SPOT-200X500
BCS201_A 27.7 6.5 0.000 Top CON_SPOT-250X300
BCS201_B 127.7 6.5 0.000 Top CON_SPOT-250X300
BCS201_C 27.7 106.5 0.000 Top CON_SPOT-250X300
BCS201_D 127.7 106.5 0.000 Top CON_SPOT-250X300
R100_A 16.4 2.75 90.000 Top RESC1608x60
R100_B 116.4 2.75 90.000 Top RESC1608x60
R100_C 16.4 102.75 90.000 Top RESC1608x60
R100_D 116.4 102.75 90.000 Top RESC1608x60
R101_A 10 2.75 270.000 Top RESC2012X65
R101_B 110 2.75 270.000 Top RESC2012X65
R101_C 10 102.75 270.000 Top RESC2012X65
R101_D 110 102.75 270.000 Top RESC2012X65
R200_A 16.4 6.25 90.000 Top RESC1608x60
R200_B 116.4 6.25 90.000 Top RESC1608x60
R200_C 16.4 106.25 90.000 Top RESC1608x60
R200_D 116.4 106.25 90.000 Top RESC1608x60
R201_A 10 6.25 270.000 Top RESC2012X65
R201_B 110 6.25 270.000 Top RESC2012X65
R201_C 10 106.25 270.000 Top RESC2012X65
R201_D 110 106.25 270.000 Top RESC2012X65
T100_A 13.35 2.75 0.000 Top SOT95P240X110-3
T100_B 113.35 2.75 0.000 Top SOT95P240X110-3
T100_C 13.35 102.75 0.000 Top SOT95P240X110-3
T100_D 113.35 102.75 0.000 Top SOT95P240X110-3
T200_A 13.35 6.25 0.000 Top SOT95P240X110-3
T200_B 113.35 6.25 0.000 Top SOT95P240X110-3
T200_C 13.35 106.25 0.000 Top SOT95P240X110-3
T200_D 113.35 106.25 0.000 Top SOT95P240X110-3
Y001_A 0 4.5 0.000 Top CON_EDGE
Y001_B 100 4.5 0.000 Top CON_EDGE
Y001_C 0 104.5 0.000 Top CON_EDGE
Y001_D 100 104.5 0.000 Top CON_EDGE
It's pretty simple, but I think it does the job? I will clean it up a bit and post it here if this seems to solve the problem. (perl is fastest for me to do this kind of job - it runs fine in windows with strawberry perl.)
Let me know if this looks useful.
Re: Place more than one (same !) PCB at the time
This makes me think about another decision to make ...mrandt wrote:It gets more interesting with panelized boards, just think that the first board was fully populated, but on the second the pickup failed midway through... How to start again from where it stopped?
So the suggestion here is that with panelized boards each individual PCB is completely finished before the next one is dealt with. This, obviously, would be the most easy way to adjust the software to the problem (of more PCB's of the same in one run). But it also wouldn't work well ...
How many times the needle has to change ? Say one time per PCB. So if we take the screenshot example from my previous post then we see 20 PCBs in one panel, the 15x15cm comprising 2 panels and say that 9 of these are going to be done in one run. Thus 18 panels of 20 individual PCB's. To me this looks like 360 PCBs and thus 720 needle changes (minus one I guess ) . This while it could be one ...
Peter
Re: Place more than one (same !) PCB at the time
Hi Daniel,danmcb wrote:Not sure if I understand your point there Peter ...
Sure you'll get my point if your example data is projected onto my screenshot ... won't work.
Well, the base idea is fine of course, but there's an additional offset per panel.
Ok, that was clear already ? in that case it was my point that I don't see how to easily pick up by hand the panel, when no surrounding strip is there to grab it. So if that strip is broken off and the individual PCBs are still there in nice fashion, the components will be so close to the side that no opportunity exists to pick up the panel without moving the components (off). Maybe with a special spoon ...
But as I told, also think about the fiducials. They are nicely there now. Without those strips (your extrapolation works well but) no fiducials are there. How to tell the machine where they are ?
All 'n all I think your means of expanding all is nicely simple, but also a tad too simple. Say I have 3 panels next to each other. I have 6 of them above each other but the top row has only one (left side). Strips are broken off for our comfort, today.
Of course you can do it, but it already gets more difficult.
My idea about this is that the "duplicating" could be too redundant while by now we know that it is also related to "start throughs" (see "Re-initialise" topic). I can't know really, but I can imagine that Juha says that he can make the start-through working - will for sure need the redundant data explicitly, BUT will possibly need it in his own (generated) means.
Btw my origin is software engineer so I think I know exactly what your generic means can do and/or how to make it work with the strips still there as well. No big deal. So before maybe unnecessary time is spent I would wait for Juha to approve this. Or make it inside his software. Or he makes it himself.
Or your solution is accepted as a possible temporary one.
Regards,
Peter
Re: Place more than one (same !) PCB at the time
Something else :
It won't be as easy as "multiplying" the positions. I mean, there will be a small offset between two PCBs (think 0.2 mm - or even more like, 2mm (not my screenshot example but the situation with small stand-offs in between the PCBs)). Now what ? Now you will get rounding errors. Just envision that at the 4th board to the side the position is so much off that it requires correction. Of course my 0.2mm is a quite easy one (just subtract 0.2mm) BUT you won't know it. So the net PCB is 0.0 mm (it is just the PCB) but once glued to the other(s) the 0.2mm is there. Now what ? make all PCB's 0.2mm larger ? No - doesn't work for the first one (or bottom row or left most row - etc.).
So measure the panel ? good idea. And then what ?
More and more we step away from the generic thing.
Why do we have fiducials ? because it precisely relates to the component's positions. If we start to multiply the positions then ... no. All is too rough and with 0.3mm pitch (haha) we have the hope that we are off less than that when we expand our PCB's 30 times to the side (my example, also see earlier screenshot) ? It is quite easy : we must be correct with the offset per PCB like : 0.3mm / 30 = 0.01mm and then still all the legs of the chip are off one pad.
All is doable, but nothing is to be forgotten or otherwise nothing works.
It won't be as easy as "multiplying" the positions. I mean, there will be a small offset between two PCBs (think 0.2 mm - or even more like, 2mm (not my screenshot example but the situation with small stand-offs in between the PCBs)). Now what ? Now you will get rounding errors. Just envision that at the 4th board to the side the position is so much off that it requires correction. Of course my 0.2mm is a quite easy one (just subtract 0.2mm) BUT you won't know it. So the net PCB is 0.0 mm (it is just the PCB) but once glued to the other(s) the 0.2mm is there. Now what ? make all PCB's 0.2mm larger ? No - doesn't work for the first one (or bottom row or left most row - etc.).
So measure the panel ? good idea. And then what ?
More and more we step away from the generic thing.
Why do we have fiducials ? because it precisely relates to the component's positions. If we start to multiply the positions then ... no. All is too rough and with 0.3mm pitch (haha) we have the hope that we are off less than that when we expand our PCB's 30 times to the side (my example, also see earlier screenshot) ? It is quite easy : we must be correct with the offset per PCB like : 0.3mm / 30 = 0.01mm and then still all the legs of the chip are off one pad.
All is doable, but nothing is to be forgotten or otherwise nothing works.
Re: Place more than one (same !) PCB at the time
Hi Peter,PeterST wrote:suggestion here is that with panelized boards each individual PCB is completely finished before the next one is dealt with.
you are right. While I thought this approach (one board after another) was the easiest, it does not make sense if you have to change needle back and forth.
So if we have a panelized board, we should probably still group components with same footprint.
I will add a comment to the other thread as well.
Cheers
Malte
Re: Place more than one (same !) PCB at the time
Why would you set up your production to load two panels, with a total size of 150x150mm, when you could have only one single one? This seems to make things more complicated than they need to be, no?
If you would go to an assembly house and ask them to process two panels at a time on their P&P machine, what would they say?
OK, there can be offsets - but however your panel is engineered, they would be repeatable. The point is simply to include all your offsets in the calculations given in the "boards.txt" file.
If you use the script output that I give, the components of a whole panel are processed in the same sequence as a single board. So the number of needle changes is the same as it was for the original file. In any case, sorting to a different order should not be so hard - but does not seem to be necessary, if the input file is optimised correctly.
I know that you are not a native english speaker, and my apologies - but although I read your posts through several times, I am afraid that I don't really understand all the points you are making. perhaps that is just me be stupid ...
If you would go to an assembly house and ask them to process two panels at a time on their P&P machine, what would they say?
OK, there can be offsets - but however your panel is engineered, they would be repeatable. The point is simply to include all your offsets in the calculations given in the "boards.txt" file.
If you use the script output that I give, the components of a whole panel are processed in the same sequence as a single board. So the number of needle changes is the same as it was for the original file. In any case, sorting to a different order should not be so hard - but does not seem to be necessary, if the input file is optimised correctly.
I know that you are not a native english speaker, and my apologies - but although I read your posts through several times, I am afraid that I don't really understand all the points you are making. perhaps that is just me be stupid ...
Re: Place more than one (same !) PCB at the time
here is your picture, marked up with some dimensions, that I guessed at (assuming your boards are 10x30 mm, and borders 5 mm) ...
Now with these dimensions, the boards.txt file would be:
A 0 5
B 0 35
C 0 75
D 0 105
E 10 5
.
.
.
etc
.
.
.
AK 90 5
AL 90 35
AM 90 105
AN 90 125
Now, can you explain to me why that won't work?
Now with these dimensions, the boards.txt file would be:
A 0 5
B 0 35
C 0 75
D 0 105
E 10 5
.
.
.
etc
.
.
.
AK 90 5
AL 90 35
AM 90 105
AN 90 125
Now, can you explain to me why that won't work?
- Attachments
-
- lt-panel.jpg (184.42 KiB) Viewed 7509 times