GithubHelp home page GithubHelp logo

sparkfunx / desktop-pickandplace-chmt36va Goto Github PK

View Code? Open in Web Editor NEW
66.0 66.0 32.0 313.96 MB

Tools and conversion scripts for the CHM-T36VA Desktop Pick and Place from SparkFun

License: GNU General Public License v3.0

Python 100.00%

desktop-pickandplace-chmt36va's People

Contributors

berniwa avatar bg7ywl avatar colinoflynn avatar hydra avatar lukh avatar mattthebaker avatar nseidle avatar owendelong avatar rnicolas avatar sam1360 avatar tobiashofer avatar tommag avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

desktop-pickandplace-chmt36va's Issues

Work File Error - DPV File Error

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

Suggested folder/format for random notes

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.

Tips'nTricks: Eagle Variants

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?

trying to PCB Calibrate

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.

image

Hardcoded value of FEEDER_NOMOUNT = 30 is problematic

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.

Vertical Flip

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

Double Sided Fiducials are not correctly handled

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).

Fiducial Example.lbr.txt

ULP Google Spreadsheet Not Loading

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

https://docs.google.com/spreadsheets**/output=csv/d/1dIR_tmybnnlRiSdl0-_UD5pWpbRqm3KqWKn81VtS5E4/edit?usp=sharing

https://docs.google.com/spreadsheets/d/{key}/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

Panelized PCBs

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.)

EC must be zero

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.

Some components swapped and placed wrong

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).

Alternative to the Python Script

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.

Using the ULP with CHMT48VB

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.

Eagle ULP Wishlist

We will be working on the ULP over the summer, so feel free to post any things that we should tackle here

Mechanical Issue: Machine Speed

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!

Utilizing IC Trays - CHMT48VB

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

Down-looking Vision not recognizing fiducials

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

IMG_8853

Placement data not coming through for bottom parts

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.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.