List of Firmware

From RepRap
Revision as of 04:25, 4 July 2016 by Arthurwolf (talk | contribs) (Smoothie)
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:


Sprinter

FIRMWARE INFO
Details Description

Name : Sprinter
Author(s) : Kliment, caru, tonok, tesla893
Status : Active as of Feb 2012

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

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 June 2014

Development on this firmware appears to be very active. Forked from Sprinter and Grbl.
Features
  • Look ahead (Keep the speed high when possible. High cornering speed.)
  • High steprate
  • Interrupt-based temperature protection
  • Interrupt-based movement with real linear acceleration
  • Preliminary support for Matthew Roberts' advance algorithm. (For more info see: this reprap-dev mailing list message.)
  • Full endstop support
  • SD Card support
  • SD Card folders (works in Pronterface)
  • LCD Support, graphical and character-based (Ideally 20x4, but 16x4 also supported.)
  • LCD menu system for autonomous SD card printing, controlled by an click-encoder.
  • EEPROM storage of configurable settings (e.g. max-velocity, max-acceleration, etc.)
  • Arc support
  • Temperature oversampling
  • Dynamic Temperature setpointing aka "AutoTemp"
  • Support for QTMarlin, a very beta GUI for PID-tuning and velocity-acceleration testing.
  • Endstop trigger reporting to the host software.
  • Includes a customized SDCardLib supporting long filenames
  • Heater power reporting. Useful for PID monitoring.
  • CoreXY support.
Compatible Electronics
How to download

You can download tagged versions on github

All branches (most current is Marlin 1.0.2) are on Github

Documentation & Misc. Notes

The included readme.md Marlin

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: [1]
    • Buzzer Support: [2]
    • 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 : v0.92 (Active as March 2015)

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) : Adrian Bowyer
Status : DC42 and Chrishamm forks active as of April 2016

RepRap Firmware is intended to be a fully object-oriented highly modular control program for

RepRap self-replicating 3D printers.

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