Marlin 1.1.8.59 On Original (not V2) Lulzbot Mini

Apologies if this has been answered somewhere else. I did search the forums but didn’t find an answer. I am trying to install Marlin 1.1.8.59 on my original Lulzbot Mini. I modified my Mini to have an E3DV6 1.75mm hotend along with a Titan extruder. I, therefore, need to make adjustments to the Y minimum position among other things (e.g. inverting the extruder direction (which I realize can be done with hardware instead)).

I reached out to tech support to ask them if they had the Marlin firmware files which could be edited and flashed with Arduino to the machine but they said that “the simplest way to flash your firmware is through Cura or manually by downloading the hex file.” and that “Any changes to firmware is unsupported…don’t change your hardware or software…blah blah blah” despite the fact that an earlier version of the Marlin firmware files came with the original flash drive which accompanied my machine (e.g. http://download.lulzbot.com/Mini/1.04/software/firmware/Source/).

My main question is does anyone know where I can find these files? Tech support did point me to these files https://code.alephobjects.com/diffusion/MARLIN/,however, I am not sure which of the branches is 1.18.59. This one https://code.alephobjects.com/diffusion/MARLIN/browse/upstream_1.1.8/?

Also, I am wondering why there is a .config file with the .hex files (which can be flashed through Cura). Is the .config file simply the configuration.h file which can be flashed with Arduino or is there a way that the .config file can modify the .hex file which I am unaware of?

Any help with this would be much appreciated. While I am impressed with how quickly tech support responded to my questions, I am underwhelmed by the fact they are selling a printer which runs on open source firmware, is well documented and basically designed for modding but tell you to get lost if you ask them how to flash the latest firmware in a format which could have been modded.

I had good results checking out and compiling https://code.alephobjects.com/diffusion/MARLIN/history/devel/after changing the Makefile to cater for some minor differences in the gcc release of my distribution. Also, I adjusted build-lulzbot-firmware.sh to only build fw the for my mini.

Please excuse the very basic questions, I am quite a newb at modifying firmware. What do you mean by “gcc release of my distribution”. Did you flash with Arduino? If so, what did you use for your configuration.h file? It seems the .config file I linked in my original post is pretty much what you need for the mini.

The repository contains all you need, including the default configurations for all Lulzbot printers. build-lulzbot-firmware.sh will compile all printer firmwares for you, if you have installed the required build tools and toolchain. I can’t tell you exactly what those are (I try untill it works) but build-essential is at least one of them (debian/ubuntu based distro). The result(s) are .hex files in the build/ directory which you can flash using cura or any other compatible flash tool.

It’s up to you to change what needs to be changed in the respective config files for your configuration.

There are two places to find Marlin firmware for LulzBot printers. The first contains the pre-compiled .hex files with a .config file for each that shows the configuration parameters that were used.

The second is the GIT repository of the Marlin sources used to build the .hex files. To use it, you need to install GIT and the Arduino IDE.

After cloning the GIT repository, go into the git checkout directory and type “git checkout devel” (or a specific version number).

The Arduino IDE needs to be configured with the files from ArduinoAddons folder. For compiling using the Arduino 1.8.x IDE, just edit “Configuration_LulzBot.h” in the Marlin folder with the following values (add lines after the version number and pick your toolhead):

#define LULZBOT_Gladiola_Mini
#define TOOLHEAD_?

In the IDE, navigate to the Marlin.ino file in the Marlin folder and you should then be able to compile and upload the hex file (you want the non-bootloader .hex file). You can use Sketch, Verify/Compile to just build the .hex file(s) without uploading.

I wasn’t able to use the build-lulzbot-firmware.sh as it needs a Linux environment and my attempts to use the Windows 10 Linux were not successful but the above describes the method used to build a single variant at a time. I made a copy of my local GIT repository and made my changes in that directory tree so that my local GIT repository remains a copy of the LulzBot version.

1 Like

Thanks so much for the help. I was able to get the new firmware on my printer last night.

Thanks for taking the time to respond to my post. I was able to flash the new firmware last night. I was hoping this would help alleviate some banding I had been seeing in my prints (ever since I got my printer). It didn’t help but was worth a shot.

But you are now lucky to enable FWRETRACT and LIN_ADVANCE if you want :laughing:

There goes my weekend.

Gentlemen, it seems you guys may have cracked the code on why my Mini will work with a very, very old version of Cura (14.09) and it’s firmware, but the Y axis is reversed and therefore unusable when I try to use new Cura (3.6.20) with it’s firmware.

I’m not a stranger to Arduino programming however I’ve never had to do it for my printer before.

Is configuration.h the whole Arduino program I need to compile and upload?

Which version do I need to work with Cura 3.6.20?

Thank-you so very much- I really want to get this Mini working again.

Bryan

BryanD,

It is pretty odd that different versions of Cura would result in the Y-axis going in different directions. I would personally suggest you reverse the wiring on your Y-axis stepper. This would be a much faster solution (~5 minutes) than mucking around with the firmware.

Alternatively (and perhaps even more easily than switching the wiring), you could open the console in CURA, Type M501 and see what it comes back with in terms of E-steps for the Y-axis and then type “M92 Y” followed by the number of steps you got for the Y axis with a negative sign in front. For instance if it were 100.5 steps (which it is for my Lulzbot Mini) you’d type “M92 Y -100.5”. After sending the M92 command save by typing “M500” and all should be well in the world.

Its excellent that you sent me back with some doubt about my conclusion. I checked and checked and concluded that the y_max endstop signal is intermittent for some reason. Its not the microswitch, its something between the connectors and the board. Ever had to trace wiring problems? Any advice?

Intermittent suggests that it must be due to the movement of the y-axis. If I were you, I would open up the box and do a continuity test between each of the two endstop wires where they connect on the bed and on the board while moving the wire back and forth like would occur when the bed is moving. If one of them is connected intermittently you can just replace that one. If you’re really lucky the problem will be that the connection to the microswitch at the bed wasn’t properly strain relieved and you can just redo the connection where the wires connect at the bed (it seems unlikely though).

I found an article about this problem at the below link:

This shows how to re-wire the bed (including the end-stops).
https://ohai.lulzbot.com/project/lulzbot-mini-103-bed-cables-replacement/