New fork of Marlin firmware for Felix on Github

Discussions about firmware/slicing software, tweaks and settings
Post Reply
andrewsi
Posts: 129
Joined: Mon Dec 23, 2013 1:26 am

New fork of Marlin firmware for Felix on Github

Post by andrewsi » Thu Apr 03, 2014 3:50 am

If you've read some of my other posts, you may remember that I had taken the time to create a version of the Marlin firmware that contains all of the original settings provided by Guillaume, but using the latest available source. The "official" Felix firmware drop for Marlin is now quite old, and Guillaume seems to have moved on to the Repetier firmware as his preferred version based on the recent file dates. However, some of us still prefer Marlin for one reason or another.

In order to catch up to all of the latest features/bugfixes in Marlin but retain the Felix settings, I thought I'd make a fork of the official Marlin source available via Github. I will continue to keep it up to date with ongoing Marlin development. It can be found at https://github.com/andrewsil1/FelixMarlin.

All you need to do is use Github to download a ZIP of the whole repository, and then compile/upload using the Arduino IDE exactly as you would with either the Repetier or Marlin firmware provided here. The only source changes are in the main config files (configuration.h, configuration_adv.h, language.h, and pins.h.) Mostly I've just moved things around and updated values to keep in sync with changes in Marlin, but the important settings, such as steps/mm and the various speed limits, limit switches, etc., are essentially identical to the original Felix versions. There are a few features I have enabled that aren't part of the original Felix firmware:
  • PID control is enabled for the Felix 3.0 "sandwich" heated bed, optimized for a target temp of 55C. It may work just fine at higher temps, but I haven't tried it. This has resulted in major print quality improvements for me, since "bang-bang" bed heater mode causes enough expansion/contraction in the bed to result in layer height differences which show up as a very visible "Z-ribbing." Enabling PID for more accurate temp control eliminated this problem.
  • Z-"babystepping" is enabled in the menu during a print in case you want to make fine adjustments to the initial layer height. Now that I have my bed levelling dialed in well I rarely need this, but it doesn't hurt to have it available.
  • SD card detection sensing polarity is fixed relative to the Felix version, where cards are not detected on insertion, and vice versa. It now behaves as expected.
  • Other very minor tweaks here and there to allow some optional features to be used (e.g. automatic firmware-based retraction settings) but these are not enabled by default during printing, so no differences should be noted unless used deliberately.
The default config in the github fork is set up for a single-extruder 3.0, but I am more than happy to incorporate settings changes for those who have dual extruders. Making these changes manually should be relatively simple.

I use this firmware daily and have not encountered any problems, so you shouldn't encounter any significant issues. Feel free to contact me if you try it and run into anything unexpected.
__________________________________________
Andy Silverman, Technogeek in Seattle
Felix Tec4 Single-head

seaton
Posts: 291
Joined: Tue May 14, 2013 9:04 am
Location: Bunbury, Western Australia
Contact:

Post by seaton » Fri Apr 04, 2014 3:17 am

Awesome work thank you for sharing!
Stephen...

Felix 2.0 -> Felix 3.0 dual
Simplify3D Slicer, Kisslicer
Have you added your Felix to the Map? http://goo.gl/maps/HajnZ

http://blog.strobotics.com.au

satoer
Posts: 436
Joined: Mon Oct 01, 2012 8:00 pm
Location: Netherlands

Post by satoer » Fri Apr 04, 2014 3:07 pm

Interesting. But why is Guillaume using the Repertier firmware now? And why do you prefer Marlin?

I'm also using a custom Marlin because I'm using a aftermarket display and the Felix Marlin firmware has the code of that particular display stripped out of it.
My Felix 1.5 printed designs on Thingiverse
E3D V6 Hot end upgrade for your Felix
Tweezer bracket for your Felix
Led bar upgrade for your Felix

dext0rb
Posts: 8
Joined: Tue Mar 18, 2014 5:12 pm

Post by dext0rb » Sat Apr 05, 2014 6:16 pm

satoer wrote:Interesting. But why is Guillaume using the Repertier firmware now? And why do you prefer Marlin?

I'm also using a custom Marlin because I'm using a aftermarket display and the Felix Marlin firmware has the code of that particular display stripped out of it.
Guillaume posted this on the blog:
The marlin firmware caused some banding in z-axis which was visible when printing very thinwalled objects (like the test_thinwall object). The exact remains to be solved, but the Repetier firmware solved the issue.
I put Repetier on my machine a couple days ago, but it seems unreliable for me. Sometimes prints will stop in the middle of a job, I think a timer is running out or something, safety feature? Also, sometimes the end stop sensors do not work right away so the machine bangs when homing. I saw someone else had this problem and fixed it by re-wiring - keeping motor and sensor wire separate. I don't want to rewire my machine, so I'll probably give andrewsi's Marlin fork a shot today.

andrewsi
Posts: 129
Joined: Mon Dec 23, 2013 1:26 am

Post by andrewsi » Fri Apr 11, 2014 8:19 pm

My main reasons for liking Marlin more had to do with a couple of minor features as well as what I think is a more active and responsive development community. (Bugs will be found/reported sooner, slicers support it more actively, etc.) My belief is that the larger user base and contributions from prominent community members will keep it alive for the long haul. I like the Repetier stuff fine, but it seems like more of a one man show.
__________________________________________
Andy Silverman, Technogeek in Seattle
Felix Tec4 Single-head

frankjoke
Posts: 150
Joined: Sat Dec 28, 2013 6:07 pm

Post by frankjoke » Sun Apr 27, 2014 9:21 pm

Andy,
I would love to test it but I have a Felix3.0DUAL!
What would I need to do to have Dual working?

I also have questions what I need to do to have settings from Repetier for Felix incorporated on Marlin? I am using the latest Repetier from Felix.

andrewsi
Posts: 129
Joined: Mon Dec 23, 2013 1:26 am

Post by andrewsi » Mon Apr 28, 2014 7:09 pm

To have the dual working, you would need to look in configuration.h and configuration_adv.h for settings related to the 2nd extruder, and make some fairly minor changes (e.g. change NUM_EXTRUDERS to 2, set up the X-offset value for the second extruder, set up default temps, etc.) I don't think it's much work, but I just haven't bothered to do it myself.) I'm willing to bet that for the really critical settings like the X-offset, you can grab the necessary numbers from your existing Repetier setup and just copy them to the Marlin config file.

If someone comes up with a second set of config params that work well for the Felix 3 dual version, I'll create a second branch in the repository so that we can keep both, and then people can just download the right version for their printer.

As for question about having settings from Repetier incorporated into Marlin, that's a little bit of a non-sequitur. Obviously, you can use one firmware or the other, but not both (simultaneously, anyway), and since they have slightly different feature sets there isn't always a one-to-one correspondence between them. You'd have to take it case by case.

When preparing this version of the Marlin settings, I did incorporate a few "fixes" between the more recent config settings for Repetier from Guillaume's version relative to his older Marlin one - for example, I think the steps/mm for the extruder was originally 169, but later was changed to 164. This made sense to me since direct drive extruder steps probably divide more evenly into 4's anyway due to microstepping, but in the end the difference is miniscule anyway. At worst you'd be extruding just under 1% less filament with it set to 164, which in most cases I would bet is probably not visible to the eye. Anyway, the whole point here is that this fork is available if you want to continue to use Marlin with your Felix but get the benefit of more recent Marlin features. If you want to use Repetier, just go ahead and continue using Guillaume's version.
__________________________________________
Andy Silverman, Technogeek in Seattle
Felix Tec4 Single-head

andrewsi
Posts: 129
Joined: Mon Dec 23, 2013 1:26 am

Post by andrewsi » Mon Dec 29, 2014 2:58 am

Brief update - Marlin firmware has been undergoing a recent burst of cleanup activity in the main branch, and as soon as it settles down I'll merge the upstream into the fork described in this thread. I've been using recent builds with good success, and as soon as they declare the current development branch stable I'll publish the fork.

As a side note, I have done some additional experimentation with enabling PID control of the heated bed with Marlin. I have found that the key to enabling heated bed PID control is to add a large (e.g. 4400uf) electrolytic cap across the 12V power supply inputs on the Felix electronics board, otherwise the standard power supply will shut itself down occasionally when PID is enabled and high-percentage PWM values are commanded. There is a workaround without the cap, which is to set PID values with high gain that act somewhat like Bang-bang (little use of intermediate PWM values) but with better control. However, without the cap, occasional shutdowns may still be encountered during the initial warmup but not usually during a print.

I have sample values in the configuration files to be published with the new fork to cover both use cases, but I definitely recommend spending a few bucks for an additional capacitor.

The reason I feel PID is a requirement on the 3.0 heated bed is that Bang-bang mode allows too much temperature variation, which results in an oscillating Z layer height and visible ribbing as the bed expands and contracts during a print. With PID enabled, the bed temperature is maintained to within a fraction of a degree and that particular problem vanishes.
__________________________________________
Andy Silverman, Technogeek in Seattle
Felix Tec4 Single-head

Chris.E
Posts: 2
Joined: Tue Aug 12, 2014 9:49 pm
Location: Hastings UK

Post by Chris.E » Fri Jan 09, 2015 4:53 pm

I'd like to try this firmware, as I'm having a lot of trouble getting a print out of my felix 3.0 Dual, it seems like it's down to the PID control not holding the temp properly, thus causing it to decouple, :-/

I've downloaded the Marlin firmware from the fork, had a look with Arduino but I'm not sure or confident enough to be sure what or how much information I need to copy over from the repetire version regarding extruder 2 and other changes I may need to make for a standard 3.0 Dual

Please could someone help with this information or if someone has a working version they could send me it will be much appreciated

Chris

Post Reply