greg
New Member
Posts: 5
|
Post by greg on Jan 25, 2017 21:43:21 GMT -7
I desperately need to get my Magician able to 3D print with a custom end effector (developing a ceramic printing extruder for the NASA Challenge). Is there a firmware solution that works with Repetier (or other host)? We'll need to to modify the kinematic slightly even just for the new effector, and are also considering lengthening at least one joint on my DoBot to extend reach. If there is a firmware solution already for Repetier, where in the source code would I find the parameters to tweak the kinematics? Also we are looking to grow the team (all volunteers), so if interested please contact me directly.
|
|
|
Post by Max on Jan 25, 2017 23:09:42 GMT -7
You're not going to find any open-source firmware for magician any time soon. It's not an Arduino as in version 1, but custom-made board. Magician has stock firmware that works with their specific version of Repetier/Slic3r. If you need any customization you can ditch magician's electronics and use ArduinoMega+RAMPS with this: github.com/paulmorrishill/armourYou're going to need some endstops. I haven't looked at whether the Repetier/Slic3r they distribute for magician is too customized for magician, but if not, then you could simply tweak that same version of slic3r (that one is open-source) to do some scaling according to the extended links. Keep in mind that the longer the link, the worse the backlash and the lower the torque. Plus, they have implemented some backlash compensation, presumably in firmware, so that would get thrown off a bit by the extended link. Alternatively, you could use dobot without any modifications and put it on a moving platform to cover greater area. If there is no way for a moving platform, then here is another idea www.youtube.com/watch?v=wSRmggwm1Us. Although dobot can't cover 360 degrees, you could put it on a rotating platform and finish the part that was in the "blind zone" when the main one is done.
|
|
greg
New Member
Posts: 5
|
Post by greg on Jan 28, 2017 14:27:16 GMT -7
Are you saying that the DoBot kinematics (conversions from cartesian to Dobot-ese positioning) are implemented in Slic3r rather than in the firmware?
I am thinking we will replace the electronics with a RAMPS approach. Does the accelerometer approach only work with the V1 and not the Magician?
I have considered the moving platform approach, but that would likely require a lot more modifications to both hardware and software, so for now I think it easier extending the forearm by 3-4 cm and just updating that J1-J2 parameter in the kinematics programming (wherever that may be). I am not too worried about the backlash at this point as the competition only requires an accuracy of +-7mm. My nozzle dia is 2mm. The spec (haha) for the DoBot precision is .2mm, reality seems to be closer to 1mm. Even so, I think I still have _some_ margin.
Other things I am also considering to expand the effective print volume (ultimately I'll need a cylindrical volume ~1m in dia 50cm high): 1. Flipping the drive motor, electronics, and power (cordless drill battery?) on the base to attach to the arm side, so allow for full continuous 360+ degrees of base rotation.
2. Mounting the base upside down from a gantry (or wall mount at 90 degrees).
|
|
|
Post by Max on Jan 28, 2017 17:02:47 GMT -7
I didn't say that. I said that you could trick slic3r into generating different coordinates according to the updated arm configuration (new link lengths), that firmware would later translate into steps to achieve the required coordinate. Say you need to move the head to (x,y,z)=(1,2,3), but with the updated configuration firmware would translate that in such a number of steps that it would actually move the head to (2,3,4). If you trick slic3r to generate, say, (0.5, 1.5, 2.5) instead, then firmware would drive the motors to move the head to the required (1,2,3). You would have to implement inverse kinematics yourself with the updated arm configuration to get the required angles, and then forward kinematics with dobot's original configuration to get the "derived" coordinates from the angles. It is a dirty hack, I agree. But there is not much else you can do purely in software. With github.com/paulmorrishill/armour accelerometers are not used. Endstop switches are used instead, which is much more accurate solution. If you're thinking to use open-dobot, then it wasn't designed with printing applications in mind. No modifications at all. Just split your model and: 1. Print section "n" 2. Move/turn dobot 3. Repeat for section "n+1" You can control Repetier (their version) over a network, without any modifications. You do need to build a platform and a way to control it too. That would make a platform I mentioned. Please let me know what you end up with doing.
|
|
greg
New Member
Posts: 5
|
Post by greg on Jan 29, 2017 16:13:55 GMT -7
Thanks Max. Once I get a handle on the firmware, I will certainly consider the merit of adding a new axis. I've started a new project forking from Armour at github.com/gdville/MOBOTS/ Did I see somewhere that you are also in Denver?
|
|
|
Post by Max on Jan 30, 2017 8:51:18 GMT -7
No, I'm not in Denver.
|
|
|
Post by loneve65 on Feb 3, 2017 0:13:45 GMT -7
Hi Max and greg, your posts just remind me a question about the 3D printing in Dobot. After using the software for several times, it makes me curious why we have to upload the different firmware between 3D printing and other applications. In my opinion, if we develop the firmware based on the marlin and just add the code we want, it'll be much more easier to use. What's more, you mentioned Dobot adds the code of backlash compensation in firmware, what kind of the code is it? Thanks!
|
|
|
Post by Max on Feb 3, 2017 0:26:57 GMT -7
Obviously I don't know what is implemented in magician firmware, but you can look at the dobot1 sources. I have implemented some backlash compensation in open-dobot at some point according to how I understood the problem: given backlash is, for example, 5 steps and you just rotated the motor clockwise, if you need to rotate the motor 10 steps counter-clockwise, then first 5 of those would go into backlash. So the solution would be to rotate 15 steps counter-clockwise to satisfy the requirement of 10 steps. If you dont change direction then no compensation is required (the gears are already in contact). And, as many times mentioned, that only works when there is no external force applied to the arm except for gravity. If you wantthe arm to push on some surface you'll encounter backlash at its maximum - the arm cannot push in one spot - as soon as it touches the surface it starts to skew.
|
|
|
Post by loneve65 on Feb 6, 2017 3:04:16 GMT -7
What about the different firmware between 3D printing and other functions? Any ideas? Thanks in advance.
|
|
|
Post by Max on Feb 7, 2017 6:08:59 GMT -7
You're talking about two pretty different protocols: 1. You would probably need a physical switch to tell firmware which protocol it supposed to be understanding 2. You would need a different microcontroller as Arduino Mega has not enough flash to fit two firmwares 3. There is no way to connect magician's sensors (accelerometers) to RAMPS without soldering 4. open-dobot does not support magician, at least no one tried yet and mp65 accelerometer support is yet to come (when I have some time on my hands)
|
|