вторник, 15 ноября 2011 г.

Прошивка микроконтроллера GEN3

     Изначально я использовал родную прошивку и софт RepRap.
Качество печати было не очень хорошим и я попробовал использовать другие программы.
Выбор остановил на Skeinforge с Printrun.
Качество печати порадовало, но появилась проблема взаимодействия RepRap прошивки микроконтроллера с Printrun. При печати вылезали ошибки "Serial Error" и т.п.
В итоге для больших деталей все заканчивалось зависанием печати.
     Для GEN3 не такой и большой выбор прошивок. Список здесь.
Нашел Teacup.
    Работает нормально.
Заливал через Arduino 0021.
Для Gen3 файл config.gen3.h переименовал в config.h
Настройки моего принтера:
      материнка (config.h) :


#define STEPS_PER_MM_X 31.4913//10.1472
#define STEPS_PER_MM_Y 31.4913//10.1472
#define STEPS_PER_MM_Z 1300//858.14
#define STEPS_PER_MM_E 93.75
#define MAXIMUM_FEEDRATE_X 3000
#define MAXIMUM_FEEDRATE_Y 3000
#define MAXIMUM_FEEDRATE_Z 50
#define MAXIMUM_FEEDRATE_E 3000
#define SEARCH_FEEDRATE_X 1500
#define SEARCH_FEEDRATE_Y 1500
#define SEARCH_FEEDRATE_Z 50
#define E_STARTSTOP_STEPS 0
#define X_MIN 0.0
#define X_MAX 190.0
#define Y_MIN 0.0
#define Y_MAX 190.0
#define Z_MIN 0.0
#define Z_MAX 100.0
#define E_ABSOLUTE


ускорение отключил
// #define ACCELERATION_REPRAP
//#define ACCELERATION_RAMPING
//#define ACCELERATION 10.
// #define ACCELERATION_TEMPORAL


#define TX_ENABLE_PIN DIO12
#define RX_ENABLE_PIN DIO13


#define X_STEP_PIN DIO15
#define X_DIR_PIN DIO18
#define X_MIN_PIN DIO20
//#define X_MAX_PIN DIO21
#define X_ENABLE_PIN DIO19
//#define X_INVERT_DIR
#define X_INVERT_MIN
//#define X_INVERT_MAX
#define X_INVERT_ENABLE 1


#define Y_STEP_PIN DIO23
#define Y_DIR_PIN DIO22
#define Y_MIN_PIN AIO6
//#define Y_MAX_PIN AIO5
#define Y_ENABLE_PIN AIO7
#define Y_INVERT_DIR 1
#define Y_INVERT_MIN
//#define Y_INVERT_MAX
#define Y_INVERT_ENABLE 1


#define Z_STEP_PIN AIO4
#define Z_DIR_PIN AIO3
#define Z_MIN_PIN AIO1//1
//#define Z_MAX_PIN AIO1//0
#define Z_ENABLE_PIN AIO2
//#define Z_INVERT_DIR
//#define Z_INVERT_MIN
//#define Z_INVERT_MAX
#define Z_INVERT_ENABLE 1


Правда настройки для INVERT и ENABLE подобраны не для родных репраповских драйверов шаговиков.
Настраивал методом перебора:
 если двигатель не крутится, то меняю INVERT_ENABLE
 если двигатель крутится не в ту сторону то меняю DIR
 помучился с отработкой минимума по оси Z - нашел комбинацию приведенную выше.


#define E_STEP_PIN DIO17
#define E_DIR_PIN DIO16
//#define E_ENABLE_PIN xxxx
#define E_INVERT_DIR


#define SD_CARD_DETECT DIO2
#define SD_WRITE_PROTECT DIO3


#define PS_ON_PIN DIO14


#define TEMP_HYSTERESIS 5
#define TEMP_RESIDENCY_TIME 60
#define TEMP_INTERCOM


DEFINE_TEMP_SENSOR(noheater, TT_INTERCOM, 0, 0)
DEFINE_TEMP_SENSOR(bed, TT_INTERCOM, 1, 0)


#define HEATER_bed HEATER_noheater


#define HEATER_BED 1
#define BAUD 19200

     экструдер:
в настройках ничего не менял.

    В итоге ошибки пропали, но иногда, когда печатается большая деталь с множеством мелких деталей (в основном заливка) принтер останавливается на пару секунд и продолжает печатать. Хоть не зависает окончательно.
Что с этим делать не знаю, наверное менять электрику на GEN7.
Для нее и выбор программ побольше.