We're getting close to being able to print a boat! A huge hurdle has been passed. We now have control over the Z-Axis! And not just jittery, slow control, either. It used to take nearly a minute to move up a layer, one tick at a time, but we've got that down to mere seconds!
The next steps will be finishing and hooking up the extruder and making some test pieces. We would like to be able to start and stop the extruder from within the g-code (rather than have it simply extrude all the time). The current mindset is to hook up a serial connection from one of the motors to a relay, which activates the extruder. If anyone is interested in helping out, comment below! (Even if you're not interested, comment below. This blog isn't interesting without people participating.)
Lastly, don't forget that the MakerFaire is this weekend! We've got some sleek and glossy posters, and some really cool bots that will be set up. Check 'em out if you've got the chance!
This comment has been removed by the author.
ReplyDelete-bows to your excellence-
ReplyDeleteWhat was the trick to getting the Z-Axis to function?
As far as I can tell, when you run code in the DynaTorch program, it repackages it all as SmartMotor commands, which it then sends to the motors. We are able, fortunately, to set some of the standard M-code to specific SmartMotor commands. It acts almost as a method call in standard programming. We simply type "M81" into the code, and it looks at what we have defined as M81.
ReplyDeleteThe real trick was getting the SmartMotor commands to work. Trying to turn the motor more than 1 revolution (using the command D=2000) ended up faulting the motor, for reasons that are too wordy to go into now*. To fix this, we used to just loop over M81, up to 100 times. This gave us very slow, jittery motion, since the motor would start, stop, wait for the loop, then start again.
The fix I used is actually absolutely terrible... I found that if, inside the M81 command, I told the motor to D=2000 (remember, this is one revolution), then told it to D=2000 again, it would move twice as far in one, smooth step. What that lead to is that our M81 command is filled with D=2000 copy and pasted 15 times. It's ugly code, but it works!
*I'm keeping track of all the little quirks of this program and the motors, and will be compiling a full guide on what causes what to happen/break. Until then, a lot of my explanations will be hand-wavey and "It just works this way, can't explain why!"