Jump to content
Ultimaker Community of 3D Printing Experts
halfie

Integrating UltiLCD2 into Marlin 1.1.8?

Recommended Posts

Hi all, 

 

the current release of Marlin has a whole bunch of fancy new toys in it, which I'd like to try out, the most interesting being:

  • Unified Bed Levelling, which should be doable via a precisionpiezo kit, hooked up to J26
  • Linear Advance, which helps by constantly adjusting the pressure to the melted filament, allowing for faster and more accurate prints simultaneously.

The biggest roadblock to getting this done is that I can't for the life of me get the Ultimaker 2 LCD screen to turn on or display anything. I have absolutely no idea how to get it going? 

 

Any help would be appreciated.

Share this post


Link to post
Share on other sites

What have you tried already?

AFAIK Marlin does not support SSD1309 OLEDs directly, or does it?

 

I think you will have to merge it with the display routines from the original Ultimaker firmware. The source files for the latter are public available here:

https://github.com/Ultimaker/UM2.1-Firmware

 

Take a look at "UltiLCD2_low_lib.cpp" to get an idea.

Share this post


Link to post
Share on other sites
2 hours ago, tinkergnome said:

What have you tried already?

AFAIK Marlin does not support SSD1309 OLEDs directly, or does it?

 

I think you will have to merge it with the display routines from the original Ultimaker firmware. The source files for the latter are public available here:

https://github.com/Ultimaker/UM2.1-Firmware

 

Take a look at "UltiLCD2_low_lib.cpp" to get an idea.

Hi tinker, 

 

I modified a version of the 1.1.8 release, and ran through all of the different LCD's that were commented out in configuration.h, and then spent the better part of the day attempting to port over the UltiLCD2 files from the main Ultimaker 2 15.04.6, and your 17.10.1, with no success. The good thing is that it's actually reading the SD card, and all the sensors seem to be working fine, although i haven't stuck it back in the machine and tested the motion yet.

 

As ChrisRiddell pointed out, it looks like the latest version added Ulticontroller 2.1 AND improved trinamic support (which should help me, since I'm using a version of the Ultiboard2 which has replaceable drivers, and I'm running with some cheap aliexpress TMC2100's for now, until I know that it at least works). 

 

Thanks, Chris, for pointing that out, I never would have seen it otherwise!

 

 

Share this post


Link to post
Share on other sites
On 12/02/2018 at 9:22 AM, halfie said:

Just a quick update: Using the 1.1.x bugfix of Marlin, I managed to get the LCD screen up and running flawlessly, so all is well! 

 

It's nowhere near as pretty or intuitive as tinkergnomes' firmware, but it'll do for now!

 

halfie, can you confirm any key point with regards to configuration of the LCD or perhaps share your config files? and that you used the bugfix-1.1.x branch of marlin where you didn't have success with release 1.1.8.


Thanks, Andrew.

Share this post


Link to post
Share on other sites

the bugfix contains the necessary code for the Ulticontroller, which is not in the official release 1.1.8. 

 

Apparently they're releasing 1.1.9 soon, which will have this in it, I assume. 

 

The actual line to uncomment is: 

#define ULTI_CONTROLLER

 

Attached is the only file I've needed to modify to get it running. You'll need to rename it from Configuration.log to Configuration.h though before copying it to the Marlin directory. 

 

This is specifically set up for my own DIY Ultimaker 2+, which has the following changes:

  • E3D head with 0.25mm nozzle with the silicone sock, cooled by 2 5050 blowers. 
  • custom bed size of 205x192.5x215mm
  • 0.9 degree steppers on x and y, with 16 tooth GT2 pulleys
  • A "v2.1.5" PCB, which has the ability to run silentstepstick TMC2100 drivers
  • A whole bunch of PID tuning on the bed and head. 

I have to say, I didn't expect the TMC2100's to be that great, but holy hell, the sound reduction is amazing. I'm also running graphite bronze bearings over the entire thing as well, which helps sound immensely (8mm sliding blocks, 6mm print head, 12mm z, and a plastic POM z-nut). I haven't even tried it with the astrosyn dampers yet.

 

The mesh bed levelling is enabled as well, what I suggest is loading up the original firmware, getting it as level as possible, and then loading marlin, and using that to get the super refined bed tuning (turns out even with what I thought was perfect levelling, the bed height varied by around 0.025 to 0.05 at random, which I"m putting down to me just 6000 grit sanding the PET a week ago). Only thing I'd change would be to change the steps from 0.025 to 0.01 for fine tuning purposes, but I'm planning to add a piezoelectric disc to get perfect bed levelling over the next few weeks.

 

 

Configuration.log

Share this post


Link to post
Share on other sites

Thanks for being so thorough halfie!

I'm up and running. Just need to dial in the speeds and feeds and tune it all up.

I agree that the menu could do with some work on its appearance and intuitiveness! I've not used tinkergnomes builds but even comparing to standard UM2 menus it feels a bit clunky.

Share this post


Link to post
Share on other sites

Just for anyone that comes across this in the future: 

 

I was having serious issues with prints starting to skip steps, and it turns out that the default acceleration is insanely high on Marlin default. It is set to 3000 around line 531:

 

#define DEFAULT_MAX_ACCELERATION      { 3000, 3000, 100, 10000 }

 

Modify it to 

 

#define DEFAULT_MAX_ACCELERATION      { 500, 500, 100, 10000 }

 

or even lower, and you should notice a huge improvement. Also while you're in there, you can probably lower these as well:

 

#define DEFAULT_XJERK                 10.0
#define DEFAULT_YJERK                 10.0
#define DEFAULT_ZJERK                  0.3
#define DEFAULT_EJERK                  5.0

 

a value of 2-5 should be good. 

 

I'm thinking that if you lower the acceleration and the jerk, and then compensate with Linear Advance (Configuration_Adv.h) fine tuning, you should have sharper prints at faster speeds with less ghosting.

Share this post


Link to post
Share on other sites

Interestingly the values for acceleration in X and Y on the ultimaker version of marlin were even higher. DEFAULT_MAX_FEEDRATE 9000 and DEFAULT_ACCELERATION 3000 (I'm not sure which is used where). I'm wondering if this was done as some sort of crude way of limiting the problems linear advance tries to address as corners are much less sharp for me using marlin compared to ultimaker. 

 

I've not had much luck with Linear Advance yet, all the test patterns I've printed go from barely acceptable to bad. I'll try a series of actual parts next to see if I can get any favourable results. 

Share this post


Link to post
Share on other sites

I always dropped the acceleration and the jerk way down on my system, to get way cleaner prints.

 

I'm in agreement about Linear Advance, so far I'm actually finding I got sharper corners with the original tinkergnome firmware. My k factor is set to 314 at the moment as well, which seems crazy high, but I'm also running at 80-90mm/s and still getting some very nice prints (other than the sharp corners), when I would have run the same calibration cube at 40mm/s previously.

 

I'm using 1.75mm filament into an e3d, using a length of the Capricorn bowden tubing, with clips on all push fittings to minimize tube movement. I'll have to continue testing this weekend, but I've been running experiments with a piezo bed leveller (which will be AWESOME once i've printed a new head)

 

Edit: ataylor, it looks like the issue with the soft corners is inherent to the 1.1.8 and bugfix branches. 

Edited by halfie

Share this post


Link to post
Share on other sites

There's a couple of potential culprits:

  • Are you installing them in the correct direction? They need to be installed upside down compared to regular 4988 drivers.
  • Are the pins shorting out on anything, are there any accidental bridges between pins?
  • Has the voltage been set correctly? 

I blew up my TMC2100's because I tried to bridge two spots on the board to put it into a higher torque mode, and left the soldering iron on for too long. Could that have happened?

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×

Important Information

Welcome to the Ultimaker Community of 3D printing experts. Visit the following links to read more about our Terms of Use or our Privacy Policy. Thank you!