sparkfunx / desktop-pickandplace-chmt36va Goto Github PK
View Code? Open in Web Editor NEWTools and conversion scripts for the CHM-T36VA Desktop Pick and Place from SparkFun
License: GNU General Public License v3.0
Tools and conversion scripts for the CHM-T36VA Desktop Pick and Place from SparkFun
License: GNU General Public License v3.0
This is just an idea but i know some developers using VARIANTS in Eagle. It means you can choose which components will be assembled and or manage production alternatives. It is very popular when you have a complex universal board on which can build a few devices. I guess it is hot hard to implement but I'm not a big friend with coding.
Tf course, you can do it manually on the pnp but why not to use already implemented variants and export complete assembling data?
Can someone indicate where the distinctions lie between the CHMT36 and the CHMT36VA?
We will be working on the ULP over the summer, so feel free to post any things that we should tackle here
The old ULP correctly pulled in relative tape angle from the feeder sheet:
Doesn't now.
I think it has to do with the outline auto-detection but bottom parts are not lining up as expected.
The solution for now (because paste is sitting) is to flip the board in eagle, and output top placement data per usual methods.
I am operating a CHM-T48VB and it was working fairly well a few weeks ago but however, it seems to be having trouble reading the .dpv file. I am running the "ConvertToCharm" ULP in EAGLE and saving the .dpv file, but when I save to flash, import on the PnP machine and go to run, the file shows no components at all and when I select "load", I receive the "work file error" message.
I was running the machine a few weeks ago with minor issues but none related to the work file not reading. When I run the "example board to convert" brd file, it will show its components and load without error.. So I am unsure what the difference between the brd files are which the ULP is not converting properly. Any ideas or suggestions?
Thanks
I've got a library part (from SparkFun) for a 40 mil fiducial.
A single footprint provides both top and bottom side fiducial marks.
Unfortunately, the script doesn't handle this footprint correctly. In my case, regardless of whether I mirror it or not, it gets treated as a "Bottom" component.
To make matters worse, since it was placed as a top component, the flipping of the coordinates puts them in the opposite position from what is desired on both sides of the board.
Obviously, as a work around, I can convert it to a single-sided foot print and manually place 6 fiducial marks instead of 3, but Ideally, it would be nice if a simple correction to the script were possible.
Full disclosure, I'm actually using the Berniwa fork, but I believe the behavior is still the same.
I've attached an export of the footprint in question to help in the diagnostic process. Unfortunately, to get GitHub to accept it, I had to append a .txt extension. (I'll open an issue on GitHub for that).
Weird issue where 2K resistors are placed where 22K resistors should be. I think that "2K" is being matched in the alias for 22K. No other components are doing this, but I don't have 3K and 33K or 1K and 11K components.
Relevant feeders.csv:
8mm | 7 | 2K-R0805 | 0 | 0 | 0.5 | 0 | 1 | 0 | 4 | Y | Y | N | 0 | 0 | 2K-R0805
8mm | 10 | 22k-R0805 | 0 | 0 | 0.5 | 0 | 1 | 0 | 4 | Y | Y | N | 0 | 0 | 22K-R0805
Workaround is to remove 2K components and use 2.2K instead (which we're doing anyway).
Default is 0.1 for X/Y component size. This is bad. This will cause a 0.1x0.1 bounding box and the machine will fail component pick.
I'm using the Berniewa fork, but this applies to both his fork and SparkfunX Core
In Eagle-Conversion/ConvertToCharm.ulp, Sparkfun Line 73, Berniewa line 58, there is a value defined for FEEDER_NOMOUNT = 30.
If you have a larger machine (e.g. CHMT560P4), then unless you dig into the source code, you find yourself with a real head-scratcher as to why your feeder loaded in position 30 always gets tagged "NO Mount".
I found that it was easy to change this value to 999 without causing any noticeable harm. Obviously, I updated my feeder list spreadsheet accordingly.
Thanks for this very useful software.
Hello,
I have been curious and interested on how to utilize the IC trays on the CHMT48VB Pick n Place machine. I assume it would be similar to the CHMT36 code/functionality?
I noticed the latest Eagle ULP conversion includes lines for "feeders" AND "trays" whereas the previous version I had only had strings for feeders.. This makes me wonder if there is a new google/excel sheets format I should be copying that incorporates trays.
Can anyone help with this?
Thanks!
Dallas
Hello,
I can load the feeders into Eagle using the "Local CSV" option with an Excel sheet but when trying to load a google spreadsheet the feeders do not load. I've made sure my Google Doc link was viewable and modified the link to include "output=csv" as mentioned on a previous post but still no success.
The variation of links I've tried are:
https://docs.google.com/spreadsheets/d/1dIR_tmybnnlRiSdl0-_UD5pWpbRqm3KqWKn81VtS5E4/edit?usp=sharing
Do you see any obvious errors that would prevent the Google sheet to not load in the Eagle ULP conversion?
Thanks
I'd like to see about moving some of my "random notes" into this repo to reduce cyber-clutter. You can see my repo at https://github.com/colinoflynn/chmt36va_hints .
Any preferred method here? I'm thinking a new folder that has a bunch of markdown files (or maybe just one big one), can be sorted into folders as well for further clarification.
That way other people can make small notes & push them in. Basically like a "tips-n-tricks" section - either done as one large markdown (might be easiest to browse) or a bunch of small snippets.
Wanted to get some input before doing a PR. Feel free to create such structure and I can PR into the right locations.
We often use dimension lines to indicate v-scores. These lines cause the AutoOffset feature to kick in and cause all our placements to be off.
Our fix is to remove the v-score lines before running ULP. What is the purpose of the auto offset feature?
The down looking camera "Find Target" button is not working for automated recognition of fiducial marks.
Going into the hidden menu and performing a Vision Set calibration on the down-looking camera while looking at a 1mm round fid seems to work once you setup the threshold to about 85 and the Rsize to 30,30. you must be in Binary image to see it.
The problems I can see are:
1- these new values are not saved
2- the PCB calibration "Find Target" still does not work after performing this calibration
Im a happy charmtohigh.ulp user.
It seems it rotates 180 degre wrong when using bottom flip vertical.
Bottolum flip horizontal works correctly.
Is anybody elae having same issue?
Uffe
The ULP should ask user where to save output file. This directory should be stored as default in the cfg file.
Hello,
The first time we ran the CHMT48VB PnP machine we noticed it moves extremely rapidly/jerky causing components to pop out of the reels and maybe even a proponent in placement accuracy.
I was excited to see this Eagle conversion included a speed adjustment column but even after updating the spreadsheet speed column to 50 or 30, I have not noticed any chance in actual speed. Has anyone else faced this issue and/or know how to slow the machine down?
We've even tried securing the table better but there still seems to be too much acceleration in the machine.
Thanks!
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.)
As an alternative to using the python script to download the CSV, you can use the Google Drive application to keep a local directory in sync with your Google Drive. In that case, you always have a (current) local copy of everything in your google drive and any file you put into that director is also deployed to your google drive.
No need for OAUTH or any of the other API stuff.
Current commit is unable to recognize parts for alignment.
Reverting to ced1386 seems to fix the problem
What do I have to change to get this work with the bigger maschine with more feeders? I’ve found the line with “int MAX_FEEDER = 30” and changed it to 64 but it still don’t insert the feeders with an ID over 30 out of my local document. Until ID 30 everything works.
I ran my first double sided board and the head assignment for the feeders isn't getting through.
Trying to set the PCB Calibration I sometimes got this error. I got it when I was trying to choose the center of the 2 points specified.
If I chose to calibrate again and chose a little different points from the center of the component specified , charm accepted the coordinates.
If I don't try to move the head to the points specified and just click "set" for both points charm would accept the calibration.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.