UMO/UMO+/Prusa firmware merge

Topics related to printer firmware
User avatar
antiklesys
Posts: 181
Joined: February 13th, 2016, 8:01 am
3D Printer(s): UMO

UMO/UMO+/Prusa firmware merge

Postby antiklesys » December 22nd, 2016, 5:59 am

Hi everyone,

I started working on a firmware merge between the Prusa I3 Mk2 firmware and the firmware published by Amedee.
It's quite the task as these two branches took separate paths and the electronics being used on the prusa is veeeery different from the one on the UMO.

Edit1: here's the github link to my work in progress: https://github.com/Antiklesys/Marlin-Experimental

So far I have identified the following type of files in the two firmwares:
-identical files (those are the best! No change needed)
-files existing in both versions but with different pieces of code
-files existing only in one of the two firmwares

List of files that "so far are identical" or have been merged:

BlinkM.cpp
BlinkM.h
motion_control.h
qr_solve.cpp
qr_solve.h
Sd2PinMap.h
SdFatStructs.h
SdFatUtil.h
SdFile.cpp
SdFile.h
SdVolume.cpp
SdVolume.h
Servo.cpp
Servo.h
speed_lookuptable.h
thermistortables.h
ultralcd_st7920_u8glib_rrd.h
vector_3.h
watchdog.cpp
watchdog.h

Edit2: Added more files to the merged list

Sd2Card.h
Sd2Card.cpp
SdBaseFile.cpp
SdBaseFile.h
SdInfo.h
MarlinSerial.cpp
MarlinSerial.h
motion_control.cpp
fastio.h
vector_3.cpp (thanks to Martin!)
cardreader.h
SdFatUtil.cpp
mesh_bed_calibration.h
mesh_bed_calibration.cpp
ConfigurationStore.h
SdFatConfig.h
stepper.h
temperature.h

The purpose of this merge would be to allow the usage of a PINDA probe on a UMO/UMO+ for automatic bed leveling by leveraging the capabilities of Marlin itself.
My challenge as of now is in the understanding of some pieces of code in the two firmwares to clarify what should be kept.

I would really appreciate the community help in this :)
Last edited by antiklesys on December 30th, 2016, 4:39 am, edited 10 times in total.

User avatar
LePaul
Posts: 2386
Joined: February 7th, 2016, 10:26 pm
Location: Bangor, Maine USA
3D Printer(s): Ultimaker 2+, Folger Tech FT-5
Contact:

Re: UMO/UMO+/Prusa firmware merge

Postby LePaul » December 22nd, 2016, 10:25 am

Will that probe work on glass though? I mean, will you have to change the bed to PEI with those 9 check spots?

User avatar
antiklesys
Posts: 181
Joined: February 13th, 2016, 8:01 am
3D Printer(s): UMO

Re: UMO/UMO+/Prusa firmware merge

Postby antiklesys » December 22nd, 2016, 11:28 am

Hey,

I'm already using a PEI sheet as printing surface.
This PEI sheet is directly attacched with a 3M adhesive on top of the aluminum bed.
Below the bed there is the glass (to prevent/counter bed bending).
As far as I have tested this probe is able to detect the metal successfully when placed at a few millimeters above the PEI.

Now if you instead would like to know whether this would also applicable for anyone else which is instead using a glass bed, the answer is: I don't know. I haven't tested that :)

User avatar
drayson
Posts: 224
Joined: February 15th, 2016, 5:04 am
Location: Graz, Austria
3D Printer(s): UMO with mods :-)

Re: UMO/UMO+/Prusa firmware merge

Postby drayson » December 23rd, 2016, 3:32 am

Short one: which Marlin version have you used from Prusa side?
Has it something to do with the official Marlin which is currently in RC8?

User avatar
antiklesys
Posts: 181
Joined: February 13th, 2016, 8:01 am
3D Printer(s): UMO

Re: UMO/UMO+/Prusa firmware merge

Postby antiklesys » December 23rd, 2016, 7:37 am


User avatar
antiklesys
Posts: 181
Joined: February 13th, 2016, 8:01 am
3D Printer(s): UMO

Re: UMO/UMO+/Prusa firmware merge

Postby antiklesys » December 28th, 2016, 3:58 am

Still looking forward more people interested in joining the fun! :P

User avatar
martin-bienz
Posts: 172
Joined: February 22nd, 2016, 2:42 am
Location: Switzerland
3D Printer(s): Ultimaker Original, prusa i3 mk2

Re: UMO/UMO+/Prusa firmware merge

Postby martin-bienz » December 28th, 2016, 10:26 am

antiklesys wrote:Still looking forward more people interested in joining the fun! :P

that sound's like fun as I actually have an i3 mk2 and an UMO... but I would actually require some time (I would buy some if I could). :-D

As for the code section you are looking at in vector_3.cpp. You need to take the one from prusa / marlin. The vector calculation in the Amedee version is wrong (this was fixed in marlin original some time ago). I think it produced mirrored results, hope I got it right. You can look at the history of the file in the original marlin source, that's how I got it.

User avatar
antiklesys
Posts: 181
Joined: February 13th, 2016, 8:01 am
3D Printer(s): UMO

Re: UMO/UMO+/Prusa firmware merge

Postby antiklesys » December 28th, 2016, 10:39 am

Hey Martin, glad to have you on board!
I lack time too and this won't be a fast project to be completed, but if you have a couple of spare hours it'd be great to catch up on Skype and work together on the missing bits if you're up for it :)
I've sent you a PM :)

Edit: I now edited the code at the top too, as this piece was cleared:)

User avatar
martin-bienz
Posts: 172
Joined: February 22nd, 2016, 2:42 am
Location: Switzerland
3D Printer(s): Ultimaker Original, prusa i3 mk2

Re: UMO/UMO+/Prusa firmware merge

Postby martin-bienz » December 28th, 2016, 11:15 am

antiklesys wrote:Hey Martin, glad to have you on board!
I lack time too and this won't be a fast project to be completed, but if you have a couple of spare hours it'd be great to catch up on Skype and work together on the missing bits if you're up for it :)
I've sent you a PM :)

Edit: I now edited the code at the top too, as this piece was cleared:)


Yeah sure. I will probably look at some of the pieces tonight. Let's keep in touch.

EDIT: Now that I think about it. It might be really better to just "fix" the mesh bed leveling in the Amedee Marlin version and enable it (if this is "easy" possible). Other that that, I guess we are happy with the UMO Marlin version from him. What do you think? Maybe this was asked / discussed before?

User avatar
antiklesys
Posts: 181
Joined: February 13th, 2016, 8:01 am
3D Printer(s): UMO

Re: UMO/UMO+/Prusa firmware merge

Postby antiklesys » December 28th, 2016, 2:47 pm

Hi Martin,

I think if we do a "fix" it'll still keep the two branches separate.
If we do a Merge, it would allow to bring the UMO firmware to a point in which we can easily incorporate new improvements/additions to the firmware in a more seamless way.

Your thoughts?

User avatar
LePaul
Posts: 2386
Joined: February 7th, 2016, 10:26 pm
Location: Bangor, Maine USA
3D Printer(s): Ultimaker 2+, Folger Tech FT-5
Contact:

Re: UMO/UMO+/Prusa firmware merge

Postby LePaul » December 28th, 2016, 4:46 pm

Impressive, gents!

User avatar
martin-bienz
Posts: 172
Joined: February 22nd, 2016, 2:42 am
Location: Switzerland
3D Printer(s): Ultimaker Original, prusa i3 mk2

Re: UMO/UMO+/Prusa firmware merge

Postby martin-bienz » December 29th, 2016, 3:40 am

antiklesys wrote:Your thoughts?


My thoughts:

  • Features, what are the features you would like to see that are not in UMO / Amedee's firmaware that are not in Marlin / Prusa's version, not only mesh bed leveling?
  • Maintenance, keep in mind that if you create a seperate branch, you will be required to maintain it as well
  • building. Amedee created a very nice framework with an online builder. I guess for most of us, it would be ok to compile it ourselfs but still the online builder with the most important settings as a config is very nice and easy to use.

For me, it's still ok to help with a seperate branch, if required. Might take a while :-D .

User avatar
antiklesys
Posts: 181
Joined: February 13th, 2016, 8:01 am
3D Printer(s): UMO

Re: UMO/UMO+/Prusa firmware merge

Postby antiklesys » December 29th, 2016, 4:06 am

Thanks Martin! :)

The main feature as of now is indeed just the bed leveling part, but from what i'm seeing in Marlin, there's a lot of pieces of code/parts that have been left abandoned (and were removed by the Prusa guys too).
My intention would be to make the firmware lighter too and easy to configure.
We have the builder indeed and I don't have issues having this work added into some sort of firmware builder aswell (with the help of Amedee or through other means).
For what concerns maintaining it, I don't think there should be major issues with that.
I'm currently maintaining my own branch of Marlin and tweaking it as I go.
Having to maintain two won't be a major difference, considering that after the merge it should be way simpler to integrate other pieces of code / additions from the Prusa firmware.

As of now, I see this already as a major goal. The firmware was somewhat "abandoned" by the UM team and Amedee is indeed doing a great work keeping this up, however we're still working on something that may be "old" and could benefit from a facelifting :)

Really looking forward collaborating with you on this Martin! :)

User avatar
martin-bienz
Posts: 172
Joined: February 22nd, 2016, 2:42 am
Location: Switzerland
3D Printer(s): Ultimaker Original, prusa i3 mk2

Re: UMO/UMO+/Prusa firmware merge

Postby martin-bienz » December 29th, 2016, 5:27 am

drayson wrote:Short one: which Marlin version have you used from Prusa side?
Has it something to do with the official Marlin which is currently in RC8?


good question btw. I have no clue on which marlin the prusa version is based upon... but for sure newer than UMO :) Might be worth considering RC8 in this instance...but that is a "bigger" project I guess.

User avatar
antiklesys
Posts: 181
Joined: February 13th, 2016, 8:01 am
3D Printer(s): UMO

Re: UMO/UMO+/Prusa firmware merge

Postby antiklesys » December 29th, 2016, 6:24 am

martin-bienz wrote:
drayson wrote:Short one: which Marlin version have you used from Prusa side?
Has it something to do with the official Marlin which is currently in RC8?


good question btw. I have no clue on which marlin the prusa version is based upon... but for sure newer than UMO :) Might be worth considering RC8 in this instance...but that is a "bigger" project I guess.


I did some checks and the Prusa firmware is indeed newer than the UMO and has similarities with Marlin RC8, that said it was branched widely from it and there are currently more difference between the Prusa VS Marlin RC8 than there are with the UMO firmware.


Return to “Firmware”

Who is online

Users browsing this forum: No registered users and 1 guest