roboforum.ru

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

GenX от soc-robotics

Обсуждение технологии печати на 3D принтерах. Самостоятельное изготовление и приобретение. RepRap и его последователи.

Re: GenX от soc-robotics

Сообщение 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 при включениее нагрева экструдера!!!
В чем может быть проблема?
Networx
 
Сообщения: 21
Зарегистрирован: 27 фев 2013, 17:01

Re: GenX от soc-robotics

Сообщение setar » 03 мар 2013, 22:09

видимо источник питания не достаточен для поддержания работы логики

какие именно изменения в Stepper.cpp сделаны ? по коду не понятно.
Это решение похоже "в лоб", по идее все что угодно можно поправить из конфига
Аватара пользователя
setar
Site Admin
 
Сообщения: 10989
Зарегистрирован: 04 окт 2004, 12:58
Откуда: St.Petersburg
Skype: taranenko.sergey
ФИО: Сергей Тараненко

Re: GenX от soc-robotics

Сообщение 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
тем самым поменяв направления движения каретки на концевик!
Так для всех осей!
Networx
 
Сообщения: 21
Зарегистрирован: 27 фев 2013, 17:01

Re: GenX от soc-robotics

Сообщение 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
karabas2011
 
Сообщения: 1607
Зарегистрирован: 04 мар 2012, 01:06
Откуда: Севастополь-Москва

Re: GenX от soc-robotics

Сообщение Networx » 04 мар 2013, 16:26

меняется, но только направление вращения шаговиков!
Там проблема была в том что стол в ручную в правильную сторону отрабатывал. А вот ДОМ искал в другой стороне.
Networx
 
Сообщения: 21
Зарегистрирован: 27 фев 2013, 17:01

Re: GenX от soc-robotics

Сообщение karabas2011 » 04 мар 2013, 18:38

Networx писал(а):меняется, но только направление вращения шаговиков!
Там проблема была в том что стол в ручную в правильную сторону отрабатывал. А вот ДОМ искал в другой стороне.

А обычный марлин туда не катит?
karabas2011
 
Сообщения: 1607
Зарегистрирован: 04 мар 2012, 01:06
Откуда: Севастополь-Москва

Re: GenX от soc-robotics

Сообщение Networx » 05 мар 2013, 11:34

Нет оригинальный Марлин туда ставить нельзя, потому что для GenX, soc-robotics специально под свою плату адаптировала прошивку Марлина!
Networx
 
Сообщения: 21
Зарегистрирован: 27 фев 2013, 17:01

Re: GenX от soc-robotics

Сообщение setar » 05 мар 2013, 17:28

Networx писал(а):меняется, но только направление вращения шаговиков!
Там проблема была в том что стол в ручную в правильную сторону отрабатывал. А вот ДОМ искал в другой стороне.

:shock: горе от ума!
нефиг в код лезть, все меняется
так
Код: Выделить всёРазвернуть
// 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 секунды:
Оставлю пока как есть, с разомкнутыми концевиками!

подтяжку убрали ? второй (не сигнальный) конец на + перевесили ?
Аватара пользователя
setar
Site Admin
 
Сообщения: 10989
Зарегистрирован: 04 окт 2004, 12:58
Откуда: St.Petersburg
Skype: taranenko.sergey
ФИО: Сергей Тараненко

Re: GenX от soc-robotics

Сообщение IliaMoroz » 05 мар 2013, 18:32

Аватара пользователя
IliaMoroz
 
Сообщения: 677
Зарегистрирован: 21 фев 2013, 07:06
Откуда: г. Харьков

Re: GenX от soc-robotics

Сообщение Networx » 06 мар 2013, 19:29

setar писал(а):
Networx писал(а):меняется, но только направление вращения шаговиков!
Там проблема была в том что стол в ручную в правильную сторону отрабатывал. А вот ДОМ искал в другой стороне.

:shock: горе от ума!
нефиг в код лезть, все меняется
так
Код: Выделить всёРазвернуть
// 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 секунду:
IliaMoroz писал(а):Может все проще? http://www.printrbottalk.com/forum/view ... =19&t=1371

Нет переключатели рабочие и не поломаные! С помощью М119 их перепроверял, работаю как надо!
Networx
 
Сообщения: 21
Зарегистрирован: 27 фев 2013, 17:01

Re: GenX от soc-robotics

Сообщение Networx » 11 мар 2013, 14:41

Достала меня эта плата от SOC-robotics,а именно микросхема интерфейса USB-TTL от EXAR. Плата работает только в одном из 5 юсб портов, в остальных пишет что неизвестное устройство. На ноутах вообще не хочет работать, танцы с бубном не помогают. Почему они эту гадость туда засунули непонятно, FTDI или Profilic накрайняк отлично работаю, нет надо именно EXAR... Вроде как с линуксом он хорошо дружит, но у меня его нету ни на одной из машин.
Пробовал ставить на XP и Vista
Networx
 
Сообщения: 21
Зарегистрирован: 27 фев 2013, 17:01

Re: GenX от soc-robotics

Сообщение karabas2011 » 11 мар 2013, 19:42

дрова под винду откуда брал?
karabas2011
 
Сообщения: 1607
Зарегистрирован: 04 мар 2012, 01:06
Откуда: Севастополь-Москва

Re: GenX от soc-robotics

Сообщение Networx » 11 мар 2013, 19:54

с сайта EXAR, а что?
Networx
 
Сообщения: 21
Зарегистрирован: 27 фев 2013, 17:01

Re: GenX от soc-robotics

Сообщение Networx » 12 мар 2013, 16:52

Вчера подпаял к выводам атмеги шнурок на чипе Silabs CP2102, теперь мы дружим с всеми компами и ноутами :Yahoo!:

Добавлено спустя 44 секунды:
Только кому нужен такой колхоз??? Я лично очень недоволен этой платой!
Networx
 
Сообщения: 21
Зарегистрирован: 27 фев 2013, 17:01

Re: GenX от soc-robotics

Сообщение denim » 12 мар 2013, 17:12

Networx писал(а):Достала меня эта плата от SOC-robotics,а именно микросхема интерфейса USB-TTL от EXAR. Плата работает только в одном из 5 юсб портов, в остальных пишет что неизвестное устройство. На ноутах вообще не хочет работать, танцы с бубном не помогают. Почему они эту гадость туда засунули непонятно, FTDI или Profilic накрайняк отлично работаю, нет надо именно EXAR... Вроде как с линуксом он хорошо дружит, но у меня его нету ни на одной из машин.
Пробовал ставить на XP и Vista

скорее всего проблема в компетености тех, кто разводил плату.
где-то косяк
denim
 
Сообщения: 280
Зарегистрирован: 12 окт 2012, 13:32
Откуда: Sevastopol

Пред.След.

Вернуться в 3D печать

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 50