Jump to content

More information during print


cube

Recommended Posts

Posted (edited) · More information during print

Hi Tinkergnome,

 

 

Can this be the material exchange speed in your firmware is faster than in the standard Ultimaker 2+ firmware ??

 

The standard UM2.1 firmware (for the "plus" models) uses a fix value of 80 mm/s. So actually the speeds of the tinker fork are a bit slower.

 

I think that was just an illusion!

Have with "Adjust build plate" a comical behavior noted for better description a video

 

If every time when I want to adjust the platform.

Thereafter, every time are my prepared materials away.

Does anybody have the same Problem?

Edited by Guest
  • Link to post
    Share on other sites

    Posted · More information during print

    Hey guys,

    Sorry for hijacking this thread. I'd like to understand how the UM2 firmware works and thought that if I'am gonna do it, why not start with TinkerGnome's branch and maybe fix something in the process (or break something else badly :D).

    @TinkerGnome: Where do I find the source code for the UM2+ branch? The repo here contains only the .hex files and two empty source archives:

    https://github.com/TinkerGnome/Marlin_UM2plus

    And maybe you have a pointer or two about how to setup the toolchain. I am on a Mac (10.11.4).

    thx

  • Link to post
    Share on other sites

    Posted · More information during print

    And maybe you have a pointer or two about how to setup the toolchain. I am on a Mac (10.11.4).

    I tried to copy the development environment from daid (as far as possible). Try to follow the instructions from these links:

    Marlin Simulation... on your desktop?!? (For developers)

    Missing note about how to compile and run the simulator

    For compiling i use the relevant parts from the (Cura) package.sh (thanks @daid :))

    This should work on a Mac too (after adjusting some path variables probably).

    • Like 1
    Link to post
    Share on other sites

    Posted · More information during print

    @tinkergnome: mmm, I think (... but i could be wrong) that Nicolinux needs info (... and me too I would like to know) in which file you define for which kind of Ultimaker2 (std., Go, 2+) you compile the firmware and what are the parameters to modify.

    @Nicolinux: me too I'm on OS X 10.11.4 and, for my Ultimaker2 std., I just used the last version of Arduino IDE (1.6.9) to compile the Marlin code that you download from the tinkergnome github (... just tried now, selecting as board "Arduino/Genuino Mega or Mega 2560", compiled Marlin.ino with just one warning ;))

    Hope this help (... still if I have correctly understood the Nicolinux question :D)

    Guglielmo

    • Like 1
    Link to post
    Share on other sites

    Posted (edited) · More information during print

    Some remarks:

    first of all the plus firmware is merged with the std one (just different options while compiling) - so use https://github.com/TinkerGnome/Ultimaker2Marlin for everything.

    Well "toolchain"... As tinkergnome mentioned in his repo there is a package.sh script which will build the firmware for UM std, +, etc...

    On a mac you need to install the Arduino IDE and change the package.sh lines from 43:

     

    elif [ -d "/Applications/Arduino.app/Contents/Java" ]; thenARDUINO_PATH=/Applications/Arduino.app/Contents/JavaARDUINO_VERSION=169

     

    Adjust the Arduino to the one you are using ;)

    You probably need to make package.sh executable (chmod +x package.sh) and you need to create the folders: "resources/firmware/" inside the Marlin folder (mkdir -p resources/firmware).

    In the package script you can see the only difference in building the firmware for the different types of Ultimaker2s are the environment variables passed to the make command.

    When it is done it produced *.hex files for UM2, UM2+ and UM2dual.

    Edited by Guest
    • Like 1
    Link to post
    Share on other sites

    Posted · More information during print

    Small note on compiling custom firmwares, I discovered an issue about a week ago, which caused problems for the menu code as soon as the firmware goes over 128k in size (not the size of the hex file, actual binary flash size)

    I kinda work around it with this change when you compile with the makefile:

    https://github.com/Ultimaker/Ultimaker2Marlin/commit/7408e32de2d4348a077c6b274af3635f022e1e6a

    But if you use the Arduino environment, all bets are off now...

    • Like 1
    Link to post
    Share on other sites

    Posted · More information during print

    Thanks derbroti,

    I didn't know the use of "package.sh" ... reading in it is pretty straightforward to derive the parameters to be modified into the source code to compile directly from the Arduino IDE without running any scripts. :D

    Guglielmo

  • Link to post
    Share on other sites

    Posted (edited) · More information during print

    as the firmware goes over 128k in size (not the size of the hex file, actual binary flash size)

     

    Shouldn't the avr-gcc linker create jumptable workarounds on his own when reaching the 128k limit for the pointers? (trampoline section) Or is there linker-breaking pointer magic in the lcd code?

    Edited by Guest
  • Link to post
    Share on other sites

    Posted · More information during print

    Hey guys,

    Thanks for the help. Sadly it doesn't work for me - compiling fails due to missing files/dirs.

    I am on a Mac and I have two Arduino IDEs installed. Their respective "Java" directories are:

     

    • Arduino 1.6.9 - /Applications/Arduino.app/Contents/Java
    • Arduino 1.0.6 - /Applications/Arduino106.app/Contents/Resources/Java

     

     

    1. Vanilla UM2Marlin, Arduino 1.6.9

    I copied over the package.sh script from @daid. I had to hardcode the Arduino version because the automatic detection doesn't work. After cloning the git sources the script stops with this (sh -x for debug output):

     

    + make -j 3 HARDWARE_MOTHERBOARD=7 ARDUINO_INSTALL_DIR=/Applications/Arduino.app/Contents/Java ARDUINO_VERSION=169 BUILD_DIR=_UltimakerMarlin_250000 'DEFINES='\''VERSION_BASE="Ultimaker:_15.04.6"'\'' '\''VERSION_PROFILE="250000_single"'\'' BAUDRATE=250000 TEMP_SENSOR_1=0 EXTRUDERS=1'make: *** No rule to make target `_UltimakerMarlin_250000/wiring.o', needed by `_UltimakerMarlin_250000/3D'.  Stop.

     

     

    2. Vanilla UM2Marlin, Arduino 1.0.6

    This time it starts compiling but then stops because of a (presumably hardcoded missing directory "UM2"):

     

    + make -j 3 HARDWARE_MOTHERBOARD=72 ARDUINO_INSTALL_DIR=/Applications/Arduino106.app/Contents/Resources/Java ARDUINO_VERSION=106 BUILD_DIR=_Ultimaker2 'DEFINES='\''STRING_CONFIG_H_AUTHOR="Vers:_15.04.6"'\'' TEMP_SENSOR_1=0 EXTRUDERS=1' CC    /Applications/Arduino106.app/Contents/Resources/Java/hardware/arduino/cores/arduino/wiring.c CC    /Applications/Arduino106.app/Contents/Resources/Java/hardware/arduino/cores/arduino/wiring_analog.c[...] CXX   Servo.cpp CXX   /Applications/Arduino106.app/Contents/Resources/Java/hardware/arduino/cores/arduino/Tone.cpp CXX   /Applications/Arduino106.app/Contents/Resources/Java/hardware/arduino/cores/arduino/main.cpp CXX   UM2 CXX   _Ultimaker2/3D CXX   Marlin.elfavr-gcc: avr-gcc: avr-gcc: UM2: No such file or directoryUM2: No such file or directoryUM2: No such file or directory

     

     

    3. Tinkergnome, Arduino 1.6.9

    Used Tinkergnome customized package.sh script and commented out the Arduino detection code to force it to take the latest Arduino version.

     

    + make -j 3 HARDWARE_MOTHERBOARD=72 ARDUINO_INSTALL_DIR=/Applications/Arduino.app/Contents/Java ARDUINO_VERSION=169 BUILD_DIR=_Ultimaker2 'DEFINES='\''STRING_CONFIG_H_AUTHOR="Tinker_16.03.1"'\'' TEMP_SENSOR_1=0 EXTRUDERS=1 FILAMENT_SENSOR_PIN=30 BABYSTEPPING HEATER_0_MAXTEMP=315 HEATER_1_MAXTEMP=315 HEATER_2_MAXTEMP=315' CC    /Applications/Arduino.app/Contents/Java/hardware/arduino/avr/cores/arduino/wiring.c[...] CXX   /Applications/Arduino.app/Contents/Java/hardware/arduino/avr/cores/arduino/new.cpp CXX   /Applications/Arduino.app/Contents/Java/hardware/arduino/avr/cores/arduino/main.cpp CXX   UM2 CXX   _Ultimaker2/3D CXX   Marlin.elf COPY  Marlin.hex/bin/sh: line 0: [: too many arguments+ cp _Ultimaker2/Marlin.hex resources/firmware/Tinker-MarlinUltimaker2-16.03.1.hexcp: _Ultimaker2/Marlin.hex: No such file or directory

     

     

    4. Tinkergnome, Arduino 1.0.6

    Same error as Vanilla UM2Marlin and Arduino 1.6.9

     

    + make -j 3 HARDWARE_MOTHERBOARD=72 ARDUINO_INSTALL_DIR=/Applications/Arduino106.app/Contents/Resources/Java ARDUINO_VERSION=106 BUILD_DIR=_Ultimaker2 'DEFINES='\''STRING_CONFIG_H_AUTHOR="Tinker_16.03.1"'\'' TEMP_SENSOR_1=0 EXTRUDERS=1 FILAMENT_SENSOR_PIN=30 BABYSTEPPING HEATER_0_MAXTEMP=315 HEATER_1_MAXTEMP=315 HEATER_2_MAXTEMP=315'make: *** No rule to make target `_Ultimaker2/wiring.o', needed by `_Ultimaker2/3D'.  Stop.+ cp _Ultimaker2/Marlin.hex resources/firmware/Tinker-MarlinUltimaker2-16.03.1.hexcp: _Ultimaker2/Marlin.hex: No such file or directory

     

     

    Reminds me why I didn't want to do this in the first place. Programming is fun but package management and dependencies are not :/

  • Link to post
    Share on other sites

    Posted · More information during print

    Ok, I found it.

    I had spaces in my directory structure (yes I know, if you Unix, then that's stupid). My path was:

     

    /Users/stefan/Projects/3D Drucker/Ultimaker/UM2 Firmware/nicolinux/Marlin

     

    and the $TARGET from the Makefile (created with "TARGET = $(notdir $(CURDIR))") was:

     

    3D UM2 Marlin

     

    Fixed it. Now the firmware compiles but I get these strange warnings (I'll ignore it since it occurs in "electronics_test" and hope it is just a test that fails):

     

    [...] CXX   Servo.cpp CXX   /Applications/Arduino106.app/Contents/Resources/Java/hardware/arduino/cores/arduino/Tone.cpp CXX   /Applications/Arduino106.app/Contents/Resources/Java/hardware/arduino/cores/arduino/main.cpp CXX   _Ultimaker2/Marlin.elftarget: Marlin_Ultimaker2/electronics_test.o:(.progmem.gcc_sw_table+0x2e): warning: internal error: out of range error_Ultimaker2/electronics_test.o:(.progmem.gcc_sw_table+0x30): warning: internal error: out of range error_Ultimaker2/electronics_test.o:(.progmem.gcc_sw_table+0x32): warning: internal error: out of range error_Ultimaker2/electronics_test.o:(.progmem.gcc_sw_table+0x34): warning: internal error: out of range error_Ultimaker2/electronics_test.o:(.progmem.gcc_sw_table+0x36): warning: internal error: out of range error_Ultimaker2/electronics_test.o:(.progmem.gcc_sw_table+0x38): warning: internal error: out of range error_Ultimaker2/electronics_test.o:(.progmem.gcc_sw_table+0x3a): warning: internal error: out of range error_Ultimaker2/electronics_test.o:(.progmem.gcc_sw_table+0x3c): warning: internal error: out of range error_Ultimaker2/electronics_test.o:(.progmem.gcc_sw_table+0x3e): warning: internal error: out of range error_Ultimaker2/electronics_test.o:(.progmem.gcc_sw_table+0x40): warning: internal error: out of range error_Ultimaker2/electronics_test.o:(.progmem.gcc_sw_table+0x42): warning: internal error: out of range error_Ultimaker2/electronics_test.o:(.progmem.gcc_sw_table+0x44): warning: internal error: out of range error_Ultimaker2/electronics_test.o:(.progmem.gcc_sw_table+0x46): warning: internal error: out of range error_Ultimaker2/electronics_test.o:(.progmem.gcc_sw_table+0x48): warning: internal error: out of range error_Ultimaker2/electronics_test.o:(.progmem.gcc_sw_table+0x4a): warning: internal error: out of range error_Ultimaker2/electronics_test.o:(.progmem.gcc_sw_table+0x4c): warning: internal error: out of range error COPY  _Ultimaker2/Marlin.hexAVR Memory Usage----------------Device: atmega2560Program:  134910 bytes (51.5% Full)(.text + .data + .bootloader)Data:       5999 bytes (73.2% Full)(.data + .bss + .noinit)  text	   data	    bss	    dec	    hex	filename134614	    296	   5703	 140613	  22545	_Ultimaker2/Marlin.elf

     

  • Link to post
    Share on other sites

    Posted (edited) · More information during print

    "/Applications/Arduino106.app"

    You should use your more recent version 1.6.9 of the Arduino IDE.

    (tinkergnome, at least for the last release, is using Arduino 1.6.5, and his builds are good - at least no one is complaining ;) )

     

    (I'll ignore it since it occurs in "electronics_test" and hope it is just a test that fails):

     

    Please don't, it is bad practice to ignore warnings - often there are harmless but there is a reason that gcc has a switch to treat all warnings as errors ;)

    Edited by Guest
  • Link to post
    Share on other sites

    Posted · More information during print

    I know, I did that too but it fails due to other reasons. It was one of the error scenarios from my previous post (3. Tinkergnome, Arduino 1.6.9). I saw that Tinker did catch some changes in the directory structure with the new Arduino IDE 1.6.9 but it still fails for me...

  • Link to post
    Share on other sites

    Posted (edited) · More information during print

    Are you sure you did nothing else in 3.?

    I just re-downloaded 1.6.9 and tinkergnomes master and with just editing the three lines mentioned (the detection if clause and the two assignment lines below that) and it works fine.

    For example in your 1. you had a wrong mainboard define "HARDWARE_MOTHERBOARD=7" instead of 72.

    Try a clean restart:

    elif [ -d "/Applications/Arduino.app/Contents/Java" ]; then <- edit here to match the line below

           ARDUINO_PATH=/Applications/Arduino.app/Contents/Java <- make sure same path as the if and a valid one ;)

           ARDUINO_VERSION=169 <- version works fine

    and then the package.sh will work fine with 1.6.9 :)

    Edited by Guest
  • Link to post
    Share on other sites

    Posted · More information during print

    About the warnings - you are right, but not ignoring implies understanding the issue - and that I did not. I looked at electronics_test.cpp but since I know very little about the project structure, I couldn't make up what it does other than you know... testing the electronics :)

    (ok, maybe communicating with the hardware is involved too).

    This comment in the header file reinforces my feeling that I can safely ignore it:

     

    //Start the electronics test environment. This environment never returns and disables all other features.

    However, there is still one thing that I don't understand. What is the difference between these two git repos?

    https://github.com/Ultimaker/Ultimaker2Marlin

    and

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

    Looking at daid's package.sh script, it checks out different repos for different UM2 variants. Tinker's package.sh does not do that but creates firmware versions for different UM2 printers.

    I am asking because I have finally compiled my own firmware with a modified version of Tinker's package.sh and the first run wizard just tried to crash the heated bed into the print head because it thought I have an UM2+ Extended (with lightning fast reflexes I switched it off before tears where shed.) :)

  • Link to post
    Share on other sites

    Posted (edited) · More information during print

    Go and extended(+) have different branches; std/std(+) are in master. That's why the Cura package.sh checks out different branches.

    UM2.1 should be the new firmware that will ship with the new Cura 2.1 ;)

    Edited by Guest
  • Link to post
    Share on other sites

    Posted · More information during print

    Alright, thanks. I'll try again (from scratch).

  • Link to post
    Share on other sites

    Posted (edited) · More information during print

    @Nicolinux: ... can I give you a suggestion ?

    One very nice possibility of the new IDE (if I remember well is starting from the 1.6.5) is to have "sandboxed" independent IDE ... you can have many versions of the same/different IDE and each one is totally closed i herself.

    To do that, on OS X (... where I'm) first give a unique name to your Arduino copy (eg. the last version, for me, is "Arduino 1.6.9 Portable.app"), next right click and select "Show Package Contents", next go to "Contents/Java/"  and inside create a new folder named "portable" (so you have Contents/Java/portable/"). Close and restart the IDE ... you have a sandboxed IDE, totally independent from other IDE installation (so ... NO the same libraries, NO the same packages, NO the same boards, ecc.) very useful to create specific IDE installations.

    If you download the IDE 1.6.9, give a unique name, make "portable" (as explained), select "Arduino MEGA 2560", open "Marlin.ino" and compile ... you should have just one warning that you can ignore ;)

    Guglielmo

    Edited by Guest
    • Like 1
    Link to post
    Share on other sites

    Posted · More information during print

    Thanks Guglielmo, that's a good idea. It is very nice that you can do this kind of stuff on a Mac easily.

    Oh man, Tinker's firmware is super cool. Not only the display style but also so many convenience features. One can even PID autotune directly from the menu.

    I'll need to wrap my head around the code, but for now, looking at it from the user perspective it is very very nice.

    @tinkergnome you rock!

  • Link to post
    Share on other sites

    Posted · More information during print

    I assume many of you use OctoPrint too with this firmware. How is it supposed to work?

    When I connect with OctoPrint I see the following on the printer's display:

    tinker_usb_connection.thumb.jpg.1538234074ff42ba1186694e429d8d8b.jpg

    Lights go out and the printer freezes.

    OctoPrint shows the following:

    octo_connection_stale.thumb.png.d0ae2e8d838f6b34419e6d3a89e9c49e.png

    I assume OP tries to cache the entire sd card contents and takes quite a while. Sadly I wasn't patient enough to wait for too long, but I did it twice and it "hang" on the same filename in the OP terminal.

    I guess that's more of a OctoPrint question than firmware related. So sorry for misusing this poor thread yet again...

    tinker_usb_connection.thumb.jpg.1538234074ff42ba1186694e429d8d8b.jpg

    octo_connection_stale.thumb.png.d0ae2e8d838f6b34419e6d3a89e9c49e.png

  • Link to post
    Share on other sites

    Posted · More information during print

    Hm it seems the weirdness doesn't stop yet. I've had several prints abort with "Error: Tried printing out of printing area".

    There are some strange moves that have nothing to do with the object - the print head just moves outwards and returns in a straight line.

    outside_area.thumb.jpg.5a9046872d83904fd9aaf047c6e170f8.jpg

    weird_moves.thumb.jpg.49cd93de0bcc2fa7e948b1f2b7f3a8e5.jpg

    outside_area.thumb.jpg.5a9046872d83904fd9aaf047c6e170f8.jpg

    weird_moves.thumb.jpg.49cd93de0bcc2fa7e948b1f2b7f3a8e5.jpg

  • Link to post
    Share on other sites

    Posted · More information during print

    Try changing USB cables or adding a USB hub or using a different computer to drive the USB signal (are you using raspberry pi?)

  • Link to post
    Share on other sites

    Posted · More information during print

    Not using OctoPrint with this firmware yet because of the freezing with "M20" commands.

    These were regular prints from the sd card. I swapped the sd card with a brand new one, but it still persists.

  • Link to post
    Share on other sites

    Posted · More information during print

    Interesting error message on the display. Trying to print outside of the valid area reminds me of a very early Cura2 bug (at a time it was called 'Pink unicorn') where movements to almost infinity happened. But please don't ask me about details of that bug....

    So, as you are printing from sd card, the wrong gcode should be there... is it?

  • Link to post
    Share on other sites

    Posted (edited) · More information during print

    This looks excatly like my problem: 21252-weird-axis-movement-mid-print

    The problem was a broken SD card.

    It would explain the out of printarea error as the wrongly read gcode would make the printer move outside the build area.

    Can you try a different one as well?

    Just read you already swapped it - maybe the new one is just faulty?

    Do you have by chance a third one?

    Are you using a micro-sd to sd adapter? maybe that one is faulty (bad contacts).

    Edited by Guest
  • Link to post
    Share on other sites

    Posted · More information during print

    @Dim3nsioneer: I stepped through the .gcode file and didn't found any strange moves outside of the printing area.

    @derbroti: I read about possible sd card problems, that's why I took a new one.

    Now I went on and just printed the same .gcode file again from the same sd card. And the print finished properly. What do you make of it?

  • 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

    • Our picks

      • UltiMaker Cura 5.7 stable released
        Cura 5.7 is here and it brings a handy new workflow improvement when using Thingiverse and Cura together, as well as additional capabilities for Method series printers, and a powerful way of sharing print settings using new printer-agnostic project files! Read on to find out about all of these improvements and more. 
         
          • Like
        • 18 replies
      • S-Line Firmware 8.3.0 was released Nov. 20th on the "Latest" firmware branch.
        (Sorry, was out of office when this released)

        This update is for...
        All UltiMaker S series  
        New features
         
        Temperature status. During print preparation, the temperatures of the print cores and build plate will be shown on the display. This gives a better indication of the progress and remaining wait time. Save log files in paused state. It is now possible to save the printer's log files to USB if the currently active print job is paused. Previously, the Dump logs to USB option was only enabled if the printer was in idle state. Confirm print removal via Digital Factory. If the printer is connected to the Digital Factory, it is now possible to confirm the removal of a previous print job via the Digital Factory interface. This is useful in situations where the build plate is clear, but the operator forgot to select Confirm removal on the printer’s display. Visit this page for more information about this feature.
          • Like
        • 0 replies
    ×
    ×
    • Create New...