Sergey1560 / Marlin_FB4S

Marlin 2.0 for Flying Bear 4S/5
GNU General Public License v3.0
220 stars 157 forks source link

2.0.9, SDcard fail #49

Open ginpigin opened 2 years ago

ginpigin commented 2 years ago

fbg5, mks robin Nano 1.2 после установки последней версии не видит прошивку на карте, пробовал все прошивки. так же перестал видеть карту на 128ггб с любой файловой системой, фат32 тоже sd init fail. настройки не сбрасываются на дефолтные при инициализации ипром (калибровка экрана не появляется). я хотел поставить клипер и как я этт теперь сделаю?

Sergey1560 commented 2 years ago

"не видит прошивку" означает, что у вас не запускается процесс обновления прошивки с sd карты? Вероятнее всего, bootloader не может инициализировать файловую систему. Карты больше 64гб обычно форматируются в exFat. Попробуйте с небольшой картой, до 32гб. Прошить клиппер, как и любую другую прошивку, вы можете точно так же, с sd карты. Если вы не использовали программатор, а прошивали с sd карты, возможности переписать bootloader у вас не было. Если вы только этого умышленно не сделали.
Если прошивка у вас сейчас стартует - bootloader на месте и все работает. Просто попробуйте с картой меньшего размера, на 8-16гб, отформатировав ее в https://www.sdcard.org/downloads/formatter/

ginpigin commented 2 years ago

"не видит прошивку" означает, что у вас не запускается процесс обновления прошивки с sd карты? Вероятнее всего, bootloader не может инициализировать файловую систему. Карты больше 64гб обычно форматируются в exFat. Попробуйте с небольшой картой, до 32гб. Прошить клиппер, как и любую другую прошивку, вы можете точно так же, с sd карты. Если вы не использовали программатор, а прошивали с sd карты, возможности переписать bootloader у вас не было. Если вы только этого умышленно не сделали. Если прошивка у вас сейчас стартует - bootloader на месте и все работает. Просто попробуйте с картой меньшего размера, на 8-16гб, отформатировав ее в https://www.sdcard.org/downloads/formatter/

все таки проблема в новых версиях прошивки, с карт, с которых раньше шил, теперь не шьется. купил новую карту на 16 и с неё прошилось

Sergey1560 commented 2 years ago

При старте платы, сначала запускается bootloader, прошитый производителем на заводе. Этот бутлоадер подключает sd карту, ищет на ней файл с обновлением основной прошивки и если находит, то обновляет её. После этого просто запускает основную прошивку. Если обновления на карте нет, то bootloader просто запускает основную прошивку. При обновлении прошивки код bootloader-а не изменяется. Он остаётся ровно тот же, что был записан производителем. Поэтому все проблемы с прошивкой, они никак не зависят от версии основной прошивки.

ginpigin commented 2 years ago

При старте платы, сначала запускается bootloader, прошитый производителем на заводе. Этот бутлоадер подключает sd карту, ищет на ней файл с обновлением основной прошивки и если находит, то обновляет её. После этого просто запускает основную прошивку. Если обновления на карте нет, то bootloader просто запускает основную прошивку. При обновлении прошивки код bootloader-а не изменяется. Он остаётся ровно тот же, что был записан производителем. Поэтому все проблемы с прошивкой, они никак не зависят от версии основной прошивки.

тогда какое объяснение этому может быть? 2 карты перестали нормально работать, хотя ошибок нет, 1 карту принтер видел и печатал с неё. на пк работают обе. карта на 128ггб раньше определялась даже в exfat

ginpigin commented 2 years ago

При старте платы, сначала запускается bootloader, прошитый производителем на заводе. Этот бутлоадер подключает sd карту, ищет на ней файл с обновлением основной прошивки и если находит, то обновляет её. После этого просто запускает основную прошивку. Если обновления на карте нет, то bootloader просто запускает основную прошивку. При обновлении прошивки код bootloader-а не изменяется. Он остаётся ровно тот же, что был записан производителем. Поэтому все проблемы с прошивкой, они никак не зависят от версии основной прошивки.

тогда какое объяснение этому может быть? 2 карты перестали нормально работать, хотя ошибок нет, 1 карту принтер видел и печатал с неё, но не шился. на пк работают обе. карта на 128ггб раньше определялась даже в exfat, а теперь sd init fail

Sergey1560 commented 2 years ago

Проблема с прошивкой и с sd init fail, это разные вещи. Проблема с sd init fail появилась начиная с 2.0.9 В марлине изменили библиотеку, через которую прошивка работает с железом. В частности с sd картой. По какой-то причине, инициализация карты стала не стабильной. Проблемы никак не связаны с файловой системой, поскольку происходит это при инициализации самой карты. От абсолютной уверенности, что проблема именно в коде hal меня отделяет то, что на офф. гите марлина нет issue про это. Т.е. либо проблема только у пользователей моей сборки, толи всем пофиг. Я сделал отдельную ветку https://github.com/Sergey1560/Marlin_FB4S/tree/vanilla_fb_2.0.x Это марлин без изменения в коде. Изменены только configuration.h, configuration_adv.h и platformio.ini, чтобы собрать прошивку. На сборке из этой ветки естественно не будет работать wifi. Если на этой сборке проблема сохраняется (появляется sd init fail), то проблема внутри самого марлин. Для проверки подойдёт карта с fat32. Если в наличии только большие карты (32+), то можно удалить все разделы и создать 1 на 16гб, и его уже отформатировать в fat32. Писать про проблемы с exFat бессмысленно.

Исправить инициализацию карты в своей сборке, я не могу. Кода библиотеки нет в проекте, platformio автоматически скачивает эту библиотеку конкретной версии. С более новыми версиями проект не собирается, нужно что-то адаптировать.

Резюмируя - если проблема сохраняется на картах до 32гб с fat32 на сборке ветки vanilla_fb_2.0.x , имеет смысл создать issue в репозитории марлина.

ginpigin commented 2 years ago

Проблема с прошивкой и с sd init fail, это разные вещи. Проблема с sd init fail появилась начиная с 2.0.9 В марлине изменили библиотеку, через которую прошивка работает с железом. В частности с sd картой. По какой-то причине, инициализация карты стала не стабильной. Проблемы никак не связаны с файловой системой, поскольку происходит это при инициализации самой карты. От абсолютной уверенности, что проблема именно в коде hal меня отделяет то, что на офф. гите марлина нет issue про это. Т.е. либо проблема только у пользователей моей сборки, толи всем пофиг. Я сделал отдельную ветку https://github.com/Sergey1560/Marlin_FB4S/tree/vanilla_fb_2.0.x Это марлин без изменения в коде. Изменены только configuration.h, configuration_adv.h и platformio.ini, чтобы собрать прошивку. На сборке из этой ветки естественно не будет работать wifi. Если на этой сборке проблема сохраняется (появляется sd init fail), то проблема внутри самого марлин. Для проверки подойдёт карта с fat32. Если в наличии только большие карты (32+), то можно удалить все разделы и создать 1 на 16гб, и его уже отформатировать в fat32. Писать про проблемы с exFat бессмысленно.

Исправить инициализацию карты в своей сборке, я не могу. Кода библиотеки нет в проекте, platformio автоматически скачивает эту библиотеку конкретной версии. С более новыми версиями проект не собирается, нужно что-то адаптировать.

Резюмируя - если проблема сохраняется на картах до 32гб с fat32 на сборке ветки vanilla_fb_2.0.x , имеет смысл создать issue в репозитории марлина.

и я не сказал, что шился раньше с обеих карт, с которыми теперь такое. железной эта проблема же не может быть, правильно? с новой карты шьется любая прошивка. я попробую кстати поставить стандартную прошивку и прошиться с проблемной карты, там уже будет ясность в прошивке все таки дело или нет

oleksii-suprun commented 2 years ago

Кстати, в репозитории марлина соответсвующий баг репорт недавно создали: https://github.com/MarlinFirmware/Marlin/issues/22898

oleksii-suprun commented 2 years ago

Проблема решилась заменой SD карты на другую. Форматирование предыдущей в FAT или extFAT не дало никаких результатов, но с другой карточкой всё в порядке. Прошивка стартует даже с картой в слоте.