ПОЛЕЗНО Настройка концевиков на станке

Да уж, чую "бутерброд" ещё тот "подарок"
Это точно, "подарок", не то слово. Бутерброд покупал еще на пиках популярности самодельных станков ЧПУ, что-то тогда не получилось (теперь понятно что и очень много "что") и я ее забросил, а здесь решил откопать. Пока заняться нечем, а станок 3018 пилит - хоть в бутерброде разобраться немного. Попробую через Visual studio пооткрывать *.c и *.h файлы gbrl, может пины или намек на них найду (флаги уже видел, а где они прописаны...), хотя я с программированием на троечку. Плата новая едет, но будет о-о-о-чень не скоро.
 
Вот посмотри с момента 9:55...



Спасибо Vlad-I-Mir , но там не так все просто. Там Z+ и Z- идут на одну ногу и уходят на 11 пин Ардуино. А с Адруино на прошивке 1.1j (может другие тоже, я не пробовал) z-концевик идет с 12 пина, который на бутерброде идет на D12. Мне хочется поменять пин 11 на пин 12 программно. Концевики я уже все вычислил.:cool:
 
  • Последнее редактирование:
Последнее редактирование:
...Мне хочется поменять пин 11 на пин 12 программно...
Думаю где то тут...

#ifdef CPU_MAP_ATMEGA328P // (Arduino Uno) Officially supported by Grbl.

// Define serial port pins and interrupt vectors.
#define SERIAL_RX USART_RX_vect
#define SERIAL_UDRE USART_UDRE_vect

// Define step pulse output pins. NOTE: All step bit pins must be on the same port.
#define STEP_DDR DDRD
#define STEP_PORT PORTD
#define X_STEP_BIT 2 // Uno Digital Pin 2
#define Y_STEP_BIT 3 // Uno Digital Pin 3
#define Z_STEP_BIT 4 // Uno Digital Pin 4
#define STEP_MASK :(1<<X_STEP_BIT)|(1<<Y_STEP_BIT)|(1<<Z_STEP_BIT:) // All step bits

// Define step direction output pins. NOTE: All direction pins must be on the same port.
#define DIRECTION_DDR DDRD
#define DIRECTION_PORT PORTD
#define X_DIRECTION_BIT 5 // Uno Digital Pin 5
#define Y_DIRECTION_BIT 6 // Uno Digital Pin 6
#define Z_DIRECTION_BIT 7 // Uno Digital Pin 7
#define DIRECTION_MASK :(1<<X_DIRECTION_BIT)|(1<<Y_DIRECTION_BIT)|(1<<Z_DIRECTION_BIT:) // All direction bits

// Define stepper driver enable/disable output pin.
#define STEPPERS_DISABLE_DDR DDRB
#define STEPPERS_DISABLE_PORT PORTB
#define STEPPERS_DISABLE_BIT 0 // Uno Digital Pin 8
#define STEPPERS_DISABLE_MASK (1<<STEPPERS_DISABLE_BIT)

// Define homing/hard limit switch input pins and limit interrupt vectors.
// NOTE: All limit bit pins must be on the same port, but not on a port with other input pins (CONTROL).
#define LIMIT_DDR DDRB
#define LIMIT_PIN PINB
#define LIMIT_PORT PORTB
#define X_LIMIT_BIT 1 // Uno Digital Pin 9
#define Y_LIMIT_BIT 2 // Uno Digital Pin 10
#ifdef VARIABLE_SPINDLE // Z Limit pin and spindle enabled swapped to access hardware PWM on Pin 11.
#define Z_LIMIT_BIT 4 // Uno Digital Pin 12
#else
#define Z_LIMIT_BIT 3 // Uno Digital Pin 11
#endif
#define LIMIT_MASK :(1<<X_LIMIT_BIT)|(1<<Y_LIMIT_BIT)|(1<<Z_LIMIT_BIT:) // All limit bits
#define LIMIT_INT PCIE0 // Pin change interrupt enable pin
#define LIMIT_INT_vect PCINT0_vect
#define LIMIT_PCMSK PCMSK0 // Pin change interrupt register

// Define spindle enable and spindle direction output pins.
#define SPINDLE_ENABLE_DDR DDRB
#define SPINDLE_ENABLE_PORT PORTB
// Z Limit pin and spindle PWM/enable pin swapped to access hardware PWM on Pin 11.
#ifdef VARIABLE_SPINDLE
#ifdef USE_SPINDLE_DIR_AS_ENABLE_PIN
// If enabled, spindle direction pin now used as spindle enable, while PWM remains on D11.
#define SPINDLE_ENABLE_BIT 5 // Uno Digital Pin 13 (NOTE: D13 can't be pulled-high input due to LED.)
#else
#define SPINDLE_ENABLE_BIT 3 // Uno Digital Pin 11
#endif
#else
#define SPINDLE_ENABLE_BIT 4 // Uno Digital Pin 12
#endif
#ifndef USE_SPINDLE_DIR_AS_ENABLE_PIN
#define SPINDLE_DIRECTION_DDR DDRB
#define SPINDLE_DIRECTION_PORT PORTB
#define SPINDLE_DIRECTION_BIT 5 // Uno Digital Pin 13 (NOTE: D13 can't be pulled-high input due to LED.)
#endif
 
  • Последнее редактирование:
Последнее редактирование:
Уже нашел и исправил :) . Чтобы работал не 12 пин, а 11 пин, как положено, нужно немного подредактировать файл cpu_map.h в библиотеках, а именно поменять местами 3 и 4 ( до этого 4 вверху была, а 3 внизу ):
Z_limit.jpg
Ваши сообщения автоматически объединены:

Ардуино и 328p (и так далее все контроллеры) у нас разделяется по портам PA PB PC и.т.д. - это и есть PORTA, PORTB ..., остается только найти наш, исправить и все (ну на данном примере). Сейчас работает как и положено. Теперь, если будет проблема, хоть буду знать, где распиновки находятся.(y)
 

Даже комментарий есть...
Ограничительный вывод Z и включенный шпиндель поменялись местами для доступа к аппаратной ШИМ на выводе 11. (строка 65)

оффтоп

Ваши сообщения автоматически объединены:

Уже нашел и исправил :) . Чтобы работал не 12 пин, а 11 пин, как положено, нужно немного подредактировать файл cpu_map.h в библиотеках, а именно поменять местами 3 и 4 ( до этого 4 вверху была, а 3 внизу )
Понял, буду знать...
 
А 3 и 4 - это PB3 и PB4 на Ардуиновской распиновке видно Pin11 и Pin12.
ардуино.jpg
 
Уже нашел и исправил :) . Чтобы работал не 12 пин, а 11 пин, как положено, нужно немного подредактировать файл cpu_map.h в библиотеках, а именно поменять местами 3 и 4 ( до этого 4 вверху была, а 3 внизу ):
Самое интересное пока не замечено. Пины на которые вы хотите перевести управление изменены не просто так, это связано с невозможностью управления шпинделем по ШИМ, начиная с 0.9J, сделана перераспиновка. Исправить программно конечно можно, но все это мартышкин труд, не проще ли просто физически подключить куда надо? Результат ваших действий будет еще и программная несовместимость. Тот же Candle вас не поймет.
 
Самое интересное пока не замечено. Пины на которые вы хотите перевести управление изменены не просто так, это связано с невозможностью управления шпинделем по ШИМ, начиная с 0.9J, сделана перераспиновка. Исправить программно конечно можно, но все это мартышкин труд, не проще ли просто физически подключить куда надо? Результат ваших действий будет еще и программная несовместимость. Тот же Candle вас не поймет.
Только 6 пинов умеют работать с ШИМ: PB1, PB2, PB3, PD3, PD5, PD6.
 
  • Последнее редактирование:
Последнее редактирование:
Там разница только в том будет, если не менять, то ШИМ будет работать, а если поменять, то только как реле вкл/выкл ,без регулировки или вообще, как читал на оф.сайте гбрл - постоянно на высоком уровне (это я еще не проверял). Вообще я планировал шпиндель отдельно с регулятором ставить, поэтому не принципиально. Если понадобится ШИМ на бутерброде - верну все в зад. А пока Candle не ругается, концевики работают, все сигналы приходят как положено и куда положено. Лазер не планирую использовать, поэтому на этот ШИМ по фиг. Вообще - это временное решение, поэтому не заморачиваюсь.
Ваши сообщения автоматически объединены:

Самое интересное пока не замечено. Пины на которые вы хотите перевести управление изменены не просто так, это связано с невозможностью управления шпинделем по ШИМ, начиная с 0.9J, сделана перераспиновка. Исправить программно конечно можно, но все это мартышкин труд, не проще ли просто физически подключить куда надо? Результат ваших действий будет еще и программная несовместимость. Тот же Candle вас не поймет.
Изначально был эксперимент по возвращению на место пинов концевиков, как они были задуманы - задача была решена, чтобы не тянуть соплю через всю плату, а с топощью Dupont 6х2 подключить все в ряд. а Candle поймет и простит:)

gblr_spindle.jpg
Ваши сообщения автоматически объединены:

Z щуп работает на контактах бутерброда GND-SCL (карту высот снимает, Z-щуп работает)
контакты D12 и D13 должны по идее экструдером управлять, но это не точно, я их не задействую
Ваши сообщения автоматически объединены:

Ваши сообщения автоматически объединены:

Только 6 пинов умеют работать с ШИМ: PB1, PB2, PB3, PD3, PD5, PD6.
 
Если понадобится ШИМ на бутерброде - верну все в зад. А пока Candle не ругается, концевики работают, все сигналы приходят как положено и куда положено. Лазер не планирую использовать, поэтому на этот ШИМ по фиг.
Я вот не пойму, зачем плодить сущностей в которых можно не только запутаться самому но и других запутать, ну работает же, зачем лезть и ломать, как говорят "не чеши если не чешется".
 
  • Последнее редактирование:
Последнее редактирование:

Можно было бы и так оставить без переделок, на D12 пустил концевик Z и все, а переделки наверное скорее всего относятся к экспериментам, просто всех отправил к теще отдыхать, отпуск, каникулы, сам дома остался, а у меня "чешется", вот и "чешу" :D

оффтоп

Ваши сообщения автоматически объединены:

Вердикт: концевики по пинам становятся на свое законное место, но ШИМ перестает работать (одно лечим - другое калечим). Можно еще одну библиотеку подтянуть для программного ШИМ, но 328 и так загружен ГБРЛ и скорее всего не влезет еще чего-нибудь. Короче, выбор за каждым: если хочется, чтобы все концевики по местам были, а на ШИМ все равно (если шпиндель вообще отдельно стоит с раздельным блоком питания и ШИМ регулятором), тогда можно сделать, а так - кто как хочет...
 
концевики по пинам становятся на свое законное место, но ШИМ перестает работать (одно лечим - другое калечим). Можно еще одну библиотеку подтянуть для программного ШИМ, но 328 и так загружен ГБРЛ и скорее всего не влезет еще чего-нибудь. Короче, выбор за каждым: если хочется, чтобы все концевики по местам были, а на ШИМ все равно (если шпиндель вообще отдельно стоит с раздельным блоком питания и ШИМ регулятором), тогда можно сделать, а так - кто как хочет...
Извините, тогда накой вам GRBL1. 1.F, когда было бы достаточно GRBL0.9.J. Там ничего перебрасывать не надо было, и Candle излишество, достаточно GRBLControl.
 

Извините, тогда накой вам GFBL1. 1.F, когда было бы достаточно GRBL0.9.J. Там ничего перебрасывать не надо было, и Candle излишество, достаточно GRBLControl.

оффтоп


Чесало у него чесалось :D

оффтоп
 
Сверху Снизу
Обнаружен блокировщик рекламы AdBlock

МЫ ДОГАДЫВАЕМСЯ, ЧТО РЕКЛАМА ВАС РАЗДРАЖАЕТ!

Конечно, Ваше программное обеспечение для блокировки рекламы отлично справляется с блокировкой рекламы на нашем сайте, но оно также блокирует полезные функции. Мы стараемся для Вас и не обязываем Вас донатить и скидывать денег на наши кошельки, чтобы пользоваться форумом, но реклама это единственное, что позволяет поддерживать проект и развивать его.

Спасибо за Ваше понимание!

Я отключил свой AdBlock    Нет, я не буду ничего отключать