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

admtw
Идет загрузка
Загрузка
06.01.2019
5369
25
печатает на RepRap
RepRap

Подпишитесь на автора

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

Отписаться от уведомлений вы всегда сможете в профиле автора.

32
Всем привет, решил порадовать всех владельцев принтеров использующие прошивку Repetier русской локализацией.

В итоге после нескольких дней работы за компом мне удалось создать новый шрифт с русской локализацией.
Переведено практически 99%, не считая того текста, который к файлам локализации не относится. Например, при движении домой, в областях XYZ по-прежнему отображается надпись Homing и еще в пару местах, не зависящих от меня.

Как это было…

Мне не давало покоя что в прошивки Marlin поддерживают русский (В частности MKduo), а в Repetier до сих пор не завезли. Пару дней мне пришлось потратить на то чтобы понять, как работает текст в дисплеях в прошивке репетиер, а также занимался поиском русскоязычной библиотеки.

Вообще в прошивке используется 3 вида шрифтов, первый с малыми буквами, второй – с большими, Третий я так понял для символов. Все они закодированные в формат u8g. Третий шрифт мало чем отличается от второго за исключением дополнительных символов
Гугление привело меня, как ни странно, на сайт http://arduino.ru, где в одной из веток пользователь под именем Maxim Z. выложил несколько русскоязычных шрифтов «разного калибра». Они были скомпилированы в u8g и годились только для проверки отображения русских букв.

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

Теперь о подводных камнях…

Осложнялось все тем что программа bdf2u8g_101.exe пакует максимум 255 символов. Добавить свои шрифты и не нарушить другой локализации было невозможно без костылей.

Поначалу я думал, что в итоге создатели Repetier адаптируют русскую локаль. Но после переписки понял, что придется добавлять свои шрифты как дополнительные и делать проверки на присутствие в прошивке локализации.

Поскольку я в программировании звезд с неба не хватаю, попросил разработчика Repetier помочь мне с кодом проверки, за что ему отдельное спасибо. Теперь дополнительные два шрифта в формате ISO-8859-5 используется для русского языка. Как мне кажется данный шрифт можно использовать и в других версиях локализации где используется кирилица.

Был еще один серьезный камень, из-за которого пришлось все слова писать в восьмибитной кодировке.

Русские символы занимает 2 байта информации каждый, тогда как английские символы в UTF-8 легко умещается в 1 байт. Из-за этого при выводе на экран часть текста обрезалось. Пришлось конвертировать русский текст в кодировку 8 бит.

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

И как бонус, перерисовал значки в русскоязычном шрифте.
Ссылка на видео: Repetier - локализация на русском

Подпишитесь на автора

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

Отписаться от уведомлений вы всегда сможете в профиле автора.

32
Комментарии к статье

Комментарии

06.01.2019 в 16:26
0

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

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

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

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

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

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

setupRepetierHost_2_1_3.exe

, причём явно не указанной Вами версии.

ski
06.01.2019 в 17:00
1

На официальном сайте доступно в разделе repetier firmwar  
https://www.repetier.com/firmware/dev/index.php

ski
06.01.2019 в 17:45
1

причём явно не указанной Вами версии
Вообще-то речь шла о версии прошивки Repetier, а не о версии программы RepetierHost... :)
А в разработке сейчас находятся как раз версии прошивок 1.0.Х...
https://www.repetier.com/firmware/v100/index.php
Правда крайняя там сейчас 1.0.3, а указанную автором 1.0.4 я, к стыду своему, обнаружить тоже не смог :(

06.01.2019 в 17:53
2

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

>>> https://github.com/repetier/Repetier-Firmware/tree/development

07.01.2019 в 12:28
0

Правда крайняя там сейчас 1.0.3
Дело в том что над репетиером работает не один человек. А городисть свой гитхаб... такое себе короче. Именно по этому все подобные проекты надо искать в первую очередь именно на гитхабе. Кста на сайте репетиера вроде есть ссылки на гитхаб. Раньше точно были.

06.01.2019 в 16:52
2

https://www.repetier.com/firmware/dev/index.php

06.01.2019 в 18:31
2

Спасибо за работу! Буду пробовать.

07.01.2019 в 01:45
0

Так и не смог подружить Repetier с BL-Touch. Весь хэлп излазил вдоль и поперек вместе с прошивкой. 
В теории все ровно - на деле не работает как надо. 

07.01.2019 в 12:29
0

А что не так? С вероятностью в 99% указаны не верные углы 'сервы'.

07.01.2019 в 18:55
0

Углы сервы указаны правильно. Не могу выставить офсеты. То в стол въезжает. то слишком высоко получается.

08.01.2019 в 09:28
1

Я оффсет ловлю всегда по итогу уже фактом. Ставлю его больше, разрешаю уходить в минус, и погнал. по итогу руками потом подгоняю высоту и заношу в eeprom и потом m500. Ни разу не было проблем. По факту расстояние от концевика до z-probe ни чего не играет. главное потом оффсет выставить.

07.01.2019 в 12:34
0

А что у вас прописано в стартовом коде z probe

07.01.2019 в 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;
M340 P0 S500;
'
#define Z_PROBE_FINISHED_SCRIPT 'M340 P0 S1500;
G1 X270 Y0 F1800;
'
#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

08.01.2019 в 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;
M340 P0 S500;
'
#define Z_PROBE_FINISHED_SCRIPT 'M340 P0 S1500;
G1 X270 Y0 F1800;
'

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

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

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

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

11.01.2019 в 16:19
2

Спасибо. Чуть раньше бы эту информацию (я про Z-probe). Теперь это уже пройденная ступень.

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

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

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

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

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

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

19.02.2019 в 00:59
1

Когда в принтер установлен один экструдер, на главном меню видно не переведенное слово 'Flow'

19.02.2019 в 06:27
1

Спасибо что заметили неточность. Действительно слово в прошивке не переведено. У меня просто два экструдера, некоторые моменты не были протестированы. Там есть еще некоторые слова которые не переведены и за того что не тестировались некоторые функции.
Пока не знаю примет ли разработчик обновленную локализацию. Вы можете поправить самостоятельно перевод.
На скрине заметил еще один косяк: вместо знака градусы еще буква 'А' отображается.

для самостоятельного редактирования перевода, откройте в прошивке файл uilang.h. и отыщите строку 
#if NUM_EXTRUDER > 2 || MIXING_EXTRUDER != 0, находящуюся в строке 4749 (во всяком случае локализацию можно найти по русским коментариям)

Следующее что желательно сделать это заменить часть кода  с 4749 по 4767 на исправленные строки ниже:

//---------------------
#if NUM_EXTRUDER > 2 || MIXING_EXTRUDER != 0
#define UI_TEXT_MAINPAGE6_1_RU 'xa %ec/%Ecx2 X:%x0'
#else
#define UI_TEXT_MAINPAGE6_1_RU 'xa %e0/%E0x2 X:%x0'
#endif // NUM_EXTRUDER
#if NUM_EXTRUDER == 2 && MIXING_EXTRUDER == 0
#define UI_TEXT_MAINPAGE6_2_RU 'xa %e1/%E1x2 Y:%x1'
#elif HAVE_HEATED_BED
#define UI_TEXT_MAINPAGE6_2_RU 'xe %eb/%Ebx2 Y:%x1'
#else
#define UI_TEXT_MAINPAGE6_2_RU ' Y:%x1'
#endif
#if HAVE_HEATED_BED && NUM_EXTRUDER == 2 && MIXING_EXTRUDER == 0
#define UI_TEXT_MAINPAGE6_3_RU 'xe %eb/%Ebx2 Z:%x2'
#elif FEATURE_DITTO_PRINTING
#define UI_TEXT_MAINPAGE6_3_RU 'Copies: %ed Z:%x2'
#else
#define UI_TEXT_MAINPAGE6_3_RU '277336342336332:xfd %of%%% Z:%x2' // Поток
#endif
//---------------------

Можно просто поменять одну строку с английским словом Flow
#define UI_TEXT_MAINPAGE6_3_RU 'Flow:xfd %of%%% Z:%x2'
 на
#define UI_TEXT_MAINPAGE6_3_RU '277336342336332:xfd %of%%% Z:%x2' // Поток

Это исправит английское слово Flow на слово поток + заменит буквы 'А 'на значки градусы в локализации при некоторых конфигурациях прошивки связанные с экструдером.

19.02.2019 в 17:07
0

Кстати да....я и не заметил букву 'А'
Если найду еще какие-то не точности, сообщу.
Спасибо за проделанную работу по переводу!

04.03.2019 в 01:57
0

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


04.03.2019 в 03:01
0

Это уже не ко мне, скорее всего бага в прошивке. А может просто слишком долго на паузе прошивка стоит, что моторы успевают отключаться. 

Вопросы мигают, поскольку принтер после выключения моторов теряется в пространсве. Сделайте лимит времени отключения моторов больше или вообще ноль поставте. 

P. S мне уже неоднократно приходилось править код в прошивке в разных местах чтобы мой принтер корректно работал. Все же прошивка девелоперская, если такая ситуация возникает только на руской локали, буду смотреть. Но скоре всего вам стоит задать вопрос на github напнямую разработчику repetier. 

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

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

Моргающая черепушка для флористов

Герконовый датчик импульсов для газового счетчика BK-4GT

Хирургический шаблон из фотополимера Harz labs Dental yellow на Form2.

Печать ULTEM (PEI) и материалом PEEK на одном устройстве: новый 3DGence INDUSTRY F420

Причесываем TEVO Little Monster для использования дома.

3D печать пластиком PEEK и ULTEM. Обзор 3D принтера Intamsys Funmat HT от 3Dtool.