Configuring Marlin
Configuration is a constant source of difficulty for Marlin users. After all, we just want to pick the right installation for our machines, download and install Marlin. And when it comes time to upgrade to the next version (as you certainly will soon!) it would be ideal to just use our existing configurations and build.

Of course, it's never that easy. At least, not at first.

For Marlin 1.1 one of my priorities was to maintain the existing configuration system, but improve settings where I could. So, for example, with Marlin 1.0.x it's very common for users to forget to turn on DISABLE_MAX_ENDSTOPS if they only have min-endstops. Without this setting enabled Marlin would treat all un-connected endstops as triggered, obviously a bad thing. With Marlin 1.1 that setting is gone, replaced by new settings USE_XMIN_PLUG, USE_XMAX_PLUG, etc. to simply tell Marlin which plugs have switches attached.

Marlin Configuration Tools

Right now there are two online Marlin configuration utilities (that I know of) which allow you to fill in a form, with some helpful presets and drop-down lists, and actually download a fully built Marlin binary, ready to install on your machine. These utilities are very handy, but if you need to modify your settings after download, you might have to fill in the form all over again. So I tend to favor a utility where you can download the configuration files instead, build Marlin yourself, and make adjustments offline.

I actually started to build just such a utility, which you can find at the MarlinConfigurator Github page. It's written in Javascript so it can run in any web browser, and won't require any server-side back-end. You can even run it right from a folder on your desktop. It still has a lot of work ahead of it, which I hope to jump into this week. If you'd like to see a preview of the "expert" form in action, you can check it out here: MarlinConfigurator. (Warning: work-in-progress!) I also wrote an article, giving an overview of the technical side of this utility. You can read that here: Marlin Configurator: Part 1. It's been over a year since Part 1, but I promise there will be a Part 2 as the tool develops!

As proud and excited as I am about this tool, which allows you to configure every little Marlin option based only on the (annotated) configuration files, it's still a behemoth for most users. And it doesn't allow you to drop older Marlin configuration files onto it to convert them into new ones. So that's a big priority. I will keep you up to date as this work progresses.

Marlin Documentation

In case you missed it, we've got a new website for all things Marlin, where we've started documenting Marlin in detail. We need help building it, writing articles on all the different features, explaining configuration options, and providing tips for new users. If you'd like to contribute please visit us on Github, or contact me to find out more.


Marlin is the most popular firmware for RepRap machines, used by a lot of sprightly startups as the firmware-of-choice for their commercial ventures. Companies like Ultimaker, BQ, Průša Research, Printrbot, Sunhokey, and many more have chosen Marlin because it provides an amazing value and is relatively easy to customize. As a result there are countless Marlin users out there, most of whom probably don't even know it. As it should be. When Marlin is working correctly, you shouldn't have to think about it. The machine should just work.

Over the past couple of years I've tried to entice some of these companies into helping out with some funding for this firmware that profits them, but few have shown any interest, and none of them have kicked in at all. As Gillian Welch sings in "Everything is Free":

"Someone hit the big score.

They figured it out.

That we're gonna do it anyway,

even if it doesn't pay."

While the profit players have been altogether absent, the user community has really come through. I can't say enough good things about the RepRap, Maker, DIY community. If it wasn't for you guys, this would be an entirely thankless job. Sure, I get a kick out of a job well done and I personally benefit by having a better Marlin on my RepRap. But once in a while I do like to come out of my programming cave and check in with the community, see how the work is being received, and it's your gratitude and encouragement that actually sustains me.

Crowdfunding is a fairly new way to finance creative work, so we're all still learning how to make it work. So I feel that this is an important experiment to see how user-base support stacks up against "corporate" support. This is also interesting in that it's a very different area than most Patreon and GoFundMe campaigns. After all, software is not the most entertaining or relatable medium. But without it, so much of what we love and enjoy just wouldn't be possible.

When I started to work on Marlin in late 2014 the project was pretty quiet. Third-party forks were doing a lot of good work, but almost none of it was feeding back into the main project. Since that time we've had some amazing developments, a few productive feuds, lots of turnover… and all of this has helped Marlin to move forward a lot. Change is never easy, but the community has really embraced this effort.

Thanks to the RepRap community for helping to keep this going! Version 1.1.0 is going to be great, and a lot of that is thanks to your support and feedback.