Страница 145 из 245

Re: LinuxCNC + Orange Pi

Добавлено: 03 янв 2020, 18:08
K@RLSON
Я уже почти поехал покупать orange pi pc2 )))
Один хрен rpi4 видимо пропала в пути.
Сижу думаю orange или BBB.

Беспокоит, что на orange pi всего один spi вроде можно задействовать. А больше быстрых протоколов с внешними платами не вижу на ней

Re: LinuxCNC + Orange Pi

Добавлено: 04 янв 2020, 04:06
K@RLSON
Устроил себе «развлечение» и прочитал с 80 страницы...
Даже немного выдохнул :-)

Re: LinuxCNC + Orange Pi

Добавлено: 04 янв 2020, 07:24
MX_Master
K@RLSON писал(а):Беспокоит, что на orange pi всего один spi вроде можно задействовать. А больше быстрых протоколов с внешними платами не вижу на ней
Ethernet 10/100 ;)
UART до 1.5 Мбод

Для интузиастов есть многоканальный сокет CSI для камеры, 24 пина.

Re: LinuxCNC + Orange Pi

Добавлено: 04 янв 2020, 12:02
creisey
Great MX-Master that you continue!

Re: LinuxCNC + Orange Pi

Добавлено: 04 янв 2020, 12:52
K@RLSON
MX_Master, считывать энкодер на текущей реализации не получится быстрее, чем генерить шаги?

Re: LinuxCNC + Orange Pi

Добавлено: 04 янв 2020, 14:02
MX_Master
K@RLSON писал(а):MX_Master, считывать энкодер на текущей реализации не получится быстрее, чем генерить шаги?
Прошивка, к счастью, открытая :) Можно сделать форк (или отдельную ветку), где приоритет энкодерного модуля будет выше. Текущий приоритет я сделал исходя из востребованности модулей. У степ/дир пользователей всегда больше, чем у связки степ/дир + энкодеры.

Re: LinuxCNC + Orange Pi

Добавлено: 06 янв 2020, 03:30
Bambuk
за 2 вечера осилил все 145 страниц :roll:
А хоть какой-то прототип драйвера для работы с arisk_firmware из lcnc уже имеется?

mod_encoder.c:99

Код: Выделить всё

AB = (A ? 0b10 : 0) | (A ? 0b01 : 0); // get encoder state
опечатка похоже, второй раз B должно быть по идее?

Re: LinuxCNC + Orange Pi

Добавлено: 06 янв 2020, 07:20
MX_Master
Bambuk писал(а):за 2 вечера осилил все 145 страниц :roll:
А хоть какой-то прототип драйвера для работы с arisk_firmware из lcnc уже имеется?

mod_encoder.c:99

Код: Выделить всё

AB = (A ? 0b10 : 0) | (A ? 0b01 : 0); // get encoder state
опечатка похоже, второй раз B должно быть по идее?
Прототип драйвера, конечно, есть. В отдельной ветке. На компе лежат несколько новых правок, ещё не отправил их в репу. Нужно больше тестов.
https://github.cnc32.ru/OrangeCNC/machi ... vers/arisc

Ошибка подмечена верно. Спасибо. Исправил.
https://github.cnc32.ru/OrangeCNC/arisc ... oder.c#L99

Честно говоря, я удивлён, что кто-то ещё, кроме меня и пары человек, посмотрел исходники :)

Re: LinuxCNC + Orange Pi

Добавлено: 06 янв 2020, 14:48
Bambuk
Может стоит вынести обмен с arisk во внешний процесс, с которым взаимодействовать по ip.
Т.е. как будто бы у нас на борту внутри что-то типа mesanet платы, только она не железная, а софтовая.
Взаимодействие HAL по ip можно позаимствовать у тех же mesa плат.
Отлаживаться проще будет:
- во внешнем процессе для дебага можно будет делать что угодно, без оглядки на то какие задержки это может принести в lcnc процесс
- упадет процесс, его корку проще будет изучить чем корку всего lcnc
Появится возможность работать с OPi платой как с mesanet платой по сети, т.е. lcnc можно будет запускать на другой более мощной машине, а OPi будет только ногами дрыгать и сообщения об изменении состояния ног/энкодеров отправлять.
В общем более универсальное решение получится на мой взгляд.

В текущей реализации меня смущает протокол обмена сообщениями между хостом и arisk.
Боюсь что при интенсивном обмене можно будет словить проблемы связанные с совместным доступом к разделяемым ресурсам.
http://linux-sunxi.org/AR100#Resource_Sharing
Написано, что для синхронизации нужно использовать hardware spinlocks.
Тема спинлоков как-то изучалась?

Re: LinuxCNC + Orange Pi

Добавлено: 06 янв 2020, 15:46
MX_Master
Текущая система сообщений уже универсальна, к тому же, она быстрее и проще любых надстроек, типа IP ;) Я б сделал систему ещё быстрее, но тогда универсальность исчезнет. В чипе есть своя система сообщений со спинлоками, но меня она не устроила размером сообщений.

Что касается работы с общими ресурсами.. Драйвер пишет в свою область SRAM, сопроцессор - в свою. Из чужой области они могут только читать. Кроме того, драйвер - это модуль ядра linux. Ядро linux крутится всегда на одном ядре процессора. И пока выполняется код каждого драйвера, ядро и вся ОС ждут завершения. Чтобы иметь возможность нарушить работу с общими ресурсами, надо запускать код драйвера (или тестовую программку) одновременно на разных ядрах процессора. В этом случае, юзер будет отвечать за косяки сам, ибо нефиг :)

Re: LinuxCNC + Orange Pi

Добавлено: 07 янв 2020, 19:14
Bambuk
А почему был выбран вариант реализации stepgen? Для LPT он без вариантов, но тут же целый сопроцессор имеется.
Я тут вот еще тему http://www.cnc-club.ru/forum/viewtopic.php?f=15&t=11422 почитал.
Там пошли другим путем. Используют pid и отправляют pid.x.output через функцию в servo-thread на плату, а уж она что нужно генерирует.
Если считать, что arisk такая же плата, только софтовая, то почему бы не применить аналогичный подход.

Re: LinuxCNC + Orange Pi

Добавлено: 07 янв 2020, 19:39
MX_Master
В текущем виде степген сопроцессора - это простой генератор указанного кол-ва шагов, на указанной частоте, с подсчётом позиции. Всё. Реализация примерно как у PLUTO-P. Частоту, кол-во и направление шагов задаёт драйвер.

Re: LinuxCNC + Orange Pi

Добавлено: 08 янв 2020, 13:14
creisey
Hi MX_Master would it be possible for your to reupload the image for Orange PI One? thx a lot.

Re: LinuxCNC + Orange Pi

Добавлено: 08 янв 2020, 13:38
MX_Master
creisey писал(а):Hi MX_Master would it be possible for your to reupload the image for Orange PI One? thx a lot.
Wait a bit. These images will be available at the https://cnc32.ru/ downloads page, soon ;)

Re: LinuxCNC + Orange Pi

Добавлено: 14 янв 2020, 11:13
antoxa-kylibin
Ого сколько тут событий произошло пока меня не было)))Кажется проект воскресили и ето хорошо). MX_master с возвращением). Не воспринимайте критику так близко к сердцу, каждый творит как ему хочется и можется. Но я соглашусь с тем, что проект весьма интересный и если его довести до работоспособного состояния то он должен стать популярным среди чпу самоделкиных и хоббийщиков, а там сообщество если будет расти и развивать то уже и серьёзный уровень развития может получиться. Я так понял что проект открытый и каждый желающий может принимать участие в нем. Тут конечно важна работа в команде, но такую команду сложно собрать в кучу. Делать что то с нуля всегда тяжело, но главное не сдаваться. Нет непобедимых задачь! По себе знаю, порой что то делаешь, а оно ну никак не хочет побеждаться, плюнешь и отложишь в сторону на время, в другой день начинаешь дальше бадаться, глядишь и получилось....не каждый день бывают победы, но это не повод опускать руки! Нужно дать возможность вашему проекту развиваться, глядишь и получится все!

Re: LinuxCNC + Orange Pi

Добавлено: 14 янв 2020, 11:23
antoxa-kylibin
Вон ядро linux один энтузиаст вообще затеял сделать, открыл исходники, появилось сообщество и единомышленники. Теперь мир имеет целое семейство операционок Linux OS, и не секрет что это одна из самых гибких и распространенных ОС в мире, да эта система не для игр, но те же сервера и различные девайсы типа роутеров, маршрутизаторов, сервера и т.д. работают на базе этой ОС. А ведь проект открытый до сих пор и пока никто не собирается его закрывать. Так что в открытых проектах нет ничего плохого.

Re: LinuxCNC + Orange Pi

Добавлено: 14 янв 2020, 13:59
MX_Master
Будет довольно интересно завести аппаратную веб морду в апельсине прямо во framebuffer ;) Вот это будет поворот..

Re: LinuxCNC + Orange Pi

Добавлено: 14 янв 2020, 16:13
antoxa-kylibin
Что такое framebuffer?

Re: LinuxCNC + Orange Pi

Добавлено: 21 янв 2020, 13:48
CNCStart
Добрый день знатоки!
Пытаюсь сделать связь Orange Pi +ПК посредством linuxcncrsh
с терминала запускаю команду linuxcncrsh [OPTIONS] [5007 LINUXCNC_OPTIONS]
выдает ошибку
и соответсвенно следующие шаги невозможны
Может есть у кого опыт ? поделитесь, буду очень благодарен!

Re: LinuxCNC + Orange Pi

Добавлено: 21 янв 2020, 14:48
MX_Master
Сначала надо запустить LinuxCNC/Machinekit, а потом уже любые не RT компоненты.