29 minutes ago •
In the last iteration of the mirror arm, I precisely masked the camera with plastic near the aperture to match the FOV of the part it gets from the mirrors. I did it the wrong way.. I get a ton of glare coming in from the part ring light. I think I need just a square mask way out front, with dead space behind it. Right now it's a channel, which has the effect of giving the light something to bounce off of all the way to the camera. Changing that.
Since then though, I discovered that the main light does a pretty good job of lighting the parts with just the light bouncing off the larger mirror, except for the two ends of it which are directly in the FOV of the camera when looking up at the parts.
If I masked those bits off, or perhaps added the ability to turn those bits off, then the light bouncing off the bigger mirror will be enough to light the part and be completely outside the FOV of the camera.
Gonna explore that, and probably make the second mirror larger to enhance the effect. Since I can ditch the part light ring then, I could go 2x the mirror size and still be at the same weight.
For the best vision results, I'm also going to need to add a mask to the nozzle and/or print the head out in black as well.
4 hours ago •
To get up and running more quickly, I'm using the linuxcncrsh interface to Machinekit.
Linuxcncrsh is ancient compared the the current remote interface, but it's already plumbed up in openpnp, mostly.
Problem is I could never get it to initialize. Everything went through and responds, but when I would get to sending commands the machine would be in ESTOP.
Today I figured that out. It's a bug in linuxcncrsh itself.
SET ESTOP OFF SET ESTOP OFF GET ESTOP ESTOP ON SET ESTOP ON SET ESTOP ON GET ESTOP ESTOP OFF
Whatever you request for the estop state gets inverted.
So setting estop off actually turns it on.
I can't really blame them. I really shouldn't be using this, and it says right in the docs that it is unmaintained.
So I'm now just sending the opposite of what I want, and it seems to work. Machine homes in openpnp too. Now for the rest.
8 hours ago •
I know this. But I somehow managed to have two of my mosfet tabs touching and blew basically an entire day trying to figure out why my command to turn on one light always turned on both. The tabs were touching, so the outputs were tied together. Fixed, so I now have independent control over each light.
I also reprinted both light rings in just nylon. It's stronger that way.
Lastly, something is going on with my stepper drivers. They don't work above 1.2A reliably anymore.
I was losing steps while homing sometimes, so I went all the way down to 100mm/sec max velocity and 800mm/sec2 acceleration, and the problem persisted. I replaced my bypass caps, which seemed to help as they were definately borderline... minimum value and running at 14v for a 16v rated cap. Problem still happened, just a little less often.
Turned up the current, problem got worse. Turned the current down from 1.6A to 1.2A and the problem went away. Moves faster than at the higher current.
The drivers aren't hot. The steppers are a little warm at 1.6A, but they are rated at 2A and never exceed 60C running at 1.6A, so that should be fine. (they start to degrade at about 80C).
I checked the power rail for dips, and my ground rail for a good stable logic level. All good.
I don't get it. I'm running them at 1.2A for now.
2 days ago •
Made some updates to the Lego compatible drag feeder and printed out enough of them so you can see how it works.
Made a couple iterations on some new endstops. I had a design which worked perfectly well, but after printing them out, I ended up redesigning them to be a lot less 'phallic'. You'll have to trust me on this one.
Reprinted the upper corner joints with more depth, and a more tuned fit for the rods.
Reworked the head wiring harness so it's cleaner and half as long.
Cleaned up the wiring routing by designing and printing some purpose built cable clips. I'm tired of cutting zip ties and holding the ribbon with rubber bands.
Made a printed collar which holds the servo cable ends and routes the ribbon and air line. Now I can't accidentally plug them in out of order and don't need to resort to color coding them. I have 3.3v, 5v, 12v, ground, and Beaglebone pins directly connected there. Getting a plug out of order would definitely destroy something.
Reworked the drive spools, using some of the carbon fiber rod I had left over from the push rod. Also figured out the perfect way to make up the difference between my bearing ID and my shaft OD, which is about 0.2mm. Wraps of AL foil. Took about 8. This also lets me put the knots for that end of the cables inside the spool rod now, and tie those knots later on.
Broke the end effector while working on the spool rods when I turned the base over and crushed the joint. It only is designed for a straight on load. Reprinted.
6 days ago •
I believe I'm done with messing with the head.
Today I did a video of the current parts and assembled them, in 10 minutes.
So here, I will answer the questions this will generate:
No, I don't have a good supplier for the brass bits yet. Everything I've found ready made for Luer lock fittings in metal, with a known ID, is huge and very expensive. If you are ok with plastic and no ESD protection for your parts, then you can just clip the end off a 10ml syringe, put a bit of heat shrink on the stainless tube, and push it on.
Yes, the right angle drive achieves the target 1.5 degree accuracy across the scale. No, it doesn't go the full 360. It now maxes out at around 355 degrees.
The plastic gears, and hypodermic tubing specifications will be linked here when I have it placing parts, which is also when I will post the final design files to Github.
<EDIT> I mentioned in the video I would do another one about aligning the optics. Well unfortunately, they were perfect as is and didn't need alignment and so got glued in immediately. :) So no video for now, and I'm moving on to bigger fish. </EDIT>
09/17/2018 at 18:41 •
The modifications cleared the end effector, but now would have intersected with the cables at the back of the build area. Bah.
The new solution now squashes the part light ring down from a circle to an ellipse.
I've been stuck in thinking it could only be a cylinder from the 'light intensity falls off as square of the distance' thingy, but then again, I'm also then putting more elements in the same space due to the increased circumference. It will probably all even out.
The diameter of the ring is all old math, and was based on even multiples of the segment length for the light strip fitting the inner circumference. I hope that scales like I think it does.
It may also bring the edge of the ring into the FOV of the camera, which may cause me to need to move it back closer to the camera to kill the glare.
09/17/2018 at 01:20 •
My mirror arm modifications failed to clear the end effector pulleys. These things will happen now that I have the motion platform and the P1 split into projects, and re-used the same global variables in both, so I can't just import one into the other. Ooops.
I have moved the virtual pulleys up to their 'ideal' location on the same plane as the center of the pushrod gimbal.
It's now half a gram heavier, but prints faster. Go figure.
<EDIT> I needed 1mm more, but I'm not willing to modify the end effector any more to get it.
Moved the mounting point on the head. Printing that again..
09/16/2018 at 19:00 •
Noticed as I was assembling the new main light ring in ABS that the edge had lifted and it was a little warped, and the 0.3mm single wall print was a little too thin for my comfort. I changed it to two wall and reprinted.
I also noticed if I run the ABS as the absolute top of its heat range, like 275C, I get a flat black finish instead of more glossy. Hey... I can use that.
So I reprinted the part light ring like that. It is there to keep the light from hitting the mirror directly, so a flat finish is good.
09/15/2018 at 02:02 •
I've been modifying the source as I've been moving between parts to tweak things. There was the distinct possibility I introduced incompatible elements in doing this. Since I had a couple new parts to print anyway, I decided to reprint everything and finalize some things I've been meaning to do.
- The end effector changes already happened a few days ago, and that moved the leveling to the side and added the ribbon cable run.
- The pick and place head got some reinforcement around the groove mount. I found that if I tightened the groove mount down hard, I could distort the body to the point that the spring on the nozzle would get bound up and not slide. Fixed. I also increased the possible mounting range for the rotation servo mount, and fine tuned the Pi camera mount to self center better.
- The push rod end now has a ribbon cable slot also, the servo plugs will now actually fit through the other holes without melting it first, and I tweaked the math so I can scale it a lot better. There was an anomaly while printing the hinge area. I was watching, so I saved the print by turning down the temp a little and slowing things down. It is now a little grungy from having to sand down the mess in that area, but its strong and will work so I'm keeping it..
- The mirror arm had the light ring mount moved out a little further to clear my '180 degrees from where I planned for it' end effector, some new channels for nicer wiring added, and some additional stiffening added where the servo drives it.
- The part light ring got lighter, and I tweaked the mounting tabs to better center the light. Well that's confusing...
- The main light ring needed to be reworked. I have been running the main light much more than would be used normally... like on for hours at a time, while working on this. The PLA version was not up to that task and got squishy
So... the main light ring base is now ABS, and the main light ring diffuser is now mixed material. I didn't have any black nylon, so I just mixed in 30% black ABS into my translucent nylon. Worked. Angel hair stringies while printing. Kinda neat.
The rest of the new parts.
Now to rebuild it all.
09/14/2018 at 15:29 •
I've come to notice some nice design patterns while building parts to work with Metric hardware, and I thought I would share.
Simple stuff, but it ends up meaning I need to keep less stuff in my brain while doing it. That is usually a good thing.
Size as used here is just the M number of the part, such as M3, M4. Size is expressed as a diameter, with most OpenSCAD operations using radius, so <dia>/2.
Clearance as used here is always 0.2mm, and that number came to be to allow over-extruding while printing to not affect the fit of the final parts.
- Through holes bolt sizes are just <size> + <clearance>. So a cylinder to subtract for a bolt hole is:
- Pan heads are always 2*<size> + <clearance> for diameter, and <size> for height. So a cylinder to subtract to flush fit the head of a bolt would be:
- Encapsulating a nut or bolt head is just as easy. Nuts are the same dimensions as pan heads, but you limit the cylinder to 6 facets. The cylinder with 6 facets still has its vertices on the ideal cylinder, but the flats end up moving in the same as a nut. So a cylinder to subtract to create a captive nut is just:
- Threaded holes are <size> *0.9. So a cylinder to accept directly threading in a bolt is just:
That's it. Four simple rules and can you can use any metric hardware without measuring. I've never actually looked up if there is a specification which matches these observations, but so far so good.
- Through holes bolt sizes are just <size> + <clearance>. So a cylinder to subtract for a bolt hole is: