Перейти к содержанию
    

Firmware платы управления 3D-принтером

В 25.10.2022 в 21:02, Xenia сказал:

Самой корректной прошивкой для ВАШЕГО 3D-принтера может быть только ... фабричная 🙂, поскольку на заводе хоть кто-то этим принтером занимался.

Насколько она "корректная" Вы можете оценить прочитав мои посты. Если при сборке прошивки компилятор выдаёт почти 4 тысячи(!) варнингов, то такая прошивка по определению не может считаться корректной.

В 25.10.2022 в 21:02, Xenia сказал:

Причем большинство из них действительно красиво сделаны.

Я бы так не сказал. Например даже в моей плате - целая куча странных решений. Начнём с того, что почти все пины МК заняты (МК - в LQFP100, а LCD подключен на параллельный FSMC-интерфейс) и при этом дефиците пинов, разработчик зачем-то лепит на неё 2 разных чипа флешь. Причём на разные интерфейсы: один на SPI (8 МБ), другой - на I2C (16К). Вот зачем это? Если уж впаяли 8МБ на SPI, то туда же можно и настройки сохранять. Или другое - МК имеет встроенный USB, при этом они зачем-то ставят CH340G и садят его на UART.

Да - ещё там стоит WiFi модуль (на ESP8266), но такое ощущение, что он там только для потребления питания. Как его использовать и для чего - непонятно.

По уму там было оставить единственный чип флеша, линии USB пробросить на встроенный USB, а SD-карту посадить на SPI (тот же, где флешь). Тогда можно было бы освободить пины под дополнительные датчики.

В 25.10.2022 в 21:02, Xenia сказал:

У меня знакомый как-то купил себе 3D-принтер, который с ходу не заработал - вот он и вздумал в него залить "самую свежую" прошивку, не потрудившись сохранить старую/фабричную. С тех пор он у него в кладовке пылится - мастеровые не смогли его реанимировать.

Вчерашнюю ночь я потратил на редактирование "Configuration.h" из Марлина. И компиляцию затем прошивки. Скомпилиться - скомпилилось. А вот то, правильно ли понял и выставил всё это стадо ключей в "Configuration.h" - скоро узнаю (после прошивки). Они бы хотя-бы подписали все эти ключи и их значения, то многое пришлось ставить наугад.

Например: X_DRIVER_TYPE/Y_DRIVER_TYPE/Z_DRIVER_TYPE/E0_DRIVER_TYPE. У меня везде стоят "TMC2209". Но среди допустимых значений имеется два разных выбора: "TMC2209" и "TMC2209_STANDALONE". В чём отличие и какой ставить мне - не понятно. В инете по этому поводу мутно объясняют, почти ничего нет. И таких ключей там много (пришлось ставить почти наугад).

PS: Естественно - перед прошиванием какой-то прошивки, я сохраню исходную. Благо хоть SWD-разъём на плате имеется.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

1 час назад, jcxz сказал:

Или такое:

if ( (tmp_char >> 7-j) & 0x01 == 0x01)

Такое нашёл в нескольких местах (размножение багов посредством копи-паста :biggrin: ).

Ведь явно нужно было:

if ((tmp_char >> 7 - j & 1) == 1)

Справедливости ради, работать оно будет не хуже Вашего варианта:biggrin: Но это, скорее, везение.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

11 минут назад, Arlleex сказал:

Справедливости ради, работать оно будет не хуже Вашего варианта:biggrin: Но это, скорее, везение.

Только если "истина" у компилятора == 1. Даже если так, то закладываться на это некрасиво.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

44 минуты назад, jcxz сказал:

Только если "истина" у компилятора == 1.

Истина у Си равна (int)1 и только ей.

Цитата

Даже если так, то закладываться на это некрасиво.

Ну это да.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

16 часов назад, muravei сказал:

Вас в Гугле забанили? Я должен выложить 100500  ссылок?  Есть сайт , есть на github .  Ищите: клиппер 3д.

Ваш совет из разряда "пойди туда, не знаю куда". Спасибо, мне такие советы не нужны.

А гугл про клиппер говорит:

Цитата

To do this, Klipper firmware (written in C) is installed on your printer’s controller board (or boards), which is then connected to the Raspberry Pi by USB. The Pi runs Klipper software called “Klippy”, which is written mostly in Python. The software reads the G-code, performs the required calculations, and sends a stream of event-timed instructions to the controller to keep perfect synchronization.

Т.е. - к моей плате (на ARM) нужна ещё и Малина довеском! :unknw: 

И как же это согласуется с вашим утверждением:

В 26.10.2022 в 12:07, muravei сказал:

1 Простая прошивка для самого принтера. ( проще разобраться , если понадобится)

?

Где эта "простая прошивка для самого принтера"?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

4 часа назад, Arlleex сказал:

Справедливости ради, работать оно будет не хуже Вашего варианта:biggrin: Но это, скорее, везение.

А как вам такое?:

    if(gId_stack[i].flag == ID_NOT_USED) {
      gId_stack[i].flag == ID_USED;
      return gId_stack[i].id;
    }

2-я строчка.

Это оттуда же.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

:biggrin:

Вот, кстати, не исключаю, что эти баги связаны со скоропечатанием кода, о минусах которого я недавно свои мысли излагал.

Вообще, там на эту строку должен быть warning (и он, скорее всего, есть), только вот "писателям" было до лампочки, снимаемая галка "force all warnings to errors" в IDE их спасла.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

7 часов назад, jcxz сказал:

Спасибо, мне такие советы не нужны.

Ну , вот и славненько! Что-то прочитали . 🙂 

А вы хотели , чтобы я "метал бисер перед..." э-э в пустоту? 😉

7 часов назад, jcxz сказал:

к моей плате (на ARM)

"У каждого свои недостатки!" Но прочитали плохо. Кроме ПИ , там любой приемлемый одноплатник , например апельсин, старый ноут , возможно смартфон. 

Кстати, на ПИ устанавливается за 15-20 мин.

Но начинать "читку" надо было с понимания "нахрена?" Там еще , скорее всего, штатный дисплей ничего не покажет. 🙂 Но народ идет на эти жертвы.

7 часов назад, jcxz сказал:

Где эта "простая прошивка для самого принтера"?

"Ищите Читайте и обрящете!" 🙂

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

13 часов назад, jcxz сказал:

Прошивать то что получилось ещё не пробовал, позже наверное рискну.

Посоветую перед прошивкой на форумах почитать может есть какие-то особенности или подводные камни. Мой опыт с creality показал, что официальный сайт некоторые особенности умалчивает и у меня не с первого раза получилось обновить принтер. В моем случае если получится кирпич можно было все починить с помощью ST-link.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

В 24.10.2022 в 20:41, Xenia сказал:

Я разбиралась и модифицировала

В 25.10.2022 в 21:02, Xenia сказал:
У меня знакомый как-то купил себе 3D-принтер, который с ходу не заработал - вот он и вздумал в него залить "самую свежую" прошивку, не потрудившись сохранить старую/фабричную. С тех пор он у него в кладовке пылится - мастеровые не смогли его реанимировать.

 

Вам тоже мог подойти Клиппер. На плату  установить им скомпилированную прошивку, разобраться в протоколе. После чего клиппер удалить.

А вашему знакомому- так стопроцентно!

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

6 часов назад, Arlleex сказал:

Вот, кстати, не исключаю, что эти баги связаны со скоропечатанием кода, о минусах которого я недавно свои мысли излагал.

Это связано с полным игнорированием варнингов ваятелями того поделия.

6 часов назад, Arlleex сказал:

Вообще, там на эту строку должен быть warning (и он, скорее всего, есть), только вот "писателям" было до лампочки, снимаемая галка "force all warnings to errors" в IDE их спасла.

В самом начале ещё писал - при компиляции выдаётся более 3 тысяч варнингов. Пейсатели просто забили на них.  :unknw:

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

4 часа назад, Sverchok сказал:

Посоветую перед прошивкой на форумах почитать может есть какие-то особенности или подводные камни. Мой опыт с creality показал, что официальный сайт некоторые особенности умалчивает и у меня не с первого раза получилось обновить принтер. В моем случае если получится кирпич можно было все починить с помощью ST-link.

Уже перепрошил. Но не то, что у меня скомпилилось (из последней версии Marlin = 2.0.9.5), а я нашёл готовую прошивку (правда более старой версии = 2.0.3.6). Работает.

Скомпилённую самостоятельно пока ещё не решился шить. Её размер подозрительно маленький (220КБ против 485КБ готовой v2.0.3.6). Возможно что-то некорректно скомпилились. Хотя никаких ошибок или варнингов при компиляции её нету. Видимо я что-то неправильно сконфигурил в Configuration.h и она получилось некорректной.

В 25.10.2022 в 21:02, Xenia сказал:

У меня знакомый как-то купил себе 3D-принтер, который с ходу не заработал - вот он и вздумал в него залить "самую свежую" прошивку, не потрудившись сохранить старую/фабричную. С тех пор он у него в кладовке пылится - мастеровые не смогли его реанимировать.

Странно - как он так умудрился? В Marlin-овской прошивке (на ARM-платах по крайней мере) первые 0x7000 или 0x8000 байт флеша занимает бутлоадер. Который не перешивается (и который видимо и осуществляет собственно процесс прошивки). Он шьёт как флешь программ МК, так и установленную на плате SPI-флешь (картинки, шрифт) и WiFi-модуль тоже шьёт.

Если он конечно не через SWD перешивал... Тогда да - возможно.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

22 часа назад, jcxz сказал:
В 25.10.2022 в 21:02, Xenia сказал:

Самой корректной прошивкой для ВАШЕГО 3D-принтера может быть только ... фабричная 🙂, поскольку на заводе хоть кто-то этим принтером занимался.

Насколько она "корректная" Вы можете оценить прочитав мои посты. Если при сборке прошивки компилятор выдаёт почти 4 тысячи(!) варнингов, то такая прошивка по определению не может считаться корректной.

Варнинги это не показатель качества ПО, а лишь свидетельство того, что компиляторы слишком разные. Особенностью GCC является то, что он слишком покладистый :). Народ, не избалованный количеством бесплатных компиляторов под Linux, из него веревки вил. На его базе было создано много разных компиляторов для множества языков, в том числе ассемблеров для микроконтроллеров. Типа того, что программу пишешь на родном языке ассемблера, а спереди вставлен такой инклюд, который переопределяет чуждой язык в С, но не путем компиляции, а с помощью хитроумных дефиниций в том инклюде определенных. Примерно тем же способом GCC компилирует и ардуино-скетчи, хотя в общем-то такого языка нет. Понятно, что в нативном виде IAR не стал бы эти скетчи компилировать. А варнингов было бы много не столько от расхождениях в стандартах языка C, сколько в расхождениях управляющих опций, жесткого стандарта на которые нет. Скажем, я когда-то пыталась скомпилировать чужой проект на MSVC, написанный на Watcom C/C++ - ничего у меня не получилось, причем из всех щелей лезли не только варнинги , но и эрроры. А вот под родным компилятором (на котором проект был изначально написан) компиляция проходит как без ошибок, так и без варнингов. Отсюда следует, что это отнюдь не программистские ошибки, а эффект несовместимости компиляторов.

 

22 часа назад, jcxz сказал:
В 25.10.2022 в 21:02, Xenia сказал:

Причем большинство из них действительно красиво сделаны.

Я бы так не сказал. Например даже в моей плате - целая куча странных решений. Начнём с того, что почти все пины МК заняты (МК - в LQFP100, а LCD подключен на параллельный FSMC-интерфейс) и при этом дефиците пинов, разработчик зачем-то лепит на неё 2 разных чипа флешь. Причём на разные интерфейсы: один на SPI (8 МБ), другой - на I2C (16К). Вот зачем это? Если уж впаяли 8МБ на SPI, то туда же можно и настройки сохранять. Или другое - МК имеет встроенный USB, при этом они зачем-то ставят CH340G и садят его на UART. Да - ещё там стоит WiFi модуль (на ESP8266), но такое ощущение, что он там только для потребления питания. Как его использовать и для чего - непонятно.

Красоту изготовления я оценивала на глаз - по качеству изготовления (разводка+монтаж), а качество схемотехники не анализировала. Опять же я уже объясняла ранее, что такие платы китайцы делают "на вырост", т.е. рассчитывая ее не на применение в каком-то конкретном 3D-принтере, а для принтеров максимально широкого ассортимента. А те, кто будет капризничать типа "WiFi мне не надо", пусть заказывают индивидуальную разработку и производство свое платы по цене в 10-20 раз дороже за штуку.

Кроме того, платы большого размера, которые выпускались раньше (именно такую я выбирала), делали более качественно, но "лишних" разъемов у них было еще больше. Однако в отношении себя я считала это не недостатком, а достоинством. Скажем, раньше вместо кварцевого резонатора ставили кварцевый генератор. По каналу USB стояла FT232, а позднее ее заменили на CH340.

 

22 часа назад, jcxz сказал:
В 25.10.2022 в 21:02, Xenia сказал:

У меня знакомый как-то купил себе 3D-принтер, который с ходу не заработал - вот он и вздумал в него залить "самую свежую" прошивку, не потрудившись сохранить старую/фабричную. С тех пор он у него в кладовке пылится - мастеровые не смогли его реанимировать.

Вчерашнюю ночь я потратил на редактирование "Configuration.h" из Марлина. И компиляцию затем прошивки. Скомпилиться - скомпилилось. А вот то, правильно ли понял и выставил всё это стадо ключей в "Configuration.h" - скоро узнаю (после прошивки). Они бы хотя-бы подписали все эти ключи и их значения, то многое пришлось ставить наугад.

Например: X_DRIVER_TYPE/Y_DRIVER_TYPE/Z_DRIVER_TYPE/E0_DRIVER_TYPE. У меня везде стоят "TMC2209". Но среди допустимых значений имеется два разных выбора: "TMC2209" и "TMC2209_STANDALONE". В чём отличие и какой ставить мне - не понятно. В инете по этому поводу мутно объясняют, почти ничего нет. И таких ключей там много (пришлось ставить почти наугад).

Да, именно в "Configuration.h" и в Configuration_adv.h и заключена вся мудрость настройки :), всё остальное обычно править не приходится. А между "TMC2209" и "TMC2209_STANDALONE", думаю, различие небольшое - драйвер не получит вреда, если эти дефиниции перепутать. Хуже было бы, если бы вы не поставили ни одного из этих дефиниций для драйвера "TMC2209" - у драйверов от TI другая логика работы (у меня используется A4988, который работает по умолчанию).

 

22 часа назад, jcxz сказал:

PS: Естественно - перед прошиванием какой-то прошивки, я сохраню исходную. Благо хоть SWD-разъём на плате имеется.

Прошивку можно прочитать тем же способом, как и залить - через USB-порт с помощью avrdude:

avrdude -Cavrdude.conf -patmega2560 -cstk500V2 -PCOM%1 -b115200 -D -Uflash:r:read.hex:i

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Модифицировал Марлин под плату MKS Ronin Nano v1.3. Ну что сказать... Качество исходников Марлина удовлетворительное, но вот многоэтажные структуры дифайнов (порой доходит до десятка уровней вложенности) - это сущий ад для того, кто пытается разобраться.

WiFi на этих платах вполне себе работает, через него можно мониторить состояние принтера и отправлять файлы на печать. Скорость, конечно, так себе - около 120 кб/сек, но все равно достаточно удобно 🙂

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

В 15.11.2022 в 10:39, AndyBig сказал:

Модифицировал Марлин под плату MKS Ronin Nano v1.3. Ну что сказать... Качество исходников Марлина удовлетворительное, но вот многоэтажные структуры дифайнов (порой доходит до десятка уровней вложенности) - это сущий ад для того, кто пытается разобраться.

А Вы сами - взяли отдельно Марлин и портировали его на эту плату? Или модифицировали какой-то уже готовый проект с таким переносом?

В 15.11.2022 в 10:39, AndyBig сказал:

WiFi на этих платах вполне себе работает, через него можно мониторить состояние принтера и отправлять файлы на печать. Скорость, конечно, так себе - около 120 кб/сек, но все равно достаточно удобно 🙂

Да, я уже разобрался. У меня уже тоже работает. Но скорость гораздо ниже - около 7.5 кБ/с. Модифицировал чужой проект переноса Марлина на эту плату. Под IAR.

Да кстати - а как получилось 120 кб/с? Это кбит или килобайт? В моей плате стоит ESP8266 с прошивкой, работающей по UART на 115200 бод. Соответственно - даже теоретически выше 11.5 кБ/с не прыгнуть (разве что - за счёт сжатия). А в реале даже меньше из-за накладных расходов протокола. Или может у Вас прошивка ESP работающая на бОльшей скорости? Если так - может поделитесь ей или скажете где её взять?

Я могу поделиться своими наработками. Если интересно.  :smile:

 

PS: Упустил из виду эту тему и только прочитал ваше сообщение.  :sad:

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...