Skivaks 4 Posted October 28, 2021 Share Posted October 28, 2021 Одного прекрасного моменту мене дістали круглі випуклі кутики принтів, а тратитись на "круту" плату керування не хотілось, та і не було можливості. Тому я почав ритись на всяких форумах в пошуках вирішення проблеми, суть якої заключається в тому, що драйвери степерів на моїй платі 4.2.2 розпаяні, і працюють в режимі Standalone. Вирішення проблеми було знайдено - фізична модифікація плати. Суть вирішення полягала в тому, що потрібно припаяти провідник до "ноги" STM32 провідник до піна драйвера екструдера який відповідає за використання режиму UART. Ну і, очевидно, модифікація прошивки для утилізації змін, ну і щоб магічний димок залишався на своїх місцях. Знайшов в інтернеті інструкцію від пана Wong Sy Ming, в якій він описав метод даної модифікації. Лейаут плати 4.2.2, звичайно з того часу не змінився, але прошивка Marlin не стояла на місці, і зміна файлів для коректної роботи даної модифікації (відповідно інструкції) створювали помилки і прошивка відмовлялась компілюватись. Після трьох днів невдалих спроб компіляції, я був готовий купити нову плату, але ЗП ще не близько, а їсти хочеться, тому я ще трошки порився на просторах і знайшов модифіковану інструкцію для новішої версії прошивки. Там, правда описувався інший метод фізичної модифікації, але суть залишалась та сама. Нажаль, і та інструкція була описана не досить детально, і прошивка все одно не генерилась. Але, на щастя, у коментах під постом людина з цим всім розібралась і виставила свої результати у відкритий доступ (за що йому дуже дякуємо). Нижче, для вашої зручності, я описав хід модифікації яку виконав я і розписав кожен крок щоб у вас не було труднощів, якщо, ви, звичайно, наважитесь на це. !!!Ви робите всі фізичні і логічні модифікації на свій страх і ризик. Я не несу ніякої відповідальності за пошкоджені Вами деталі принтера!!! З юридичною частиною закінчили, перейдемо до самого процесу. Для початку, вам потрібно буде: тонкий провідник (я маю на увазі ТОНКИЙ, свій я дістав з юсб подовжувача data провідник), паяльник з тонким жалом, тонкий припой (для контролю скільки ви його використовуєте) і всякі розхідні матеріали які вам потрібні для пайки (у мене це припой, кислота для пайки, мідна стружка), хороше освітлення робочої зони, лупа, або інший пристрій що дозволить вам краще бачити те що ви паяєте, "третя рука", ну і інше що на вашу думку вам допоможе. Витягаємо плату з принетра, бажано запам'ятовувати що куди підключене, щоб нічого не перепутати, і не випустити магічний димок. Фіксуємо у зручне положення для пайки та індентифікуємо місця де потрібно припаяти. Лудимо провідник, припаюємо на місце. Важливо припаяти до резистора R19 на контакт ближче до драйвера, це на платі 4.2.2, на 4.2.7 там трошки по іншому, там 2 резистора,паятись потрібно до R52 (не провірено мною). Готово. Перевірте правильність виконання, чи кінці не торкаються інших відкритих контактів, чи не замостували ноги контролера, це дуже важливо для зберігання диму! фото моєї модифікації на платі 4.2.2: фото з інструкції для плати 4.2.7: Збираємо все на місце, підключаємо все туди, звідки воно було витягнуте. Тепер, модифікації прошивки. Надіюсь ви вмієте генерити прошивку з вихідного коду, якщо ні, то самий час навчитись! Є невеликий ньюанс, з Marlin 2.0.9.х. Компіляція проходить без помилок, але при прошивці просто чорний екран. Пояснення тут. Використовуємо Marlin 2.0.8.х або Jyers 1.3.4 (особисто я користуюсь цим). Пишуть, що якщо хочете використовувати версію вищу потрібно при компіляції прошивки вибирати STM32F103RET6_creality_maple а не як зазвичай STM32F103RET6_creality. Нижче наведені модифікації до файлів які виконав я (без урахування особистих) platformio.ini на початку файлу, після #targets [env:my_build_env] platform = infineonxmc framework = arduino lib_deps = fysetc/SoftwareSerialM @ ^1.0.0 скролимо вниз, шукаємо build_flags, і там пілся = пишемо -DHAVE_SW_SERIAL. Зберігаєм, закриваєм. Configuration.h #define TMC_UART_PIN_E PA3 - вставляємо це на початку файлу, після #programa once. Це для прошивки від Jyers, для Marlin можливо треба буде написати Е0, так як у файлі з пінами (Marlin/src/pins/stm32f1/pins_CREALITY_V4.h) може бути прописано #define E0_SERIAL_(TX|RX)_PIN TMC_UART_PIN_E0. Звичайно при компіляції воно вас запитає чи може ви мали на увазі Е0 чи Е. Достатньо просто дописати чи видалити 0 у файлі Configuration.h. #define E0_DRIVER_TYPE TMC2208_STANDALONE - потрібно видалити STANDALONE так як ми хочемо що він працював у режимі SpreadCycle (читаємо опис вище у файлі). + зміни які потрібні особисто вам Зберігаєм, закриваєм. Configuration_adv.h #define STEALTHCHOP_E - шукаємо цей рядок і закоментовуєм його #define LIN_ADVANCE - розкоментовуєм (заради цього все це і влаштовувалось) #define CHOPPER_TIMING CHOPPER_DEFAULT_12V - тут 12в заміняємо на 24 #define TMC_DEBUG - це розкоментовуєм для ввімкнення команди м122 яка нам потрібна буде пізніше Тепер витсавляємо струми для кожної в вісей (я поставив для всіх, ви можете поставити лише для Е, так як ми не модифікували всі драйвери а лише Е, тому для для інших вісей це не потрібно) #define STEALTHCHOP_E - шукаємо цей рядок і закоментовуєм його #define LIN_ADVANCE - розкоментовуєм (заради цього все це і влаштовувалось) #define CHOPPER_TIMING CHOPPER_DEFAULT_12V - тут 12в заміняємо на 24 #define TMC_DEBUG - це розкоментовуєм для ввімкнення команди м122 яка нам потрібна буде пізніше #if AXIS_IS_TMC(X) #define X_CURRENT 850 #if AXIS_IS_TMC(Y) #define Y_CURRENT 780 #if AXIS_IS_TMC(Z) #define Z_CURRENT 850 #if AXIS_IS_TMC(E0) #define E0_CURRENT 990 + зміни які потрібні особисто вам Зберігаєм, закриваєм. Прошиваємо плату. Підключаємся до принтера за допомогою софта з терміналом (у мому випадку окто). пишемо команду M122 і дивимося що напише: Recv: E Recv: Enabled false Recv: Set current 990 Recv: RMS current 939 Recv: MAX current 1324 Recv: Run current 16/31 Recv: Hold current 8/31 Recv: CS actual 8/31 Recv: PWM scale Recv: vsense 0=.325 Recv: stealthChop false ⟸ ЗВЕРНІТЬ УВАГУ Recv: msteps 16 Recv: interp true Recv: tstep max Recv: PWM thresh. Recv: [mm/s] Recv: OT prewarn false Recv: pwm scale sum 10 Recv: pwm scale auto 0 Recv: pwm offset auto 36 Recv: pwm grad auto 14 Recv: off time 4 Recv: blank time 24 Recv: hysteresis Recv: -end 2 Recv: -start 1 Recv: Stallguard thrs Recv: uStep count 40 Recv: DRVSTATUS E Recv: sg_result Recv: stst Recv: olb * Recv: ola * Recv: s2gb Recv: s2ga Recv: otpw Recv: ot Recv: 157C Recv: 150C Recv: 143C Recv: 120C Recv: s2vsa Recv: s2vsb Recv: Driver registers: Recv: E 0x80:08:00:C0 Recv: Recv: Recv: Testing E connection... OK ⟸ ЗВЕРНІТЬ УВАГУ Recv: ok Звертаємо увагу на те що позначено стрілками, якщо все так як у мене, то все гуд, модифікація успішна. Залишилось тестовий принт на визначення К. Але для початку не забудьте настроїти принтер, Z Offset, E-Steps, PID. Тепер можна і згенерувати і друканути тестовий принт. У мене тест виглядав так: Велике фото Після визначення К, друканув кубик: З ЛА. Велике фото Credit & Sourse: - Перше що було знайдено - пост у соц мережі Фейсбук - Пост на порталі Reddit від користувача LookAtDaShinyShiny та комент користувача greenbue_2020 під тим жеж постом Файли з інструкціями від їх авторів (англійською): Linear Advance Modification for Creality 4.2.2 boards v2.pdf Creality4.2.2_4.2.7_TMC_UART_Mod.pdf 1 3 Quote Link to post Share on other sites
Kalipso 3 Posted July 18 Share Posted July 18 Jyers пише що є варіант паятися до R19 та накидувати контакт PA13= swido + він прошивку підправив для цього. Я так і зробив, працює. https://github.com/Jyers/Marlin/discussions/707#discussioncomment-700658 3 Quote Link to post Share on other sites
pa-pe 1 Posted 23 hours ago Share Posted 23 hours ago Дуже порадували ви мене хлопці. Я Соркіна наслухався на ютубі і подумав що Ender 3 v2 шматок брухту, бо на ньому Linear Advance не світить без заміни плати, а якщо вас послухати то потрібно один проводок підпаяти й прошивку оновити, бо у мого Ender 3 v2 така сама плата v4.2.2... Доречі проводок вже підпаяв й прошивку підкрутив під LA на Marlin 2.1.1 Під час компіляції прошивки зіткнувся з помилкою: Marlin/src/HAL/STM32/../../inc/SanityCheck.h:1336:33: error: static assertion failed: It is strongly recommended to set DEFAULT_EJERK >= 10 when using LIN_ADVANCE. Enable ALLOW_LOW_EJERK to bypass this alert (e.g., for direct drive). Трохи погуглив як то вирішити, ніби радять підняти конфігураційний параметр до 15, спробував підняти, скомпілювалось за допомогою плагіна Auto Build Marlin, який мені автоматично запропонував встановити Visual Studio Code v1.70.0 коли я відкрив Marlin через PlatformIO. Прошивку залив на пристрій, команду M122 пропустив так як від неї я так зрозумів нічого не залежить, лише інформаційна дія, подумав що або побачу друкує принтер чи ні, якщо друкує то або побачу зміни у якості друку, або не побачу. Увімкнув принтер, перевірив чи слухаються двигуни, все було як зазвичай включно екструдер. Далі пропустив "Але для початку не забудьте настроїти принтер, Z Offset, E-Steps, PID." бо тут для мене поки що знайоме лише одне слово "Z Offset", далі погуглив що до K-factor Calibration Pattern, ніби все легко, ось посилання https://marlinfw.org/tools/lin_advance/k-factor.html підкинув свої параметри, скачав, закинув на флешку й почав друкувати. Надрукувався патерн хоч і без цифр але хоч якось десь з третьої спроби, після того як підігнав температури під свій пластик й вручну підкрутив калібровку стола. Чого так погано другується не зрозумів, можливо якось пов'язано в оновленнями, а можливо просто поки крутив принтер щоб підпаяти проводок замацав стіл мазутою з осі Z. Цифри уявно домалював з фото в попередньму пості і здозумів що мій К-фактор десь 0.06. Підкинув цю цифру у Cura після встановлення плагіна Linear Advance - ютуб допоміг освоїти цю послідовність. Також з ютубу взяв код для налаштувань принтера Стартовий G-код M900 K{material_linear_advance_factor} M900 W{line_width} H{layer_height} D{material_diameter} далі курі нарізав свою маленьку тестову модель на 7 хвилин друку й отримав по класиці дві новини: одна хороша і друга "така собі". Хороша новина про те що принтер ще друкує після всього того що я з ним робив сьогодні й попередні дні. Й "така собі" новина про те що я не помітив різниці, що я друкував на прошивці від виробника, що я друкував на останному найкрутішому Marlin 2.1.1 до LA апгрейду, що я друкував після LA апгрейду - все однаково, геть ніякої різниці не побачив. Лише останній друк погано за стола тримався, але то може через замацаний стіл чи то просто вже мазоль на столі через то що в одному й тому самому місці другий день тестову модель ганяю. Корочше настав час відпочивати, якось наступним разом подумаю що я зробив не те чи де затупив. Якщо раптом хтось це прочитає й підкаже де я припустився помилки - буду вдячний. А якщо з часом сам розберусь то намагатимусь доповнити цей пост. PS: хто на Ender 3 v2 буде вперше встановлювати останній Марлін маючи стокову прошивку, будьте готові що вам доведеться окремо перепрошивати графічний монітор принтера. Його потрібно буде розкрутити й знайти куди вставити там sd-карту, яка обов'язково має бути відформатована кластером 4к, інакше не ш'ється - перевірено. Шити дуже легко, для тих хто не знайшов інструкцию, копіюємо папку DWIN_SET на свіжовідформатовану флешку, сама папка у мене була за адресою "Configurations-release-2.1.1/config/examples/Creality/Ender-3 V2/LCD Files" і десь поруч був файл README.md в якому описана оригінальна інструкція яку я вам щойно переказав. 1 Quote Link to post Share on other sites
KomAndr 284 Posted 22 hours ago Share Posted 22 hours ago 1 година тому, pa-pe сказав: мій К-фактор десь 0.06 Щось для ендеоа з боуденом це явно замалі значення. Треба робити тест саме для боудена, там інші значення. Результат роботи LA добре помітно на рівних кутах 90°, на відсутності грядок при 100% заповнені біля періметрів, саме у місцях де сопло міняє напрям руху на протилежний. К-фактор 0.06 більше підходить для діректу, тому на боцюудені і не помітив різницю. 1 Quote Link to post Share on other sites
pa-pe 1 Posted 5 hours ago Share Posted 5 hours ago 16 часов назад, KomAndr сказал: Щось для ендеоа з боуденом це явно замалі значення. Треба робити тест саме для боудена, там інші значення. Результат роботи LA добре помітно на рівних кутах 90°, на відсутності грядок при 100% заповнені біля періметрів, саме у місцях де сопло міняє напрям руху на протилежний. К-фактор 0.06 більше підходить для діректу, тому на боцюудені і не помітив різницю. дійсно, ще трохи понапрягався щоб вийшов більш меньш якісний друк K-factor Calibration Pattern, сама рівна полоска була четверта знизу, що відповідає сітці 0.6 я так розумію, бо полоска нижче 0.4 й полоска вище 0.8 встановив в Cura параметр Linear Advance Factor на 0.6 і знову друк такий що різніці не бачу , буду шукати далі... Quote Link to post Share on other sites
KomAndr 284 Posted 3 hours ago Share Posted 3 hours ago 1 година тому, pa-pe сказав: сама рівна полоска була четверта знизу, Щось тут не те! 1. Перший шар зовсім нікуди не годний, воно просто викладає ковбаску, а повинен бути нормальний шар 0.2, тоді і буде добре видно різницю у друку. 2. Швидкості друку країв і середини повинні кардинально відрізнятися, як що стіл дозволяє - треба збільшити відстань друку у налаштуваннях г-коду. Quote Link to post Share on other sites
pa-pe 1 Posted 3 hours ago Share Posted 3 hours ago 1 годину тому, KomAndr сказав: Щось тут не те! Я поки думаю що з прошивкою не все рівно. Я спробував підключитись терміналом і у мене нічого не вийшло. Далі почав передивлятись перший пост від Skivaks щоб знайти що я міг загубити, і зрозумів що я геть не додав блок: [env:my_build_env] platform = infineonxmc framework = arduino lib_deps = fysetc/SoftwareSerialM @ ^1.0.0 а не додав я його тому що в інструкції немає слова що його потрібно додати, ось за другим разом додав цей блок, залив прошивку і принтер почав відгукатись на команди, але M122 не хоче сприймати просто ніяк, хоча "#define TMC_DEBUG" розкоментовано - тричі перевірив. Наприклад команду парковки G28 принтер сприймає і виконує, а M122 ніяк не хоче .. 1 година тому, pa-pe сказав: [env:my_build_env] platform = infineonxmc framework = arduino lib_deps = fysetc/SoftwareSerialM @ ^1.0.0 доречі коли вставив цей блок, код не хотів компілюватись, писав якусь помилку, я придивився на інші рядки конфігурації і додав дві табуляції перед "fysetc/SoftwareSerialM @ ^1.0.0" як було у іншому блоку конфігурації цього ж файлу, й копіляція пішла. потім спробував підмінити default_envs = STM32F103RE_creality -> default_envs = STM32F103RE_creality_maple бо про це теж щось було у першому пості, змінився розмір прошивки з 139Кб на 163Кб, але принтер все ще не впізнає команду M122 PS: хто помітить що у мене замість "RET6" використано "RE" - це не помилка, марлін 2.1.1 коли бачить саме "RET6" ругається: Error: Build environment 'STM32F103RET6_creality_maple' is incompatible with BOARD_CREALITY_V4. Use one of these: STM32F103RE_creality, STM32F103RE_creality_xfer, STM32F103RC_creality, STM32F103RC_creality_xfer, STM32F103RE_creality_maple Quote Link to post Share on other sites
KomAndr 284 Posted 2 hours ago Share Posted 2 hours ago Якось замудрено виходить... Треба викликати @Skivaks автора на допомогу. Quote Link to post Share on other sites
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.