Намотчик обмоток

Фрезеры, лазеры, квадрокоптеры ...
Аватара пользователя
Чиффа
Сообщения: 378
Зарегистрирован: 09 июн 2016, 08:04
Имя: Сергей
Откуда: Арзамас
Благодарил (а): 14 раз
Поблагодарили: 31 раз

Re: Намотчик обмоток

Непрочитанное сообщение Чиффа » 11 июн 2017, 16:56

707dm писал(а):
11 июн 2017, 16:46
или тут что не так?
тут все норм. Отправь 2 и посмотри что будет.
для того, чтобы проверить порт вот:
Спойлер

Код: Выделить всё

// Обозначаем пины:
byte  XSTP_pin = A0;   // шаг двигателя катушки (X на рампсе) (нога)
byte  XDIR_pin = A1;   // направление двигателя катушки (нога)
byte  X_EN_pin = A2;   // включение двигателя катушки (нога)

byte  YSTP_pin = A6;   // шаг двигателя каретки (Y на рампсе) (нога)
byte  YDIR_pin = A7;   // направление двигателя каретки (нога)
byte  Y_EN_pin = A8;   // включение двигателя каретки (нога)
// Концевики: (концевики нормально разомкнутые, подключены к +5В одним выходом, другим на Мегу)
byte  Ymin_pin = 14;  // на рампсе Ymin (нога)
byte  Ymax_pin = 18;  // на рампсе Zmin (нога)
//можно использовать только 1 концевик, нам же пофиг на направление движения каретки ;)

////////////////////////
//Константы и прочие полезности:
boolean XDIR = 0, YDIR = 0;           // направление движения моторов, начальные значения
unsigned long Time_mem;
unsigned long Time_now;
unsigned int X_count = 0;         // счетчик шагов Катушки
unsigned int Y_count = 0;         // счетчик шагов Каретки
unsigned long Interval = 70;     // время на итерацию, мСек. Собссно чем больше, тем медденнее идет намотка
boolean flag_HOME = 0;            // если равен 1, то едем домой Кареткой. Не забыть при выставлении этого флага указать направление движения YDIR!!!
boolean flag_WORK = 0;            // если равен 1, то пошла намотка
byte Dt = 5;                     // время от поднятия ног XSTP или YSTP до их опускания, мСек
unsigned int Otn_XY = 50;        // через сколько шагов катушки будет сделан шаг каретки. Можно подобрать опытным путем, но лучше сначала рассчитать.
byte i;                          // стандартный индекс цикла

byte com = 0;                     // что мы приняли с com-порта

boolean LED = 0;                  // отладка



void setup() {

  ////////////////////////
  //Конфигурируем ноги МК:
  pinMode(13, OUTPUT);            // отладка

  pinMode(XSTP_pin, OUTPUT);
  pinMode(XDIR_pin, OUTPUT);
  pinMode(X_EN_pin, OUTPUT);
  pinMode(YSTP_pin, OUTPUT);
  pinMode(YDIR_pin, OUTPUT);
  pinMode(Y_EN_pin, OUTPUT);
  pinMode(Ymin_pin, INPUT);
  digitalWrite(Ymin_pin, HIGH);
  pinMode(Ymax_pin, INPUT);
  digitalWrite(Ymax_pin, HIGH);


  // Отладка по COM-порту
  Serial.begin(115200);  // С мегой не работал, у нее портов много, так что пока пробуем 1й


  // Включаем двигатели:
  digitalWrite(X_EN_pin, LOW);        // вроде двигатели включаются подтяжкой к земле ???
  digitalWrite(Y_EN_pin, LOW);        //
  digitalWrite(XDIR_pin, XDIR);
  digitalWrite(YDIR_pin, YDIR);
}

void loop() {
  // Смотрим сколько прошло времени
  Time_now = millis();
  if (Time_now - Time_mem >= Interval) {     // Если прошло достаточно времени, то:
    Time_mem = Time_now;                     // обнуляем время сразу, а то забудем!
    if ((flag_WORK) && (flag_HOME)) {        // если мы одновременно паркуемся и мотаем
      flag_WORK = 0;                         // обнуляем оба флага
      flag_HOME = 0;                         //
    }
    if (digitalRead(Ymin_pin) == 0) {        // Смотрим не сработал ли концевик
      flag_HOME = 0;                         // если да, то прекращаем ехать домой
      YDIR = !YDIR;                          // меняем нарпавление движения каретки на случай, если мы наматывали
      for (i = 0; i < 5; i++) {
        digitalWrite(YSTP_pin, HIGH);        // тут мы отъезжаем от сработавшего концевика на 5 шагов
        delay(Dt);                           // чтобы он разомкнулся,
        digitalWrite(YSTP_pin, LOW);         // а то мы так и будем сюда заходить
        delay(Dt);
      }


      //  digitalWrite(13, LED);              // отладка
      //  LED = !LED;                         // отладка
    }
    if (digitalRead(Ymax_pin) == 0) {        // Смотрим не сработал ли концевик
      flag_HOME = 0;                         // если да, то прекращаем ехать домой
      YDIR = !YDIR;                          // меняем нарпавление движения каретки на случай, если мы наматывали
      for (i = 0; i < 5; i++) {
        digitalWrite(YSTP_pin, HIGH);        // тут мы отъезжаем от сработавшего концевика на 5 шагов
        delay(Dt);                           // чтобы он разомкнулся,
        digitalWrite(YSTP_pin, LOW);         // а то мы так и будем сюда заходить
        delay(Dt);
      }
      //   digitalWrite(13, LED);              // отладка
      //   LED = !LED;                         // отладка
    }

    if (flag_HOME == 1) {                    // если мы едем домой, то
      //digitalWrite(YDIR_pin, YDIR);            // задаем направление движения
      digitalWrite(YSTP_pin, HIGH);          // дрыгаем ногой
      delay(Dt);                             // по поводу задержки я хз сколько она должна быть,
      digitalWrite(YSTP_pin, LOW);           // и вообще, по поводу реализации с delay я в сомненьях, но работать должно :)
    }
    if (flag_WORK == 1) {                    // если мы всетаки наматываем катушку
      digitalWrite(XSTP_pin, HIGH);          // дрыгаем ногой
      delay(Dt);                             //
      digitalWrite(XSTP_pin, LOW);           //
      X_count++;
      if (X_count == Otn_XY) {               // если пора двигать каретку, то
        X_count = 0;                         // обнуляем счетчик шагов катушки
        digitalWrite(YSTP_pin, HIGH);        // двигаем каретку
        delay(Dt);                           //
        digitalWrite(YSTP_pin, LOW);         //
      }
      //   digitalWrite(13, LED);              // отладка
      //   LED = !LED;                         // отладка
    }


    Serial.println("Test");

    if (Serial.available() > 0) {
      com = Serial.read();                      // читаем com-порт.
      if (com - 48 == 1) {
        flag_HOME = 1; //Если пришла 1, то мы едем домой!!!
        flag_WORK = 0;
      }
      if (com - 48 == 0) {
        flag_HOME = 0; //Если пришел 0, то все обнуляем!!!
        flag_WORK = 0;
      }
      if (com - 48 == 2) {
        flag_HOME = 0; //Если пришла 2, то все начинаем мотать!!!
        flag_WORK = 1;
      }

    }
  }

}
Lenivo писал(а):
11 июн 2017, 16:47
мелкие проекты лучше делать самому, чем разбираться в сыром чужом софте.
Чужой софт можно использовать за основу.
да кто ж спорит-то?)
я вообще пишу без железа, пальцем в небо) в этом и прикол)))
DIY принтер, 28х23х18, директ, прямой привод осей.

Аватара пользователя
707dm
Сообщения: 241
Зарегистрирован: 22 окт 2015, 18:14
Имя: Дмитрий
Откуда: Иркутск
Благодарил (а): 1 раз
Контактная информация:

Re: Намотчик обмоток

Непрочитанное сообщение 707dm » 11 июн 2017, 17:03

доходит по тихоньку,а где в прошивке номер ком порта?
Почему в сутках не 36 часов ;)

Аватара пользователя
707dm
Сообщения: 241
Зарегистрирован: 22 окт 2015, 18:14
Имя: Дмитрий
Откуда: Иркутск
Благодарил (а): 1 раз
Контактная информация:

Re: Намотчик обмоток

Непрочитанное сообщение 707dm » 11 июн 2017, 17:13

пишет тэст
Почему в сутках не 36 часов ;)

Аватара пользователя
Чиффа
Сообщения: 378
Зарегистрирован: 09 июн 2016, 08:04
Имя: Сергей
Откуда: Арзамас
Благодарил (а): 14 раз
Поблагодарили: 31 раз

Re: Намотчик обмоток

Непрочитанное сообщение Чиффа » 11 июн 2017, 17:15

у меня с мегой2560 работало просто на Serial.begin(115200); без всяких установок порта.
если вопрос про номер порта в системе, то оно в винде настраивается, но если все прошивается, то порт нормально настроен. Прям в ардуиновском мониторе порта можно все делать.
DIY принтер, 28х23х18, директ, прямой привод осей.

Аватара пользователя
Чиффа
Сообщения: 378
Зарегистрирован: 09 июн 2016, 08:04
Имя: Сергей
Откуда: Арзамас
Благодарил (а): 14 раз
Поблагодарили: 31 раз

Re: Намотчик обмоток

Непрочитанное сообщение Чиффа » 11 июн 2017, 17:16

если пишет, то все ок. Там вверху строчка и кнопка "отправить". пишешь 2, отправляешь, все двигаться должно начать. Отправляешь 0, все останавливается. Если 1 отправить - должен парковаться.
DIY принтер, 28х23х18, директ, прямой привод осей.

Аватара пользователя
707dm
Сообщения: 241
Зарегистрирован: 22 окт 2015, 18:14
Имя: Дмитрий
Откуда: Иркутск
Благодарил (а): 1 раз
Контактная информация:

Re: Намотчик обмоток

Непрочитанное сообщение 707dm » 11 июн 2017, 17:18

понятно. мотор смог риверсировать и со скоростью поиграл,эавтра продолжу мучать, с кома ни одна команда не не прошла
Почему в сутках не 36 часов ;)

Аватара пользователя
Lenivo
Сообщения: 1807
Зарегистрирован: 25 май 2017, 12:46
Имя: Александр
Благодарил (а): 92 раза
Поблагодарили: 179 раз

Re: Намотчик обмоток

Непрочитанное сообщение Lenivo » 11 июн 2017, 17:56

Вот это правильно - сперва заставь работать оба мотора. Если не идет с портом X, то переставь все на Z, поменяй в программе номера портов и попробуй запустить. Х использует аналоговые входы-выходы А0, а У и Z -чистые цифровые входы выходы D. Поменяй в прошивке номера портов. САМ поменяй. Разберись и поменяй. Посмотри схему. Найди где стоят порты для Х. Я тебе писал какие это. На это место поставь номера портов Z. Найди САМ на схеме и поставь.

Аватара пользователя
707dm
Сообщения: 241
Зарегистрирован: 22 окт 2015, 18:14
Имя: Дмитрий
Откуда: Иркутск
Благодарил (а): 1 раз
Контактная информация:

Re: Намотчик обмоток

Непрочитанное сообщение 707dm » 11 июн 2017, 18:07

тут есть какие то паралели?
Вложения
Снимок.JPG
Почему в сутках не 36 часов ;)

Аватара пользователя
707dm
Сообщения: 241
Зарегистрирован: 22 окт 2015, 18:14
Имя: Дмитрий
Откуда: Иркутск
Благодарил (а): 1 раз
Контактная информация:

Re: Намотчик обмоток

Непрочитанное сообщение 707dm » 11 июн 2017, 18:09

такое чувство что пока драйвера примерял один порт запорол,а сей час и второй...вроде питание каждый раз отключал
Почему в сутках не 36 часов ;)

Shaman
Сообщения: 1229
Зарегистрирован: 23 ноя 2016, 22:50
Имя: Денис
Откуда: Дубна
Благодарил (а): 44 раза
Поблагодарили: 124 раза

Re: Намотчик обмоток

Непрочитанное сообщение Shaman » 11 июн 2017, 18:33

Портов там много, а вот зачем вообще COM сейчас неясно. Есть же концевики - ну чем не кнопки?
Присобачить на них кнопки и давить в свое удовольствие в качестве внешних команд.
Когда на форуме переходят на "Вы", в реальной жизни уже давно бьют морду!

Аватара пользователя
707dm
Сообщения: 241
Зарегистрирован: 22 окт 2015, 18:14
Имя: Дмитрий
Откуда: Иркутск
Благодарил (а): 1 раз
Контактная информация:

Re: Намотчик обмоток

Непрочитанное сообщение 707dm » 12 июн 2017, 05:46

Ну вобще в последствии будет управление с экрана.,а так для общего развития и ком пригодится,я по началу через прогу путти сунулся на него,думал как с оранжем, а оказалось все гораздо проще.
Почему в сутках не 36 часов ;)

Аватара пользователя
707dm
Сообщения: 241
Зарегистрирован: 22 окт 2015, 18:14
Имя: Дмитрий
Откуда: Иркутск
Благодарил (а): 1 раз
Контактная информация:

Re: Намотчик обмоток

Непрочитанное сообщение 707dm » 12 июн 2017, 15:49

В общем взял марлина и начал глумиться удаляя лишнее из конфигурации ш,и меняя параметры.
Х и у нормально паркуются., как удалить совсем датчик температуры не понял и з не смог снести,зато экран и картридэр работают,правда боюсь не смогу своими силами заставить гонять каретку по концевикам.
Вложения
1497271507591-290453918.jpg
Почему в сутках не 36 часов ;)

Аватара пользователя
707dm
Сообщения: 241
Зарегистрирован: 22 окт 2015, 18:14
Имя: Дмитрий
Откуда: Иркутск
Благодарил (а): 1 раз
Контактная информация:

Re: Намотчик обмоток

Непрочитанное сообщение 707dm » 12 июн 2017, 15:50

Хотя наверно можно это сделать по координатам
Почему в сутках не 36 часов ;)

Аватара пользователя
707dm
Сообщения: 241
Зарегистрирован: 22 окт 2015, 18:14
Имя: Дмитрий
Откуда: Иркутск
Благодарил (а): 1 раз
Контактная информация:

Re: Намотчик обмоток

Непрочитанное сообщение 707dm » 12 июн 2017, 16:21

И ещё один момент,после реставрации энкодэр стал работать по другому: крутить для перемещения в меню надо в другую сторону,видимо модель другая.
Почему в сутках не 36 часов ;)

Аватара пользователя
Lenivo
Сообщения: 1807
Зарегистрирован: 25 май 2017, 12:46
Имя: Александр
Благодарил (а): 92 раза
Поблагодарили: 179 раз

Re: Намотчик обмоток

Непрочитанное сообщение Lenivo » 12 июн 2017, 19:22

У Марлина есть настройка РАМПСА для фрезера - там только управление шпинделем и включение вентиляторов.

#define BOARD_RAMPS_14_SF 48 // RAMPS 1.4 (Power outputs: Spindle, Controller Fan)

Но вам можно пользоваться и вашей текущей настройкой , только не забудьте поставить // - там где движки переводятся в Н-бот и ХУ-коре. Иначе будут неправильно крутиться, а по алгоритму для ХУ коре.

Выставьте количество шаги для вашей шпильки У и обороты для Х - Напишите простую команду в файле:

G1 Х10 У10
G1 Х10 У0

В конце можете сигнал добавить и обесточивание движков:
M300 - Play beep sound S<frequency Hz> P<duration ms>
M84 ; disable motors
M400 - Finish all moves.


То есть катушка должна сделать 10 оборотов, каретка сместится прямо на 10 витков, затем катушка опять делает 10 витков, каретка смещается обратно на 10 витков.
Список команд:
* "G" Codes
*
* G0 -> G1
* G1 - Coordinated Movement X Y Z E
* G2 - CW ARC
* G3 - CCW ARC
* G4 - Dwell S<seconds> or P<milliseconds>
* G5 - Cubic B-spline with XYZE destination and IJPQ offsets
* G10 - Retract filament according to settings of M207
* G11 - Retract recover filament according to settings of M208
* G12 - Clean tool
* G20 - Set input units to inches
* G21 - Set input units to millimeters
* G26 - Mesh Validation Pattern (Requires UBL_G26_MESH_VALIDATION)
* G27 - Park Nozzle (Requires NOZZLE_PARK_FEATURE)
* G28 - Home one or more axes
* G29 - Detailed Z probe, probes the bed at 3 or more points. Will fail if you haven't homed yet.
* G30 - Single Z probe, probes bed at X Y location (defaults to current XY location)
* G31 - Dock sled (Z_PROBE_SLED only)
* G32 - Undock sled (Z_PROBE_SLED only)
* G33 - Delta Auto-Calibration (Requires DELTA_AUTO_CALIBRATION)
* G38 - Probe target - similar to G28 except it uses the Z_MIN_PROBE for all three axes
* G42 - Coordinated move to a mesh point (Requires AUTO_BED_LEVELING_UBL)
* G90 - Use Absolute Coordinates
* G91 - Use Relative Coordinates
* G92 - Set current position to coordinates given
*
* "M" Codes
*
* M0 - Unconditional stop - Wait for user to press a button on the LCD (Only if ULTRA_LCD is enabled)
* M1 - Same as M0
* M3 - Turn laser/spindle on, set spindle/laser speed/power, set rotation to clockwise
* M4 - Turn laser/spindle on, set spindle/laser speed/power, set rotation to counter-clockwise
* M5 - Turn laser/spindle off
* M17 - Enable/Power all stepper motors
* M18 - Disable all stepper motors; same as M84
* M20 - List SD card. (Requires SDSUPPORT)
* M21 - Init SD card. (Requires SDSUPPORT)
* M22 - Release SD card. (Requires SDSUPPORT)
* M23 - Select SD file: "M23 /path/file.gco". (Requires SDSUPPORT)
* M24 - Start/resume SD print. (Requires SDSUPPORT)
* M25 - Pause SD print. (Requires SDSUPPORT)
* M26 - Set SD position in bytes: "M26 S12345". (Requires SDSUPPORT)
* M27 - Report SD print status. (Requires SDSUPPORT)
* M28 - Start SD write: "M28 /path/file.gco". (Requires SDSUPPORT)
* M29 - Stop SD write. (Requires SDSUPPORT)
* M30 - Delete file from SD: "M30 /path/file.gco"
* M31 - Report time since last M109 or SD card start to serial.
* M32 - Select file and start SD print: "M32 [S<bytepos>] !/path/file.gco#". (Requires SDSUPPORT)
* Use P to run other files as sub-programs: "M32 P !filename#"
* The '#' is necessary when calling from within sd files, as it stops buffer prereading
* M33 - Get the longname version of a path. (Requires LONG_FILENAME_HOST_SUPPORT)
* M34 - Set SD Card sorting options. (Requires SDCARD_SORT_ALPHA)
* M42 - Change pin status via gcode: M42 P<pin> S<value>. LED pin assumed if P is omitted.
* M43 - Display pin status, watch pins for changes, watch endstops & toggle LED, Z servo probe test, toggle pins
* M48 - Measure Z Probe repeatability: M48 P<points> X<pos> Y<pos> V<level> E<engage> L<legs>. (Requires Z_MIN_PROBE_REPEATABILITY_TEST)
* M75 - Start the print job timer.
* M76 - Pause the print job timer.
* M77 - Stop the print job timer.
* M78 - Show statistical information about the print jobs. (Requires PRINTCOUNTER)
* M80 - Turn on Power Supply. (Requires POWER_SUPPLY > 0)
* M81 - Turn off Power Supply. (Requires POWER_SUPPLY > 0)
* M82 - Set E codes absolute (default).
* M83 - Set E codes relative while in Absolute (G90) mode.
* M84 - Disable steppers until next move, or use S<seconds> to specify an idle
* duration after which steppers should turn off. S0 disables the timeout.
* M85 - Set inactivity shutdown timer with parameter S<seconds>. To disable set zero (default)
* M92 - Set planner.axis_steps_per_mm for one or more axes.
* M100 - Watch Free Memory (for debugging) (Requires M100_FREE_MEMORY_WATCHER)
* M104 - Set extruder target temp.
* M105 - Report current temperatures.
* M106 - Fan on.
* M107 - Fan off.
* M108 - Break out of heating loops (M109, M190, M303). With no controller, breaks out of M0/M1. (Requires EMERGENCY_PARSER)
* M109 - Sxxx Wait for extruder current temp to reach target temp. Waits only when heating
* Rxxx Wait for extruder current temp to reach target temp. Waits when heating and cooling
* If AUTOTEMP is enabled, S<mintemp> B<maxtemp> F<factor>. Exit autotemp by any M109 without F
* M110 - Set the current line number. (Used by host printing)
* M111 - Set debug flags: "M111 S<flagbits>". See flag bits defined in enum.h.
* M112 - Emergency stop.
* M113 - Get or set the timeout interval for Host Keepalive "busy" messages. (Requires HOST_KEEPALIVE_FEATURE)
* M114 - Report current position.
* M115 - Report capabilities. (Extended capabilities requires EXTENDED_CAPABILITIES_REPORT)
* M117 - Display a message on the controller screen. (Requires an LCD)
* M119 - Report endstops status.
* M120 - Enable endstops detection.
* M121 - Disable endstops detection.
* M125 - Save current position and move to filament change position. (Requires PARK_HEAD_ON_PAUSE)
* M126 - Solenoid Air Valve Open. (Requires BARICUDA)
* M127 - Solenoid Air Valve Closed. (Requires BARICUDA)
* M128 - EtoP Open. (Requires BARICUDA)
* M129 - EtoP Closed. (Requires BARICUDA)
* M140 - Set bed target temp. S<temp>
* M145 - Set heatup values for materials on the LCD. H<hotend> B<bed> F<fan speed> for S<material> (0=PLA, 1=ABS)
* M149 - Set temperature units. (Requires TEMPERATURE_UNITS_SUPPORT)
* M150 - Set Status LED Color as R<red> U<green> B<blue>. Values 0-255. (Requires BLINKM or RGB_LED)
* M155 - Auto-report temperatures with interval of S<seconds>. (Requires AUTO_REPORT_TEMPERATURES)
* M163 - Set a single proportion for a mixing extruder. (Requires MIXING_EXTRUDER)
* M164 - Save the mix as a virtual extruder. (Requires MIXING_EXTRUDER and MIXING_VIRTUAL_TOOLS)
* M165 - Set the proportions for a mixing extruder. Use parameters ABCDHI to set the mixing factors. (Requires MIXING_EXTRUDER)
* M190 - Sxxx Wait for bed current temp to reach target temp. ** Waits only when heating! **
* Rxxx Wait for bed current temp to reach target temp. ** Waits for heating or cooling. **
* M200 - Set filament diameter, D<diameter>, setting E axis units to cubic. (Use S0 to revert to linear units.)
* M201 - Set max acceleration in units/s^2 for print moves: "M201 X<accel> Y<accel> Z<accel> E<accel>"
* M202 - Set max acceleration in units/s^2 for travel moves: "M202 X<accel> Y<accel> Z<accel> E<accel>" ** UNUSED IN MARLIN! **
* M203 - Set maximum feedrate: "M203 X<fr> Y<fr> Z<fr> E<fr>" in units/sec.
* M204 - Set default acceleration in units/sec^2: P<printing> R<extruder_only> T<travel>
* M205 - Set advanced settings. Current units apply:
S<print> T<travel> minimum speeds
B<minimum segment time>
X<max X jerk>, Y<max Y jerk>, Z<max Z jerk>, E<max E jerk>
* M206 - Set additional homing offset. (Disabled by NO_WORKSPACE_OFFSETS or DELTA)
* M207 - Set Retract Length: S<length>, Feedrate: F<units/min>, and Z lift: Z<distance>. (Requires FWRETRACT)
* M208 - Set Recover (unretract) Additional (!) Length: S<length> and Feedrate: F<units/min>. (Requires FWRETRACT)
* M209 - Turn Automatic Retract Detection on/off: S<0|1> (For slicers that don't support G10/11). (Requires FWRETRACT)
Every normal extrude-only move will be classified as retract depending on the direction.
* M211 - Enable, Disable, and/or Report software endstops: S<0|1> (Requires MIN_SOFTWARE_ENDSTOPS or MAX_SOFTWARE_ENDSTOPS)
* M218 - Set a tool offset: "M218 T<index> X<offset> Y<offset>". (Requires 2 or more extruders)
* M220 - Set Feedrate Percentage: "M220 S<percent>" (i.e., "FR" on the LCD)
* M221 - Set Flow Percentage: "M221 S<percent>"
* M226 - Wait until a pin is in a given state: "M226 P<pin> S<state>"
* M240 - Trigger a camera to take a photograph. (Requires CHDK or PHOTOGRAPH_PIN)
* M250 - Set LCD contrast: "M250 C<contrast>" (0-63). (Requires LCD support)
* M260 - i2c Send Data (Requires EXPERIMENTAL_I2CBUS)
* M261 - i2c Request Data (Requires EXPERIMENTAL_I2CBUS)
* M280 - Set servo position absolute: "M280 P<index> S<angle|µs>". (Requires servos)
* M300 - Play beep sound S<frequency Hz> P<duration ms>
* M301 - Set PID parameters P I and D. (Requires PIDTEMP)
* M302 - Allow cold extrudes, or set the minimum extrude S<temperature>. (Requires PREVENT_COLD_EXTRUSION)
* M303 - PID relay autotune S<temperature> sets the target temperature. Default 150C. (Requires PIDTEMP)
* M304 - Set bed PID parameters P I and D. (Requires PIDTEMPBED)
* M350 - Set microstepping mode. (Requires digital microstepping pins.)
* M351 - Toggle MS1 MS2 pins directly. (Requires digital microstepping pins.)
* M355 - Turn the Case Light on/off and set its brightness. (Requires CASE_LIGHT_PIN)
* M380 - Activate solenoid on active extruder. (Requires EXT_SOLENOID)
* M381 - Disable all solenoids. (Requires EXT_SOLENOID)
* M400 - Finish all moves.
* M401 - Lower Z probe. (Requires a probe)
* M402 - Raise Z probe. (Requires a probe)
* M404 - Display or set the Nominal Filament Width: "W<diameter>". (Requires FILAMENT_WIDTH_SENSOR)
* M405 - Enable Filament Sensor flow control. "M405 D<delay_cm>". (Requires FILAMENT_WIDTH_SENSOR)
* M406 - Disable Filament Sensor flow control. (Requires FILAMENT_WIDTH_SENSOR)
* M407 - Display measured filament diameter in millimeters. (Requires FILAMENT_WIDTH_SENSOR)
* M410 - Quickstop. Abort all planned moves.
* M420 - Enable/Disable Leveling (with current values) S1=enable S0=disable (Requires MESH_BED_LEVELING or ABL)
* M421 - Set a single Z coordinate in the Mesh Leveling grid. X<units> Y<units> Z<units> (Requires MESH_BED_LEVELING or AUTO_BED_LEVELING_UBL)
* M428 - Set the home_offset based on the current_position. Nearest edge applies. (Disabled by NO_WORKSPACE_OFFSETS or DELTA)
* M500 - Store parameters in EEPROM. (Requires EEPROM_SETTINGS)
* M501 - Restore parameters from EEPROM. (Requires EEPROM_SETTINGS)
* M502 - Revert to the default "factory settings". ** Does not write them to EEPROM! **
* M503 - Print the current settings (in memory): "M503 S<verbose>". S0 specifies compact output.
* M540 - Enable/disable SD card abort on endstop hit: "M540 S<state>". (Requires ABORT_ON_ENDSTOP_HIT_FEATURE_ENABLED)
* M600 - Pause for filament change: "M600 X<pos> Y<pos> Z<raise> E<first_retract> L<later_retract>". (Requires ADVANCED_PAUSE_FEATURE)
* M665 - Set delta configurations: "M665 L<diagonal rod> R<delta radius> S<segments/s> A<rod A trim mm> B<rod B trim mm> C<rod C trim mm> I<tower A trim angle> J<tower B trim angle> K<tower C trim angle>" (Requires DELTA)
* M666 - Set delta endstop adjustment. (Requires DELTA)
* M605 - Set dual x-carriage movement mode: "M605 S<mode> [X<x_offset>] [R<temp_offset>]". (Requires DUAL_X_CARRIAGE)
* M851 - Set Z probe's Z offset in current units. (Negative = below the nozzle.)
* M900 - Get and/or Set advance K factor and WH/D ratio. (Requires LIN_ADVANCE)
* M906 - Set or get motor current in milliamps using axis codes X, Y, Z, E. Report values if no axis codes given. (Requires HAVE_TMC2130)
* M907 - Set digital trimpot motor current using axis codes. (Requires a board with digital trimpots)
* M908 - Control digital trimpot directly. (Requires DAC_STEPPER_CURRENT or DIGIPOTSS_PIN)
* M909 - Print digipot/DAC current value. (Requires DAC_STEPPER_CURRENT)
* M910 - Commit digipot/DAC value to external EEPROM via I2C. (Requires DAC_STEPPER_CURRENT)
* M911 - Report stepper driver overtemperature pre-warn condition. (Requires HAVE_TMC2130)
* M912 - Clear stepper driver overtemperature pre-warn condition flag. (Requires HAVE_TMC2130)
* M913 - Set HYBRID_THRESHOLD speed. (Requires HYBRID_THRESHOLD)
* M914 - Set SENSORLESS_HOMING sensitivity. (Requires SENSORLESS_HOMING)
*
* M360 - SCARA calibration: Move to cal-position ThetaA (0 deg calibration)
* M361 - SCARA calibration: Move to cal-position ThetaB (90 deg calibration - steps per degree)
* M362 - SCARA calibration: Move to cal-position PsiA (0 deg calibration)
* M363 - SCARA calibration: Move to cal-position PsiB (90 deg calibration - steps per degree)
* M364 - SCARA calibration: Move to cal-position PSIC (90 deg to Theta calibration position)
*
* ************ Custom codes - This can change to suit future G-code regulations
* M928 - Start SD logging: "M928 filename.gco". Stop with M29. (Requires SDSUPPORT)
* M999 - Restart after being stopped by error
*
* "T" Codes
*
* T0-T3 - Select an extruder (tool) by index: "T<n> F<units/min>"
*
*/

Ответить

Вернуться в «Другие наши интересные проекты»

Яндекс.Метрика