Данная конфигурация может не подойти к любому ULTI, однако имеет структурированый вид, а потому удобна в качестве темплейта.
Eсть предложения? Пишите! Тусовка на отдельном канале в Telegram.
- ./macros - склад макросов, подгружается вся директория. Положить на RPi рядом с конфигом.
- printer-rocker_feeder-classic.cfg - Классическая конфигурация, оригинальный Rocker Feeder.
- printer-rocker_feeder-performance.cfg - Версия без интерполейта и без снижения тока на hold (согласно последним данным, может влиять на точность), оригинальный Rocker Feeder. Проверьте, что не перегреваются моторы.
- printer-BMG-interpolate.cfg - Конфигурация с интерполейтом, но без снижения тока на hold, BMG от Triangle.
- printer-BMG-performance.cfg - Версия без интерполейта и без снижения тока на hold, BMG от Triangle.
- Ждите, когда моя ленивая жопа его уже поставит.
- PrusaSlicer_ULTI_Klipper.ini - стабильный, проверенный конфиг.
- PrusaSlicer_ULTI_Klipper-fast.ini - чуть более быстрая версия, разницы по качеству не заметил.
- Скачать образ и залить его на SD при помощи balenaEtcher
- Настроить WiFi в fluiddpi-wpa-supplicant.txt
- Воткнуть SD карточку в RPi, включить, после загрузки - посмотреть IP подключенного устройства в админке роутера и подключиться по ssh
Login: pi Password: raspberry - Обновиться
sudo apt-get update
sudo apt-get upgrade
sudo raspi-config [>Update]
- Настроить RPi через raspi-config (Hostname, Password, Timezone, etc)
sudo echo "pi ALL=(ALL:ALL) NOPASSWD:ALL" >> /etc/sudoers
cd ~/klipper
git pull
Даже если используем Fluidd, а не Octo,
~/klipper/scripts/install-octopi.sh
ls -lrt /dev/serial/by-id/
Должны увидеть, что плата SKR подключена.
lrwxrwxrwx 1 root root 13 Jan 17 22:12 usb-marlinfw.org_Marlin_USB_Device_0F017012AF4818C85D18BAFAF50020C3-if00 -> ../../ttyACM0
make menuconfig
[x] Enable extra low-level configuration options
Micro-controller Architecture (LPC176x (Smoothieboard)) --->
Processor model (lpc1768 (100 MHz)) --->
[x] Target board uses Smoothieware bootloader
[x] Use USB for communication (instead of serial)
USB ids --->
[ ] Specify a custom step pulse duration
() GPIO pins to set at micro-controller startup
make clean
make
sudo service klipper stop
- Прошивка SKR напрямую потребует другой бутлоадер для LPC1768, но позволяет не открывать подвал.
make flash FLASH_DEVICE=/dev/ttyACM0
- Проще прошиться через SD. Удлинитель поможет!
Закидываем на SD файл klipper.bin, переименовав его в firmware.bin. Включаем SKR, проверяем и запоминаем свой id.
ls -lrt /dev/serial/by-id/
lrwxrwxrwx 1 root root 13 Jan 17 23:20 usb-Klipper_lpc1768_1270010FC81848AFFABA185DC32000F5-if00 -> ../../ttyACM0
sudo service klipper start
- Открываем подходящий под конфигурация конфиг (.cfg), корректируем в нем раздел "# Board" (MCU) - ставим свой /dev/serial/by-id/usb-Klipper_lpc1768_ID
- Загружаем конфиг в директорию /home/pi/klipper_config/ с именем printer.cfg
Так же загружаем директорию macros - Заходим браузером на FLUIDD
- Отправляем в консоль FLUIDD RESTART
Команды отправляются из интерфейса Octoprint/Fluidd в консоль как GCODE.
- Калибруем PID экструдера
PID_CALIBRATE HEATER=extruder TARGET=230
- Калибруем PID стола
PID_CALIBRATE HEATER=heater_bed TARGET=110
- Калибруем концевики
ENDSTOP_PHASE_CALIBRATE
- Выравниваем стол
BED_SCREWS_ADJUST
- Еще раз проверяем концевики, стол должен останавливаться в Z=0.00
ENDSTOP_PHASE_CALIBRATE
- Следующая настройка под вопросом, если используется калибровка через щуп - универсальнее использовать Z_OFFSET.
Это позволит менять его для различного типа филамента через скрипт запуска, например так - START_PRINT BED_TEMP={first_layer_bed_temperature[0]} EXTRUDER_TEMP={first_layer_temperature[0]} Z_GCODE_OFFSET=-0.03Z_ENDSTOP_CALIBRATE
- Проверяем Extruder rotation distance
- Печатаем пустотелый кубик для калибровки потока и устанавливаем корректное значение Flow в слайсере, даже если калибровали его до этого в Marlin
- Печатаем температурную башню если неизвестна точная температура
5.1 Pressure Advance
Прежде чем приступить, убедитесь что температура и поток откалиброваны правильно
На мой взгляд калибровка должна происходить примерно с тем же ретрактом, что будет использоваться при печати - это вопреки официальной инструкции, что рекомендует использовать "normal retraction amount", а после калибровки - "small value". Такой подход позволит получить более показательные и приближенные к реальным условиям печати результаты калибровки.
По шагам:
- Калибровка PA с уменьшенным ретрактом (мои значения - 1.75mm длина и 25mm/s скорость ретракта). Шов Aligned по углу позволит легко найти точную высоту. По углам определяем оптимальную высоту и по формуле (pressure_advance = стартовое_значение + измерянная_высота_в_мм * инкремент_фактор) высчитываем примерно нужное значение.
SET_VELOCITY_LIMIT SQUARE_CORNER_VELOCITY=1 ACCEL=500
TUNING_TOWER COMMAND=SET_PRESSURE_ADVANCE PARAMETER=ADVANCE START=0 FACTOR=.020
У меня оптимальное значение в первоначальном тесте было на высоте 25мм, соответственно 0 + 25 * 0.020 = 0.5
Устанавливаем полученное значение в прошивке в блоке "# Pressure Advance"
Если у вас ABS и ULTI стандартной конфигурации, а так же вы используете мой конфиг - скорее всего первоначальную калибровку можно пропустить и приступить сразу к следующему шагу.
- Точная калибровка PA. Настройки аналогичны предудыщему шагу, но шов рекомендую Rear - позволит ориентироваться не только по углам, но и по шву.
Сразу предупреждаю, что данная калибровка требовательна к зрению, так какесли вы находитесь в оптимальном диапазоне разница будет незначительна. Посветить ярким фонариком под острым углом поможет найти оптимальную высоту.
Так как оптимальное первоначальное значение было у меня 0.5 (и у вас, скорее всего, тоже рядом), калибровка будет происходить в диапазоне от 0.4 до 0.75
SET_VELOCITY_LIMIT SQUARE_CORNER_VELOCITY=1 ACCEL=500
TUNING_TOWER COMMAND=SET_PRESSURE_ADVANCE PARAMETER=ADVANCE START=0.4 FACTOR=.007
Оптимальная высота у меня составила 26.77мм, соответственно, pressure_advance = + <measured_height> * = 0.4 + 26.77 * 0.007
- Калибровка square_corner_velocity через все тот же Tung Tower, используя модель ringing_tower.stl (перед тестом нужно завысить лимит square_corner_velocity в конфиге).
Я не заметил никаких позитивных изменений в качестве при повышении SCV, ровно как и повышения скорости печати. После 30 появилось эхо. Если вдруг у вас иные результаты - пожалуйста сообщите. Похоже, что значения в 5 вполне достаточно при печати 100mm/s и 3000mm^2/s. Если есть желание, то -
TUNING_TOWER COMMAND=SET_VELOCITY_LIMIT PARAMETER=SQUARE_CORNER_VELOCITY START=5 FACTOR=1
Выполнить печать STL/PA_calibratiob_v*.stl в режиме калибровочной башни. Слайсинг - с обычными, часто используемыми параметрами печати, а печать без изменений SCV и ускорений.
TUNING_TOWER COMMAND=SET_PRESSURE_ADVANCE PARAMETER=ADVANCE START=0.4 FACTOR=.007
Данная модель покажет слишком раннюю или слишком позднюю, либо недостаточную или чрезмерную компенсацию. Стоит обратить внимание не только на углы, но и на окончание периметра в прорези.
Версии различаются по ширине линии.
- firmware_retraction + fine retraction calibration (tower)
- Not sure about correct retraction/deretraction acceleration - max_extrude_only_accel
- Fan tower
- Accel tower
- Speed tower
- Написать раздел по https://www.klipper3d.org/Resonance_Compensation.html
- Проверить https://www.klipper3d.org/skew_correction.html
- Max smoothing (from accelerometer log) - автоматизировать подбор скриптом.
- Settings per material (retract, z_offset) - перенесено в слайсер
- Fine-tuning Input Shaping (maybe with PA)