Bloft MK2 large-scale 3D-printer

Hi there

We’re quite new to this community, so this here is something like an introduction :slight_smile:
Our project is a large-scale 3D-printer powered by Odrive boards and D5065 motors. By large-scale I really mean large. Print volume is approx. 1000 mm dia x 3500 mm

The kinematics is Hangprinter-like based on 2 mm steel wire cables. We found Odrive through the Hangprinter project and we thought it would be a really good base for our purpose. There is a certain need for power and speed since we are going to add a pellet extruder to the end effector. The effective payload will weight around 10 kg and we want to move it with at least 200 mm/s.

Currently, we’ve reached the testing phase. The frame is generally speaking ready. We have been testing the boards & motors since 3 weeks. It took a while to figure out issues with the board configuration, but now that’s working, we are progressing nicely. Right now I’m running a test routine on the anchor sleds that run on the Z-axis, just to get a feeling for repetitive motion and the top motor temperatures.

What I learned today is that we have massively overpowered PSU’s :sweat_smile:
The maximum draw is only 2/10th of the rated power… Well, better be safe than sorry :sunglasses:

Anyway, here’s a video of the test


Yes, it is surprisingly uncommon-knowledge that modern brushless motor drives draw much less current from the supply than they put into the motors. Especially when used for low-speed servo control. (unlike steppers, which use the same power all of the time)
See my posts here and here :stuck_out_tongue:
It is for exactly the same reason that your switching power supply itself produces 40A at its output but only draws 5A from the mains.

That’s a nice machine! :heart_eyes: Is it all using ODrive?
Have you measured its stiffness? Could maybe benefit from some visual servoing :slight_smile:

Yes, it is all Odrive except the extruder (for now). The frame is very stiff for it’s weight. We are taking currently measurements for calibration, and we will certainly test the frame for flexing in detail at a later point. As a popular method one of us hung from the upper frame with full weight and the flex was only 2 mm.

The frame can handle a lot more stress than we are planning to use. Most of the flexing will be caused by the steel wire cables. As a counter measure we are actually planning to close the loop by either ToF-sensors or realtime 3D mapping based on couple of webcams.

Torbjorn Ludvigsen (main dev of the Hangprinter) is currently working on the second solution. It’s very interesting and he has already posted promissing results on Twitter.

I’m interested in hearing what issues you had with configuration and how we could make it better.

Well, I think the biggest issue wasn’t directly Odrive related, but more an internal team communication issue about whether the firmwares were all same and default or not. But, as said, now that we’ve checked that, we are progressing. There seems to be still something with the arduino <> odrive communication, possibly delay-related.

The comm cables are pretty long (up to 5-6 meters), but they are twisted-pair shielded cables, so I don’t think they are causing problems. I believe some commands are lost due to the speed arduino is sending them, we might need to reduce the baud settings.

After running a sinulation print for a while we get errors from the sled motors that move them in z-axis. Unstable_current. Again, this might be software settings related (amperage too low). When testing them one by one with a long routine (600 steps 4mm/step and return to origin x 10) we didn’t have any issues.

On thursday we debugged our kinematics algorithm and now it works almost perfectly. Next test will be tomorrow. Hopefully we manage to fix remaining bugs in order to go forward next week with the extruder.

Make sure you’re using the hardware serial on arduino instead of software serial. We’ve had all sorts of problems with software serial.

Hmm, unstable current can come from a couple places. Encoder slip, or low current Lim margins and low current lims.

Encoder slip is ruled out. We ramped up the current limits, but we got an current sense saturation on one motor.

One thread on the forum suggested to lower the bandwidth from 1000. So it’s now at 500. We’ll se how it works.