Русская локализация прошивки теперь доступна и для Repetier

Подписаться на 3Dtoday
admtw
Идет загрузка
Загрузка
06.01.19
3863
24
RepRap
25
Всем привет, решил порадовать всех владельцев принтеров использующие прошивку Repetier русской локализацией.
В итоге после нескольких дней работы за компом мне удалось создать новый шрифт с русской локализацией.
PREVIEW
Переведено практически 99%, не считая того текста, который к файлам локализации не относится. Например, при движении домой, в областях XYZ по-прежнему отображается надпись Homing и еще в пару местах, не зависящих от меня.

Как это было…
Мне не давало покоя что в прошивки Marlin поддерживают русский (В частности MKduo), а в Repetier до сих пор не завезли. Пару дней мне пришлось потратить на то чтобы понять, как работает текст в дисплеях в прошивке репетиер, а также занимался поиском русскоязычной библиотеки.
Вообще в прошивке используется 3 вида шрифтов, первый с малыми буквами, второй – с большими, Третий я так понял для символов. Все они закодированные в формат u8g. Третий шрифт мало чем отличается от второго за исключением дополнительных символов
83c2b274a53bf8790adf72f6e71cce0c.JPG
Гугление привело меня, как ни странно, на сайт http://arduino.ru, где в одной из веток пользователь под именем Maxim Z. выложил несколько русскоязычных шрифтов «разного калибра». Они были скомпилированы в u8g и годились только для проверки отображения русских букв.
Их можно было использовать в локализации, но в них не было основных значков, используемых в прошивке. В итоге понял, что без переписывания основного шрифта не обойтись.
Теперь о подводных камнях…
Осложнялось все тем что программа bdf2u8g_101.exe пакует максимум 255 символов. Добавить свои шрифты и не нарушить другой локализации было невозможно без костылей.
Поначалу я думал, что в итоге создатели Repetier адаптируют русскую локаль. Но после переписки понял, что придется добавлять свои шрифты как дополнительные и делать проверки на присутствие в прошивке локализации.
Поскольку я в программировании звезд с неба не хватаю, попросил разработчика Repetier помочь мне с кодом проверки, за что ему отдельное спасибо. Теперь дополнительные два шрифта в формате ISO-8859-5 используется для русского языка. Как мне кажется данный шрифт можно использовать и в других версиях локализации где используется кирилица.
Был еще один серьезный камень, из-за которого пришлось все слова писать в восьмибитной кодировке.
Русские символы занимает 2 байта информации каждый, тогда как английские символы в UTF-8 легко умещается в 1 байт. Из-за этого при выводе на экран часть текста обрезалось. Пришлось конвертировать русский текст в кодировку 8 бит.

С сегодняшнего дня прошивка с русской локализацией доступна на основном сайте Repetier для версии dev 1.04.

И как бонус, перерисовал значки в русскоязычном шрифте.
cf4bcfe6907373f2a420f6e655edf995.JPG
Ссылка на видео: Repetier - локализация на русском
Подписаться на 3Dtoday
25
Комментарии к статье

Комментарии

06.01.19 в 16:26
0
С сегодняшнего дня прошивка с русской локализацией доступна на основном сайте Repetier для версии dev 1.04.
Ссылка - есть, или в угадайку - поиграем?

При всех прочих достоинствах Вашего подвига - странно НЕ ВИДЕТЬ очевидной для контекста ссылки.

Мне найти не сложно, но так посты писать нельзя.
Кстати - в описании видео по Вашему линку в статье - нужной ссылки на ресурс repetier - тоже нет,
там я свой комментарий ещё не написал.

Приведите ссылку хотя-бы в комментарии, пожалуйста.

Обычный пользователь Windows - найдёт вот эту ссылку и вот этот файл:

https://www.repetier.com/download-now/

setupRepetierHost_2_1_3.exe

, причём явно не указанной Вами версии.
06.01.19 в 17:00
1
На официальном сайте доступно в разделе repetier firmwar
https://www.repetier.com/firmware/dev/index.php
06.01.19 в 17:45
2
причём явно не указанной Вами версии
Вообще-то речь шла о версии прошивки Repetier, а не о версии программы RepetierHost... :)
А в разработке сейчас находятся как раз версии прошивок 1.0.Х...
https://www.repetier.com/firmware/v100/index.php
Правда крайняя там сейчас 1.0.3, а указанную автором 1.0.4 я, к стыду своему, обнаружить тоже не смог :(
06.01.19 в 17:53
2
Я уже понял что самое главное забыл добавить, редактировать пост уже не смогу.
Но на всякий случай оставлю еще ссылку на GitHub, чтобы точно нашли..

>>> https://github.com/repetier/Repetier-Firmware/tree/development
06.01.19 в 18:07
1
а указанную автором 1.0.4 я, к стыду своему, обнаружить тоже не смог
Скорее всего имелся ввиду конфигуратор а версия 1.0.4dev не релиз еще ;-)
921f9d0f92dbae3fdaa1b36f253940f7.PNG

P.S. И есть один нюанс... только для графических экранов... увы... для 2004 боюсь не прокатит...
06.01.19 в 18:19
1
Возможно разработчик Repetier вскоре сам добавит локализацию в версию 1.03, поскольку конфигурационные файлы локализации не слишком отличаются между собой.
06.01.19 в 18:22
1
Он в принципе уже давно "забил" на эту версию... в смысле на v1.х... у него сейчас приоритет на v2.х :-) и ваше решение несколько однобокое узко заточенное, как мне кажется только для фул-графиков... не все дисплеи смогут поддерживать. И к слову сказать, именно сейчас он переходит уже на другую библиотеку... u8g2 ;-)
06.01.19 в 18:39
1
Он вроде хочет использовать стандарт кодировки Utf-8 для прошивки 2.0,
тогда не будет танцев с бубнами при переводе на разные языки.

При желании можно помучится и сделать локализацию для обычных дисплеев, но это будет совсем криво выглядеть.
В текстовых дисплеях доступно всего восемь пользовательских символов, сам же текстовый генератор находится в дисплее. А китайские экраны не поддерживают кирилицы. Для начала нужно подумать чем перепрошить дисплей под русские символы
06.01.19 в 18:45
1
Не, не, я без претензий, хорошую работу проделали, не вопрос. Я просто о том, что её придется переделывать скоро :-)
И еще не понимаю (не задавался этим вопросом, использую всегда английский язык), почему в марлине поддерживается на всех экранах кириллица... ;-)
06.01.19 в 18:55
2
У меня просто нет текстового дисплея для принтера. Если марлин поддерживает русский язык на текстовых дисплеях, скорее всего там как раз и используется костыль.
Костыль в виде свободных ячеек под уникальные русские символы совместно с английскими. Ведь пользовательских символов одновременно может находиться на одном экране только 8 шт.
Но я могу ошибаться и есть все таки способ по другому отображать текст.
06.01.19 в 19:03
3
Да, там "костыль", вы совершенно правильно говорите...
Но я не использую переводы в технических средах по одной простой причине... они не адекватны... такое ощущение, что "переводчики-толмачи" даже не в курсе темы, которую переводят... взять к примеру куру... как можно было перевести в настройках Куры слово "Shell" словом "Ограждения" :-):-):-) а уж про прошивки промолчу вовсе... :-)
06.01.19 в 18:48
1
Благодарю всех за ответы.

Для меня - это очередной и грустный урок русского языка, когда после туманных воспоминаний про необходимость пользования неким "конфигуратором" - при любом упоминании слова "Repetier".

ТС ведь чётко написал ;

С сегодняшнего дня прошивка с русской локализацией доступна на основном сайте Repetier для версии dev 1.04.
Давайте представим, что делает 3D-начинающий при виде таких слов, как "прошивка с русской"?

- ищет бинарник(в любом формате), или набор файлов для сборки.

Типичный случай попытки популяризации собственного непростого труда в малопонятных самому себе терминах.

Я здесь - всего-лишь про пару слов, не сказанных Автором этого поста.

"А как конкретно он/оно/они (речь про фуллграфик) - становится русским? ".

В итоге - каждый понял по-своему.

Поклон Санитару, как Коллеге, давшему самую понятную и простую реплику.
Скорее всего имелся ввиду конфигуратор ...
06.01.19 в 19:03
1
Я вас услышал
07.01.19 в 12:28
0
Правда крайняя там сейчас 1.0.3
Дело в том что над репетиером работает не один человек. А городисть свой гитхаб... такое себе короче. Именно по этому все подобные проекты надо искать в первую очередь именно на гитхабе. Кста на сайте репетиера вроде есть ссылки на гитхаб. Раньше точно были.
06.01.19 в 16:52
2
06.01.19 в 18:31
2
Спасибо за работу! Буду пробовать.
07.01.19 в 01:45
0
Так и не смог подружить Repetier с BL-Touch. Весь хэлп излазил вдоль и поперек вместе с прошивкой.
В теории все ровно - на деле не работает как надо.
07.01.19 в 12:29
0
А что не так? С вероятностью в 99% указаны не верные углы "сервы".
07.01.19 в 18:55
0
Углы сервы указаны правильно. Не могу выставить офсеты. То в стол въезжает. то слишком высоко получается.
08.01.19 в 09:28
1
Я оффсет ловлю всегда по итогу уже фактом. Ставлю его больше, разрешаю уходить в минус, и погнал. по итогу руками потом подгоняю высоту и заношу в eeprom и потом m500. Ни разу не было проблем. По факту расстояние от концевика до z-probe ни чего не играет. главное потом оффсет выставить.
07.01.19 в 12:34
0
А что у вас прописано в стартовом коде z probe
07.01.19 в 19:23
0
Вот мой конфиг с BL touch. Не могу выставить офсеты. То в стол въезжает. то слишком высоко печать начинается.
// #################### Z-Probing #####################

#define Z_PROBE_Z_OFFSET 0
#define Z_PROBE_Z_OFFSET_MODE 1
#define UI_BED_COATING 1
#define FEATURE_Z_PROBE 1
#define EXTRUDER_IS_Z_PROBE 0
#define Z_PROBE_DISABLE_HEATERS 1
#define Z_PROBE_BED_DISTANCE 4
#define Z_PROBE_PIN ORIG_Z_MIN_PIN
#define Z_PROBE_PULLUP 1
#define Z_PROBE_ON_HIGH 1
#define Z_PROBE_X_OFFSET 10
#define Z_PROBE_Y_OFFSET 50
#define Z_PROBE_WAIT_BEFORE_TEST 0
#define Z_PROBE_SPEED 2
#define Z_PROBE_XY_SPEED 100
#define Z_PROBE_SWITCHING_DISTANCE 2
#define Z_PROBE_REPETITIONS 2
#define Z_PROBE_HEIGHT 2.7
#define Z_PROBE_DELAY 0
#define Z_PROBE_START_SCRIPT "G1 X150 Y150 F1800; \n M340 P0 S500; \n"
#define Z_PROBE_FINISHED_SCRIPT "M340 P0 S1500; \n G1 X270 Y0 F1800; \n"
#define Z_PROBE_RUN_AFTER_EVERY_PROBE ""
#define Z_PROBE_REQUIRES_HEATING 0
#define Z_PROBE_MIN_TEMPERATURE 150
#define FEATURE_AUTOLEVEL 1
#define FEATURE_SOFTWARE_LEVELING 1
#define Z_PROBE_X1 100
#define Z_PROBE_Y1 100
#define Z_PROBE_X2 200
#define Z_PROBE_Y2 100
#define Z_PROBE_X3 100
#define Z_PROBE_Y3 200
#define BED_LEVELING_METHOD 1
#define BED_CORRECTION_METHOD 0
#define BED_LEVELING_GRID_SIZE 3
#define BED_LEVELING_REPETITIONS 2
#define BED_MOTOR_1_X 0
#define BED_MOTOR_1_Y 0
#define BED_MOTOR_2_X 200
#define BED_MOTOR_2_Y 0
#define BED_MOTOR_3_X 100
#define BED_MOTOR_3_Y 200
#define BENDING_CORRECTION_A 0
#define BENDING_CORRECTION_B 0
#define BENDING_CORRECTION_C 0
#define FEATURE_AXISCOMP 0
#define AXISCOMP_TANXY 0
#define AXISCOMP_TANYZ 0
#define AXISCOMP_TANXZ 0

Нашел даже хэлп с картинкой. но что то все равно не выходит.
Не совсем понимаю что вписывать в -#define Z_PROBE_Z_OFFSET 0, #define Z_PROBE_BED_DISTANCE 4 и #define Z_PROBE_HEIGHT 2.7
f84fd0bf7f0dc1ccdd43091b693cfd27.png
08.01.19 в 11:39
1
Z_PROBE_Z_OFFSET 0 Ставить ничего не надо, это для покрытия стола, у меня допустим 0стоит
Z_PROBE_BED_DISTANCE 4 это дистанция после которого если проба не смогла замерить ничего, принтер уходит в ошибку.( у меня 10 стоит)
#define Z_PROBE_HEIGHT - это тот самый офсет z из за которого принтер печатать может в воздухе, его в первую очередь нужно настроить как положено (у меня самопальный датчик, штырь выдвигается на 20 мм. При замере сопло до стола не доходит до стола на 5.385мм, и именно это значение стоит у меня в этом параметре)


#define Z_PROBE_START_SCRIPT "G1 X150 Y150 F1800; \n M340 P0 S500; \n"
#define Z_PROBE_FINISHED_SCRIPT "M340 P0 S1500; \n G1 X270 Y0 F1800; \n"

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

Возможно этого требует BL-touch, но насколько мне известно оригинальная проба (не китай) шлет какие то команды принтеру для инициализации, может из за них не работает у вас корректно.

Я бы еще #define Z_PROBE_SWITCHING_DISTANCE 2 - поднял до 6, чтобы датчик точно вышел из триггера после первого замера

К тому же в конфигураторе прекрасно расписано какая настройка за что отвечает

5907be49eaebdcd53a91ebb9c5bc38da.JPG
11.01.19 в 16:19
0
Спасибо. Чуть раньше бы эту информацию (я про Z-probe). Теперь это уже пройденная ступень.

А ещё я долго бился с коррекцией нелинейности своей дельты (команда G33).

Самое обидное, что там всего 4 пункта, смысл которых даже с моим английским вполне понятен.
DISTORTION_CORRECTION - включаем коррекцию
DISTORTION_CORRECTION_POINTS - кол-во точек стороны квадрата измерений
DISTORTION_LIMIT_TO - предел ошибки измерений
DISTORTION_CORRECTION_R - для дельты радиус измерений (для других типов этот параметр игнорится, используя другие).
И оказалось, что именно последний пункт не так прост, как казалось.
На одном из форумов вычитал, что там указывается радиус печати. В итоге я долго не мог понять почему голова на первой же точке измерения мечется куда-то вдаль.

А математика проста. Радиус печати не равен радиусу описанной окружности вокруг квадрата измерений. Причём программно это не проверяется и голова с размахом вылетает на пределы области печати.

Этот радиус нужно указывать не больше DELTA_MAX_RADIUS * cos(30).

P.S. Ну это так, вдруг кто из слабоанглоговорящих будет решать такую-же проблему


Кстати, за труды по руссификации прошивки тоже огромное спасибо. На выходных попробую, Хотя там и на англицком всё понятно

Для написания комментариев, пожалуйста, авторизуйтесь.

Читайте в блогах

Добавление коэффициента компенсации геометрических особенностей и сохранения в EEPROM, в автоматической калибровки на Marlin

Ученые СибГУ испытывают подводный квадрокоптер с 3D-печатными деталями

Елки, скутеры и 3D-печатные горшки: посленовогодние соревнования в Сокольниках

Обзор 3D-принтеров HP на IMTS 2018

В Шанхае открылся рекордный 3D-печатный пластиковый мост

Два метра в час: американские ученые разработали новую технологию скоростной 3D-печати