Genealogy / Archeology of the Prusa i3 X Motor End

From RepRap
Revision as of 20:01, 17 December 2014 by Traumflug (talk | contribs) (Add comment & category.)
Jump to: navigation, search

In this page I will illustrate (to the best of my knowledge) how the original design for the Prusa i3 X Motor End printed part has been used (and has evolved) through some Prusa i3 variants. I have researched the evolution of this particular printed part - the X-axis motor end for the Prusa i3 - because I wanted the best possible design for my P3Steel.

I was surprised to find that in some cases the GPLV3 license under which the original design by Josef Prusa was released, was not exactly respected. This has the unfortunate effect of halting further development - or at the very least making it much more difficult - of a particular "evolutionary branch" i.e. we reach a development dead-end.

Enough preliminaries and let's see what is going on:

1st Gen: Josef Prusa's original design

As freely available from his GitHub repository:

Josef Prusa's original Prusa i3 vanilla X motor end.

File header:

// PRUSA iteration3
// X end motor
// GNU GPL v3
// Josef Průša <[email protected]> and contributors
// http://www.reprap.org/wiki/Prusa_Mendel
// http://prusamendel.org

2nd Gen: Misan's mods

Misan (a well-known Spanish developer) added a few improvements to many of Josef's original printed part designs and made his OpenSCAD sources freely available, mainly on Thingiverse:

Misan's improved Prusa i3 X motor end.

The main difference here is that the stepper holes are moved by a (parametric) configurable distance so that there is no interference between the stepper body and other parts of the printer.

File header:

Here is the header file from Misan's source:

// PRUSA iteration3
// X end motor
// GNU GPL v3
// Josef Průša <[email protected]> and contributors
// http://www.reprap.org/wiki/Prusa_Mendel
// http://prusamendel.org

As we can see, Misan kept the original header intact and quite modestly did not even add his name or a description of his contributions!

2nd Gen Improved: Misan's mods improved

This is just Misan's source code with a few added cutouts (less than 5 lines of source code) and an added Z endstop adjustment screw (another half dozen lines or so), by yours truly:

Misan's version of the X motor end with a few added cutouts.

Unreleased design, I just wrote this in less than one hour to show how easy it is to modify the original source code. I have basic knowledge of OpenSCAD so I am pretty sure that somebody more knowledgeable could have done better in less time.

3rd Gen, J. Rodrigo (Mecan0) branch

J. Rodrigo (Mecan0) is another respected Spanish developer who created his own variant of the Prusa i3, which he called PowerCode. His OpenSCAD source code is freely available in his repository on GitHub. Here is his version of the X motor end:

PowerCode X motor end.

Notice that the part itself is not very different from my improved Misan design.

File header:

Here is the header file from Mecan0's source:

// Created from Code_Xend_Motor.stl
// https://github.com/Mecan0/Code
// By J.Rodigo (www.jra.so)
// Licence Creative commons atribution & share alike.

Ouch! The original license was changed and all mentions of previous authors have been removed. Now, it is true that Mr. Rodrigo practically rewrote the entire code for the part (with all comments in Spanish), and that he mentions the names of other developers (but not Josef Prusa) in one of the ReadMe files in his repository, but imho that is not nearly enough to comply with the GPLV3, which is the original license for Josef Prusa's source code.

4th Gen, J. Rodrigo (Mecan0) branch, for bq by Obijuan

The Prusa i3 Hephestos is bq's variant of the Prusa i3. It seems bq asked Obijuan, yet another respected Spanish developer and my OpenSCAD guru (I learned openSCAD watching his tutorial videos on YouTube), to develop the printed parts for the Prusa i3 Hephestos, as evidenced from bq's GitHub repository. Now I must mention that bq has a relatively good history of compliance with Open Source licenses in general. That said, let's take a look at the Prusa i3 Hephestos X motor end printed part:

This is bq's version of the Prusa i3 X motor end for their Prusa i3 Hephestos.

Notice that the part is clearly based on Mr. Rodrigo's design, itself clearly based on Misan's design, itself decidedly based on Josef Prusa's original design.

There is no OpenSCAD source code available for any of the printed parts for the Prusa i3 Hephestos because it seems Obijuan decided to migrate all the printed part designs to FreeCAD - thus halting all further development of this branch in OpenSCAD. In the GitHub repository ReadMe, one can read:

Atributions: TODO

Which imho is a pretty shitty way of saying "f..k you" to all previous and future developers. :-(

Nah, come on, FreeCAD is a fine application and certainly allows to continue development. :-) --Traumflug (talk) 16:01, 17 December 2014 (PST)

Also notice that the bq part has added a totally useless bridge (under the stepper motor "arm") which results in less than perfect finish when the part is printed:

bq's version of the Prusa i3 X motor end printed, notice the result of the bridge.

Finally, I thought there was not enough material around the M3 nut (which has to be fit in its nut trap while being heated with a soldering iron). Apart from these two (small) issues, the bq X motor end is really nice.

5th Gen, reverse engineered from bq's .stl, by AndrewBCN

OpenSCAD has a nifty import function which allows the import of any .stl file. So I went ahead and imported the bq design, fixed the two issues I mention above and am in the process of rewriting / reverse-engineering back to a GPLV3-compliant status.

Reverse-engineered, improved Prusa i3 X motor end by AndrewBCN.

This is basically the same as the bq part without the useless bridge and with a little bit more material around the M3 nut. Here is my 5th Gen X motor end, printed in blue PLA with 40% infill, 0.2mm layer height, 0.6mm walls and top/bottom layers.

Reverse-engineered, improved Prusa i3 X motor end by AndrewBCN, printed in blue PLA.

I'll have the OpenSCAD source and .stl files available on Thingiverse and GitHub asap.