List of Firmware

From RepRap
Revision as of 19:14, 27 July 2014 by WillAdams (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) : Triffid_hunter, Traumflug, jakepoz
Status : Active as of November 2013

A featured firmware with emphasis on efficiency, flexibility and clean code design.
Features
  • Has better performance due to
  • written in C instead of C++
  • only uses integer math
  • minimizes long math interruptions
  • stepper extruder
  • extruder speed control
  • movement speed control
  • RepRap-style acceleration
  • start-stop ramping
  • lookahead
  • thermocouples
  • heated build platforms
  • Support for spindles, CNC-milling
  • Unlimited number of extruders
  • Sub-32K size can squeeze onto a plain old Arduino Uno ATmega328. Can fit on an ATmega168.
  • Support for USB-equipped ATmegas
  • Several supplemental enhancements are also available, including multi-extruder development, look ahead, and ARM porting.
Compatible Electronics
How to download

Can download like this:

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

Documentation and more information is over at github and on the wiki under Teacup Firmware.

  • this firmware was ported to ARM Cortex-M3 for the HBox_RepRap_Electronics.
  • DC motor extruder control is present but untested
  • contains a constant acceleration implementation based on this article

sjfw

FIRMWARE INFO
Details Description

Name : sjfw
Author(s) : ScribbleJ
Status : active as of Aug 8, 2011

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 may 2011; Bernhard Kubicek: Active as 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: http://reprap.org/pipermail/reprap-dev/2011-May/003323.html
  • Full endstop support
  • SD Card support
  • SD Card folders (works in pronterface)
  • LCD support (ideally 20x4)
  • LCD menu system for autonomous SD card printing, controlled by an click-encoder.
  • EEPROM storage of e.g. max-velocity, max-acceleration, and similar variables
  • many small but handy things originating from bkubicek's fork.
  • 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.
  • Updated sdcardlib
  • Heater power reporting. Useful for PID monitoring.
Compatible Electronics
How to download

You can download tagged versions on github

All branches, most current is Marlin_v1 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.40 (Active as Aug 2012)

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).
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 May 2014

Written from scratch in C++ with a heavy dose of template metaprogramming.
Features
  • Highly configurable design. Extra heaters, fans and axes can be added easily, and PWM frequencies for heaters and fans are individually adjustable unless hardware PWM is used.
  • Runtime configuration system, and configuration storage to EEPROM. Availability depends on chip/board.
  • Delta robot support. Additionally, new geometries can be added easily by defining a transform class. Performance will be sub-optimal when using Delta on AVR platforms.
  • SD card printing (reading of sequential blocks only, no filesystem or partition support).
  • Optionally supports a custom packed g-code format for SD printing. This results in about 50% size reduction and 15% reduction in main loop processing load (on AVR).
  • Bed probing using a microswitch (prints results, no correction yet).
  • Slave steppers, driven synchronously, can be configured for an axis (e.g. two Z motors driven by separate drivers).
  • For use with multiple extruders, a g-code post-processor is provided to translate tool commands into motion of individual axes which the firmware understands. If you have a fan on each extruder, the post-processor can control the fans so that only the fan for the current extruder is on.
  • Constant-acceleration motion with look-ahead planning. To speed up calculations, the firmware will only calculate a new plan every LookaheadCommitCount commands. Effectively, this allows increasing the lookahead count without an asymptotic increase of processing time, only limited by the available RAM.
  • Homing using min- or max-endstops. Can home multiple at once. where only 115200 is supported due to unfavourable interrupt priorities.es in parallel.
  • Heater control using PID or on-off control. The thermistor tables need to be generated with a Python script. Each heater is configured with a Safe temperature range; aheater is turned off in case its temperature goes beyound the safe range.
  • Fan control (any number of fans).
  • Stepper control based on interrupts, with each stepper having its own timer interrupt. Step times are computed analytically using the quadratic equation, employing custom assembly routines for sqrt and division on AVR. This ensures that steps happen when they should, without one stepper ending a move faster than others due to accumulated rounding errors, and stopping while all steppers finish.
  • Portable and ported design; three different microcontroller families are already supported.
  • Non-drifting heartbeat LED. Its period is exactly 1 second, subject to the precision of your oscillator.
  • Developed in C++11. Uses custom hardware abstractions and does not need the Arduino library.
Compatible Electronics
  • Melzi (atmega1284p only)
  • RAMPS 1.0, 1.1/1.2 or 1.3/1.4 (only RAMPS 1.4 with atmega2560 is tested).
  • RAMPS-FD, RADDS or other setup based on Arduino Due.
  • Teensy 3 (no standard board, needs manual wiring) (based on Freescale MK20DX128 ARM Cortex-M4).
How to download

github

Documentation & Misc. Notes

github


RepRap Firmware

FIRMWARE INFO
Details Description

Name : RepRap Firmware
Author(s) : Adrian Bowyer
Status : Active as of May 2014

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

RepRap self-replicating 3D printers.

Features
  • Web server
Compatible Electronics
How to download

github

Documentation & Misc. Notes

github

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) : Arthur Wolf
Status : Active as of Feb 2014

firmware for 32-bit ARM NXP LPC1768 Cortex-M3 boards (includes a port of Grbl)
Features
  • 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

further reading