This page is the authoritative list of active firmwares.
For a list of out-of-date firmwares, see List of Abandoned and Deprecated Firmware:
| FIRMWARE INFO
|
| Details |
Description
|
|
Name : Klipper
Author(s) : KevinOConnor
Status : Active as of September 2024
|
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
|
- ARM, AVR, and PRU (portable code to make adding more easier.)
- Example configs for:
|
| 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
|
| FIRMWARE INFO
|
| Details |
Description
|
|
Name : Prusa Firmware
Author(s) : Prusa Research
Status : Active as of September 2024
|
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
|
|
?
|
| 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 September 2024
|
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
|
|
|
| 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
|
| FIRMWARE INFO
|
| Details |
Description
|
|
Name : RepRap Firmware
Author(s) : DC42 and Chrishamm(active) Adrian Bowyer (initial)
Status : DC42 and Chrishamm forks active as of September 2024
|
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
|
|
|
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 September 2024
|
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
|
|
|
| FIRMWARE INFO
|
| Details |
Description
|
|
Name : GrblHAL
Author(s) : Terje Io
Status : active as of September 2025
|
A continuation of the Grbl project, GrblHAL adds a hardware abstraction layer, extending support to many new 32 bit boards. Like Grbl, GrblHAL is primarily intended for CNC milling. Does not control extruders.
|
| Features
|
- run on a variety of platforms, including ESP32, RP2040, STM32Fx, LPC176x, and more
- Extends the supported Gcode range from grbl, but includes backwards-compatible modes
- nice simple controller for CNC milling
- written in tidy, modular C
- 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
|
- ESP32
- RP2040, RP2350
- STM32Fx
- MSP432
- TMC123, TMC129x
- STM32Fx
- LPC1768, LPC1769
- PSoC 5
- SAMD21
- SAM3X8E
|
| How to download
|
|
Downloadable from github by running:
git clone https://github.com/grblHAL/core.git
|
| Documentation & Misc. Notes
|
|
Documentation is at https://github.com/grblHAL/core/wiki
From the website:
- grblHAL is a rewrite of grbl 1.1 aimed at 32-bit processors. A hardware abstraction layer (HAL) has been introduced in order to completely separate the core grbl code from the processor/hardware specific code (driver coder). The driver code is accessed from the core via function pointers and the driver announces implemented functionality via these and flags in the HAL structure.
- This approach has resulted in a "clean" grbl core that is not "contaminated" by any processor/hardware specific code. Changes/bug fixes to the core are thus instantly available to all drivers, there should be no need to touch it for updates...
- More than 13 drivers for a range of processors are currently available, these with varying functionality depending on available resources like number of GPIO pins and processor peripherals. The driver "tell" the core about what is available via the HAL structure and the core adjusts itself accordingly. Writing additional drivers is relatively easy ase there is no need to tinker with the core - a driver might be implemented in a single separate file.
|
Further reading