Sunday, October 29, 2006
Cranking up the y-axis positioning stage...
The Austria Microsystems magnetic shaft encoder chip (AS5035) is super handy in that the activating magnet will stick very firmly on the end of your studding shaft. I took my little poplar mounting board, put it up against the magnet with the bottom edge firmly against the baseboard of the shaft and guide rod mounts and gave a tap on the back of it with a heavy screwdriver. This marked the board with the magnet's position. Bingo, automatic alignment. :-)
Centre the chip over the magnet-shaped mark and paste it down with a little blob of silicone sealer and you are set. Two more blobs plus an ear swab will set the filaments on the board and take them to the edges. It ain't pretty, but it works quite well.
After the silicone hardens, a few pieces of thin carton (cardboard) for shim, a c-clamp and we're good to go for hookup.
Actually, putting a hulking huge c-clamp on the edge of a thin piece of poplar made for a rather fragile join, so I glued it to a block and then clamped the block. That worked much better and gave me something to secure the transfer wires to.
I have a 16F877A prototyper board built up which can handle two motors, so I went from there after installing new spike-suppressing capacitors. After that I checked it out system by system till I demonstrated that it can do PWM control of motors and directional control.
One of the things that I noticed that took up a lot of board space was the fact that the Hamamatsu limits detector and the Austria Microsystems magnetic shaft encoder chip were both remote from the board and also required both 5v power, ground and a variety of resistors and capacitors between both signal lines and power input lines as well as lines from various pins to ground with components in between. If you put all of this nonsense on your controller board you quickly found that you used up all your room to not too much effect.
What I did then was to create a 5v power supply board and common ground over on the other side of the work surface near to where such chips were physically located. Such component laden lines from chip pins to ground and such not I ran to this board rather than the controller board. That let me limit lines going into the controller board to the conditioned signal line only. This greatly reduced the space requirement and improved access to microcontroller ports for those chips.
With the Austria Microsystems AS5035 chip there is a 1 uF capacitor between the 5v power input (pin 16) and ground and a 100 nF capacitor between pin 15 and ground.
Here you can see the two capacitors hooked up and blobbed in with silicone sealant. The orange wire in front of the 5v power line (orange) and the ground (black) carries the encoder signal (pin 3) back from the chip to the 16F877A on the controller board.
Here is a view of the same encoder chip block from the front side that faces the magnet on the studding shaft.
Here I have hooked up the remote power board to power and the encoder block and am checking for pulse generation.
Note that we always know which direction that our motor is moving in, so we only need pulse signals off of one of the shaft encoder phases, not both. That is why we only use pin 3 and not both pin 3 and pin 4.
Seem to have picket up a short in the encoder mounting block. Sometimes I get good signals off of it and other times I don't. The chip seems to be taking on too much amperage. It shouldn't be warm at 2 mA.
Pulling it apart, I took out the drive nut and threaded the rod back through the Technic holes. Between the imperfections in the rod and snuggness of all the Legos, it actually gripped the legos themselves and drove back and forth pretty well (though I wouldn't trust it to be accurate without any actual threads in the legos). The first half of the video below is the Lego Axis running without the drive nut.
I moved the Technic pieces further apart, and worked the threaded rod back and forth through them until I was able to build up the supports, with the drive nut, and still have it move smoothly. I had to increase the distance from the nut itself, and I got rid of the two outer support guides.
To recap on the design: I've got a 10-24 threaded rod going through
the holes in Technic Legos. I've got 4 Technic pieces, with 2-4-2 spaces inbetween each, and the drive nut centered between the middle two. They're all attached to a flat piece, with the drive nut resting one of its corners in the center of one of the hollow round support pieces, which is attached to the underside of the platform. Attached to the bottom of all of that are the wheels (currently attached with two axis, though I'm not happy with those and I'm hoping to replace them with just the 1x2 round-+ axis pieces if i can find 4 of them!)
There's nothing to keep the axis 'on track', it's implied that the threaded rod will be supported on each end (probably by a technic brick on each end) and that those will be setting the 'axis' 'on track'...
There is a little bit of wobble, but it's tolerable, and it lessens/disappears if you slow it down. The video behind the link first shows the stage originally running without the drive nut, and then shows it with the above modifications and the drive nut.
Wednesday, October 25, 2006
Saturday, October 21, 2006
Coping with the AS5035 shaft encoder...
To bring you up to date the AS5035 is not a DIP chip so you have to deal very differently with it. Ordinarily, you'd need a $1,000+ workstation do be able to work successfully with surface mount chips. I'm going to show you how to do it with a $15 Radio Shack soldering jig and an ordinary, low power $15 soldering iron.
Here's the jig, especially made for old guys like me who wear reading glasses. It has two swivel mounted alligator clips under a fair sized magnifying glass and a holder for my cheap Radio Shack soldering iron.
Here's a very nice closeup that Adrian made some time ago of what the leads that you're going to have to solder onto the AS5035 look like. The only problem with this pic is that it tends to play with the heads of people like myself who perpetually live in hope simply because it is such a good closeup. You get the idea that the chip is a lot bigger than it is and forget that those stripboard holes are really only 2.54 mm apart.
Once you have your AS5035 in your hand, you really understand that this chip is about the same size as a sequin and you'd better not have hay fever because you can sneeze it away.
Here's what the chip looks like under the magnifying glass in my soldering jig. That's an ordinary sized alligator clip you're looking at.
Now the soldering jig has two swivel-mounted alligator clips the idea being to, say, hold the board you're working on in one and the wire you're trying to solder in the other. You can't use ordinary insulated wires to solder to the feet of this chip very easily. They're simply too big. You need very fine gauge wire, something that is rather difficult to come by in a hobby shop or ordinary electronics store. You don't need more than a few inches of it, either. He're how I got my filament wire. I bought a roll of multicore copper wire and then stripped the insulation off of several inches of it. Presto, you have filament wire in it's own very handy jig holder, viz, the rest of the coil of wire.
I tried to use the alligator clip to hold individual pieces of this fine gauge wire first time I tried to do this. It's better just to leave the filaments attached to the spool after stripping the insulation and do one side of the chip's soldering at a time.
First thing you need to do is get an old sponge that you're ready to throw away, wet it and squeeze it out thoroughly. Use the sponge to wipe excess solder off of your soldering iron after it's heated up. Be sure that you sponge doesn't have holes in it. You don't want to lay a finger on the business end of your soldering iron.
Once that's done use a very thin bladed screwdriver to slightly splay the AS5035's pins so that you can deal with them. You want the one that you're working on a short distance away from the others so that you won't make a solder bridge between pins. Accept that you're going to make solder bridges and you're going to get the filament wire connected to the wrong pin more often than not.
To deal with a solder bridge, use the damp sponge to clean your soldering iron hot tip and then stroke it across to solder bridge until the solder is absorbed onto the surface of your soldering iron. This may take several strokes. You should wipe your soldering iron after each stroke to get the bit of solder that you extracted from the pins off of it. If you don't get rid of the excess solder off of your iron you WILL get it back on the pins and maybe even make another bridge. Trust me on this.
Ideally you should wet the end of the filament with solder, just enough to make it silvery. No lumps please. Once you've done this put it on the target pin and tap the filament with the CLEAN soldering iron tip. That will weld it to the pin. Mind, this sometimes happens after 2-3 tries. I'd have loved to have photographed this process for you, but I've only got two hands and a limited amount of light to work in. :-(
Here is the first filament successfully attached to the pin.
One of the annoying aspects of doing this kind of work is soldering two filaments to pins that are side by side. You'll often overheat the filament weld of the pin already done while trying to attach the second one beside it. That's a pain.
Here's all of the filaments connected. It took me about 5-10 minutes once I set the job up. I'm not going to do another one this morning, though. My hands are shaking a bit and that makes doing the job very, very difficult. Oh yeah, you can see the damp sponge that I was using to clean my soldering iron tip in this photo.
The problem now is that you have a surface mount chip with uninsulated filaments hanging off of it like a daddy long legs spider. Adrian solved the problem by drilling a hole in a piece of stripboard and soldering the filaments to the strips. It is easy then to make other connections.
I took another approach. I used a standard silicone sealant like this...
...and mounted my chip to a piece of wood like this.
You can secure it to the mount that you will place close to the shaft with the magnet attached. Daubing the silicone over the filaments insulates them quite nicely and secures the chip to the wood. The nice part about this approach is that you can peel the chip and filaments off of the wood later if you need to and clean the chip and filament without having to use heat. If you're careful you won't even pull any of the filaments off of their pins. I have done this and I'm a clumsy oaf.
You'll notice that when I'm working I tend to print out a photograph of what I am trying to achieve in large format so that I'll have something to refer to. I also printed out the schematic so that I can cross check the photo from Adrian's design page in the wiki.
That's all for the moment. This is a work in progress. I'll be posting the rest of the process as I get it done and documented. I'm going to take a little break, take a bath and go buy a few capacitors. BBL.
Friday, October 20, 2006
12v motors arrive for Tommelise...
I got a GM9 for the x-axis, which is a bit space constrained, and replacement motors for all the 5v GM8's plus some spares.
Monday, October 16, 2006
No luck on the motor-driven syringes, yet. As usual, everything takes more work than I imagine. I hooked up the syringes direct to test, and besides how sheerly uneven my platform is -- that's how far I had to adjust it from zero to get it flat -- it works. Things pivot smoothly with no shifting when hydraulic pistons extend.
Sunday, October 15, 2006
Locking down Tommelise...
First, I had to get the gantry mounting the x-axis properly vertical. I cross-braced and bolted the vertical members.
After that I discovered that the x-axis guideway was somewhat warped from one side of the working surface to the other. That will entail bolting the x-axis gantry to the fibreboard working surface. I'm glad now that I bought 3/4 inch fibreboard for the working surface. :-)
After I'd got the x-axis gantry done it was a short jog to getting both the x-axis gantry and the y-axis stage locked down on the base plate.
There is a little residual warping in the gantry, but nothing I can't shim out.
I didn't have the mounting blocks for the y-axis stage square before so I am going to have to realign the guide blocks for the rails. That should be no big deal.
Sunday, October 08, 2006
Full XYZ Stepper control
3 of the 4 new Out lines are inverted, and have to be positive in software to be off on the port; nevertheless, it ran a stepper just fine after I compensated for that.
In short, we now have a simple way to run all 3 steppers via almost-direct printer interface. Heck, if we found a way to use the serial IO and printer Input lines, we might not even need a PIC for first generation prototypes. DC motors could probably be driven too if position sensors are attached to the input lines.
Friday, October 06, 2006
Tommelise x-axis underway...
I've included a partially assembled Mk II and the GM8 for scale.
I disassembled Godzilla's x-axis and salvaged the lumber and 3/8-24 threaded rod. It turned out that the salvaged threaded rod was much straighter than the one I had in Tommelise's y-axis so I did a swap. The y-axis runs much more smoothly now.
Later on I fabricated a mockup of the z-axis mounting plane so that I could see if using the frame of the x-axis for a guide rod was going to be viable.
It is. The mounting plane will have to be deeper than shown here.
Wednesday, October 04, 2006
My carpentry could use some work, but there it is. Now comes the bit where I actually have to make it move... the upcoming weekend will hopefully show some progress.
How to build a simple XY stepper controller (Unipolar)
The main part of it all is the ULN2803. It is a beautiful little 18pin IC that can plug directly between the printer port and the steppers. I don't know what they're rated for, but I've pushed ~20v through it onto NEMA 17 steppers for several minutes without too much heat. If you were driving steppers the size of a soda can though, I would use 2-3 with heat sinks.
You can power it with 5 or 12v. Note in the second image I only used the 1st chip. I plan on upgrading later for the 3rd axis, but for now, just forus on M1 and M2.
As you can see, pretty simple. The interface below can be made in a few hours, with a bit of skill.
The printer port connecter was bought at radio-shack, and the pinout is as follows:
Datalines 1-8 = Pins 2-9 (top right)
Ground line = Pin 22 (4th pin from the bottom left)
The test program used was made in VB6 (because I'm old-school), and uses a library called inpout32.dll for low-level interface to the printer port in Windows XP. I am talking with Plaasjappie to see if he can leave a copy on the server. It is a very basic and hacked-together, as I'm still looking for other cnc programs that might work with this setup, and I'm not much of a programmer myself.
Good luck, all
Monday, October 02, 2006
Mothra XY axis testing
With all 3 axes working I thought I'd fire up a small test program. This is a vb6 prog that sends pulses to the printer port, which go to a uln2803 directly to the steppers. With my current setup I can only control 2 motors, so I manually lowered the dremel tool into position and gave it a go:
It may be hard to see, but this is a tiny set of squares with some zigzags off to the side. Total size measures .5" x .75" It does need to be locked-down a little better (YZ arm tends to sway) but I suppose it aint bad for a first-timer. Max speed is about 1" every 5 seconds, using nema 17's (5.25" drive stepper motors) I wrote a quick+dirty program in vb6 to draw it.
I guess it's about time to start working on the extruder...
Mothra moving, mostly
and it turned out I had soldered the capacitor in a bad configuration. Bypassed the cap, and the motors sprung into action, way better than before! So I brought in mothra and retested it with the steppers.
The X (bottom platform) and Z (updown) axis were running just fine once I cranked it up to 12v.
As you can see, I had to gear-down the Z axis because of the weight of the dremel tool. No matter though, it dosen't move much and gearing can be corrected in software.
The Y axis was still pretty sticky, and would not drive at 12v, so I'll probably have to put some better slides in it, probably drawer slides someone suggested previously. Those should make it very smooth.
Just for this test, I'm using extremely hackneyed vb6 code to move the platform, hooked directly to a uln2803, attached to the printer, that's driving the steppers. If I get all 3 moving, I might try and make a simple script for doing a real-life test with the dremel tip. Then it's down to the extruders.
In short, I have X and Z movement. Good enough for side-scrollers, but not enough for my reprap, yet.
Sunday, October 01, 2006
Sliding thrust collar works!
I've got to shim the slide in the x-direction a bit more but for now it will allow me to make a CAPA replacement pretty easily. I also know how to make it better for the x-axis, though the studding rod I'm using there is very straight indeed.
I've taken a few video clips of it in operation.
In the first first clip you can see the play in the threaded drive rod. In the second clip you can see that the z-axis platform can handle some load and doesn't shake it around. The third clip gives you a feeling for how smooth the platform is moving. In this last clip you can see that the x-axis slide could use a little extra shim to cover for the fender washers. I'll design that into the CAPA replacement. It should be easier that way.
Most of the movement you see in the clips is me not holding the camera perfectly still. I do need to invest in a tripod. :-p
Got to do some billable work for a few days, after which I'll do the sliding motor mount and encoder chip block. Then I can bolt the z-axis down and go on to the x-axis. I'll be using the same techniques for the x and y axes so that should go a lot faster.