Sjfw
sjfw
Release status: working
Description | Firmware for Atmega644p and greater processors.
|
License | GNU GPL v3
|
Author | |
Contributors | |
Based-on | [[]]
|
Categories | Firmware
|
CAD Models | |
External Link |
See sjfw on Github for the latest version of this firmware.
Extensively tested on RAMPS and Gen4.
Contents
SUPPORTED HARDWARE
- Prusa Reprap RAMPS1.2 (experimental!)
- Prusa Reprap RAMPS1.3
- Thing-O-Matic Gen4
FEATURES
- Control pad and full HOSTLESS printing!
- Temperature history graph
- Advanced Gcode Pipeline
- ISR driven movement
- Acceleration
- LCD Temperature Display
- "Volumteric" Printing
- SD Card support
- Tested and working with Pronterface Reprap host, the best Reprap host there is presently.
COMPILING AND INSTALLING
This firmware is NOT Arduino-IDE based. You need to be able to use GNU Make, and have lib avr, avr-gcc, and avrdude installed.
Examine and edit the top of the Makefile to your satisfaction. Optionally, look under rampsXX/config.h or gen4/config.h to change the firmware settings.
make clean && make && make upload
IMPORTANT NOTES ON USING THIS FIRMWARE
- The Gen4 Support is perfectly useable on a Reprap, but it is designed for use by the Thing O Matic. The important part is this; the Gen4 support ASSUMES you are using the Makerbot Thing-O-Matic EC Firmware on your EC. If you are not, you must install that on your EC first! If you are not using a ToM on Gen4 you will also need to edit the steps settings and speeds/accel in the config file to suit.
- The latest release has been tested to work with the EXCELLENT "Pronterface" Host by Kliment: https://github.com/kliment/Printrun
CURRENTLY KNOWN BUGS/ISSUES
- Config file for ramps13 includes everything; the others may need some love for control panel and lcd support.
- Motors that are set to disable after a move only get disabled a few moves thereafter. This should work fine, but don't forget a M84 at the end of your gcode to turn off all motors.
- SD card support works in the firmware, but is not compatible with the Gcodes that Pronterface emits. This firmware presently has two Gcodes for SD access:
M204 - fetch filename from SD M205 - print last fetched filename
- THE SD CODE MAY FAIL ON LONG FILENAMES. 8.3 FILENAMES WORK FINE IN THE MEANTIME.
- THERE IS NO HOMING GCODE. There probably never will be; it's unnecessary. Just make a move towards the endstops that is longer than the platform, then mark that spot with a G92 and carry on. Here's some examples:
Here's my start.gcode from my Prusa:
M104 S190 (start heating up, but don't wait) G92 X0 Y0 Z0 E0 (set current position) G1 X-300 Y-300 F2000 (Move to X/Y endstops) G92 X0 Y0 Z0 E0 (set current position) G1 X5 Y5 (Move away from X/Y endstops) G92 X0 Y0 Z0 E0 (set current position) G1 X-10 Y-10 F800 (Move back to X/Y endstops) G1 Z-200 F400 (Move to Z endstop) G92 X0 Y0 Z0 E0 (set current position) G1 Z5 F400 (Move away from Z endstop) G92 X0 Y0 Z0 E0 (set current position) G1 Z-10 F400 (Move to Z endstop) G92 X0 Y0 Z-0.7 E0 (set current position - note endstop is .7 below platform height) G1 X0 Y0 Z30 F2000 (move to waiting position) M109 S190 (wait for extruder to reach temperature)
Here's the start.gcode from my ToM:
M104 S180 (start heating extruder, but don't wait) M140 S50 (start heating platform, but don't wait) G92 X0 Y0 Z0 E0 (set current position) G1 Z200 F800 (move to Z endstop) G1 X-200 Y-200 F2000 (move to X,Y endstops) G92 X0 Y0 Z0 E0 (set current position) G1 Z-5 X5 Y5 F800 (move away from XYZ endstops) G92 X0 Y0 Z0 E0 (set current positions) G1 Z10 X-10 Y-10 F400 (move to XYZ endstops) G92 X-5 Y-25 Z116.7 E0 (set current positions) G1 X0 Y0 Z50 F6000 (move to waiting position) M84 (disable motors) M109 S180 (wait for extruder to reach temperature)