Sjfw

From RepRap
Revision as of 19:31, 5 August 2011 by ScribbleJ (talk | contribs)
Jump to: navigation, search
Crystal Clear action run.png
sjfw

Release status: working

Sfw screen temp.jpg
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.

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.

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)