This entry will serve as an omnibus collection of fails, and wins, at the system level. I'd rather keep them together, instead of having dozens of tiny updates, each with their own entry.
As of July 8 2014, we are successfully picking and placing SMT components with the FirePick Delta prototype. This is a huge accomplishment in itself, but we've really just started. Although FPD has a 5MP camera mounted to the end effector, and a full suite of custom computer vision functions ready to go, we've still got some integration to do before we can use it at a system-level, for drag-pin feeder advancement, up-looking vision, and fiducial recognition. It's a minor amount of work, but everything takes time. For today, we're just trying to make sure that we've got all the various parts of the system online and working together. You have to crawl before you can walk, as they say.
6/29/2014 - Auto-Z-Leveling Headaches
I've been trying for several days to get the auto-Z leveling code working, in the Marlin motion controller code. After several days, I find that changing one constant in the config.h got it mostly working.
Here's a post over at the Deltabot Google group of my headaches;
7/4/2014 - Endstop Issues
My "Y" optical endstop limit switch died last night. I don't have extras, so I had to order some. With the July 4th holiday, it's going to be Wednesday or Thursday (the 10th) before I can do any online tests with the machine. After I'm done raging and breaking things, I'm going to take the opportunity to catch up on BOM stuff, wiki documentation, and finalize the PCB designs. That's six or seven straight days that I'll have, doing stuff I didn't previously have time for, so hopefully this will not be a complete setback.
7/5/2014 - Endstop Issues Fixed
Christian Lerche, our schematic and PCB guru, helps me figure out that the endstop switch is not actually broken per se, it's just a crappy design, and the status LED is loading down the phototransistor. With some quick rework, I removed the LED and had a working endstop. Panic is over. Back to work.
7/6/2014 - 1:00 AM Rant
It's 1:00 AM and I've been fighting an onslaught of technical issues for not just the holiday weekend. I've been at this for several weeks. I've experienced broken endstop switches, weird firmware issues with Marlin, getting lots of positional offsets backwards and spending hours or days tracking them down. I'm not complaining or anything. This is a BIG project and this kind of stuff is expected.
I've wanted, for the last few weeks, to make a post saying, "Hey guys! My machine is working! Cool, huh?!"...
Well, that day is not going to be today. I'm at the point of exhaustion.
BUT, it may be tomorrow, or later this week. We're REALLY close to having a working prototype. Basically we are 99.9999% ready to show off working pick and place functionality. So uh, stay tuned :)
7/7/2014 - Safe Z Issues
I'm trying to run OpenPnP, and the head keeps crashing into the table. Eventualy, I find out that the "safe z" position that OpenPnP uses is 0. My machine, being based on a 3D printer, considers 0 to be the bed surface. No problem. It's just math, we can fix this.
7/7/2014 - SMT Nozzle Rotation Issues
Now I notice that the rotation axis steps per degrees are all screwed up. Again, easy to fix, guess I overlooked this earlier when I was setting up the other config.h stuff. OK, now the rotation is fixed and working well.
7/8/2014 - We won the HaD Round 1 Community Voting!
Personally I always root for the underdog, so it's a really weird feeling for this project to be so popular.
I've never won first place at anything in my life, mostly because I march to my own drum and rarely conform to whatever rules are in place. The Hackaday contest is different, however. I'm doing my own thing and enjoying it, and people are taking notice, and truly believe in what I'm doing. That's pretty awesome.
There's a sense of happiness but also an underlying worry and sense of responsibility that comes now that people know who we are and are expecting us to come through and meet our promises. I'm not sure if I mentioned it elsewhere on the hackaday project page, but I want to make affordable electronics manufacturing my life's goal. This is what I'm going to do, regardless of what roadblocks stand in my way. This won't be a half-assed project that never gets finished. I'm in this for the long haul :)
7/8/2014 - Vacuum Timing Issues
So now I'm attempting to run my first pick and place job (with a single resistor no less), and it runs great, until it goes to set the resistor down. It places it down quickly, and then returns to the safe Z position about 25mm above the bed, and although the vacuum has stopped, the part is still hanging on tight. (for those familiar with industrial pick and place machines, we do not have a puff of air to push the part off). OK, this is fixable with the dwell time setting. I can actually set the dwell from either the Arduino sketch, or OpenPnP via the XML file. I try both, and eventually settle on setting it via OpenPnP, as I don't have to reload the sketch when I change the dwell time.
7/8/2014 - A Modicum of Progress
So above is the video of the first pick and place operations. It's a pretty boring video (just like my other videos), with a lot of other mundane-yet-relaxing footage of code compliation and dubstep music, which definitely puts me in the zone where time stops and I can just dig in and solve problems.
I'll be updating this log with a few more related entries as we start tying in the computer vision and getting the feeders working in full-auto. I also need to buy a bunch of parts so I can start trying to assemble full boards :)
7/12/2014 - Traxxas 5347 Ball End Link Issues
The Traxxas ball end links have an unacceptable amount of backlash. They also bind when moving to the extremities. I know that there are a lot of Kossel and Rostock guys 3D printing with them, but I'm thinking that PnP work might be a cut above 3D printing work, that is, less fault-tolerant to backlash problems. And of course we're not using the Kossel/Rostock linear tripod system, we're using a delta design. I'm sure that has something to do with it.
I've tried to mitigate the backlsh issues with tension springs. It helped. It does make my machine sound really weird when I do a G28 home command.
But I've still got binding issues when moving to the corner feed locations. The strategy in the short-term is to just use the corner feed locations and keep the springs. In the long-term, however, I will be ditching the Traxxas ball links for some custom ball-bearings that have been welded to socket head cap screws. These will be attached to the orange arms and end effector, and I'll use rare earth magnets attached to the carbon rods, to make a spherical magnetic ball joint, that will have zero backlash.
7/13/2014 - Camera Mounting Issues
The Raspberry Pi camera seems to sit at a bit of an angle right now. This is my fault, because I designed the mount, and it's not holding it in a parallel fashion with the the tolerances that we will need. (see picture below). If I add some plastic to fully support the camera, instead of using two M3 nuts like I'm doing now, this should keep the camera nice and level.
There's guaranteed to be more issues to come up, and when they do, I'll post them here. Stay tuned!