3D-Drucker/Building Firmware
Erstmal das tar, was uns als "orginal firmware" gegeben wurde [1]. Leider kann das nicht passen, weil da Änderungen drin, sind die nach dem Workshop passiert sind. Deswegen Flucht nach vorne und neue Version selber bauen :)
Toolchain einrichten[Bearbeiten]
- arduino runterladen & entpacken (version 23 ist die die tut :) linux-32bit.tgz linux-64bit.tgz
- Marlin hohlen git clone git://github.com/ErikZalm/Marlin.git
- avr-libc, avr-gcc, avrdude installieren
- am besten das ganze in folgender Struktur ablegen:
<main> -> arduino-0023 -> Marlin
Anpassen an unser Board[Bearbeiten]
- Makfile anpassen (<main>/Marlin/Marlin/Makefile)
MCU = atmega644p HARDWARE_MOTHERBOARD = 62 INSTALL_DIR = ../../arduino-0023g
danach sollte das ganze mit einem einfachen make durchbauen (im Verzeichnis <main>/Marlin/Marlin).
da wir den komischen Booloader nicht verstehen, schuppsen wir das ganze nun einfach via avrispmkII zum Board:
avrdude -c avrispmkII -P usb -p atmega644p -U flash:w:applet/Marlin.hex:i
ErikZalm/Marlin@b3ebb71704[Bearbeiten]
Version (hefee, 1)[Bearbeiten]
Makefile anpassen:
HARDWARE_MOTHERBOARD ?= 62 ARDUINO_INSTALL_DIR ?= ../../arduino-0023 ARDUINO_VERSION ?= 23
Configuration.h (must have):
#define TEMP_SENSOR_0 1 //NTC 100k #define TEMP_SENSOR_BED 1 //NTC 100k
#define EXTRUDE_MINTEMP 155 //We print PLA with ~160°C
//#define ENDSTOPPULLUPS // Comment this out const bool X_ENDSTOPS_INVERTING = false; // X is not inverted const bool Y_ENDSTOPS_INVERTING = false; // Y is not inverted #define DISABLE_MAX_ENDSTOPS // We don't have max endstops #define DISABLE_Z true #define INVERT_Y_DIR true
#define DEFAULT_AXIS_STEPS_PER_UNIT {78.7402,78.7402,200*16/1.25,760*1.1} // Anzahl der Schritte pro Umdrehung: 200, 16 Micoschritte, 1,25mm Steigung pro Umdrehung
Configuration.h nice to have (all a little bit faster):
#define TEMP_RESIDENCY_TIME 5 // schneller starten, weil der nur 5sec wartet auf der Soll temperatur #define HOMING_FEEDRATE {50*60, 50*60, 5*60, 0} // set the homing speeds (mm/min) #define DEFAULT_MAX_FEEDRATE {500, 500, 50, 45} // (mm/sec)
Version (hefee, 2)[Bearbeiten]
all changes are in Configuration.h.
Max Pos[Bearbeiten]
#define X_MAX_POS 200 #define Y_MAX_POS 174 #define Z_MAX_POS 105
PID Extruder[Bearbeiten]
// Mendel Parts V9 on 12V #define DEFAULT_Kp 63.0 #define DEFAULT_Ki 2.25 #define DEFAULT_Kd 440
Velocity, Feedrate and Acceleration (max start/stop feedrate)[Bearbeiten]
#define DEFAULT_AXIS_STEPS_PER_UNIT {78.7402,78.7402,200*16/1.25,760*1.1*.84} // default steps per unit #define DEFAULT_MAX_FEEDRATE {500, 500, 10, 43} // (mm/sec) #define DEFAULT_MAX_ACCELERATION {9000, 1000, 20, 20} // X, Y, Z, E maximum start speed for accelerated moves. E default values are good for skeinforge 40+, for older versions raise them a lot.
Original Firmware[Bearbeiten]
- lfuse reads as FF
- hfuse reads as DC
- efuse reads as FD
avrdude -c avrispmkII -P usb -p atmega644p -U lfuse:w:0xff:m -U hfuse:w:0xdc:m -U efuse:w:0xfd:m
Denk[Bearbeiten]
unterschiedliche Firmware[Bearbeiten]
- Sprinter
- Tonokips's firmware
- Kliment
- Sprinter #
- last update Oct 14, 2012
- Marlin
- Based-on: Sprinter and grbl
- Marlin
- last update Mar 01, 2013
- grbl
- vermutlich für cnc Fräsen
- grbl
- last update Jan 18, 2013
Board[Bearbeiten]
- Sanguinololu Release Version 1.3a
- Hotend
- NTC 100kΩ
- Bed
- NTC 100kΩ