sparkfunX / Desktop-PickAndPlace-CHMT36VA

Tools and conversion scripts for the CHM-T36VA Desktop Pick and Place from SparkFun
GNU General Public License v3.0
66 stars 32 forks source link

Panelized PCBs #10

Closed THX2112 closed 6 years ago

THX2112 commented 6 years ago

I have a single panel of different PCBs, each represented in Eagle as a separate "Sheet".

The machine only places the PCB from the last sheet, although all parts show up in the Charm ULP. The DPV has only the components that get placed. The DPV has all of the components in the EComponent section, but only the components for the last sheet in the Station section.

I see in the code that:

/**
 * Add panel definition
 * NOTE: Currently not implemented
*/

It's not clear though by "panel" if it's a panel like I have, or a batch or an array.

Or maybe the problem I'm having is due to the separate sheets? (I ran into a similar problem getting a BOM from multiple sheets and had to rewrite the BOM ULP.)

berniwa commented 6 years ago

Hey - I don't really understand what you mean by that. Could you post an example file or screenshot?

The Panel definition stuff is basically just for a scenario where your order a panel of for example 10x the same PCB. That will come in the future, but for now you can easily achive that behaviour using the charmhigh software.

THX2112 commented 6 years ago

The PCBs look something like this:

(This is the bottom of the PCB, BTW.)

Each PCB is on a separate "sheet" so I can panelize a number of differing PCBs easily without having to separate the schematic file from the pcb file.:

The entire PCB is meant to have of the components placed at once, but I can place just one of the smaller PCBs easily by deleting all of the sheets except for the one I want placed and running the Charm ULP -- works great!

However when trying to place all of them only the PCB from the last sheet gets placed.

The resulting DPV looks like this:

https://gist.github.com/THX2112/897f3777f595b53e8e0c6eff75cdbe7e

The DPV includes all of the components for the entire PCB. The calibration only has points for the one PCB that gets placed.


Hey, thanks guys for putting this out there!

berniwa commented 6 years ago

Ok I see.

But generally that isn't really much different from what we do here on a daily basis. We have multiple sheets but one big design. In general, the ULP should treat your multiple-design approach as one big design, and ignore the schematic sheets entirely, as it pulls the pick and place data only from the board file. (You could close the schematic entirely and the ULP would still work.)

Could you also attach a complete BOM of your project? Are all parts shown in the Parts Overview? Are a total number of 63 Parts on all boards?

Calib Points: The ULP completely ignores that at the moment and the machine picks those automatically.

THX2112 commented 6 years ago

(You could close the schematic entirely and the ULP would still work.)

I found that out while troubleshooting this morning.

Are all parts shown in the Parts Overview? Are a total number of 63 Parts on all boards?

Yes, but only the parts that get placed on the PCB are in the Material Stack (and in the .DPV) as seen in the "Feeders Used" screencap above.

Calib Points: The ULP completely ignores that at the moment and the machine picks those automatically.

While comparing .DPVs between the ones I generate with macros and this (vastly superior) ULP, the ULP generates this section:

Table,No.,ID,offsetX,offsetY,Note
CalibPoint,0,1,3.14,12.66,Mark1
CalibPoint,1,2,22.16,12.66,Mark2

While the "default" (cut-n-pasted from the Charm High sample) looks like this:

Table,No.,ID,offsetX,offsetY,Note
CalibPoint,0,0,0,0,CalibPoint,1,0,0,0,

The ULP version moves the calibration camera much closer to the actual calibration points. I don't know if that's relevant but I found it interesting.

Could you also attach a complete BOM of your project?

Full BOM is here: https://gist.github.com/THX2112/2aea10e98e61adff408a7fcd585becb2

berniwa commented 6 years ago

To me it seems, that all the parts in the BOM, that have a proper value will get placed.

The "Material Stack" / "Station" / "Feeders used" only get one entry per different part. So for example, if you place 100 pcs of a 100n Cap. the DPV will have only have 1 station entry and in your config and only one feeder will be shown in the "Feeders used" tab.

If you consider that the ULP will ignore all parts that are not SMD, there are only 63 parts left to place and the DPV file contains exactely that amount of "EComponent" entries.

When I load your file to the CH software I also get 63 components to be placed.

So I can't see any issue with the data creation, so I guess something else must be wrong in your setup.

unbenannt (0-62 - so 63 components to be placed)

THX2112 commented 6 years ago

I re-installed the software and the problem went away.