При включении питания с помощью RPi теряется соединение с MCU (Ender 3v2/Klipper/Mainsail)
TL;DR: Когда питание выключено (состояние по умолчанию), Pi питает микроконтроллер Эндера через USB, и все в порядке, но когда я включаю питание через G-код, я получаю
Потеряна связь с MCU 'mcu'
Я совершенно уверен, что я не первый, с кем это произошло, но поиск еще не дал мне ответа, вероятно, из-за того, что поиск сообщения об ошибке дает только несвязанные ответы. Мой Ender 3v2 (материнская плата 4.2.2) настроен таким образом, что мой Raspberry Pi 3 B+ включает питание через реле, управляемое GPIO.
Макрос (который, кажется, работает нормально при переключении):
# Включает принтер
[output_pin printer_power]
pin: rpi:gpio17
# Питание принтера включено
[gcode_macro POWER_ON]
gcode:
SET_PIN PIN=printer_power VALUE=1
# Питание принтера выключено
[gcode_macro POWER_OFF]
gcode:
SET_PIN PIN=printer_power VALUE=0
gpioinfo pin 17:
line 17: "GPIO17" "klipper" output active-high [used]
Я использую команды POWER_ON
и POWER_OFF
в G-коде слайсера, где они либо первые, либо последние. (редактируйте: не выключайте принтер через слайсер, если вы хотите видеть успешные отпечатки в обзоре — практически он работает нормально, но гораздо лучше позволить принтеру автоматически отключаться в режиме ожидания, см. https://github.com/jschuh/klipper-macros например)
Когда я использую слайсер для отправки файла на принтер, он запускается и работает около трех секунд, пока начинается возвращение осей в исходное положение, а затем возникает ошибка
ПоявляетсяПотеряна связь с MCU 'mcu'
, и принтер травмируется от своего замешательства, но когда я использую команды через грот, он работает нормально.
Надеюсь, кто-нибудь знает, как этого избежать, возможно, это просто проблема с электричеством (немедленные инструкции/отключение питания при запуске?), которую мне нужно как-то обойти.
@Sasquatch-cyber, 👍0
1 ответ
Исправлено.
Как и ожидалось и вполне разумно, MCU потребовалось некоторое время для пробуждения, поэтому он заработал 6-7 секунд, поэтому в коде ему дали всего 10 секунд. Нашел самый изящный способ сделать это в том же макросе, а также включил приятный небольшой звуковой сигнал, сообщающий мне, что игра идет. Тем временем я также добавил в установку блок питания ATX, так что он включается первым, и я включаю блок питания 24 В только после того, как MCU проснулся, потому что управление перед питанием.
# Переключает блок питания 24 В через логический элемент физического реле 1.
[output_pin 24V_power]
pin: rpi:gpio17
# Переключает блок питания 12 В через физический релейный вентиль 2.
[output_pin 12V_power]
pin: rpi:gpio27
# Включает питание
[gcode_macro POWER_ON]
gcode:
SET_PIN PIN=12V_power VALUE=1
G4 P9000 # Give MCU time to wake up
SET_PIN PIN=24V_power VALUE=1
G4 P1000 # Give 24V PSU time to wake up
BEEP_STARTUP
# Выключает питание
[gcode_macro POWER_OFF]
gcode:
BEEP_POWEROFF
SET_PIN PIN=24V_power VALUE=0
SET_PIN PIN=12V_power VALUE=0
Включен дополнительный бит, потому что это может помочь незнакомцу, поскольку на исходный вопрос можно просто ответить добавлением:
G4 P10000 # Даем MCU время на пробуждение
непосредственно после включения питания, либо после макроса в слайсере, либо в макросе, как я сделал, и до того, как будет запрошено какое-либо действие со стороны MCU. Обратите внимание, что это время может варьироваться в зависимости от вашего MCU, и я воздержался от дальнейшей настройки, чтобы предотвратить ошибки в дальнейшем.
- Клиппер, похоже, не настраивает Z после BED_MESH_CALIBRATE
- В чем разница между Линейным опережением и опережением давления
- Creality Sonic Pad выдает ошибку после первых нескольких строк печати
- Ender 3 S1 Pro – смещение по оси Z постоянно меняется
- Степперы застряли с Клиппером но работают с Марлином
- Пользовательская установка Creality Sprite Extruder на Ender 3 Pro с TMC2208 и Klipper
- TPU на Ender 3 S1 Pro работает, только когда поток установлен на 600 %.
- Прошивка Klipper на OctoPi запрашивает микроконтроллер для прошивки