roboforum.ru

Технический форум по робототехнике.

Электроника RAMPS 1.4

Электроника RAMPS 1.4

FireFly » 02 мар 2012, 18:00

Решил попробовать поюзать шелд-плату RAMPS 1.4, в качестве "материнки" заюзал ардуино мега 2560.
Прошивку залил Sprinter. Все вроде как хорошо - оси летают, стол греется как положено.
Экструдер не подключал еще и вот из-за чего - транзистор на управлении подогревом стола пашет, при включении сведодиод горит, все пучком, а остальные ключи признаков жизни не подают. Седня весь день пытался это дело победить, но не получилось. Чую засада в прошивке, но обнаружить не могу где это дело поправить.
Итого ХЕЛП!! :D

если у кого есть настоенная прошивка под рампс для прусы, буду благодарен за скетч, очень хочеться понять что там и как.

Re: Электроника RAMPS 1.4

hudbrog » 02 мар 2012, 18:18

поставь марлин, у меня на нем рампс весь работает вроде =)

Re: Электроника RAMPS 1.4

FireFly » 02 мар 2012, 18:39

ага, сенкс, чет я эту версию упустил, попробуем
да еще... силовые ключи у всех рампсов так отчаянно греются? не очень понравилось, что места на плате под нормальный радиатор не особо, вентилятор как то спасает положение, но все равно не айс.

Re: Электроника RAMPS 1.4

setar » 03 мар 2012, 00:16

вообще не греются, на голове примерно 6 Ом , правда стол малость форсировал через укорочение контактов в два раза - пришлось запустить через реле, там порядка 15 А было, они грели ключ

Добавлено спустя 1 минуту 16 секунд:
не путаешь с нагревом мостов ? они грелись поначалу из за неопытности, затем снизил ток стало работать чуть теплым (с радиаторами но без обдува)

Re: Электроника RAMPS 1.4

FireFly » 03 мар 2012, 00:48

стол по спецификации не более 11 ампер жрет, провод с техкратным запасом - модельные закупки, там токи ебе... большие короче :D
ничего и ни когда не грелось, а тут кусок текстолита напрягает жутко... сижу думаю

Re: Электроника RAMPS 1.4

FireFly » 03 мар 2012, 13:00

Серег выложи плиз свой configuration.h для изучения

Re: Электроника RAMPS 1.4

Aseris » 03 мар 2012, 13:41

У мня кипарисовская плата, там ключи масенькие, - видимо в RAMS изначально транзистор криво выбран, нужен мосфет с очень низким сопротивлением перехода... На плате стоит чтото вроде от On Semiconductor c чифрами на корпусе 20 N6LG, вроде NTD20N06L

Re: Электроника RAMPS 1.4

setar » 03 мар 2012, 18:57

лучше изменения выложу, если что не понятно - спрашивай.
у меня из настройки как ни странно самую большую сложность вызвало разобраться с правильностью направлений осей и настройками концевиков, для калибровки динамических характеристик и нормального детектирования режима "срыва" пришлось поставить все 6 шт
Код: Выделить всёРазвернуть
diff --git a/Marlin/Configuration.h b/Marlin/Configuration.h
index 74c03eb..e6fd7d7 100644
--- a/Marlin/Configuration.h
+++ b/Marlin/Configuration.h
@@ -8,12 +8,12 @@
//User specified version info of THIS file to display in [Pronterface, etc] terminal window during startup.
//Implementation of an idea by Prof Braino to inform user that any changes made
//to THIS file by the user have been successfully uploaded into firmware.
-#define STRING_VERSION_CONFIG_H "2012-02-25" //Personal revision number for changes to THIS file.
-#define STRING_CONFIG_H_AUTHOR "erik" //Who made the changes.
+#define STRING_VERSION_CONFIG_H "28/02/2012" //Personal revision number for changes to THIS file.
+#define STRING_CONFIG_H_AUTHOR "Setar" //Who made the changes.

// This determines the communication speed of the printer
-#define BAUDRATE 250000
-//#define BAUDRATE 115200
+//#define BAUDRATE 250000
+#define BAUDRATE 115200

//// The following define selects which electronics board you have. Please choose the one that matches your setup
// Gen7 custom (Alfons3 Version) = 10 "https://github.com/Alfons3/Generation_7_Electronics"
@@ -29,7 +29,7 @@
// Ultimaker = 7
// Teensylu = 8
// Gen3+ =9
-#define MOTHERBOARD 7
+#define MOTHERBOARD 33

//===========================================================================
//=============================Thermal Settings  ============================
@@ -47,10 +47,10 @@
// 6 is EPCOS 100k
// 7 is 100k Honeywell thermistor 135-104LAG-J01

-#define TEMP_SENSOR_0 -1
+#define TEMP_SENSOR_0 1
#define TEMP_SENSOR_1 0
#define TEMP_SENSOR_2 0
-#define TEMP_SENSOR_BED 0
+#define TEMP_SENSOR_BED 4

// Actual temperature must be close to target for this long before M109 returns success
#define TEMP_RESIDENCY_TIME 10 // (seconds)
@@ -84,11 +84,15 @@
   #define K1 0.95 //smoothing factor withing the PID
   #define PID_dT 0.128 //sampling period of the PID

+    #define  DEFAULT_Kp 30
+    #define  DEFAULT_Ki 1.71 
+    #define  DEFAULT_Kd 131.25
+   
// If you are using a preconfigured hotend then you can use one of the value sets by uncommenting it
// Ultimaker
-    #define  DEFAULT_Kp  22.2
-    #define  DEFAULT_Ki (1.25*PID_dT) 
-    #define  DEFAULT_Kd (99/PID_dT) 
+//    #define  DEFAULT_Kp  22.2
+//    #define  DEFAULT_Ki (1.25*PID_dT) 
+//    #define  DEFAULT_Kd (99/PID_dT) 

// Makergear
//    #define  DEFAULT_Kp 7.0
@@ -115,9 +119,9 @@
#define ENDSTOPPULLUPS // Comment this out (using // at the start of the line) to disable the endstop pullup resistors

// The pullups are needed if you directly connect a mechanical endswitch between the signal and ground pins.
-const bool X_ENDSTOPS_INVERTING = true; // set to true to invert the logic of the endstops.
-const bool Y_ENDSTOPS_INVERTING = true; // set to true to invert the logic of the endstops.
-const bool Z_ENDSTOPS_INVERTING = true; // set to true to invert the logic of the endstops.
+const bool X_ENDSTOPS_INVERTING = false; // set to true to invert the logic of the endstops.
+const bool Y_ENDSTOPS_INVERTING = false; // set to true to invert the logic of the endstops.
+const bool Z_ENDSTOPS_INVERTING = false; // set to true to invert the logic of the endstops.

// For Inverting Stepper Enable Pins (Active Low) use 0, Non Inverting (Active High) use 1
#define X_ENABLE_ON 0
@@ -132,7 +136,7 @@ const bool Z_ENDSTOPS_INVERTING = true; // set to true to invert the logic of th
#define DISABLE_E false // For all extruders

#define INVERT_X_DIR true    // for Mendel set to false, for Orca set to true
-#define INVERT_Y_DIR false    // for Mendel set to true, for Orca set to false
+#define INVERT_Y_DIR true    // for Mendel set to true, for Orca set to false
#define INVERT_Z_DIR true     // for Mendel set to false, for Orca set to true
#define INVERT_E0_DIR false   // for direct drive extruder v9 set to true, for geared extruder set to false
#define INVERT_E1_DIR false    // for direct drive extruder v9 set to true, for geared extruder set to false
@@ -141,14 +145,14 @@ const bool Z_ENDSTOPS_INVERTING = true; // set to true to invert the logic of th
// ENDSTOP SETTINGS:
// Sets direction of endstops when homing; 1=MAX, -1=MIN
#define X_HOME_DIR -1
-#define Y_HOME_DIR -1
+#define Y_HOME_DIR 1
#define Z_HOME_DIR -1

#define min_software_endstops true //If true, axis won't move to coordinates less than HOME_POS.
#define max_software_endstops true  //If true, axis won't move to coordinates greater than the defined lengths below.
-#define X_MAX_LENGTH 205
-#define Y_MAX_LENGTH 205
-#define Z_MAX_LENGTH 200
+#define X_MAX_LENGTH 175
+#define Y_MAX_LENGTH 195
+#define Z_MAX_LENGTH 90
// The position of the homing switches. Use MAX_LENGTH * -0.5 if the center should be 0, 0, 0
#define X_HOME_POS 0
@@ -161,9 +165,9 @@ const bool Z_ENDSTOPS_INVERTING = true; // set to true to invert the logic of th

// default settings

-#define DEFAULT_AXIS_STEPS_PER_UNIT   {78.7402,78.7402,200*8/3,760*1.1}                    // default steps per unit for ultimaker
-#define DEFAULT_MAX_FEEDRATE          {500, 500, 5, 45}    // (mm/sec)   
-#define DEFAULT_MAX_ACCELERATION      {9000,9000,100,10000}    // 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
+#define DEFAULT_AXIS_STEPS_PER_UNIT   {64.335,64.6464,200*16/1.25,603}  //579.5                  // steps per unit
+#define DEFAULT_MAX_FEEDRATE          {300, 300, 5, 45}    // (mm/sec)   
+#define DEFAULT_MAX_ACCELERATION      {4000,4000,100,10000}    // 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

#define DEFAULT_ACCELERATION          3000    // X, Y, Z and E max acceleration in mm/s^2 for printing moves
#define DEFAULT_RETRACT_ACCELERATION  3000   // X, Y, Z and E max acceleration in mm/s^2 for r retracts
@@ -182,14 +186,14 @@ const bool Z_ENDSTOPS_INVERTING = true; // set to true to invert the logic of th
// M501 - reads parameters from EEPROM (if you need reset them after you changed them temporarily). 
// M502 - reverts to the default "factory settings".  You still need to store them in EEPROM afterwards if you want to.
//define this to enable eeprom support
-//#define EEPROM_SETTINGS
+#define EEPROM_SETTINGS
//to disable EEPROM Serial responses and decrease program space by ~1700 byte: comment this out:
// please keep turned on if you can.
-//#define EEPROM_CHITCHAT
+#define EEPROM_CHITCHAT

//LCD and SD support
//#define ULTRA_LCD  //general lcd support, also 16x2
-//#define SDSUPPORT // Enable SD Card Support in Hardware Console
+#define SDSUPPORT // Enable SD Card Support in Hardware Console

//#define ULTIPANEL
#ifdef ULTIPANEL
diff --git a/Marlin/Configuration_adv.h b/Marlin/Configuration_adv.h
index 38e9409..eb793bd 100644
--- a/Marlin/Configuration_adv.h
+++ b/Marlin/Configuration_adv.h
@@ -42,7 +42,7 @@
// you exit the value by any M109 without F*
// Also, if the temperature is set to a value <mintemp, it is not changed by autotemp.
// on an ultimaker, some initial testing worked with M109 S215 T260 F0.1 in the start.gcode
-//#define AUTOTEMP
+#define AUTOTEMP
#ifdef AUTOTEMP
   #define AUTOTEMP_OLDWEIGHT 0.98
#endif
@@ -68,7 +68,7 @@
// This defines the number of extruders
#define EXTRUDERS 1

-#define ENDSTOPS_ONLY_FOR_HOMING // If defined the endstops will only be used for homing
+//#define ENDSTOPS_ONLY_FOR_HOMING // If defined the endstops will only be used for homing
//#define Z_LATE_ENABLE // Enable Z the last moment. Needed if your Z driver overheats.

@@ -76,7 +76,7 @@
#define X_HOME_RETRACT_MM 5
#define Y_HOME_RETRACT_MM 5
#define Z_HOME_RETRACT_MM 1
-//#define QUICK_HOME  //if this is defined, if both x and y are to be homed, a diagonal move will be performed initially.
+#define QUICK_HOME  //if this is defined, if both x and y are to be homed, a diagonal move will be performed initially.

#define AXIS_RELATIVE_MODES {false, false, false, false}

@@ -142,13 +142,13 @@
#endif // ADVANCE

// A debugging feature to compare calculated vs performed steps, to see if steps are lost by the software.
-//#define DEBUG_STEPS
+#define DEBUG_STEPS

// Arc interpretation settings:
#define MM_PER_ARC_SEGMENT 1
#define N_ARC_CORRECTION 25

-const int dropsegments=5; //everything with less than this number of steps will be ignored as move and joined with the next movement
+const int dropsegments= 5; //everything with less than this number of steps will be ignored as move and joined with the next movement

// If you are using a RAMPS board or cheap E-bay purchased boards that do not detect when an SD card is inserted
// You can get round this by connecting a push button or single throw switch to the pin defined as SDCARDCARDDETECT
diff --git a/Marlin/Marlin.h b/Marlin/Marlin.h
index e01d98a..0269576 100644
--- a/Marlin/Marlin.h
+++ b/Marlin/Marlin.h
@@ -62,6 +62,8 @@
//#define MYPGM(s)  (__extension__({static char __c[] __attribute__((__progmem__)) = (s); &__c[0];}))  //This is the normal behaviour
//#define MYPGM(s)  (__extension__({static prog_char __c[]  = (s); &__c[0];})) //this does not work but hides the warnings

+// Macro for getting current active extruder
+#define ACTIVE_EXTRUDER ((int)active_extruder)

#define SERIAL_PROTOCOL(x) MYSERIAL.print(x);
#define SERIAL_PROTOCOLPGM(x) serialprintPGM(MYPGM(x));
diff --git a/Marlin/thermistortables.h b/Marlin/thermistortables.h
index 3071a6b..5db7cff 100644
--- a/Marlin/thermistortables.h
+++ b/Marlin/thermistortables.h
@@ -132,26 +132,47 @@ const short temptable_3[][2] PROGMEM = {
#endif
#if (THERMISTORHEATER_0 == 4) || (THERMISTORHEATER_1 == 4) || (THERMISTORHEATER_2 == 4) || (THERMISTORBED == 4) //10k thermistor
const short temptable_4[][2] PROGMEM = {
-   {1*OVERSAMPLENR, 430},
-   {54*OVERSAMPLENR, 137},
-   {107*OVERSAMPLENR, 107},
-   {160*OVERSAMPLENR, 91},
-   {213*OVERSAMPLENR, 80},
-   {266*OVERSAMPLENR, 71},
-   {319*OVERSAMPLENR, 64},
-   {372*OVERSAMPLENR, 57},
-   {425*OVERSAMPLENR, 51},
-   {478*OVERSAMPLENR, 46},
-   {531*OVERSAMPLENR, 41},
-   {584*OVERSAMPLENR, 35},
-   {637*OVERSAMPLENR, 30},
-   {690*OVERSAMPLENR, 25},
-   {743*OVERSAMPLENR, 20},
-   {796*OVERSAMPLENR, 14},
-   {849*OVERSAMPLENR, 7},
-   {902*OVERSAMPLENR, 0},
-   {955*OVERSAMPLENR, -11},
-   {1008*OVERSAMPLENR, -35}
+//   {1*OVERSAMPLENR, 430},
+//   {54*OVERSAMPLENR, 137},
+//   {107*OVERSAMPLENR, 107},
+//   {160*OVERSAMPLENR, 91},
+//   {213*OVERSAMPLENR, 80},
+//   {266*OVERSAMPLENR, 71},
+//   {319*OVERSAMPLENR, 64},
+//   {372*OVERSAMPLENR, 57},
+//   {425*OVERSAMPLENR, 51},
+//   {478*OVERSAMPLENR, 46},
+//   {531*OVERSAMPLENR, 41},
+//   {584*OVERSAMPLENR, 35},
+//   {637*OVERSAMPLENR, 30},
+//   {690*OVERSAMPLENR, 25},
+//   {743*OVERSAMPLENR, 20},
+//   {796*OVERSAMPLENR, 14},
+//   {849*OVERSAMPLENR, 7},
+//   {902*OVERSAMPLENR, 0},
+//   {955*OVERSAMPLENR, -11},
+//   {1008*OVERSAMPLENR, -35}
+
+   {1*OVERSAMPLENR, 452},
+   {54*OVERSAMPLENR, 146},
+   {107*OVERSAMPLENR, 118},
+   {160*OVERSAMPLENR, 102},
+   {213*OVERSAMPLENR, 91},
+   {266*OVERSAMPLENR, 82},
+   {319*OVERSAMPLENR, 75},
+   {372*OVERSAMPLENR, 66},
+   {425*OVERSAMPLENR, 62},
+   {478*OVERSAMPLENR, 55},
+   {531*OVERSAMPLENR, 52},
+   {584*OVERSAMPLENR, 46},
+   {637*OVERSAMPLENR, 37},
+   {690*OVERSAMPLENR, 32},
+   {743*OVERSAMPLENR, 27},
+   {796*OVERSAMPLENR, 21},
+   {849*OVERSAMPLENR, 14},
+   {902*OVERSAMPLENR, 7},
+   {955*OVERSAMPLENR, -3},
+   {1008*OVERSAMPLENR, -28}
};
#endif


Re: Электроника RAMPS 1.4

FireFly » 03 мар 2012, 18:59

усе, разобрался :) все оказалось просто - пока не подключишь термодатчики, нагревательные элементы заблокированы и включить их нельзя, что собстно логично. Хотя в прошивке teacup этой защиты нет, там все включается и выключается без наличия датчиков. Завтра уже буду пробовать печатать :Yahoo!:

Re: Электроника RAMPS 1.4

FireFly » 03 мар 2012, 23:04

+ - это менял, а - не трогал?
целиком бы файлик скинул, мне так удобнее было бы

Re: Электроника RAMPS 1.4

Grem » 04 мар 2012, 01:17

- удалилась строка
+ добавилась строка

Re: Электроника RAMPS 1.4

setar » 04 мар 2012, 20:35

это стандартный diff - типа было/стало
это часть отчета подсистемы контроля версий, очень удобно чтобы потом не вспоминать что менял и почему перестало работать.
рекомендую освоить это кунфу :)

Re: Электроника RAMPS 1.4

George164 » 03 ноя 2012, 11:29

Добрый день
Дошли руки доделать свой Ультимэйкер. Пытался спросить на паре форумов, но там эта тема умерла, а у вас вроде бы шевелится. Есть надежда на помощь.
Хочу опробовать работу узлов до установки в принтер. Вопрос как погонять моторы без нагревателя и терморезистора. Что-то Принтран принтер видит ,но ругается на тепературу.
В принтере Рампс 1.4 с залитым Марлином.

Re: Электроника RAMPS 1.4

dccharacter » 03 ноя 2012, 18:30

а какое сопротивление должно быть у резистора при *правильной* температуре?

Re: Электроника RAMPS 1.4

setar » 03 ноя 2012, 21:27

тестовой прошивкой, ссылка на нее в теме RAMPS на сайте reprap.org

Добавлено спустя 38 секунд:
но одна другая прошивка не будет работать без подключенных концевиков и датчиков температуры


cron
Rambler\'s Top100 Mail.ru counter