Pick and place software? - Page 1
Forum section: electronics / projects

author: H.O
author_rank: Frequent Contributor
timestamp: October 01, 2015, 05:35:07 pm
content: Hi,Does anyone out there know of any reasonably priced (<<$1000) software that can actually run a pick and place machine?There seems to be a couple of open source projects, namely theopenPNPproject andPick and Place USB Control Softwarea BrianDorey.com and I'm looking into those but I don't know....they are both very much work in progress and I can't even seem to find what sort of motion controlleropenPNPexpects to see at the end of the USB(?) or Ethernet(?) cable or how it actually intefaces to the machine itself - I must be blind.I saw that Madell had a $500 software and asked them about it. They said it couldn't do what I needed and that it required another $450 to actually do vision. Then they pointed me towards their $3000 software package, no thanks, that's way to much money.Background:Over the past couple of years I've built something that's supposed to work as pick and place machine. This is a long term hobby project, I like building stuff, I'm not going into production or anything (machines or PCBs). The machine has ballscrews on XYZ, PMDC servo motors on X/Y and stepper motors on Z and C (or whatever the rotational axis is called in the PnP industry (I'm used to CNC)). Here's what the machine itself looks like:As many others I started with the drag-feeder kind of thing but didn't like it (at all). After a bit of searching I got a bunch of FUJI dual lane (and a few single lane) motorized feeders for a good price:My line of thinking is to use these for discretes and then use trays, tubes, and cut tapes for rest. If the machine becomes functional I could shop for more feeders.Anyway, I spent some time trying to reverse engineer the feeders, getting them to do what they're intended to do, without any luck so I went on spendning more time designing a new driver board for it, one that I knew I could make do what needed to be done. Old PCB front and back:And the new PCB mounted inside one of the feeders (it's working fine):For testing purposes I've been using Mach3 for the motion part (because I know it well) and Roborealm for vision but the more I play around with it the more I realise it's going to be hack, at best. At this Point I'm prepared to lay out some cash if it would get me moving forward on the software side of things. I'm not really a programmer so trying to get something like this flying is going to take more effort than I'm prepared to put in and I'll probably be better off going forward with the Mach3/Roborealm combo after all.So again, if anyone knows of any software that might do a half decent job running a machine please let me know, thank!

author: IconicPCB
author_rank: Super Contributor
timestamp: October 01, 2015, 09:38:46 pm
content: Impressive to say the least.There was a similar project anounced earlier in the year , here in this blog.Thefellow had written his own software so if You do a search on the topic You might find him and his solution. You never know...On the other hand people have used LinuxCNC to implement a pick and place functionality.

author: JuKu
author_rank: Frequent Contributor
timestamp: October 05, 2015, 12:14:50 pm
content: IconicPCB is probably referring to my project:www.liteplacer.com. The software is open source for non-commercial use (commercial: P&P machines as a business, a "long term hobby project" is not that). At my very low price point you don't get feeders, so the software does not quite support those. It does support fixed placement pickup positions, which is kind-of feeder support, if you add your own "advance the feeder" function. It might take some effort to get running on other CNC controller than the TinyG, though.http://synthetos.myshopify.com/

author: IconicPCB
author_rank: Super Contributor
timestamp: October 05, 2015, 09:45:36 pm
content: Juku,Yes I was thinking of Your project specifically.

author: H.O
author_rank: Frequent Contributor
timestamp: March 13, 2016, 07:04:38 pm
content: In theNeoden4 threadI was asked about the design of my machine, specificallyQuoteAs to not derail that thread I decided it was better to have that disussion here.As can be seen in the overview photo of the machine the current head (now in pieces and to be replaced) simply consists of a hollow shaft NEMA11 motor on a linear slide. The idea was to have two pickup heads and select which one to use with pneumatic cylinders. The actual up down motion is/was carried out by the THK linear slide to which both the smaller rails are mounted. This slide is driven by the NEMA34 stepper motor at the top. This whole assembly is WAY overkill and weighs several kilos.On the hollw shaft NEMA11 motor there's ring magnet glued to the shaft. This magnet is what holds the nozzles in place. The actual nozzles are the same as on the Neoden TM240 series machines. I've gone thru various versions of nozzle holders (brass, steel, plastic etc) and all the time I've had issues with "nozzle runout" - ie the nozzle tip "wobbles" as it turns which I don't really like.As I'm getting back into this project (again) I'm redesigning the head with the design loosely based on the SmallSMT head design where (as far as I can see from various photos) a single step motor drives a belt to which the two pickup heads are attached. As one goes down the other goes up. The linear slides will be replaced with a size smaller than what's currently used (THK 12mm -> 7mm), the rotation motors will be replaced with NEMA8 (instead of NEMA11) and the nozzles will be replaces with Samsung CP45 style nozzles and off the shelf nozzle adapters (which I will need to modify to fit it to the stepper motors).A NEMA17 motor will drive the belt moving the heads up and down, this motor will be on the back "flying" under the X-axis beam of the machine. I'm still trying various things out (in old school 2D CAD) but I'm attaching a draft of the general idea.My biggest issue with the whole build is still software though but we'll see where it all ends.

author: vonnieda
author_rank: Regular Contributor
timestamp: March 14, 2016, 04:34:27 pm
content: Quote from: H.O on October 01, 2015, 05:35:07 pmHi H.O.,I missed this post when you originally posted it back in October, but better late than never I guess. I am the author of OpenPnP and would be happy to give you some guidance on getting your machine working with it. I recommend taking a read throughhttps://github.com/openpnp/openpnp/wiki/Quick-Startwhich will give you a good idea of what OpenPnP is, what it does and how it looks. After that it will direct you towards the user manual which can help you get a real machine up and running.The short answer to your motion controller question is that OpenPnP supports a huge variety of motion controllers. The ones that people use most often are TinyG and Smoothie but there are built in drivers for LinuxCNC, Grbl, Marlin and others. OpenPnP is a modular system and is designed to support any hardware you throw at it.OpenPnP would have no trouble at all running your machine and it will probably be easier than it seems to get it up and running. The one caveat is that you will probably need to do a small amount of programming to get your feeders working as these are typically very custom per machine. Myself or the community can help you with that.So, like I said, I'd suggest taking a look at the quick start guide and then either join the mailing list or IRC channel and start a discussion about your machine.Jason

author: H.O
author_rank: Frequent Contributor
timestamp: March 16, 2016, 07:19:33 am
content: Jason,Thank you for you jumping in and for clarifying the part about the motion controllers.(This is coming across as negativism and it's really not meant to be that!)Looking at Grbl and TinyG they both seem to be all-in-one boards with integrated stepper drivers and they all seem to top out at 4 axis. Since I'm running a mix of servos and steppers (and need at least 5 axis) those boards doesn't look as good match though I could of course just hijack the step/dir signals (I see that there's even pads/connectors for that on some of the devices). Googling a bit seems to indicate it might be possible to daisy-chain two boards and relay data from one to the other but I don't know, it all seems like another hack and that's exactly what I'm trying to avoid at this stage.I'dpersonallyrather have something without the drivers - something like theKFloporPoKeys57CNCor even (a little higher end) theHiCON Integra. I know I know, it's free, open source and it's up to anyone to add it.... but I'm not a programmer at that level and have never written a line of Java. With your help I could possibly get the feeders going but adding a new motion controller probably is more work than I'm currently prepared to take on. That says more about me and where I'm currently at than it does about you and/or the openPNP project!I totally expect to have to do some "integration" and setup work but I'm not really up for the task of learning a complete new programming language etc. What I think would be good for something like openPNP is to adapt some sort of script engine. They did that with Mach3 way back and it's proved extremely useful for things like toolchangers (where no machine is the other alike). There's no complicated IDE, no build process, nothing like that. Just simple text files with VBScript(ish) commands and it's super flexible. There's all the commands of the scripting engine itself, then Mach3 exposes it's internal commands so you can set outputs, read inputs, do motion and if that's not enough you can call functions in external DLLs, like the Windows API.Finally, am I correct when I say that OpenPNP does not have provision for part alignment using an uplooking camera? I seem to remember you saying that in another thread.... IMHO that is a must have.Thanks again for jumping in and I apologize if I'm sounding negative.

author: donotdespisethesnake
author_rank: Super Contributor
timestamp: March 16, 2016, 10:40:20 am
content: Well, it amazes me you set out spending on all that money on hardware with the expectation of getting software for a few $, or that you get software for a highly niche design without good programming skills. Do people think software grows on trees? It costs money too. If you'd pay $600 for a control board, you can afford to hire someone to write software...QuoteThat is actuallya very good deal. Otherwise you have just made an expensive paper weight.

author: H.O
author_rank: Frequent Contributor
timestamp: March 16, 2016, 12:28:18 pm
content: Thanks, but I think you might have misunderstood.I don't expect the software to be free. I'm prepared to pay "a few bucks" for it.$1000 mechanics$1000 electronics$1000 softwareSeems like a fairly good mix to me - YMMV.The three motion controllers I linked to span in price from $140 to $600 and you opted to use the most expensive one to make your point, that's fine. I wouldn't select that one over the other two for my particular needs but if it was what worked with a particular piece of software then I'd do it.What I'm trying to say is that I AM willing to pay for the software but so far I have not been able to find what I'm looking for. It's still on hobby budget so hiring a programmer to develop the software is, well, sort of ridiculous.I have "some" programming skills and if nothing turns up I might have a go at it but again, I'd rather buy something that works if it can be had for "a few bucks".

author: donotdespisethesnake
author_rank: Super Contributor
timestamp: March 16, 2016, 07:39:26 pm
content: Yeah, sorry, didn't mean to get on your caseYou have a very nice build there, it would be a shame not to get it performing it's intended function. I looked into the LitePlacer software, I see that it is being actively worked on. Unless things have changed recently, the application is quite tied into the low level interface which depends on grbl and it's JSON interface, it would take some work to adapt to a different controller interface.FirePick had a lot of promise and ambition, but since the founder quit the project due to personal reasons, I don't see any finished product being produced in the near future, it seems to have entered that endless Beta phase. It's also quite a complex setup.I found some personal projects like Brian Dorey'shttp://www.briandorey.com/post/diy-pick-and-place-v2-project-complete,he has published some software but I don't know how easy it would be to adapt to different hardware.OpenPnp may well be your best bet, as an ongoing project it has some level of community, and it is more likely that people would contribute features to it.My own P&P project is sitting in a corner, some time I should get round to getting it going.

author: vonnieda
author_rank: Regular Contributor
timestamp: March 16, 2016, 08:50:20 pm
content: Quote from: H.O on March 16, 2016, 07:19:33 amHi H.O.,First, no worries about negativity. I've been working on OpenPnP a long time and I know what it is and what it isn't. I have thick skinSmoothie might be a good option for you if you want to use something that already has support in OpenPnP. There is a Smoothie board called the Smoothieboard 5X (http://shop.uberclock.com/products/smoothieboard) that has drivers for 5 steppers and it also breaks out the step/dir signals so you can use external drivers if you prefer.If you want to use a board that isn't currently supported it's a lot less work than it might sound like. The driver interface for OpenPnP is only a handful of functions. What many people do is just copy one of the existing drivers and change the Gcode that is sent to suit their machine.Quote from: H.O on March 16, 2016, 07:19:33 amI designed OpenPnP to be very easily extensible and customizable. The entire system is driven by loading a number of generic classes from the configuration file and then just doing what they say. Using this you can define any number of heads, nozzles, nozzle tips, actuators, cameras, etc. In addition, many of the deeper pieces of functionality like tool changers are configurable.The problem with doing this type of thing in a scripting engine is that you are effectively just adding another programming language which you then have to create APIs and bindings for. The reason this works well for Mach 3 is that Mach 3 is closed source. Without the scripting engine there would be no way to add custom functionality to Mach 3 because they won't give you the source.In OpenPnP, if you want to add some piece of functionality you just add it. Yes, you do have to do that using Java but really, Java is easy. It's one of the most popular programming languages in the world, has tons and tons of support and community and I've provided a number of tools to make it easy to get an OpenPnP development environment up and running. By following this guide (https://github.com/openpnp/openpnp/wiki/Getting-Started-with-Eclipse) you can be up and running and making changes in under 5 minutes.Quote from: H.O on March 16, 2016, 07:19:33 amThat is the current situation, but bottom vision (which is what I call this feature) is my current and sole focus for the project. I am hoping to have a basic version of it working by this time next week and due to a new vision pipeline system that has just been finished it will be very easy for people to customize and improve. You can see a screen capture of my progress as of last night athttps://twitter.com/openpnp/status/710138303199096832/photo/1.One of the things I have learned over the years is that people tend to underestimate the amount of software needed to run a pick and place machine. It's not like a CNC mill, for instance, where another (hugely complex!) piece of CAM software has created all the instructions and the control software just has to run them. Pick and place software has many more interactions with the machine for every part it has to place. Lots of people have created scripts that export Gcode based on Eagle files, for instance, but these only take you so far. Eventually you need something with intelligence if you want a decent user experience.Unfortunately, I think you will find that there are very few options for your machine. Madell is likely the best option if you just want something that will work out of the box, assuming that it will. I don't know how customizable their software is, I just know they've been selling it for DIY machines for quite some time. The LitePlacer software might be another option but I think that you will find that by the time you've adapted it to your machine and adapted your machine to it you will have been better off just buying a LitePlacer.Pick and place software tends to be designed for one specific machine. You can see the problem with this over in the Neoden 4 thread. If the company decides to stop making that machine it's highly likely they'll never release another update for the software. Once the software dies your machine is a brick.This is a big part of the reason I've spent so much time making OpenPnP modular. I want to provide an option both for DIYers with crazy custom machines and also for older machines that are still perfectly functional except for their software. My (not so) secret hope is that someday manufacturers will see using OpenPnP as a better alternative to writing yet another buggy, unsupported, obsolete before it's out the door pick and place software.Anyway, that's my $0.02. It looks like you have a very nice machine built and I think OpenPnP would get you quite a long way with it but I completely understand not wanting to have to take on another project when all you want is to run your machine. I feel the same way about 3D printers.Jason

author: H.O
author_rank: Frequent Contributor
timestamp: March 16, 2016, 10:22:49 pm
content: Thank you both for your comments and for the compliments on the build - it's been a long project with looong periods of doing nothing but I'm currently "in the zone" and want to push forward before motivation once again dies off :-)I agree, as far as what's easily accessable out there openPNP most likely IS my best bet. While looking around I did find the, not yet available, Smoothieboard 5X(C) and if that thing works with openPNP then it might be exactly what I'm looking for. I could use a couple of the on-board drivers for the nozzle motors (and possibly for the Z-axis) and then just route the step/direction signals to the servo drives.QuoteThat does sound fairly easy but to me the above means that the board at the other end interprets G-code directly - or some other high level commands. I don't Think any of the boards I used as an example does that,I thinkthey're at a much lower level.QuoteThat's true, Mach3 is closed source but there's still a big difference IMHO. The source code of Mach3, and I can imagine openPNP as well, is immensely more complicated than what the general user does in a script for something like a toolchanger. "Messing around" with the source code might break othet things while messing around with your toolchanger script can't "destroy", or create unknown side effects in, the overall functionallity of the software. (Just with your machine :-) )QuoteThat's what you open source programmer guys always says :-) Seriously though, I'll look at your guidelines for setting up Eclipse and building openPNP. It might be easier than I envision (but it's probably not).....QuoteThat sounds good, I'll keep my eyes and ears open!The Madell sofware is out of the question. $3000 is too much at this point so I did not pursue it further, I don't know what it can and can not do. I AM pursuing another, commercial, option but getting details on that one is like pulling teeth - slow and painful. Apart from that one openPNP actually does seem to be the "only" viable option right now. I want reliable bottom vision and I need a way to integrate my feeders. But both are doable so....As far as I understand using the reference tube feeder as a starting point (since the pickup location will be static for each feeder) but being able to send out serial string to a COM-port where the motion controller is not connected is what's needed.QuoteI think that's true. I don't think I'm underestimating it though - which is the reason I'm looking for something already finished :-)What about vacum sensors?Thanks again for all your comments!

author: donotdespisethesnake
author_rank: Super Contributor
timestamp: March 17, 2016, 01:29:28 am
content: Quote from: H.O on March 16, 2016, 10:22:49 pmAll the controllers designed for RepRap style 3D printers have GCode interpreted on the controller (or they use an equivalent language). Partly I guess because of the demise of parallel ports. TinyG does a similar thing but was designed for CNC use, so the controllers are simpler (i.e. no requirement for heaters).So the good thing is there are a whole bunch of boards to choose from, although the quality may not quite be up to the "industrial" grade of Mach3 type kit. Controllers like RADDS, and Duet with extension board could support up to 6 steppers. But I think you have 2 steppers and 2 servos, so you only need two stepper drivers. I guess your servos can take step/dir inputs?So I think you could get the motion control going pretty quickly, probably with one of the boards already supported by OpenPnp. Switching outputs may already be there too, 3d printers controllers have 2 or 3 for heaters, but can be used to switch any 12V load. Controllers designed for CNC have similar outputs for flood or mist etc.What is the interface to your feeders? That is probably where you will need some custom coding.

author: H.O
author_rank: Frequent Contributor
timestamp: March 17, 2016, 07:54:58 am
content: I have two servos (X and Y) which takes step and direction. Then I have three steppers (one for Z and two nozzle rotation motors) so I do need 5 axis.If I read the specs correctly the Smoothieboard 5X has 5 axis and 3+3 outputs directly capable of driving real world loads like the solenoid valves and possibly the light for the cameras (would be nice with PWM which I suppose it can do since it'd for the heater(s). It's got input designed for thermistors, perhaps those can be used for vacuum sensors? On top of that there are more I/O's on board but I need to look into how those can be used. It looks like that board might be a way forward if I decide to try with openPNP.I designed the feeder controller so that all feeders can sit on a RS485 bus. Having written the firmware for the uC in the controller PCB I have full control over the protocol and right now it's just a super simple two byte protocol but I'll probably need to strengthen that up a little bit. There's also a discrete input that, when pulled low, feeds the lane. An open collector output on each feeder signals "busy" so these can be connected together into a single input on the controller. Same thing with an "error" signal. As long as I can get to build the openPNP source I'm not TOO concerned about getting the feeders going, I'm sure someone out there would be able to help if I can't figure it out myself. But the more complicated stuff like bottom vision etc is way out of my league.Having built a couple of CNC machine using Mach3 I have a fairly good grasp on what's available in that segment which is why I pointed to things like the poKeys and KFlop but I don't know much about the 3D printing stuff which seems to be what the openPNP community is embracing for use with the software. Take a look at thepoKeys57CNCdevice, it's €119 and it's got a TON of features and it would be a super flexible device for use with openPNP but its protocol is not simple G-code (protocol specification can bedownloaded here). They supply a DLL library for "driving" the thing. But it does NOT do the trajectory planning so I'm fairly certain it's not something that can work with openPNP without major work.The KFlop from Dynomtion does do trajectory planning so that might be a better match but it's still not simple G-code commands thru a serial connection.

author: donotdespisethesnake
author_rank: Super Contributor
timestamp: March 17, 2016, 09:54:57 am
content: FWIW, I built three 3d printers, designed a printer controller, and worked on several printer firmwares, eg. Marlin which I ported for Arduino Due. So I have a good knowledge of that space, but all I know about Mach3 or LinuxCNC is what I've read.The major difference is that motion control is done in the controller, not on the PC. Anything that OpenPnp uses must have motion control in the controller, if not Gcode compatible then something similar.Quote from: H.O on March 17, 2016, 07:54:58 amRight, so you need controller software that supports 5 axis but the actual board needs only three stepper drivers. The step/dir outputs are just digital outputs from the CPU. So you could use any of the Smoothieboard controllers, although they seem to be out of stock across the board. I think they to do a production run whenever they have sufficient orders in the pipeline.I assume you have checked the stepper drivers on Smoothieboard are sufficient to drive your steppers? 3d printers typically use Nema17 size at 12-24V up to 1A or so. You should be able to drive Nema23 as well.Functionally Smoothieboard is very similar to other boards such as tinyg, Duet, RADDS etc. You will probably need to add some custom code to the firmware, they all have open source firmware so are quite easy to rebuild.KFlop would work as well, it appears, but I didn't find an easy to use command interface. There appear to be some driver DLLs provided. It would be a lot more work to integrate with OpenPnp.

author: H.O
author_rank: Frequent Contributor
timestamp: March 17, 2016, 11:41:54 am
content: QuoteYeah, that's what I figured. It makes it easier at the PC end...QuoteThe nozzle rotation motors are NEMA8's rated at 0.8A or something like that so it should be fine. The Z-axis motor is NEMA17 rated at 1.5A so it might be too much for the A4982 but I can always use the drive that's there now.QuoteAgain, Duet, tinyG, RADDS, grbl, Smoothie, etc says nothing to me. I have no idea what they can and can not do and I'm trying to figure it out by reading online but information is "all over the place" and quite frankly hard to follow. One thing I've looked for lately is the maximum steprate that Smoothie 5X(C) can do - a fairly important specification if you ask me but it was nowhere to be found. In the end I found it buried (<110kHz) in a block of text in the "How it works" section. Again, typical for projects like this. Give me a single (or two) .pdf files with the documentation, specifications and communication protoclols.QuoteSo I will need to do custom development on openPNP and I will need to do custom development on the firmware for the board I choose - that's open source for you - it's not meant for users but for developers. Tweaking some configuration files, changing settings, entering setup information etc - fine. But having to setup toolchains and IDEs for both software and firmware really is something I would prefer to avoid - but if that is what it takes then so be it. Are my requirements really that extreme? O0Someone, take my $1000 and give me something that just, well, works - that I don't need to "develop" in order to use :-)

author: donotdespisethesnake
author_rank: Super Contributor
timestamp: March 19, 2016, 11:11:16 am
content: Hmm ok, back to complaining about lazy Open Source programmers who give their time for free, but have not produced a solution exactly tailored for your unique needsYour expectations are simply unrealistic, so unless you want the expensive paper weight, you will need to change your attitude. I could suggest to try contacting some open source developers, but frankly I doubt any would want to work with you. I was considering it, but you persuaded me otherwise.That just leaveshttp://www.rent-acoder.com/you can find out how much quality code $1000 buys you.

author: vonnieda
author_rank: Regular Contributor
timestamp: March 19, 2016, 05:26:15 pm
content: I suspect H.O's messages were intended to be taken lightly, but to a point I agree with Bob. You've built a completely custom machine that does not follow any of the existing common DIY pick and place specs and you are wanting to find some piece of software that will just work with it. It's unrealistic. If you had built, for instance, one of the OpenPnP reference designs (http://openpnp.org/hardware) then it would be no problem to just configure OpenPnP with it. Likewise if you had bought a Liteplacer or built a machine based on the design (which is also open and free) the Liteplacer software would work. And again, if you had built a machine to the specifications of Madell's software then their software would work fine for you. But your machine is unique and thus will require unique software.I completely understand this. I'd rather design and build my own machine as well, but that comes with the knowledge that I will have to write software for it.$1000 sounds like a reasonable number for a piece of software that is already written but it's a drop in the bucket for custom software.I do hope that eventually OpenPnP is flexible enough that it can be adapted to any machine simply through configuration, but we're not there yet. That is not due to design choices, but simply time constraints. Writing super flexible software that can control any machine that someone dreams up is a massive time investment, and I am one person doing this for free in my spare time.In any case, as I said before, I am very willing to help you get up and running with OpenPnP but it's going to require work on your end. If you aren't willing to do that work, I certainly understand, but the only help I can offer is to let you know when OpenPnP has a more flexible configuration model.Jason

author: cio74
author_rank: Regular Contributor
timestamp: March 19, 2016, 06:10:37 pm
content: You may try Elance or similar and get lucky, you have a tiny budget. Unless someone has a direct interest in building the software for you (i.e. he has already done a similar project, he likes your idea, he wants to use your machine for his projects, etc )It's a lot of work, one has to understand the scope, get the specs from you, build an initial version. The it goes to testing, if he's not local, remote debugging of a machine it's going to require a lot of effort on both sides. Do you have one to ship to the developer so he can try it? Or a demo box of the motors and the other involved with the PC interface. Difficult to say at least.This is not a $1000 project, hobby or not. Dare to say it's not even a $10.000 project. Doesn't matter if you can buy off the shelf solution for half, custom software design and development it's very expensive.Alternatively you can learn to develop software. Since it's a hobby you can do it on your own, much more rewarding.

author: IconicPCB
author_rank: Super Contributor
timestamp: March 20, 2016, 04:34:01 am
content: the other option is to search for LINUXCNC implementation of pick and place runing G code and some python scripts.Might just give you what you need

author: H.O
author_rank: Frequent Contributor
timestamp: March 20, 2016, 02:09:03 pm
content: Guys, first of all I don't mean to step on anybodys toes. If I have done so please accept my appologies.I guess I am complaining a little bit but its more about the general situation and not directed towards any individual(s) and never have I said anything about anyone here being lazy (except possibly me). Yes, I am a little bit frustrated but I'm not blaiming anyone else for it.Second, and again, I am NOT suggesting, thinking or expecting anyone to write a completely custom piece of software FOR ME for $1000 (or for free) - that's ridiculous and it's not what I'm saying. I'm saying that I'd be willing to pay $1000 for a piece of software (had it existed) that was able to run my machine.Perhaps I'm ignorant but me thinks that being able to "build" a string based on internal variables (like which feeder to go to next) and send that string out thru a serial port to command the feeders can't be THAT obscure of a thing to do be able to do with a pick and place software. I suspect many commercial machine (subjects for retrofits perhaps) will have motorised feeders hanging on a RS485 bus or similar. Perhaps the Madell software can do it but again, it's $3k which I can't justify at the moment and from what I've read about it it's not that great anyway.Really, the only thing custom with my machine, as far as I see it, are the feeders. Apart from that I don't see how it differs from most other machines. It's a cartesian X/Y/Z machine with two pickup-heads (as is most machine run by openPNP that I've seen. What else is it that makes my machine so different?For what it's worth I have ordered a Smoothieboard 5X (but as was said previously it's backordered so I don't know when it will arrive) and I will most likely try openPNP with it and I will try setting Eclipse up and have a look around the code. If I manage to get to that point you'll most likely hear from me on one of the openPNP channel.After ordering the Smoothieboard it struck me that (for testing purposes at least) I could run openPNP on one PC, have it connected to my Mach3 PC, write a script that reads the G-code strings being sent by openPNP and run the machine but I think time is better spent trying to figure out how to command my feeders from openPNP.It's not that I'm not interested, or willing, to do some work in order to get a usable machine but not having ANY experience in JAVA makes me worried that I'm not gonna be able to do it and that time would be better spent elsewhere.LinuxCNC with Python scripts might very well work but then I might as well continue with Mach3 (since I know it better) but it's a cludge.All this being said I'm of the opinion that any pick and place software worth its name MUST have vision capabillities so Jason, get off your lazy arse and get to work will you :-)/Henrik.

author: cio74
author_rank: Regular Contributor
timestamp: March 20, 2016, 02:21:35 pm
content: Quote from: H.O on March 20, 2016, 02:09:03 pmI have nearly scratched my monitor with my nail trying to clean 'that dirt' over the Y letter

author: H.O
author_rank: Frequent Contributor
timestamp: March 20, 2016, 02:42:19 pm
content: Haha, sorry about that.Now fixed so that it doesn't happen to anyone else :-)

author: vonnieda
author_rank: Regular Contributor
timestamp: March 24, 2016, 05:59:22 am
content: Update on bottom vision in OpenPnP:Jason

author: H.O
author_rank: Frequent Contributor
timestamp: March 24, 2016, 06:17:34 am
content: Very nice Jason! Great job!I've got Eclipse setup and the code downloaded. Will need to start looking thru the code and look at some (probably a lot of) Java tutorials. I'm a complete newbie in Java and with Git so I need to learn how I can add code at my end while still being able to merge in changes from the main code as they become available.Parts for the head rebuild are coming and the Smoothieboard is in transit.Running openPNP build 778db6 on the laptop next to me I can't seem to find/select a driver for Smoothieboard. Am I supposed to select another, supposedly compatible, driver or am I just using the wrong build?Thanks again Jason!

author: vonnieda
author_rank: Regular Contributor
timestamp: March 24, 2016, 05:21:59 pm
content: Hi H.O,Probably best to continue this discussion on the OpenPnP mailing list for faster / better responses, but I can get the ball rolling here.Most people using the Smoothie are using a dual nozzle head design with a cam for actuation, like this:https://raw.githubusercontent.com/openpnp/openpnp-openbuilds/develop/Images/head_closeup.jpgThe driver that is designed for that type of head, and also for Smoothie is the "OpenBuildsDriver". It's called that because it was written specifically for this machine:https://github.com/openpnp/openpnp-openbuilds/tree/1.0It's not quite clear to me how you actuate your Z axes. Looks like a ball screw moves the whole sled down and then maybe each nozzle can slide up on it's own when it contacts something? In any case, if your Z is just a single axis we'll have to modify the driver a bit for you. I'm happy to do that, since this will be useful for many people - to have a single linear Z axis based Smoothie driver. I'll copy the OpenBuilds driver and just remove the chunks that are specific to the non-linear Z that I use.I saw you mention something about a head re-design, so if you can comment a bit about what you want your machine to look like for it's running version I can help decide what driver would be best.Jason

author: H.O
author_rank: Frequent Contributor
timestamp: March 24, 2016, 07:03:02 pm
content: Thanks Jason,The head you see in the photos in this thread is being replaced with something very similar to the cam driven one but I'm using a belt to which the two nozzles are attached, as one nozzle goes down the other goes up. I was inspired by the SmallSMT machine but I've seen it used elsewhere as well - and I think I saw it being discussed on the openPNP Google Group as well.If the dual nozzle cam driven version works with the OpenBuildsDriver I'm sure the belt driven one will as well.You're probably correct in that it'll be better to continue the discussion on the openPNP mailing list. Haven't signed up yet but will do.Thanks again for your work and your help. I'm feeling better now :-)/Henrik.

author: vonnieda
author_rank: Regular Contributor
timestamp: March 25, 2016, 06:25:27 pm
content: Hi Henrik,The only change that will need to be made to the driver will be to handle the Z axis linearly instead of with the curve based math that is used now. Since the cam is rotating it's introducing a non-linear curve to the Z action and the driver handles that. With yours it will just be a simple linear movement. Not a big deal, it's about a 10 line change that I am happy to make for you. It's on my TODO list for this weekend.Jason