List of Firmware

From RepRap
Revision as of 11:09, 8 December 2023 by Daniel Massicotte (talk | contribs) (Druid Firmware)
Jump to: navigation, search

This page is the authoritative list of active firmwares.

For a list of out-of-date firmwares, see List of Abandoned and Deprecated Firmware:

Klipper

FIRMWARE INFO
Details Description

Name : Klipper
Author(s) : KevinOConnor
Status : Active as of September 2018

Firmware that runs all calculations on a host and has the MCU execute steps at specified times
Features
  • High precision stepper movement.
  • High step rates even on 8bit.
  • Kinematics algorithms, the G-code parsing, and more are in Python.
  • Multiple microcontrollers supported on single printer.
  • Configuration via single file, no need to flash MCU.
  • Host software can run on Raspberry Pi.
  • Supports Cartesian, Delta, and CoreXY. Adding more only requires changes to Python code.
Compatible Electronics
How to download

Can download like this:

git clone https://github.com/KevinOConnor/klipper
Documentation & Misc. Notes

Documentation on GitHub: https://github.com/KevinOConnor/klipper/blob/master/docs/Overview.md


Prusa Firmware

FIRMWARE INFO
Details Description

Name : Prusa Firmware
Author(s) : Prusa Research
Status : Active as of October 2019

Prusa Firmware is provided by Prusa Research for Prusa printers. It is a fork of Marlin which has been highly tailored for Prusa FDM 3D printers.
Features
  • Planner lookahead to maintain fast motion.
  • High stepping rate, ideally 20KHz or higher
  • Interrupt-based movement with real linear acceleration
  • Interrupt-based temperature protection
  • Pressure Advance extrusion
  • Endstops support
  • SD Card support with sub-folders and long filenames
  • 20x4 Character LCD support
  • LCD Menu with Encoder Wheel
  • Persistent storage (EEPROM) for configurable settings
  • Temperature oversampling
  • Dynamic Temperature setpointing aka "AutoTemp"
  • Heater power reporting for PID monitors
Compatible Electronics
How to download

Can download like this: ?

Documentation & Misc. Notes

?

Sprinter

FIRMWARE INFO
Details Description

Name : Sprinter
Author(s) : Kliment, caru, tonok, tesla893
Status : Latest commit b682014 on Sep 3, 2013

forked from Klimentkip. Seems to be a popular firmware
Features
  • SD card reader
  • stepper extruder
  • extruder speed control
  • movement speed control
  • constant or exponential acceleration
  • heated build platforms
Compatible Electronics
How to download

Can download like this:

git clone https://github.com/kliment/Sprinter.git
Documentation & Misc. Notes

Only documentation seems to be over at Sprinter

  • Possibly called Carukip too
  • Supposedly aka Tesla but I can't find any references in the wiki to that
  • thermocouples are experimental

Druid Firmware

FIRMWARE INFO
Details Description

Name : Druid Firmware
Author(s) : Daniel Massicotte
Status : Ver. 1.0.2 will be released on Dec 15, 2023.

Firmware that currently runs only on Flashforge CoreBoard (all Rev.) (Dreamer, Dreamer NX, Inventor, Dremel 3D20). It started as a fork of Marlin but has been completely re-written since.
Features
  • Written in C++ and assembly, with emphasis on ease of use, high performance achieved using only custom libraries.
  • Optimized for Flashforge & Dremel hardware.
  • QUAD firmware boot. The Firmware to be used at next boot, can be selected thru GUI. (Druid.BIN, Dremel.BIN, Marlin.BIN pre-loaded on EXTERNAL SD-CARD)
  • Temperature graph directly on TFT.
  • Feedrate %, Flowrate %, all fan speed and all heaters temperature adjustable while printing.
  • Steppers current reduced to 50% when inactive for a determined period, (similar to CNC operation).
  • Configuration via GUI directly or by providing a config file, no need to recompile and flash MCU.
  • SD card reader with a GUI file browser using touchscreen gestures.
  • GUI is running on the MCU and is an indissociable part of the firmware.
  • GUI resolution: 480 x 320.
  • GUI fully customizable, color, fonts, buttons, brightness, contrast, etc.
  • Highly compressed persistent storage (EEPROM or Flash memory). Uses less than 512 Bytes for all settings.
  • High Max Stepping rate, over 480Khz, when running on Flashforge Coreboard with 5 steppers.
  • Extruder cooling fan controlled using preset graph. (Variable extruder cooling with parmeters PWM vs.TEMP)
  • Support for Accelerometer, BL-Touch, expansion board.
  • Gcodes can be entered directly in the GUI using on-screen keypad.
  • Currently supports only Cartesian, with planned development for CORE XY in 2023.
  • GUI provides assisted procedures for many functions like: PID Tuning, Filament change, Manual Bed levelling...
  • On screen 3D preview of the model and data using custom 3D implementation.
  • Shorter data transmission to the host when reporting temperature, position, etc., allowing higher refresh rate.
  • Robust password protection, preventing unauthorized use of the printer.
  • Compatible with almost all Host applications, but can also perform hostless printing. (SD CARD)
  • Extended Configurations and Capabilities report (M115, M360, M503), to improve auto-detection by all HOST (Octoprint, Repetier, etc)
  • Has been added in Repetier Server as 'Supported firmware' and all Druid parameters are auto-detected by Repetier Server.
Compatible Electronics
  • All printers that uses a Flashforge CoreBoard (all Rev.) powered by ARM Cortex-M4, STM32F407
  • Flashforge Dreamer.
  • Flashforge Dreamer NX.
  • Flashforge Inventor.
  • Dremel 3D20.
  • Powerspec Ultra 3D.
  • Monoprice Inventor 1.

  • Custom boards:
  • Druid EXP1 - Expansion Board (connect to actual Flashforge CoreBoard, to add functionalities)
  • Druid MAX8 - Controller Board with 8x Steppers, 8x PWM fans, 8x Inputs, 8x Temp. Sensors, 8x Servo, and expansion header.
How to download

https://www.druid3d.com

Documentation & Misc. Notes

https://www.druid3d.com

Teacup

FIRMWARE INFO
Details Description

Name : Teacup
Author(s) : Traumflug, Triffid_hunter, jakepoz
Status : Active as of August 2015

A dummy-proof firmware for many ATmega and ARM based controllers with emphasis on ease of use, high performance and clean code design.
Features
  • Comes with Teacup Configtool for configuration and building, no text file editing.
  • Moves steppers smoothly with up to 48 kHz on ATmega based controllers, 130 kHz on ARM based ones.
  • Start-stop ramping, lookahead.
  • Printing from SD card.
  • Unlimited number of heaters, devices and temperature sensors.
  • Support for USB-equipped ATmegas.
  • Support for spindles, CNC-milling.
  • For vintage printers: supports RepRap-style acceleration, DC extruders and Gen3 extruder boards.
Compatible Electronics
  • Works on 8-, 32- and 64-bit controllers.
  • Works on virtually all ATmega based boards from ATmega168 to ATmega2560, including USB equipped ones.
  • Also Teensy3, HBox and NXP LPC1114 based controllers.
  • Fairly straightforward for porting, needs no Arduino IDE.
How to download

Newbies see Teacup Firmware#Installation.

Developers download like this:

git clone https://github.com/Traumflug/Teacup_Firmware.git
Documentation & Misc. Notes

Documentation is in the wiki under Teacup Firmware.

sjfw

FIRMWARE INFO
Details Description

Name : sjfw
Author(s) : ScribbleJ
Status : active as of Jan 9, 2012

A featureful modern Reprap firmware.
Features
  • High-speed gcode pipeline. No intra-move delay.
  • LCD/Keypad control panel, Hostless printing
  • Acceleration
  • Volumetric/5D
  • SD Card
  • FULL RUNTIME CONFIG.
Compatible Electronics
How to download

Download from GitHub by running

git clone https://github.com/ScribbleJ/sjfw.git
Documentation & Misc. Notes

See the sjfw page for more information.

Marlin

FIRMWARE INFO
Details Description

Name : Marlin
Author(s) : Erik van der Zalm: Active as of February 2014; Bernhard Kubicek: Active as of November 2011
Status : Active as of July 2021

Development on this firmware appears to be very active. Forked from Sprinter and Grbl.
Features
  • Multi-platform (AVR, SAM, LPC, STM32, ESP32, Teensy, BCM283x, BCM2711B0, etc.)
  • Configurable for a wide variety of machines
  • Interrupt-based temperature protection
  • Planner lookahead to maintain fast motion.
  • High stepping rate, ideally 20KHz or higher
  • Interrupt-based movement with real linear acceleration
  • Optimized S-curve acceleration
  • Junction Deviation for smooth direction changes
  • Linear Advance extrusion. (For more info see: this reprap-dev mailing list message.)
  • Endstops support, enhanced for interruptible pins
  • Endstop trigger reporting to the host software.
  • SD Card support with sub-folders and long filenames
  • Host interaction
  • LCDs / Controllers: Character, Graphical, and Serial (Ideally 20x4, but 16x4 and 20x2 are supported.)
  • LCD Menu with Encoder Wheel or Keypad for standalone SD card printing.
  • Persistent storage (EEPROM, Flash, SD) for configurable settings
  • Arc and Bezier Curve support in 3 planes
  • Temperature oversampling
  • Dynamic Temperature setpointing aka "AutoTemp"
  • Heater power reporting for PID monitors
  • CoreXY and Delta support.
Compatible Electronics
How to download

The latest release of Marlin can always be found at marlinfw.org.

All Marlin release and development branches are hosted on Github.

Documentation & Misc. Notes

MK4duo

FIRMWARE INFO
Details Description

Name : MK4duo
Author(s) : Alberto Cotronei @MagoKimbra: Active as of 2013
Status : Active as of 2013

Development on this firmware appears to be very active. Forked from Marlin.
Features
  • A single Firmware for all types of printers; Cartesian, Delta, MORGAN SCARA, MAKERARM SCARA, CoreXY, CoreXZ & CoreYZ and their reverse.
  • The possibility of having only one hotend independently from the extruders that you have.
  • The addition of the 6th extruder.
  • Management Color Mixing Extruder
  • System Management MKr4 for 4 extruders width just two drivers and 8 relay.
  • System Management MKr6 for 6 extruders width just two drivers and 8 relay.
  • Management Multyextruder NPr2, 4/6 extruders with only two engines.
  • Management Dual Extruder DONDOLO.
  • Adding commands to facilitate purging of hotend.
  • Step per unit varied for each extruder as well as the feedrate and the acceleration.
  • Added Delta Auto Calibration Algorithm of Minor Squares based on DC42 RepRapFirmware 7 points
  • Added Delta Auto Calibration Algorithm based on Thinkyhead Marlin
  • Added Delta Auto Calibration Algorithm based on Rich Cattell Marlin
  • Adding Debug Dryrun used by repetier.
  • Added total Power on time writed in SD CARD.
  • Added total Power consumption writed in SD CARD.
  • Added total filament printed writed in SD CARD.
  • Added anti extruder idle oozing system.
  • Added Hysteresis and Z-Wobble correction (only cartesian printers).
  • Added support reader TAG width MFRC522
  • Added support NEXTION lcd touch
  • Added Cooler and Hot Chamber
  • Added Laser beam and raster base64
  • Added CNC Router
  • Addes Mesh Bed Level (MBL)
  • Added Stop and Save for Restart (SSR)
  • Added Nozzle Clean Features
  • Added Nozzle Park Features
  • Added RGB LED
  • Added Case Light
  • Added ABL or MBL leveling fade height
  • Added save in EEPROM ABL or MBL
  • Added Door switch
  • Added TMC2130 motor driver
  • Added Power Check for Stop and Save
  • Added Probe Manually
  • Added LCD Bed Leveling
Compatible Electronics
How to download

You can download tagged versions on [1]

All branches (most current is MK4duo 4.3.19_dev) are on [2]

Documentation & Misc. Notes

The included readme.md MK4duo

Sailfish

FIRMWARE INFO
Details Description

Name : Sailfish
Author(s) : Jetty: Active as Dec 2011; Dan Newman: Active as February 2012
Status : Active as of June 2014

This is firmware for Makerbots.
There seems to be two different versions of this firmware. One I think is for older makerbots forked off the Makerbot G4Firmware. The other appears to be newer and forked from Marlin.
Features
  • Acceleration support with acceleration planner look ahead
  • Dual extrusion including "ditto printing" (concurrently print two identical copies of a single item)
  • Support for asymmetric advance algorithms; JKN Advance
  • Support for yet-another-jerk (YAJ) algorithm
  • Support for firmware based deprime (reversal/retraction)
  • High step rate (20 KHz)
  • Automated Build Platform (ABP) support
  • Heated build platform support
  • Safety cutoff support (print stops when extruder safety cutoff triggered)
  • Interrupt based temperature protection
  • Interrupt based movement with real linear acceleration
  • PID based temperature control on extruders and heated build platform
  • Full endstop support
  • SD Card support
  • EEPROM storage firmware related parameters
  • LCD Interface (16x4, 20x4, 24x4)
    • Extruder load/unload
    • Preheat
    • Continuous jog on hold button
    • Lifetime filament counter
    • Jog "User View" (X,Y directions orientated to user)
    • Build: "Time Left", "Elapsed", "Z Position", "Percent Complete", "Filament Usage"
    • Pause during build
    • Auto Pause @ Z Position
    • Multi colored printing with single extruder
    • Page Up / Down in menus / file lists
    • Print Another
    • Override GCode temperature
    • Supports 16x4, 20x4 and 24x4 LCD displays
    • Multiple copies
    • Copy n of N indicator during Build
    • Advance belt button
    • Profiles (saves recalibrating when swapping platforms)
    • Calibration
    • Home Offsets
    • Mood Light Support: [3]
    • Buzzer Support: [4]
    • Homing
    • Steppers Enable/Disable
    • Endstop testing
    • Extruder fan control
Compatible Electronics
How to download

See Thingiverse thing 32084

Sources are available at github for both the Gen3/4-based firmware and the Marlin-based firmware

Documentation & Misc. Notes

Sailfish documentation.

Grbl

FIRMWARE INFO
Details Description

Name : Grbl
Author(s) : Simen Svale Skogsrud
Status : active as of May 2014

Grbl is a no-compromise, high performance, low cost alternative to parallel-port-based motion control for CNC milling. Does not control extruders.
Features
  • run on a vanilla Arduino (Duemillanove/Uno) as long as it sports an Atmega 328
  • nice simple controller for CNC milling
  • written in tidy, modular C
  • does not require parallel port
  • able to maintain more than 30kHz step rate and delivers a clean, jitter free stream of control pulses.
  • full acceleration-management with look ahead planner
Compatible Electronics
How to download

Downloadable from github by running:

git clone https://github.com/simen/grbl.git
Documentation & Misc. Notes

Documentation is at http://dank.bengler.no/-/page/show/5471_gettinggrbl

From the website:

We have limited g-code-support by design. Grbl support all the common operations encountered in output from CAM-tools, but leave human g-coders frustrated. No variables, no tool offsets, no functions, no arithmetic and no control structures. Just the basic machine operations. We have yet to find a CAM-generated file that failed to run, though.
  • No gui, all interaction is through command line

Repetier-Firmware

FIRMWARE INFO
Details Description

Name : Repetier
Author(s) : Repetier
Status : v1.0.3 (Active as February 2019, with v 2.x in development)

forked from Sprinter.
Features
  • RAMP acceleration support.
  • Path planning (look ahead) for higher print speeds. (since version 0.32, 2011/9/24)
  • Fast ooze prevention system. (since version 0.35, 2011/10/8)
  • Trajectory smoothing for smoother lines. (since version 0.32, 2011/9/24)
  • Nozzle pressure control for improved print quality with RAMPS. (since version 0.32, 2011/9/24)
  • Fast - 16000 Hz and more stepper frequency is possible with a 16 MHz AVR. (since version 0.32, 2011/9/24)
  • Multiple extruder supported (experimental).
  • Standard ASCII and improved binary (Repetier protocol) communication.
  • Autodetect the command protocol, so it will work with any host software.
  • Continuous monitoring of one temperature.
  • Important parameters are stored in EEPROM and can easily modified without recompilation of the firmware.
  • Stepper control is handled in an interrupt routine, leaving time for filling caches for next move.
  • PID control for extruder temperature.
  • Interrupt based sending buffer (Arduino library normally waits for the recipient to receive written data)
  • Small RAM memory print, resulting in large caches.
  • Supports SD-cards.
  • mm and inches can be used for G0/G1
  • Works with Skeinforge 41, all unknown commands are ignored.
  • Dry run : Execute your GCode without using the extruder. This way you can test for non-extruder related failures without actually printing.
  • User defined and generic thermistor table( just set r0,t0,beta,r1,r2) in config (since version 0.31).
  • LCD support
Compatible Electronics
How to download

github code

Documentation & Misc. Notes

github wiki

Aprinter

FIRMWARE INFO
Details Description

Name : Aprinter
Author(s) : Ambroz Bizjak
Status : Active as of Nov 2015

Aprinter is a portable firmware system, written from scratch in C++ with a heavy dose of template metaprogramming. A web-based configuration system is used to configure the high-level features for a particular machine, but also to define the low-level configuration for supporting different controller boards.
Features
  • Linear-delta, rotational-delta and CoreXY support. New geometries can be added by implementing a foward and inverse coordinate transformation. A processor with sufficient speed and RAM is needed (not AVR).
  • Bed probing using a digital input line (e.g. microswitch). Height measurements are printed to the console.
  • Bed height correction, either with a linear or quadratic polynomial, calculated by the least-squares method.
  • SD card and FAT32 filesystem support. G-code can be read from the SD-card. Optionally, the SD card can be used for storage of runtime configuration options. A custom (fully asynchronous) FAT32 implementation is used, with limited write support (can write to existing files only).
  • Ethernet network (currently on Duet only). Gcode console over TCP is supported (equivalent to the serial-port interface), with multiple concurrent connections. Pronterface can connect this way.
  • Supports heaters and fans. Any number of these may be defined, limited only by available hardware resources.
  • Experimental support for lasers (PWM output with a duty cycle proportional to the current speed).
  • Supports multiple extruders. However, the interface is not compatible to typical firmwares. There are no tool commands, instead the extruders appear as separate axes. A g-code post-processor is provided to translate tool-using gcode into what the firmware understands. This post-processor can also control fans based on the "current tool".
  • Unified runtime configuration system. Most of the "simple" configuration values which are available in the configuration editor have the corresponding named runtime configuration option (e.g. XMaxPos). Configuration may be saved to and restored from a storage backend, such as an EEPROM or a file on an SD card.
  • Homing of multiple axes in parallel.
  • Homing cartesian axes involved in a coordinate transformation (e.g. homing X and Y in CoreXY).
  • Slave steppers, driven synchronously, can be configured for an axis (e.g. two Z motors driven by separate drivers).
  • Constant-acceleration motion planning with look-ahead. To speed up calculations, the firmware will only calculate a new plan every N ("Lookahead commit count") commands. This allows increasing the lookahead without an asymptotic increase of CPU usage, only limited by the available RAM.
  • High precision step timing. For each stepper, a separate timer compare channel is used. In the interrupt handler, a step pulse for a stepper is generated, and the time of the next step is calculated analytically.
Compatible Electronics
How to download

github online configuration tool and build service

Documentation & Misc. Notes

github

RepRap Firmware

FIRMWARE INFO
Details Description

Name : RepRap Firmware
Author(s) : DC42 and Chrishamm(active) Adrian Bowyer (initial)
Status : DC42 and Chrishamm forks active as of Oct 2019

RepRapFirmware is intended to be a fully object-oriented highly modular control program for a wide variety of machine kinematics
Features
Compatible Electronics
How to download
Documentation & Misc. Notes

ImpPro3D

FIRMWARE INFO
Details Description

Name : ImpPro3D
Author(s) : MaxPro3D
Status : Active as of Feb 2014

Adaptation of Sprinter for a specific electronics named 'ImpPro3D'
Features
  • stepper extruder
  • extruder speed control
  • movement speed control
  • heated build platforms
Compatible Electronics
How to download

Can download like this:

git clone https://github.com/MaxPro3D/Firmware_ImpPro3D.git
Documentation & Misc. Notes

Only documentation seems to be over at ImpPro3D and https://sites.google.com/site/imppro3den/


Smoothie

FIRMWARE INFO
Details Description

Name : Smoothie
Author(s) : Jim Morris, Arthur Wolf, Mark Cooper, Triffid Hunter, and an army of others
Status : Active as of July 2016

Firmware for 32-bit ARM NXP LPC1768 Cortex-M3 boards (includes a port of Grbl)
Features
  • Ethernet
  • USB composite
  • Easy configuration without compilation
  • Digital current control
  • Fast an "near-perfect" step generation and acceleration
  • Support for laser and CNC milling also
  • Extremely complete documentation
  • Large and active community
  • Stepper extruder
  • Extruder speed control
  • Movement speed control
  • Heated build platforms
  • SD card support
Compatible Electronics
How to download

Can download like this:

git clone https://github.com/Smoothieware/Smoothieware.git
Documentation & Misc. Notes

Redeem

FIRMWARE INFO
Details Description

Name : Redeem
Author(s) : Elias Bakken
Status : Active as of Nov 2015

Firmware for BeagleBone Black written in Python with a small core of the Bresenham algorithm written in C. The C-core is based on Repetier.
Features
  • Stepper extruder
  • Extruder speed control
  • Movement speed control
  • Heated build platforms
  • Cartesian, Delta, H-belt, CoreXY support
  • Gcodes accepted via USB, Ethernet, linux pipes.
Compatible Electronics
How to download

Can download like this:

git clone https://bitbucket.org/intelligentagent/redeem
Documentation & Misc. Notes

Further reading