MakrBBot III

My third 3D Printer Build. Let's do a CoreXY Model.

Similar projects worth following
In 2015 I built my first 3-D Printer:
and named it MakrBBot. Because it was inspired by the then popular 'Printrbot' and built from MakerBeam profiles. It worked, but was cumbersome to use. So I created the MakrBBot II, inspired this time by the Prusa i3. This still works fine, but I kept reading lately about 'CoreXY' printers and found this concept inspiring enough to start my third build.
And, surprise, just a few weeks after I started, Prusa printers introduced the 'Prusa XL'. Their first CoreXY based printer. So it looks I'm indeed on to the latest technology.

The CoreXY mechanism is not new, but 3D printer that use it are suddenly popping up everywhere. A popular one is the completely open source Voron Printer.  A great design, but if you want to build it exactly like the description, it is still quite expensive to source all the specific parts. My goal was to build it as cheap as possible, and to make maximum use of all the parts I already had lying around. Which includes 4 NEMA17 Stepper motors, an old power supply from a server, a RAMPS 1.3 controller board with LCD display, some 8mm steel rods with LM8UU linear bearings and a handful of 5x10 mm radial ball bearings.

Additional goal will be to maximize the printing volume. The previously mentioned Voron 0.1 is very compact, but placing all components within the frame does limit the maximum reach of the print head. And I want to use as much as possible of my 210x210 Heated bed.

The 15x15 OpenBeam worked fine in my previous printer, so that will be the base of the frame. And since the set of 9 pieces 240 mm beam was still on sale I ordered two of these.And 2 linear sliders, as everybody is using these for this type of printer. Added some T2 timing belt (I'll need more than a meter) and a bag of 15mm corner brackets. And so the total cost already adds up to about €80,- It looks like this build is again not going to be cheaper than a ready-made printer from China...

There seem to be quite some variants in how to build them and specifically in how to route the belts. As I first did not completely understand the kinematics behind this I chose the belt layout that made the most sense to me.

This image shows how to place two belts at different heights, so they do not cross or touch. The arrrows show where you can tension the belts without changing the printing results. There is an excellent explanation of this subject on the blog of Mark Rehorst. And even if you don't read or understand it all, the essence it that certain belts must be exactly parallel to the moving axis for it to work at all. So I decided to make all my belts as parallel as possible. Something like this:

Here there are two belts in different layers and it's all 90 degrees angles.

3D Printer CoreXY 1515.7z

DesignSpark Mechanical file for the total printer.

7-Zip - 10.05 MB - 01/08/2022 at 22:22


  • Starting Up

    Cees Meijer12/30/2021 at 20:11 0 comments

    The firmware of choice is Marlin 2.0, the most recent version as of today. After checking the config files and setting everything as I'd expect it to be for this printer it somehow would not compile. Well, it did do the 5 minute compile, but stopped at the linker phase with a 'avr-gcc.exe: The filename or extension is too long' message. Finally found out that I had to upgrade my Arduino IDe to at least version 1.9 to make this work, and so it did.

    Next started 'Pronterface' for testing. And immediately found out that X and Y axis are swapped. So I had to set it to 'COREYX'

    // Enable one of the options below for CoreXY, CoreXZ, or CoreYZ kinematics,
    // either in the usual order or reversed
    //define COREXY
    //#define COREXZ
    //#define COREYZ
    #define COREYX

    The cheap Dual Drive Extruder seems to work fine, and is found to have 415 steps / mm. Now I first followed these instructions to calibrate :
    This procedure led me to believe that I needed 625 steps/mm, but then the first prints were heavily overextruded. So I decided to go for the 415 steps, which should be correct for this type of extruder. And it is. The 625 number probably was caused by setting my extrude speed too high, so the hot end could not cope with that and slowed down the extruder motor, causing it to skip steps.

     * Default Axis Steps Per Unit (steps/mm)
     * Override with M92
     *                                      X, Y, Z [, I [, J [, K]]], E0 [, E1[, E2...]]
    #define DEFAULT_AXIS_STEPS_PER_UNIT   { 80, 80, 400, 415 }

    Set the temperature sensors. Both the bed and the hot-end have these glass covered thermistors, known as 'Epcos Thermistor, 100K'

    #define TEMP_SENSOR_0 1
    #define TEMP_SENSOR_BED 1

    And enable the Controller board. I used the (super cheap) Ramps LCD controller board.

    // RepRapDiscount Smart Controller.
    // Note: Usually sold with a white PCB.

    This has a SD card slot, but it has to be enabled in MARLIN explicitely.

     * SD CARD
     * SD Card support is disabled by default. If your controller has an SD slot,
     * you must uncomment the following option or it won't work.
    #define SDSUPPORT

  • Design Complete

    Cees Meijer12/30/2021 at 16:58 0 comments

    Through iteration, and modifying the drawing to match the build, i finalized the design:

    For ayone who's interested: the DesignSpark file is in the 'Files' section. Later on I will procuce a series of .stl files for all plastic parts, but htey will probably go on PrusaPrinters or Thingiverse.

    Use it however you like. But it would nice to hear from any other builders.

  • Handmade Rollers

    Cees Meijer11/29/2021 at 08:37 0 comments

    The CoreXY mechanism requires at least 8 rollers for guiding the belts. And so the set of 10 ball-bearings (set of 10 for MakerBeam) that I had seemed a good candidate for making the rollers. These bearings are 5 mm thick, have an outer diameter of 13 mm and 3 mm hole.

    And it worked out fine. Had to fine tune the model a few times for a tight fit, but in the end rollers looked great and rolled very smooth.

  • Belt routing, as I see it

    Cees Meijer11/26/2021 at 19:54 0 comments

    After drawing the frame, and adding the pulleys in the correct position, I decided I had to draw the belts as well, just to see if my assumptions were right. And they were. It looks like this is going to fit exactly as expected.

  • Parts on both sides

    Cees Meijer11/22/2021 at 19:39 0 comments

    A disadvantage of using the free edition of DesignSpark is the inability to mirror any solid object. For a printer, which needs most parts on both sides, this is inconvenient. So I created all parts on one side, exported them as .STL, and used Cura to mirror them. Afterwards it is also possible to import the mirrored parts into DesignSpark. But the imported parts are less easy to edit than the originals since they now now longer consist of basic shapes. So all rounded corners and holes are now multi-facet surfaces, which makes them cumbersome to handle.

View all 5 project logs

Enjoy this project?



Similar Projects

Does this project spark your interest?

Become a member to follow this project and never miss any updates