Jump to content

How to build Marlin the way tinkergnome and Ultimaker do it if you have windows


gr5

Recommended Posts

Posted · How to build Marlin the way tinkergnome and Ultimaker do it if you have windows

TinkerGnome helped me set up the Marlin build environment. How to do it is out there and published but I wrote down extra details. I don't know if my notes make sense but I thought I would post them here. If you try to repeat this and have any trouble let me know below and I will clarify the instructions as necessary.

Get the source code from github and put somewhere on your hard drive. I'm not going to give you a tutorial on github - there's a lot to github features alone - you can simply download the zip but if you plan to edit it's best to install git and clone the project. If you want to submit bug fixes you absolutely have to create your own github account and create a fork, make changes, test changes, push changes to github and then send a pull request.

Ultimaker's source code is here:

https://github.com/Ultimaker/Ultimaker2Marlin

tinkermarlin - a variant which is better is here (although there may be a bug in version 16.12.1):

https://github.com/TinkerGnome/Ultimaker2Marlin

First know that the IDE is code::blocks. We need SDL 1.2 and arduino IDE and mingW compiler. Start with mingw compiler:

Install arduino compiler from here - version 1.6.10 works but some newer versions won't.  Ultimaker uses v1.0.5.   Save it into a path with no spaces (not program files which has a space):

https://www.arduino.cc/en/main/software

mingw gcc get here:

https://sourceforge.net/projects/mingw/files/

Near the top is a setup.exe file. After it installs it launches the installation manager - at this point nothing useful is installed.

Next mark packages mingw32-base and mingw32-gcc-g++ (gnu c++ compiler) to be installed and then menu item "installation" "update catalogue". Wait for this to finish.

sdl get here:

https://www.libsdl.org/download-1.2.php then get the win32 version near the bottom mingw32 version of sdl - this gets us SDL.h and sdl.dll

from the gzip file copy the bin\sdl.dll file into c:\mingw\bin\

and lib\* to c:\mingw\lib\*

and \include\SDL folder to c:\mingw\include\ such that there are many .h files named SDL*.h in c:\mingw\include\SDL\

optionally copy SDL.dll to c:\windows so it can be found more easily. If there is already an SDL.dll there don't overwrite it - yikes.

codeblocks - you only need codeblocks if you want to create a simulation but you should definitely do this - it allows you to break on a line of code and test so many things! But if you write perfect code everytime then skip codeblocks.

http://codeblocks.org

I recommend installing this last or at least after mingw or restart it after installing mingw. After codeblocks is installed and started it somehow seems to find mingw.

After launching codeblocks I think it asked me for a project file that was in the source tree here:

.....\MarlinSimulator\UltiLCD2_Sim.cbp

In code::blocks menu click "build" "build". You should get no errors in bottom "build messages" window.

Click menu "debug" "start/continue" and it should pop up the simulator and boot. Simulator shows screen and position of x,y,z axis graphically and more. Before starting your program you can add a breakpoint in codeblocks on a particular line of code - right click on the number to the left of your

line of code and add a breakpoint. Then click the play button called "debug" (versus the play button titled "run"). When the simulator

gets to that line it will pause and you can examine variables (right click and add to watch and see values of variables).

building the hex files: you need to launch the mingw64 shell - it looks like a dos window but better. I don't know how to launch that but it came for free with my installation of git gui (from the git website).

You build like this - get to the marlin folder and do:

./package.sh

But it will fail the first time. You need to set a few things up. edit this package.sh file and add this line below the other arduino_path definitions:

 

ARDUINO_PATH=c:/Arduino
 

 

(or change to wherever you installed arduino ide - again - no spaces in path allowed!). You should probably double check that this file is in this exact path:

c:/arduino/hardware/tools/avr/bin/avr-gcc.exe

If not, then you probably need to modify AVR_TOOLS_PATH in marlin/Makefile. I didn't have to modify that.

You don't have to do anything with ARDUINO_VERSION unless you are using a version before 1.0.0 in which case you should probably get a newer arduino ide anyway.

Also I had to redefine MAKE by adding the following line in package.sh - this is where mingw32 installed for me (/c/ is the equivalent of c:\)

 

MAKE=/c/MinGW/bin/mingw32-make
 

 

This editing of package.sh may sound confusing but it's really quite simple - basically you are telling package.sh where a few folders are. Once you look at it then you will probably realize how simple it is. And if you screw up it's obvious - it will say "can't find mingw" or something like that.

  • Like 4
Link to post
Share on other sites

  • 10 months later...
Posted (edited) · How to build Marlin the way tinkergnome and Ultimaker do it if you have windows

Awesome. I just wrote a long response to this with lots of details about how I got on and it's all lost for some reason. The browser, our new operating system. faaaaaantastic. I will try to respond again sometime.

Thanks @gr5 and @tinkergnome for taking the time to do this. it helped a lot.

Edited by Guest
  • Link to post
    Share on other sites

    Posted · How to build Marlin the way tinkergnome and Ultimaker do it if you have windows
    building the hex files: you need to launch the mingw64 shell

    I downloaded that from sourceforge and it looks like the shell (called "terminal window") that is put in the start menu is just a shortcut to a BAT file which has :

    set PATH=C:\Program Files\mingw-w64\x86_64-7.2.0-posix-seh-rt_v5-rev1\mingw64\bin;%PATH%

    So I just put a path environment variable to c:/MinGW/bin/ and then launch the command prompt window as normal. So I am not sure that mingw64 is needed.

    However in the end I got the same error as I got when trying to build in the IDE

    c:/arduino/hardware/tools/avr/bin/../lib/gcc/avr/4.9.2/../../../../avr/lib/avr6\libatmega2560.a(eerd_dword.o): In function `eeprom_read_dword':
    (.text.avr-libc+0x0): multiple definition of `eeprom_read_float'
    _Ultimaker2Dual/UltiLCD2_hi_lib.o:UltiLCD2_hi_lib.cpp:(.text.eeprom_read_float+0x0): first defined here
    c:/arduino/hardware/tools/avr/bin/../lib/gcc/avr/4.9.2/../../../../avr/bin/ld.exe: Disabling relaxation: it will not work with multiple definitions
    collect2.exe: error: ld returned 1 exit status
    Makefile:405: recipe for target '_Ultimaker2Dual/Marlin.elf' failed
    mingw32-make: *** [_Ultimaker2Dual/Marlin.elf] Error 1
    

    So Next I will be trying to revert to an older version of the Arduino compiler- I installed via Arduino IDE 1.8.5.

    Thanks,

    Greg

  • Link to post
    Share on other sites

    Posted · How to build Marlin the way tinkergnome and Ultimaker do it if you have windows

    ust to follow up on this : I don't think I was running the right version from GitHub; so between the marlin code version and the arduino version I was running into different issues. I took a step back and

    -got the latest version of @tinkergnome 's geek_mode branch (17.10.1)

    -changed a couple of paths:

    --makefile : ARDUINO_INSTALL_DIR ?= /c/Arduino

    --package.sh : ARDUINO_PATH=C:/Arduino

    and now with Arduino 1.8.5 restored to that location (and all the previous configuration as per @gr5 's post I got a successful build of the hex files

    Thanks again

    Greg

    • Like 1
    Link to post
    Share on other sites

    • 1 month later...
    Posted · How to build Marlin the way tinkergnome and Ultimaker do it if you have windows

    I am getting some errors stl_base-funcs.h while building through codeblocks  Is there any problem with version if so how to degrade?

     

     

     

    ||=== Build: Debug in UltiLCD2_Sim (compiler: GNU GCC Compiler) ===|
    c:\mingw\lib\gcc\mingw32\6.3.0\include\c++\bits\stl_iterator_base_funcs.h|78|error: expected nested-name-specifier before 'iterator_traits'|
    c:\mingw\lib\gcc\mingw32\6.3.0\include\c++\bits\stl_iterator_base_funcs.h|78|error: expected initializer before '<' token|
    c:\mingw\lib\gcc\mingw32\6.3.0\include\c++\bits\stl_iterator_base_funcs.h|93|error: expected nested-name-specifier before 'iterator_traits'|
    c:\mingw\lib\gcc\mingw32\6.3.0\include\c++\bits\stl_iterator_base_funcs.h|93|error: expected initializer before '<' token|
    c:\mingw\lib\gcc\mingw32\6.3.0\include\c++\bits\stl_iterator_base_funcs.h|109|error: 'input_iterator_tag' has not been declared|
    c:\mingw\lib\gcc\mingw32\6.3.0\include\c++\bits\stl_iterator_base_funcs.h|115|error: 'input_iterator_tag' has not been declared|
    c:\mingw\lib\gcc\mingw32\6.3.0\include\c++\bits\stl_iterator_base_funcs.h|132|error: expected nested-name-specifier before 'iterator_traits'|
    c:\mingw\lib\gcc\mingw32\6.3.0\include\c++\bits\stl_iterator_base_funcs.h|132|error: expected initializer before '<' token|
    c:\mingw\lib\gcc\mingw32\6.3.0\include\c++\bits\stl_iterator_base_funcs.h|142|error: 'input_iterator_tag' has not been declared|
    c:\mingw\lib\gcc\mingw32\6.3.0\include\c++\bits\stl_iterator_base_funcs.h|154|error: 'bidirectional_iterator_tag' has not been declared|
    c:\mingw\lib\gcc\mingw32\6.3.0\include\c++\bits\stl_iterator_base_funcs.h|153|error: redefinition of 'template<class _BidirectionalIterator, class _Distance> void std::__advance(_BidirectionalIterator&, _Distance, int)'|
    c:\mingw\lib\gcc\mingw32\6.3.0\include\c++\bits\stl_iterator_base_funcs.h|142|note: 'template<class _InputIterator, class _Distance> void std::__advance(_InputIterator&, _Distance, int)' previously declared here|
    c:\mingw\lib\gcc\mingw32\6.3.0\include\c++\bits\stl_iterator_base_funcs.h|170|error: 'random_access_iterator_tag' has not been declared|
    c:\mingw\lib\gcc\mingw32\6.3.0\include\c++\bits\stl_iterator_base_funcs.h|169|error: redefinition of 'template<class _RandomAccessIterator, class _Distance> void std::__advance(_RandomAccessIterator&, _Distance, int)'|
    c:\mingw\lib\gcc\mingw32\6.3.0\include\c++\bits\stl_iterator_base_funcs.h|142|note: 'template<class _InputIterator, class _Distance> void std::__advance(_InputIterator&, _Distance, int)' previously declared here|
    c:\mingw\lib\gcc\mingw32\6.3.0\include\c++\bits\stl_iterator_base_funcs.h||In function 'void std::advance(_InputIterator&, _Distance)':|
    c:\mingw\lib\gcc\mingw32\6.3.0\include\c++\bits\stl_iterator_base_funcs.h|195|error: expected nested-name-specifier before 'iterator_traits'|
    c:\mingw\lib\gcc\mingw32\6.3.0\include\c++\bits\stl_iterator_base_funcs.h|195|error: expected '(' before 'iterator_traits'|
    c:\mingw\lib\gcc\mingw32\6.3.0\include\c++\bits\stl_iterator_base_funcs.h|196|error: '__d' was not declared in this scope|
    c:\mingw\lib\gcc\mingw32\6.3.0\include\c++\bits\stl_iterator_base_funcs.h|196|error: '__iterator_category' is not a member of 'std'|
    c:\mingw\lib\gcc\mingw32\6.3.0\include\c++\bits\stl_iterator_base_funcs.h|204|error: expected nested-name-specifier before 'iterator_traits'|
    c:\mingw\lib\gcc\mingw32\6.3.0\include\c++\bits\stl_iterator_base_funcs.h|204|error: expected ',' or '...' before '<' token|
    c:\mingw\lib\gcc\mingw32\6.3.0\include\c++\bits\stl_iterator_base_funcs.h||In function '_ForwardIterator std::next(_ForwardIterator, int)':|
    c:\mingw\lib\gcc\mingw32\6.3.0\include\c++\bits\stl_iterator_base_funcs.h|209|error: '__n' was not declared in this scope|
    c:\mingw\lib\gcc\mingw32\6.3.0\include\c++\bits\stl_iterator_base_funcs.h|216|error: expected nested-name-specifier before 'iterator_traits'|
    c:\mingw\lib\gcc\mingw32\6.3.0\include\c++\bits\stl_iterator_base_funcs.h|216|error: expected ',' or '...' before '<' token|
    c:\mingw\lib\gcc\mingw32\6.3.0\include\c++\bits\stl_iterator_base_funcs.h||In function '_BidirectionalIterator std::prev(_BidirectionalIterator, int)':|
    c:\mingw\lib\gcc\mingw32\6.3.0\include\c++\bits\stl_iterator_base_funcs.h|221|error: '__n' was not declared in this scope|
    c:\mingw\lib\gcc\mingw32\6.3.0\include\c++\bits\stl_vector.h|233|error: '__normal_iterator' in namespace '__gnu_cxx' does not name a template type|
    c:\mingw\lib\gcc\mingw32\6.3.0\include\c++\bits\stl_vector.h|234|error: '__normal_iterator' in namespace '__gnu_cxx' does not name a template type|
    c:\mingw\lib\gcc\mingw32\6.3.0\include\c++\bits\stl_vector.h|236|error: 'reverse_iterator' in namespace 'std' does not name a template type|
    c:\mingw\lib\gcc\mingw32\6.3.0\include\c++\bits\stl_vector.h|237|error: 'reverse_iterator' in namespace 'std' does not name a template type|
    c:\mingw\lib\gcc\mingw32\6.3.0\include\c++\bits\stl_vector.h|402|error: '_RequireInputIter' in namespace 'std' does not name a template type|
    c:\mingw\lib\gcc\mingw32\6.3.0\include\c++\bits\stl_vector.h|402|error: expected '>' before '<' token|
    c:\mingw\lib\gcc\mingw32\6.3.0\include\c++\bits\stl_vector.h|506|error: '_RequireInputIter' in namespace 'std' does not name a template type|
    c:\mingw\lib\gcc\mingw32\6.3.0\include\c++\bits\stl_vector.h|506|error: expected '>' before '<' token|
    c:\mingw\lib\gcc\mingw32\6.3.0\include\c++\bits\stl_vector.h|547|error: 'iterator' does not name a type|
    c:\mingw\lib\gcc\mingw32\6.3.0\include\c++\bits\stl_vector.h|556|error: 'const_iterator' does not name a type|
    c:\mingw\lib\gcc\mingw32\6.3.0\include\c++\bits\stl_vector.h|565|error: 'iterator' does not name a type|
    c:\mingw\lib\gcc\mingw32\6.3.0\include\c++\bits\stl_vector.h|574|error: 'const_iterator' does not name a type|
    c:\mingw\lib\gcc\mingw32\6.3.0\include\c++\bits\stl_vector.h|583|error: 'reverse_iterator' does not name a type|
    c:\mingw\lib\gcc\mingw32\6.3.0\include\c++\bits\stl_vector.h|592|error: 'const_reverse_iterator' does not name a type|
    c:\mingw\lib\gcc\mingw32\6.3.0\include\c++\bits\stl_vector.h|601|error: 'reverse_iterator' does not name a type|
    c:\mingw\lib\gcc\mingw32\6.3.0\include\c++\bits\stl_vector.h|610|error: 'const_reverse_iterator' does not name a type|
    c:\mingw\lib\gcc\mingw32\6.3.0\include\c++\bits\stl_vector.h|620|error: 'const_iterator' does not name a type|
    c:\mingw\lib\gcc\mingw32\6.3.0\include\c++\bits\stl_vector.h|629|error: 'const_iterator' does not name a type|
    c:\mingw\lib\gcc\mingw32\6.3.0\include\c++\bits\stl_vector.h|638|error: 'const_reverse_iterator' does not name a type|
    c:\mingw\lib\gcc\mingw32\6.3.0\include\c++\bits\stl_vector.h|647|error: 'const_reverse_iterator' does not name a type|
    c:\mingw\lib\gcc\mingw32\6.3.0\include\c++\bits\stl_vector.h|970|error: 'iterator' does not name a type|
    c:\mingw\lib\gcc\mingw32\6.3.0\include\c++\bits\stl_vector.h|984|error: 'iterator' does not name a type|
    c:\mingw\lib\gcc\mingw32\6.3.0\include\c++\bits\stl_vector.h|1014|error: 'iterator' does not name a type|
    c:\mingw\lib\gcc\mingw32\6.3.0\include\c++\bits\stl_vector.h|1031|error: 'iterator' does not name a type|
    c:\mingw\lib\gcc\mingw32\6.3.0\include\c++\bits\stl_vector.h|1051|error: 'iterator' does not name a type|
    c:\mingw\lib\gcc\mingw32\6.3.0\include\c++\bits\stl_vector.h|1094|error: '_RequireInputIter' in namespace 'std' does not name a template type|
    c:\mingw\lib\gcc\mingw32\6.3.0\include\c++\bits\stl_vector.h|1094|error: expected '>' before '<' token|
    ||More errors follow but not being shown.|
    ||Edit the max errors limit in compiler options...|
    ||=== Build failed: 50 error(s), 0 warning(s) (0 minute(s), 1 second(s)) ===|
     

     

     

     

  • Link to post
    Share on other sites

    Posted · How to build Marlin the way tinkergnome and Ultimaker do it if you have windows

    Hard to say... all error messages are related to mingw include files, but it does not list the file that it actually tries to compile.

    I use the mingw compiler that comes bundled together with Code::Blocks 16.01 (have not tried the newer version yet). I recommend to try this first.

    And take sure that the include path for SDL 1.2 is correct (Project -> Build Options -> GNU GCC Compiler -> Search Directories - for "Compiler" and "Linker").

  • Link to post
    Share on other sites

    Posted · How to build Marlin the way tinkergnome and Ultimaker do it if you have windows

    I configured mingw and codeblocks again now i was getting 3 errors What is SDL main compiler looking for

     

    ||=== Build: Debug in UltiLCD2_Sim (compiler: Mingw64) ===|
    ld.exe||cannot find -lSDLmain|
    ld.exe||cannot find -lSDL|
    ||error: ld returned 1 exit status|
    ||=== Build failed: 3 error(s), 0 warning(s) (0 minute(s), 0 second(s)) ===|
     

  • Link to post
    Share on other sites

    Posted · How to build Marlin the way tinkergnome and Ultimaker do it if you have windows

    Okay so it's properly compiling all the files but failing at the link step (LD is the linker - it used to be called a loader).  The linker needs to collect all the compiled files (I think called object files?) and combine them together and also it needs to link them with the libraries including evidently these two link libraries: SDLmain and SDL.  I think the files will have the extension .s or .so maybe?  I don't do linux compiling often enough obviously so I forget extension names.  Or maybe they are ".lib"?  I think that might be windows only.  Anyway when you did the "project -> build options -> "etc it sounds like you got the right search directories for the compiler but didn't tell the linker where the link libraries are.

     

  • Link to post
    Share on other sites

    Posted · How to build Marlin the way tinkergnome and Ultimaker do it if you have windows
    7 hours ago, venkatesh said:

    I configured mingw and codeblocks again now i was getting 3 errors What is SDL main compiler looking for

     

    ||=== Build: Debug in UltiLCD2_Sim (compiler: Mingw64) ===|
    ld.exe||cannot find -lSDLmain|
    ld.exe||cannot find -lSDL|
    ||error: ld returned 1 exit status|
    ||=== Build failed: 3 error(s), 0 warning(s) (0 minute(s), 0 second(s)) ===|
     

     

    You're making progress. Double check, that the search directories for the linker are including the SDL-"lib" folder.:fingerscrossed:

     

    codeblocks_searchdir.thumb.png.c2392e8111194e0cc7803273e4e1e393.png

     

  • Link to post
    Share on other sites

    Posted · How to build Marlin the way tinkergnome and Ultimaker do it if you have windows

    Finally compiled project sucesfully thankyou guys, Please provide some clues for me i want to attach a COM port to marlin simulator

  • Link to post
    Share on other sites

    Posted · How to build Marlin the way tinkergnome and Ultimaker do it if you have windows

    [gr5 removed massive quote of first post of this topic]

     

    could you help with this issue ?

     

    just about there, I have a compilation error related to the Arduino.h defining the max and min macro. It shouldn't really define those, but has, how did you get around that ?

     

    Thanks

     

     

    c:\mingw\lib\gcc\mingw32\6.3.0\include\c++\bits\stl_algobase.h|243|error: macro "min" passed 3 arguments, but takes just 2|

  • Link to post
    Share on other sites

    Posted · How to build Marlin the way tinkergnome and Ultimaker do it if you have windows

    Unless you want to do lots of development on Marlin, there's no need to install sdl, mingw or codeblocks. You can just install Arduino and load Marlin.ino (from the Marlin folder). Select the board that best resembles your controller board (Atmega 2560 is fairly common) and go to Sketch -> Export compiled binary. Two new hex files will be created in the same folder as Marlin.ino.

  • Link to post
    Share on other sites

    Posted (edited) · How to build Marlin the way tinkergnome and Ultimaker do it if you have windows
    1 hour ago, ahoeben said:

    Unless you want to do lots of development on Marlin, there's no need to install sdl, mingw or codeblocks. You can just install Arduino and load Marlin.ino (from the Marlin folder). Select the board that best resembles your controller board (Atmega 2560 is fairly common) and go to Sketch -> Export compiled binary. Two new hex files will be created in the same folder as Marlin.ino.

     

     

    I get this list of errors if it try to do that, I am using the latest Arduino IDE and TinkerFirmware 

     

    Arduino: 1.8.6 (Mac OS X), Board: "Arduino/Genuino Mega or Mega 2560, ATmega2560 (Mega 2560)"

    In file included from sketch/Marlin.h:21:0,
                     from sketch/Marlin_main.cpp:30:
    pins.h:1248:41: error: pasting "/* PG2*/" and "_RPORT" does not give a valid preprocessing token
     #define SDCARDDETECT                39  // PG2
     

    Edited by Link
  • Link to post
    Share on other sites

    Posted · How to build Marlin the way tinkergnome and Ultimaker do it if you have windows

    Next time, feel free to use the "Code" formatting to format your post, or better yet: omit such long pastes, and use something like pastebin.com and post a link here.

  • Link to post
    Share on other sites

    Posted · How to build Marlin the way tinkergnome and Ultimaker do it if you have windows

    I use Arduino 1.8.2 on Windows, and have no such errors.

  • Link to post
    Share on other sites

    Posted · How to build Marlin the way tinkergnome and Ultimaker do it if you have windows
    20 minutes ago, ahoeben said:

    Next time, feel free to use the "Code" formatting to format your post, or better yet: omit such long pastes, and use something like pastebin.com and post a link here.

     

    Yea, sorry, just cut it down

  • Link to post
    Share on other sites

    Posted · How to build Marlin the way tinkergnome and Ultimaker do it if you have windows

    Have a look at the Readme file at https://github.com/Ultimaker/UM2.1-Firmware I updated this a few months ago and is confirmed to still be working.

    At Ultimaker we use an old Arduino version, v1.0.5, see the above article for a download link. Ancient, but this is well tested. Anything newer and you are on your own to solve irrelevant 'improvements' to the Arduino suite.

     

    Compiling the source code is as simple as downloading the Arduino suite, modifying one file in that program and off you go.

  • Link to post
    Share on other sites

    Posted · How to build Marlin the way tinkergnome and Ultimaker do it if you have windows

    Thanks, as mentioned in the other thread I now have the Tinker firmware building as he set it up with the make and the simulator. I am also able to build as you described using just the Arduino IDE, for some reason it doesn't seem to build with the latest IDE version, dropping back fixed my problem.

  • Link to post
    Share on other sites

    Posted · How to build Marlin the way tinkergnome and Ultimaker do it if you have windows
    On 2/4/2017 at 5:42 AM, gr5 said:

    You build like this - get to the marlin folder and do:

    ./package.sh 

     Uhm ... maybe stooopid question: how do I call ./package.sh ?
    By default, it'll open np++ with this file ...
    If I run

    mingw32-make package.sh

    it gives me this:

    C:\dev\Ultimaker2Marlin\Marlin>mingw32-make package.sh --debug
    GNU Make 3.82.90
    Built for i686-pc-mingw32
    Copyright (C) 1988-2012 Free Software Foundation, Inc.
    License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
    This is free software: you are free to change and redistribute it.
    There is NO WARRANTY, to the extent permitted by law.
    Reading makefiles...
    '[' is not recognized as an internal or external command,
    operable program or batch file.
    Updating goal targets....
    mingw32-make: Nothing to be done for 'package.sh'.
    
    C:\dev\Ultimaker2Marlin\Marlin>

    Thanks for your help!

  • Link to post
    Share on other sites

    Posted · How to build Marlin the way tinkergnome and Ultimaker do it if you have windows
    On 2/4/2017 at 5:42 AM, gr5 said:

    you need to launch the mingw64 shell - it looks like a dos window but better. I don't know how to launch that but it came for free with my installation of git gui (from the git website).

     

    The build script is a linux shell script. I start it in a "git BASH" console, but there may be other options like mentioned by @gr5

    https://gitforwindows.org/

  • Link to post
    Share on other sites

    Posted · How to build Marlin the way tinkergnome and Ultimaker do it if you have windows

    Thank! But now I got a new problem:

    Quote

    Vmw7@win7 MINGW32 /c/dev/Ultimaker2Marlin/Marlin (geek_mode)


    $ ./package.sh
    which: no make in (/c/Users/Vmw7/bin:/mingw32/bin:/usr/local/bin:/usr/bin:/bin:/mingw32/bin:/usr/bin:/c/Users/Vmw7/bin:/c/Windows/system32:/c/Windows:/c/Windows/System32/Wbem:/c/Windows/System32/WindowsPowerShell/v1.0:/c/PROGRA~1/TIGCC:/c/Program Files/GCC4TI:/c/MinGW:/c/MinGW/bin:/usr/bin/vendor_perl:/usr/bin/core_perl)
      RM    _Ultimaker2/*
      RMDIR _Ultimaker2/
    mingw32-make: *** No rule to make target '_Ultimaker2/wiring.o', needed by '_Ultimaker2/Marlin.elf'.  Stop.
    cp: cannot stat '_Ultimaker2/Marlin.hex': No such file or directory

    * MinGW32-gcc g++ 4.8.2 is in `c:\mingw`

    * Arduino 1.0.5 is in `c:\Arduino`
    * git clone of https://github.com/TinkerGnome/Ultimaker2Marlin is in `c:\dev\Ultimaker2Marlin\`

     

    * Arduino compiled with sketch size of 209474 bytes (I don't know what or where, but it finished).

    * Code::Blocks Simulator fails: `c:\mingw\lib\gcc\mingw32\6.3.0\include\c++\bits\stl_algobase.h|243|error: macro "min" passed 3 arguments, but takes just 2|`and a lot more messages from this file (stl_algobase.h).

     

    PATH from git bash:

    Quote

    $ env|grep PATH
    EXEPATH=C:\Program Files\Git
    COMMANDER_PATH=C:\totalcmd
    PATHEXT=.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC
    ACLOCAL_PATH=/mingw32/share/aclocal:/usr/share/aclocal
    MANPATH=/mingw32/local/man:/mingw32/share/man:/usr/local/man:/usr/share/man:/usr/man:/share/man
    PATH=/c/Users/Vmw7/bin:/mingw32/bin:/usr/local/bin:/usr/bin:/bin:/mingw32/bin:/usr/bin:/c/Users/Vmw7/bin:/c/Windows/system32:/c/Windows:/c/Windows/System32/Wbem:/c/Windows/System32/WindowsPowerShell/v1.0:/c/PROGRA~1/TIGCC:/c/Program Files/GCC4TI:/c/MinGW:/c/MinGW/bin:/usr/bin/vendor_perl:/usr/bin/core_perl
    PKG_CONFIG_PATH=/mingw32/lib/pkgconfig:/mingw32/share/pkgconfig
    INFOPATH=/usr/local/info:/usr/share/info:/usr/info:/share/info
    HOMEPATH=\Users\Vmw7
    ORIGINAL_PATH=/mingw32/bin:/usr/bin:/c/Users/Vmw7/bin:/c/Windows/system32:/c/Windows:/c/Windows/System32/Wbem:/c/Windows/System32/WindowsPowerShell/v1.0:/c/PROGRA~1/TIGCC:/c/Program Files/GCC4TI:/c/MinGW:/c/MinGW/bin

     

    And all I wanted to do was change those settings for the Bondtech extruder ,,,, 😕

     

  • Link to post
    Share on other sites

    Posted · How to build Marlin the way tinkergnome and Ultimaker do it if you have windows

    Which firmware do you want to compile?

    I never tried compiling the Tinkergnome version, but a few posts above I confirmed that compiling the Ultimaker firmware is as simple as installing the old Arduino IDE, make your changes and then press the upload button. No need to install Linux shells or MinGW etc.

     

    In case you want to install Tinkergnome's firmware someone else should be able to help you.

  • Link to post
    Share on other sites

    Posted (edited) · How to build Marlin the way tinkergnome and Ultimaker do it if you have windows

    I wanted to compile the the UM2 (latest Tinkergnome) with the correct extruder settings for the Bondtech.
    Well ... so far I've installed all kinds of stuff! Luckily is a VM, so my machine does not suffer from all that stuff!

    To install the Tinkergnome is as easy as uploading the hex file to the printer - done that before. BUT to _make_ the hex file ... totally different story!

    Edited by fuerer_g
  • Link to post
    Share on other sites

    Posted · How to build Marlin the way tinkergnome and Ultimaker do it if you have windows
    57 minutes ago, fuerer_g said:

    And all I wanted to do was change those settings for the Bondtech extruder ,,,

     

    What is not working regarding to the firmware?

    It should not be necessary to compile your own variant.

    If you use the tinker firmware, you can change the steps/mm and the rotation direction in the preferences menu.

     

  • Link to post
    Share on other sites

    Posted · How to build Marlin the way tinkergnome and Ultimaker do it if you have windows

    Right! But after every update I have to reset the stepper value. And have you done that before?!
    If you need ~500 steps instead of 280 (or something) and 0.01 increments .... also, I forgot it before and it was heavily under-extruding.

    So, I thought I could just call git pull, ./package.sh and done! 🙂

  • 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

      • Introducing Universal Cura Projects in the UltiMaker Cura 5.7 beta
        Strap in for the first Cura release of 2024! This 5.7 beta release brings new material profiles as well as cloud printing for Method series printers, and introduces a powerful new way of sharing print settings using printer-agnostic project files! Also, if you want to download the cute dinosaur card holder featured below, it was specially designed for this release and can be found on Thingiverse! 
          • Like
        • 10 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...