Технический форум по робототехнике.
Networx » 03 мар 2013, 15:40
Нашел концы проблемы в самой прошивке. Подправил для осей Z и Y и все заработало.
Кто купит себе такое "добро" надо поправить в скетче Stepper.cpp вот такие строки:
- Код: Выделить всё • Развернуть
// Set direction en check limit switches
if ((out_bits & (1<<X_AXIS)) != 0) { // -direction
WRITE(X_DIR_PIN, INVERT_X_DIR);
count_direction[X_AXIS]=-1;
CHECK_ENDSTOPS
{
#if X_MIN_PIN > -1
bool x_min_endstop=(READ(X_MIN_PIN) != X_ENDSTOPS_INVERTING);
if(x_min_endstop && old_x_min_endstop && (current_block->steps_x > 0)) {
endstops_trigsteps[X_AXIS] = count_position[X_AXIS];
endstop_x_hit=true;
step_events_completed = current_block->step_event_count;
}
old_x_min_endstop = x_min_endstop;
#endif
}
}
else { // +direction
WRITE(X_DIR_PIN,!INVERT_X_DIR);
count_direction[X_AXIS]=1;
CHECK_ENDSTOPS
{
#if X_MAX_PIN > -1
bool x_max_endstop=(READ(X_MAX_PIN) != X_ENDSTOPS_INVERTING);
if(x_max_endstop && old_x_max_endstop && (current_block->steps_x > 0)){
endstops_trigsteps[X_AXIS] = count_position[X_AXIS];
endstop_x_hit=true;
step_events_completed = current_block->step_event_count;
}
old_x_max_endstop = x_max_endstop;
#endif
}
}
if ((out_bits & (1<<Y_AXIS)) != 0) { // -direction
WRITE(Y_DIR_PIN,INVERT_Y_DIR);
count_direction[Y_AXIS]=-1;
CHECK_ENDSTOPS
{
#if Y_MIN_PIN > -1
bool y_min_endstop=(READ(Y_MIN_PIN) != Y_ENDSTOPS_INVERTING);
if(y_min_endstop && old_y_min_endstop && (current_block->steps_y > 0)) {
endstops_trigsteps[Y_AXIS] = count_position[Y_AXIS];
endstop_y_hit=true;
step_events_completed = current_block->step_event_count;
}
old_y_min_endstop = y_min_endstop;
#endif
}
}
else { // +direction
WRITE(Y_DIR_PIN,!INVERT_Y_DIR);
count_direction[Y_AXIS]=1;
CHECK_ENDSTOPS
{
#if Y_MAX_PIN > -1
bool y_max_endstop=(READ(Y_MAX_PIN) != Y_ENDSTOPS_INVERTING);
if(y_max_endstop && old_y_max_endstop && (current_block->steps_y > 0)){
endstops_trigsteps[Y_AXIS] = count_position[Y_AXIS];
endstop_y_hit=true;
step_events_completed = current_block->step_event_count;
}
old_y_max_endstop = y_max_endstop;
#endif
}
}
if ((out_bits & (1<<Z_AXIS)) != 0) { // -direction
WRITE(Z_DIR_PIN,INVERT_Z_DIR);
count_direction[Z_AXIS]=-1;
CHECK_ENDSTOPS
{
#if Z_MIN_PIN > -1
bool z_min_endstop=(READ(Z_MIN_PIN) != Z_ENDSTOPS_INVERTING);
if(z_min_endstop && old_z_min_endstop && (current_block->steps_z > 0)) {
endstops_trigsteps[Z_AXIS] = count_position[Z_AXIS];
endstop_z_hit=true;
step_events_completed = current_block->step_event_count;
}
old_z_min_endstop = z_min_endstop;
#endif
}
}
else { // +direction
WRITE(Z_DIR_PIN,!INVERT_Z_DIR);
count_direction[Z_AXIS]=1;
CHECK_ENDSTOPS
{
#if Z_MAX_PIN > -1
bool z_max_endstop=(READ(Z_MAX_PIN) != Z_ENDSTOPS_INVERTING);
if(z_max_endstop && old_z_max_endstop && (current_block->steps_z > 0)) {
endstops_trigsteps[Z_AXIS] = count_position[Z_AXIS];
endstop_z_hit=true;
step_events_completed = current_block->step_event_count;
}
old_z_max_endstop = z_max_endstop;
#endif
}
}
По экструдеру пока не скажу поцеплю может и его надо будет править...
Добавлено спустя 5 минут 57 секунд:setar писал(а):концевики должны быть нормально замкнуты на землю, тогда актуальна включенная вами поддтяжка и нормально будет отрабатываться обрыв концевика.
иначе в случае нормально-разомкнутого состояния концевики нужно цеплять на S и + , выключать подтяку. При таким подключении обрыв будет незамеченным.
Добавлено спустя 1 минуту 9 секунд:Networx писал(а):Я так понял что на форуме некому мне что и подсказать или просто лень...
с такими обвинениями завязывайте, это как бы обидно и на вас болт покладут.
Сергей спасибо, был немного на эмоциях так меня достал этот контроллер!
Оставлю пока как есть, с разомкнутыми концевиками!
Добавлено спустя 1 час 15 минут 39 секунд:С ДОМОМ разобрался теперь вылезла проблема зависания и слетания Printerface при включениее нагрева экструдера!!!
В чем может быть проблема?
setar » 03 мар 2013, 22:09
видимо источник питания не достаточен для поддержания работы логики
какие именно изменения в Stepper.cpp сделаны ? по коду не понятно.
Это решение похоже "в лоб", по идее все что угодно можно поправить из конфига
Networx » 04 мар 2013, 14:24
По коду.
вот пример как было для оси X и ось не хотела правильно работать и ставать в HOME. Когда я нажимал HOME X ось бежала не на концевик, а от него, но в принтерфейсе все было нормально когда делал ручное перемещение по оси!
- Код: Выделить всё • Развернуть
// Set direction en check limit switches
if ((out_bits & (1<<X_AXIS)) == 0) { // +direction
WRITE(X_DIR_PIN, INVERT_X_DIR);
count_direction[X_AXIS]=-1;
CHECK_ENDSTOPS
{
#if X_MIN_PIN > -1
bool x_min_endstop=(READ(X_MIN_PIN) != X_ENDSTOPS_INVERTING);
if(x_min_endstop && old_x_min_endstop && (current_block->steps_x > 0)) {
endstops_trigsteps[X_AXIS] = count_position[X_AXIS];
endstop_x_hit=true;
step_events_completed = current_block->step_event_count;
}
old_x_min_endstop = x_min_endstop;
#endif
}
}
else { // -direction
А ДОЛЖНО БЫТЬ:
- Код: Выделить всё • Развернуть
// Set direction en check limit switches
if ((out_bits & (1<<X_AXIS)) != 0) { // -direction
WRITE(X_DIR_PIN, INVERT_X_DIR);
count_direction[X_AXIS]=-1;
CHECK_ENDSTOPS
{
#if X_MIN_PIN > -1
bool x_min_endstop=(READ(X_MIN_PIN) != X_ENDSTOPS_INVERTING);
if(x_min_endstop && old_x_min_endstop && (current_block->steps_x > 0)) {
endstops_trigsteps[X_AXIS] = count_position[X_AXIS];
endstop_x_hit=true;
step_events_completed = current_block->step_event_count;
}
old_x_min_endstop = x_min_endstop;
#endif
}
}
else { // +direction
Поменять строки:
if ((out_bits & (1<<X_AXIS)) == 0) { // +direction.
.
.
else { // -directionна
if ((out_bits & (1<<X_AXIS)) != 0) { // -direction .
.
.
else { // +direction тем самым поменяв направления движения каретки на концевик!
Так для всех осей!
karabas2011 » 04 мар 2013, 15:41
а что смена этих установок не меняет направления движения???
#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
Networx » 04 мар 2013, 16:26
меняется, но только направление вращения шаговиков!
Там проблема была в том что стол в ручную в правильную сторону отрабатывал. А вот ДОМ искал в другой стороне.
karabas2011 » 04 мар 2013, 18:38
Networx писал(а):меняется, но только направление вращения шаговиков!
Там проблема была в том что стол в ручную в правильную сторону отрабатывал. А вот ДОМ искал в другой стороне.
А обычный марлин туда не катит?
Networx » 05 мар 2013, 11:34
Нет оригинальный Марлин туда ставить нельзя, потому что для GenX, soc-robotics специально под свою плату адаптировала прошивку Марлина!
setar » 05 мар 2013, 17:28
Networx писал(а):меняется, но только направление вращения шаговиков!
Там проблема была в том что стол в ручную в правильную сторону отрабатывал. А вот ДОМ искал в другой стороне.

горе от ума!
нефиг в код лезть, все меняется
так
- Код: Выделить всё • Развернуть
// Sets direction of endstops when homing; 1=MAX, -1=MIN
#define X_HOME_DIR 1
#define Y_HOME_DIR 1
#define Z_HOME_DIR 1
или так
- Код: Выделить всё • Развернуть
#define MANUAL_HOME_POSITIONS
#define MANUAL_X_HOME_POS 190
#define MANUAL_Y_HOME_POS 190
#define MANUAL_Z_HOME_POS 220
Добавлено спустя 1 минуту 53 секунды:Networx писал(а):Нет оригинальный Марлин туда ставить нельзя, потому что для GenX, soc-robotics специально под свою плату адаптировала прошивку Марлина!
pin.h подредактировали ?
ну может ещё thermistortables.h
Добавлено спустя 2 минуты 54 секунды:Оставлю пока как есть, с разомкнутыми концевиками!
подтяжку убрали ? второй (не сигнальный) конец на + перевесили ?
IliaMoroz » 05 мар 2013, 18:32
Networx » 06 мар 2013, 19:29
setar писал(а):Networx писал(а):меняется, но только направление вращения шаговиков!
Там проблема была в том что стол в ручную в правильную сторону отрабатывал. А вот ДОМ искал в другой стороне.

горе от ума!
нефиг в код лезть, все меняется
так
- Код: Выделить всё • Развернуть
// Sets direction of endstops when homing; 1=MAX, -1=MIN
#define X_HOME_DIR 1
#define Y_HOME_DIR 1
#define Z_HOME_DIR 1
или так
- Код: Выделить всё • Развернуть
#define MANUAL_HOME_POSITIONS
#define MANUAL_X_HOME_POS 190
#define MANUAL_Y_HOME_POS 190
#define MANUAL_Z_HOME_POS 220
Добавлено спустя 1 минуту 53 секунды:Networx писал(а):Нет оригинальный Марлин туда ставить нельзя, потому что для GenX, soc-robotics специально под свою плату адаптировала прошивку Марлина!
pin.h подредактировали ?
ну может ещё thermistortables.h
Добавлено спустя 2 минуты 54 секунды:Оставлю пока как есть, с разомкнутыми концевиками!
подтяжку убрали ? второй (не сигнальный) конец на + перевесили ?
// Sets direction of endstops when homing; 1=MAX, -1=MIN
#define X_HOME_DIR 1
#define Y_HOME_DIR 1
#define Z_HOME_DIR 1
Так я пробовал, не работало!
Я ж писал что нашел ришение сравнив две прошивки 098 и 10 от SOC, и в первой работала нормально только Z, а во второй только X.
Подправив код заработали все три сразу!
Сергей с концевиками все нормально, в дом стает все отлично!
Сегодня голову доделал, были проблемы с зависанием Принтерфейса, но Вы указали на что надо обратить внимание, еще не пробовал!
Планирую сегодня поставить голову и попробовать пробную печать...
Но за советы спасибо!
Добавлено спустя 8 минут 51 секунду:Нет переключатели рабочие и не поломаные! С помощью М119 их перепроверял, работаю как надо!
Networx » 11 мар 2013, 14:41
Достала меня эта плата от SOC-robotics,а именно микросхема интерфейса USB-TTL от EXAR. Плата работает только в одном из 5 юсб портов, в остальных пишет что неизвестное устройство. На ноутах вообще не хочет работать, танцы с бубном не помогают. Почему они эту гадость туда засунули непонятно, FTDI или Profilic накрайняк отлично работаю, нет надо именно EXAR... Вроде как с линуксом он хорошо дружит, но у меня его нету ни на одной из машин.
Пробовал ставить на XP и Vista
karabas2011 » 11 мар 2013, 19:42
дрова под винду откуда брал?
Networx » 11 мар 2013, 19:54
с сайта EXAR, а что?
Networx » 12 мар 2013, 16:52
Вчера подпаял к выводам атмеги шнурок на чипе Silabs CP2102, теперь мы дружим с всеми компами и ноутами
Добавлено спустя 44 секунды:Только кому нужен такой колхоз??? Я лично очень недоволен этой платой!
denim » 12 мар 2013, 17:12
Networx писал(а):Достала меня эта плата от SOC-robotics,а именно микросхема интерфейса USB-TTL от EXAR. Плата работает только в одном из 5 юсб портов, в остальных пишет что неизвестное устройство. На ноутах вообще не хочет работать, танцы с бубном не помогают. Почему они эту гадость туда засунули непонятно, FTDI или Profilic накрайняк отлично работаю, нет надо именно EXAR... Вроде как с линуксом он хорошо дружит, но у меня его нету ни на одной из машин.
Пробовал ставить на XP и Vista
скорее всего проблема в компетености тех, кто разводил плату.
где-то косяк