LinuxCNC + Orange Pi (allwincnc)

Контроллеры, драйверы, датчики, управляющие устройства.
avmartugin
Новичок
Сообщения: 37
Зарегистрирован: 01 июл 2019, 10:27
Репутация: 0
Контактная информация:

Re: LinuxCNC + Orange Pi

Сообщение avmartugin »

UAVpilot писал(а):Лучше почитайте эту тему для понимания сути, а то сейчас вы пытаетесь объяснить MX_Master'у, что большие частоты STEP никому не нужны и он это всё он зря делает...
скорее всего я просто не знаю как это все работает. на микрухах еще более менее понятно что есть много аппаратных средств управления ножками. проехали )
MX_Master писал(а):Задержка постоянная. Но, к сожалению, это не первый шаг. Задержка появляется где-то в конце предыдущего задания, во время добавления нового.
область памяти для заполнения константная? если да, то первый шаг нового задания нужно скорректировать на некоторую константу. я так понимаю для процов Н2, Н3 и Н5 будут разные константы?
Аватара пользователя
MX_Master
Мастер
Сообщения: 7489
Зарегистрирован: 27 июн 2015, 19:45
Репутация: 3113
Настоящее имя: Михаил
Откуда: Алматы
Контактная информация:

Re: LinuxCNC + Orange Pi

Сообщение MX_Master »

Вощем, задержку при добавлении нового задания растянул во времени, теперь она незаметна на общем фоне.

Но заметил ещё одну проблему. Иногда основной процессор блокирует сопроцессор (spinlock) слишком долго. Видимо, ядро Linux отвлекает процессор чем-то по хозяйству (прерывания и т.п.) :freak: Получается ситуация, когда процессор отвлёкся на прерывание пока блокирует доступ к общей памяти сопроцессору. Веселуха да и только :hehehe: Придётся эти spinlock'и убрать и сделать что-то похожее на теневые регистры в МК. Чтобы процессор редактировал только независимый кусок памяти. А сопроцессор переходил на него, только когда нужно.
Аватара пользователя
MX_Master
Мастер
Сообщения: 7489
Зарегистрирован: 27 июн 2015, 19:45
Репутация: 3113
Настоящее имя: Михаил
Откуда: Алматы
Контактная информация:

Re: LinuxCNC + Orange Pi

Сообщение MX_Master »

Как же я зае.. :pssdoff: с этими внезапными задержками в работе процессора... Литературным словом не описать :)

Но, вроде, всё получилось. Сейчас на осциллограмме я вижу самый ровный вывод шагов за всю историю проекта. Чтобы победить все задержки на высоких частотах, я смещаю вывод шагов чутка вперёд. Тогда у процессора есть достаточно времени, чтобы с умом продумать новое задание. Не отвлекая сопроцессор.
Теперь надо погонять систему на стенде :relsa: Так скать, пощупать шаговики во время работы.. на нормальных драйверах и скоростях :)
2020-04-29_164244.png (3001 просмотр) <a class='original' href='./download/file.php?id=180672&mode=view' target=_blank>Загрузить оригинал (120.51 КБ)</a>
2020-04-29_164123.png (3001 просмотр) <a class='original' href='./download/file.php?id=180673&mode=view' target=_blank>Загрузить оригинал (120.98 КБ)</a>
2020-04-29_164110.png (3001 просмотр) <a class='original' href='./download/file.php?id=180674&mode=view' target=_blank>Загрузить оригинал (137.62 КБ)</a>
2020-04-29_164043.png (3001 просмотр) <a class='original' href='./download/file.php?id=180675&mode=view' target=_blank>Загрузить оригинал (131.99 КБ)</a>
Аватара пользователя
Argon-11
Мастер
Сообщения: 2068
Зарегистрирован: 07 июн 2017, 17:48
Репутация: 461
Контактная информация:

Re: LinuxCNC + Orange Pi

Сообщение Argon-11 »

Argon-11 писал(а):Никто не замечал проблем со стартом OrangePi при быстром передергивании питания, подаваемого через "гребенку"?
Вдруг кому интересно будет (ну мало ли): на 99% проблема оказалась в питании монитора, к-рый запитывается от этого же БП, а точнее в одновременности подачи питания на OPI и монитор. OrangePi запускается и инициализируется раньше, при попытке инициализации не видит HDMI и далее работает без него, что визуально выглядит как "проблемы с запуском". Уверен, это можно будет победить программным способом.
Всем спасибо, больше не отвлекаю!
Аватара пользователя
going
Мастер
Сообщения: 523
Зарегистрирован: 29 сен 2013, 20:55
Репутация: 129
Настоящее имя: Леонид
Откуда: г.Киров
Контактная информация:

Re: LinuxCNC + Orange Pi

Сообщение going »

MX_Master писал(а):Придётся эти spinlock'и убрать и сделать что-то похожее на теневые регистры в МК. Чтобы процессор редактировал только независимый кусок памяти. А сопроцессор переходил на него, только когда нужно.
Как вариант.
В оригинальных от производителя прошивках используется механизм резервирования
фиксированной областью памяти непосредственно в дереве объектов.
И именно через эту область драйвер ARISC ядра Linux общается с сопроцессором.

P.S.
Пока писал эти строчки, похоже всё сложилось удачно.
MX_Master писал(а):Но, вроде, всё получилось.
Платы: BPI-M3, BPI-A64, OPI-PC2
Аватара пользователя
MX_Master
Мастер
Сообщения: 7489
Зарегистрирован: 27 июн 2015, 19:45
Репутация: 3113
Настоящее имя: Михаил
Откуда: Алматы
Контактная информация:

Re: LinuxCNC + Orange Pi

Сообщение MX_Master »

Ещё один небольшой тест.

https://youtu.be/YxCK5eWYymU

ЗЫ все ролики можно найти в первом посте темы
Аватара пользователя
MX_Master
Мастер
Сообщения: 7489
Зарегистрирован: 27 июн 2015, 19:45
Репутация: 3113
Настоящее имя: Михаил
Откуда: Алматы
Контактная информация:

Re: LinuxCNC + Orange Pi

Сообщение MX_Master »

Обновил установщик и описание ARISC драйвера на сайте. Новые прошивки/драйвера/конфиги в наличии. Если вы меняли стандартные тестовые конфиги под себя, рекомендую сделать бэкапы. Иначе, при установке новых тестовых конфигов, старые затрутся ;)

Чтобы обновить ваш, скачанный ранее, установщик и установить всё новое, в консоли (в папке установщика) выполните эти команды:

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

git pull
./install_arisc_configs.sh
./install_arisc_driver.sh
./install_arisc_firmware.sh
После успешного выполнения данных команд, перезагрузите апельсин. Если будете устанавливать всё с нуля, используйте обычный порядок установки с сайта.

О всех ошибках и возможных косяках пишите в этой теме.
creisey
Новичок
Сообщения: 15
Зарегистрирован: 16 дек 2019, 10:54
Репутация: 8
Настоящее имя: iosias
Контактная информация:

Re: LinuxCNC + Orange Pi

Сообщение creisey »

did i got this right, you did it? mx-master? without offloading step-gen to a device like stm32? its all only by the orange pi? your a genious!
Аватара пользователя
xenon-alien
Почётный участник
Почётный участник
Сообщения: 4520
Зарегистрирован: 01 янв 2013, 13:13
Репутация: 925
Настоящее имя: Daniel
Откуда: Закарпатская обл. Украина
Контактная информация:

Re: LinuxCNC + Orange Pi

Сообщение xenon-alien »

screenshot.png (2796 просмотров) <a class='original' href='./download/file.php?id=180707&mode=view' target=_blank>Загрузить оригинал (110.41 КБ)</a>
MX_Master писал(а):Чтобы обновить ваш, скачанный ранее, установщик и установить всё новое, в консоли (в папке установщика) выполните эти команды:
У меня что-то пошло не так с драйвером...
После перезагрузки то же самое пишет.
Аватара пользователя
antoxa-kylibin
Мастер
Сообщения: 786
Зарегистрирован: 22 июн 2017, 13:18
Репутация: 107
Настоящее имя: Антон
Откуда: г. Воронеж
Контактная информация:

Re: LinuxCNC + Orange Pi

Сообщение antoxa-kylibin »

А на какой образ armbian нужно делать установку?
Аватара пользователя
antoxa-kylibin
Мастер
Сообщения: 786
Зарегистрирован: 22 июн 2017, 13:18
Репутация: 107
Настоящее имя: Антон
Откуда: г. Воронеж
Контактная информация:

Re: LinuxCNC + Orange Pi

Сообщение antoxa-kylibin »

Какую частоту step/dir сигналов максимально можно выдавать с помощью arisc сопроцессора? Ну и можете подсказать как собственно это дело конфигурировать? Больше пользовался классическим графическим мастером конфигураций на lpt порт...
Аватара пользователя
asher
Опытный
Сообщения: 114
Зарегистрирован: 02 июл 2019, 12:56
Репутация: 2
Контактная информация:

Re: LinuxCNC + Orange Pi

Сообщение asher »

может немного не в тему, но спрошу. я хочу перейти на линуксЦНЦ, посоветуйте как лучше быть, взять старую мать или купить малинку? и какую платы развязки совместимы с линуксом и малинкой?
Аватара пользователя
antoxa-kylibin
Мастер
Сообщения: 786
Зарегистрирован: 22 июн 2017, 13:18
Репутация: 107
Настоящее имя: Антон
Откуда: г. Воронеж
Контактная информация:

Re: LinuxCNC + Orange Pi

Сообщение antoxa-kylibin »

[youtube] https://m.youtube.com/watch?v=lRZ_AMuayoM [/youtube]

Гуру lcnc можете сказать что это и как такое сделать? Для данного проекта это не пойдёт? Я так понял это PyQT?
Аватара пользователя
antoxa-kylibin
Мастер
Сообщения: 786
Зарегистрирован: 22 июн 2017, 13:18
Репутация: 107
Настоящее имя: Антон
Откуда: г. Воронеж
Контактная информация:

Re: LinuxCNC + Orange Pi

Сообщение antoxa-kylibin »

asher писал(а):может немного не в тему, но спрошу. я хочу перейти на линуксЦНЦ, посоветуйте как лучше быть, взять старую мать или купить малинку? и какую платы развязки совместимы с линуксом и малинкой?
Если обычный комп и лпт порт, то китайская плата за 500р или степмастер работают 100%. Проверено лично. малину или апельсин пока не пробовал в связке с китайской платой. И то и другое есть, надо потестить. Тем более MX_master сделал очередной тест и версию драйверов для апельсина. Напрашивается идея собрать небольшой стенд и подключиться к тестам.
Аватара пользователя
antoxa-kylibin
Мастер
Сообщения: 786
Зарегистрирован: 22 июн 2017, 13:18
Репутация: 107
Настоящее имя: Антон
Откуда: г. Воронеж
Контактная информация:

Re: LinuxCNC + Orange Pi

Сообщение antoxa-kylibin »

Мне надо переходник какой то замутить с gpio на lpt...остальное все есть, ну и с софтом разобраться, просто armbian на свою orange pi 2e вкорячил, осталось победить установку соответствующих драйверов и прошивок. Стенд по сути есть уже....на днях займусь этой идеей. Вот я не совсем понял, какой образ системы изначально то нужно поставить? Оригинальный armbian вроде без RT ядра идёт. Установочные скрипты ставять патч на ядро в добавок драйвера с прошивкой? Или нужно сначала RT патч своими силами поставить, а потом уже скрипты инсталляции запускать?
kemocat
Новичок
Сообщения: 3
Зарегистрирован: 08 мар 2020, 17:59
Репутация: 0
Контактная информация:

Re: LinuxCNC + Orange Pi

Сообщение kemocat »

При попытке установки:

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

ERROR: Can't find the ./linuxcnc/drivers/arisc/allwinner_CPU.h file [./install_arisc_driver.sh:64].
Недостающие header'ы взял с ветки 0.1:
https://github.cnc32.ru/orangecnc/insta ... vers/arisc
Аватара пользователя
MX_Master
Мастер
Сообщения: 7489
Зарегистрирован: 27 июн 2015, 19:45
Репутация: 3113
Настоящее имя: Михаил
Откуда: Алматы
Контактная информация:

Re: LinuxCNC + Orange Pi

Сообщение MX_Master »

Пацаны, соряйте, ща подправлю скрипт установки. Вчера немного траванулся едой, мозг работал плохо ;)
ИСПРАВИЛ. Инструкции по установке всё те же.

antoxa-kylibin писал(а):А на какой образ armbian нужно делать установку?
Я юзаю Debian Buster c сайта Armbian.
antoxa-kylibin писал(а):Какую частоту step/dir сигналов максимально можно выдавать с помощью arisc сопроцессора? Ну и можете подсказать как собственно это дело конфигурировать?
Свои натурные тесты я проводил на частотах до 150 КГц, чтобы мои драйвера смогли это переварить. Но максимум может быть и выше 400 КГц, поэтому конфигурировать надо аккуратно и, пока что, руками.
antoxa-kylibin писал(а):Вот я не совсем понял, какой образ системы изначально то нужно поставить? Оригинальный armbian вроде без RT ядра идёт. Установочные скрипты ставять патч на ядро в добавок драйвера с прошивкой? Или нужно сначала RT патч своими силами поставить, а потом уже скрипты инсталляции запускать?
Установщик всё поставит сам, и RT ядра и всё всё.
kemocat
Новичок
Сообщения: 3
Зарегистрирован: 08 мар 2020, 17:59
Репутация: 0
Контактная информация:

Re: LinuxCNC + Orange Pi

Сообщение kemocat »

При попытке запуска от пользователя ругается на недостаточность прав:

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

user@orangepipc:~$ export DEBUG=5
user@orangepipc:~$ linuxcnc /home/user/machinekit/configs/ARISC/ARISC.ini
MACHINEKIT - 0.1
Machine configuration directory is '/home/user/machinekit/configs/ARISC'
Machine configuration file is 'ARISC.ini'
Starting Machinekit...
rtapi_msgd command:  /usr/libexec/linuxcnc/rtapi_msgd --instance=0 --rtmsglevel=5 --usrmsglevel=5 --debug=5 --halsize=524288
rtapi_app command:  /usr/libexec/linuxcnc/rtapi_app_rt-preempt --instance=0 --debug=5
D: 20-05-01 04:00:25 zloop: register FD poller ((nil), 6)
D: 20-05-01 04:00:25 zloop: register ROUTER reader
D: 20-05-01 04:00:25 zloop: register timer id=1 delay=1000 times=0
D: 20-05-01 04:00:25 zloop polling for 1000 msec
D: 20-05-01 04:00:25 zloop: call ROUTER socket handler
request: type: MT_RTAPI_APP_PING
rtapicmd {
  instance: 0
}

reply: type: MT_RTAPI_APP_REPLY
note: "pid=1477 flavor=rt-preempt gcc=6.3.0 20170516 git=v0.1~-----~9239acb"
retcode: 0

D: 20-05-01 04:00:26 zloop polling for 886 msec
D: 20-05-01 04:00:26 zloop: call ROUTER socket handler
request: type: MT_RTAPI_APP_PING
rtapicmd {
  instance: 0
}

reply: type: MT_RTAPI_APP_REPLY
note: "pid=1477 flavor=rt-preempt gcc=6.3.0 20170516 git=v0.1~-----~9239acb"
retcode: 0

D: 20-05-01 04:00:26 zloop polling for 878 msec
io started
D: 20-05-01 04:00:26 zloop: call ROUTER socket handler
request: type: MT_RTAPI_APP_PING
rtapicmd {
  instance: 0
}

reply: type: MT_RTAPI_APP_REPLY
note: "pid=1477 flavor=rt-preempt gcc=6.3.0 20170516 git=v0.1~-----~9239acb"
retcode: 0

D: 20-05-01 04:00:26 zloop polling for 804 msec
<commandline>:0: Component 'iocontrol' ready
<commandline>:0: Program 'io' started
halcmd loadusr io started
D: 20-05-01 04:00:26 zloop: call ROUTER socket handler
request: type: MT_RTAPI_APP_PING
rtapicmd {
  instance: 0
}

reply: type: MT_RTAPI_APP_REPLY
note: "pid=1477 flavor=rt-preempt gcc=6.3.0 20170516 git=v0.1~-----~9239acb"
retcode: 0

D: 20-05-01 04:00:26 zloop polling for 643 msec
D: 20-05-01 04:00:26 zloop: call ROUTER socket handler
request: type: MT_RTAPI_APP_LOADRT
rtapicmd {
  instance: 0
  modname: "trivkins"
}

reply: type: MT_RTAPI_APP_REPLY
retcode: 0

D: 20-05-01 04:00:26 zloop polling for 632 msec
ARISC.hal:13: Realtime module 'trivkins' loaded
D: 20-05-01 04:00:26 zloop: call ROUTER socket handler
request: type: MT_RTAPI_APP_LOADRT
rtapicmd {
  instance: 0
  modname: "motmod"
  argv: "base_period_nsec=58593"
  argv: "servo_period_nsec=1000000"
  argv: "num_joints=4"
}

reply: type: MT_RTAPI_APP_REPLY
note: "rtapi_app_main(motmod): -1 Operation not permitted\n"
retcode: -1

ARISC.hal:14: insmod failed, returned -1:
rtapi_app_main(motmod): -1 Operation not permitted

D: 20-05-01 04:00:26 zloop polling for 571 msec
Shutting down and cleaning up Machinekit...
D: 20-05-01 04:00:26 zloop: call timer handler id=1
D: 20-05-01 04:00:26 zloop polling for 999 msec
D: 20-05-01 04:00:27 zloop: call ROUTER socket handler
request: type: MT_RTAPI_APP_PING
rtapicmd {
  instance: 0
}

reply: type: MT_RTAPI_APP_REPLY
note: "pid=1477 flavor=rt-preempt gcc=6.3.0 20170516 git=v0.1~-----~9239acb"
retcode: 0

D: 20-05-01 04:00:27 zloop polling for 502 msec
<commandline>:0: Realtime threads stopped
D: 20-05-01 04:00:27 zloop: call ROUTER socket handler
request: type: MT_RTAPI_APP_PING
rtapicmd {
  instance: 0
}

reply: type: MT_RTAPI_APP_REPLY
note: "pid=1477 flavor=rt-preempt gcc=6.3.0 20170516 git=v0.1~-----~9239acb"
retcode: 0

D: 20-05-01 04:00:27 zloop polling for 435 msec
D: 20-05-01 04:00:27 zloop: call ROUTER socket handler
request: type: MT_RTAPI_APP_UNLOADRT
rtapicmd {
  instance: 0
  modname: "trivkins"
}

reply: type: MT_RTAPI_APP_REPLY
retcode: 0

D: 20-05-01 04:00:27 zloop polling for 431 msec
<commandline>:0: Realtime module 'trivkins' unloaded
D: 20-05-01 04:00:27 zloop: call ROUTER socket handler
request: type: MT_RTAPI_APP_PING
rtapicmd {
  instance: 0
}

reply: type: MT_RTAPI_APP_REPLY
note: "pid=1477 flavor=rt-preempt gcc=6.3.0 20170516 git=v0.1~-----~9239acb"
retcode: 0

D: 20-05-01 04:00:27 zloop polling for 354 msec
D: 20-05-01 04:00:27 zloop: call ROUTER socket handler
request: type: MT_RTAPI_APP_PING
rtapicmd {
  instance: 0
}

reply: type: MT_RTAPI_APP_REPLY
note: "pid=1477 flavor=rt-preempt gcc=6.3.0 20170516 git=v0.1~-----~9239acb"
retcode: 0

D: 20-05-01 04:00:27 zloop polling for 89 msec
D: 20-05-01 04:00:27 zloop: call timer handler id=1
D: 20-05-01 04:00:27 zloop polling for 999 msec
D: 20-05-01 04:00:28 zloop: call ROUTER socket handler
request: type: MT_RTAPI_APP_PING
rtapicmd {
  instance: 0
}

reply: type: MT_RTAPI_APP_REPLY
note: "pid=1477 flavor=rt-preempt gcc=6.3.0 20170516 git=v0.1~-----~9239acb"
retcode: 0

D: 20-05-01 04:00:28 zloop polling for 824 msec
D: 20-05-01 04:00:28 zloop: call ROUTER socket handler
request: type: MT_RTAPI_APP_PING
rtapicmd {
  instance: 0
}

reply: type: MT_RTAPI_APP_REPLY
note: "pid=1477 flavor=rt-preempt gcc=6.3.0 20170516 git=v0.1~-----~9239acb"
retcode: 0

D: 20-05-01 04:00:28 zloop polling for 558 msec
D: 20-05-01 04:00:28 zloop: call ROUTER socket handler
request: type: MT_RTAPI_APP_PING
rtapicmd {
  instance: 0
}

reply: type: MT_RTAPI_APP_REPLY
note: "pid=1477 flavor=rt-preempt gcc=6.3.0 20170516 git=v0.1~-----~9239acb"
retcode: 0

D: 20-05-01 04:00:28 zloop polling for 292 msec
D: 20-05-01 04:00:28 zloop: call ROUTER socket handler
request: type: MT_RTAPI_APP_PING
rtapicmd {
  instance: 0
}

reply: type: MT_RTAPI_APP_REPLY
note: "pid=1477 flavor=rt-preempt gcc=6.3.0 20170516 git=v0.1~-----~9239acb"
retcode: 0

D: 20-05-01 04:00:28 zloop polling for 27 msec
D: 20-05-01 04:00:28 zloop: call timer handler id=1
D: 20-05-01 04:00:28 zloop polling for 991 msec
D: 20-05-01 04:00:29 zloop: call ROUTER socket handler
request: type: MT_RTAPI_APP_PING
rtapicmd {
  instance: 0
}

reply: type: MT_RTAPI_APP_REPLY
note: "pid=1477 flavor=rt-preempt gcc=6.3.0 20170516 git=v0.1~-----~9239acb"
retcode: 0

D: 20-05-01 04:00:29 zloop polling for 761 msec
D: 20-05-01 04:00:29 zloop: call ROUTER socket handler
request: type: MT_RTAPI_APP_PING
rtapicmd {
  instance: 0
}

reply: type: MT_RTAPI_APP_REPLY
note: "pid=1477 flavor=rt-preempt gcc=6.3.0 20170516 git=v0.1~-----~9239acb"
retcode: 0

D: 20-05-01 04:00:29 zloop polling for 496 msec
D: 20-05-01 04:00:29 zloop: call ROUTER socket handler
request: type: MT_RTAPI_APP_PING
rtapicmd {
  instance: 0
}

reply: type: MT_RTAPI_APP_REPLY
note: "pid=1477 flavor=rt-preempt gcc=6.3.0 20170516 git=v0.1~-----~9239acb"
retcode: 0

D: 20-05-01 04:00:29 zloop polling for 232 msec
D: 20-05-01 04:00:29 zloop: call timer handler id=1
D: 20-05-01 04:00:29 zloop polling for 1000 msec
D: 20-05-01 04:00:29 zloop: call ROUTER socket handler
request: type: MT_RTAPI_APP_PING
rtapicmd {
  instance: 0
}

reply: type: MT_RTAPI_APP_REPLY
note: "pid=1477 flavor=rt-preempt gcc=6.3.0 20170516 git=v0.1~-----~9239acb"
retcode: 0

D: 20-05-01 04:00:29 zloop polling for 963 msec
D: 20-05-01 04:00:30 zloop: call ROUTER socket handler
request: type: MT_RTAPI_APP_PING
rtapicmd {
  instance: 0
}

reply: type: MT_RTAPI_APP_REPLY
note: "pid=1477 flavor=rt-preempt gcc=6.3.0 20170516 git=v0.1~-----~9239acb"
retcode: 0

D: 20-05-01 04:00:30 zloop polling for 510 msec
D: 20-05-01 04:00:30 zloop: call ROUTER socket handler
request: type: MT_RTAPI_APP_EXIT
rtapicmd {
  instance: 0
}

reply: type: MT_RTAPI_APP_REPLY
retcode: 0

Cleanup done
Machinekit terminated with an error.  For simple cases more information
can be found in the following files:
    /home/user/linuxcnc_debug.txt
    /home/user/linuxcnc_print.txt

For other cases get more meaningfull information by restarting after
    export DEBUG=5

and look at the output of:
    /var/log/linuxcnc.log
    dmesg

When looking for errors, specifically look for libraries that fail to load
by looking for lines with 'insmod failed' as per example below.

insmod failed, returned -1:
do_load_cmd: dlopen: nonexistant-component.so: cannot open shared object file:
No such file or directory

For getting help, please have a look here: www.machinekit.io/docs/getting-help/
user@orangepipc:~$ 
ARISC.hal:

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

#
#  Orange Pi GPIO header
#
#                   Enbl  Ab    Ae                            Adir        Astp              Probe       Zdir  Zstp  Yb
#                   +     +     +                             +           +                 +           +     +     +
# 2     4     6     8     10    12    14    16    18    20    22    24    26    28    30    32    34    36    38    40
# 5V    5V    GND   PA13  PA14  PD14  GND   PC4   PC7   GND   PA2   PC3   PA21  PA18  GND   PG8   GND   PG9   PG6   PG7
# 3.3V  PA12  PA11  PA6   GND   PA1   PA0   PA3   3.3V  PC0   PC1   PC2   GND   PA19  PA7   PA8   PA9   PA10  PA20  GND
# 1     3     5     7     9     11    13    15    17    19    21    23    25    27    29    31    33    35    37    39
#                                                             +     +                 +     +     +     +     +
#                                                             Xstp  Xdir              Xe    Xb    Ystp  Ydir  Ye

loadrt trivkins
loadrt [EMCMOT]EMCMOT base_period_nsec=[EMCMOT]BASE_PERIOD servo_period_nsec=[EMCMOT]SERVO_PERIOD num_joints=[TRAJ]AXES
loadrt arisc_gpio       in=PA7,PA8,PA14,PA20,PD14,PG7,PG8 out=PA2,PA9,PA10,PA13,PA21,PC1,PC2,PG6,PG9
loadrt arisc_stepgen    ctrl_type=p,p,p,p
loadrt pwmgen           output_type=1


addf arisc_gpio.read                base-thread
addf pwmgen.make-pulses             base-thread
addf arisc_gpio.write               base-thread
addf arisc_stepgen.capture-position servo-thread
addf motion-command-handler         servo-thread
addf motion-controller              servo-thread
addf arisc_stepgen.update-freq      servo-thread
addf pwmgen.update                  servo-thread


setp pwmgen.0.pwm-freq              100.0
setp pwmgen.0.scale                 24000.0
setp pwmgen.0.offset                0.0
setp pwmgen.0.dither-pwm            true


setp arisc_stepgen.0.position-scale [AXIS_0]SCALE
setp arisc_stepgen.0.step-port      2       # 0=PA, 1=PB, 2=PC, 3=PD, ...
setp arisc_stepgen.0.step-pin       1       # PC1 (21)
setp arisc_stepgen.0.step-invert    0
setp arisc_stepgen.0.dir-port       2       # 0=PA, 1=PB, 2=PC, 3=PD, ...
setp arisc_stepgen.0.dir-pin        2       # PC2 (23)
setp arisc_stepgen.0.dir-invert     0


setp arisc_stepgen.1.position-scale [AXIS_1]SCALE
setp arisc_stepgen.1.step-port      0       # 0=PA, 1=PB, 2=PC, 3=PD, ...
setp arisc_stepgen.1.step-pin       9       # PA9 (33)
setp arisc_stepgen.1.step-invert    0
setp arisc_stepgen.1.dir-port       0       # 0=PA, 1=PB, 2=PC, 3=PD, ...
setp arisc_stepgen.1.dir-pin        10      # PA10 (35)
setp arisc_stepgen.1.dir-invert     0


setp arisc_stepgen.2.position-scale [AXIS_2]SCALE
setp arisc_stepgen.2.step-port      7       # 0=PA, 1=PB, 2=PC, 3=PD, ...
setp arisc_stepgen.2.step-pin       6       # PG6 (38)
setp arisc_stepgen.2.step-invert    0
setp arisc_stepgen.2.dir-port       7       # 0=PA, 1=PB, 2=PC, 3=PD, ...
setp arisc_stepgen.2.dir-pin        9       # PG9 (36)
setp arisc_stepgen.2.dir-invert     0


setp arisc_stepgen.3.position-scale [AXIS_3]SCALE
setp arisc_stepgen.3.step-port      0       # 0=PA, 1=PB, 2=PC, 3=PD, ...
setp arisc_stepgen.3.step-pin       21      # PA21 (26)
setp arisc_stepgen.3.step-invert    0
setp arisc_stepgen.3.dir-port       0       # 0=PA, 1=PB, 2=PC, 3=PD, ...
setp arisc_stepgen.3.dir-pin        2       # PA2 (22)
setp arisc_stepgen.3.dir-invert     0


net x-pos-cmd                       arisc_stepgen.0.position-cmd 
net x-pos-cmd                       axis.0.motor-pos-cmd
net x-pos-fb                        arisc_stepgen.0.position-fb  
net x-pos-fb                        axis.0.motor-pos-fb
net x-enable                        arisc_stepgen.0.enable       
net x-enable                        axis.0.amp-enable-out 
net x-enable                        arisc_gpio.PA13-out-not
net x-home-sw                       axis.0.home-sw-in            
net x-home-sw                       arisc_gpio.PA8-in


net y-pos-cmd                       arisc_stepgen.1.position-cmd 
net y-pos-cmd                       axis.1.motor-pos-cmd
net y-pos-fb                        arisc_stepgen.1.position-fb  
net y-pos-fb                        axis.1.motor-pos-fb
net y-enable                        arisc_stepgen.1.enable       
net y-enable                        axis.1.amp-enable-out 
net y-home-sw                       axis.1.home-sw-in            
net y-home-sw                       arisc_gpio.PG7-in


net z-pos-cmd                       arisc_stepgen.2.position-cmd 
net z-pos-cmd                       axis.2.motor-pos-cmd
net z-pos-fb                        arisc_stepgen.2.position-fb  
net z-pos-fb                        axis.2.motor-pos-fb
net z-enable                        arisc_stepgen.2.enable       
net z-enable                        axis.2.amp-enable-out 


net a-pos-cmd                       arisc_stepgen.3.position-cmd 
net a-pos-cmd                       axis.3.motor-pos-cmd
net a-pos-fb                        arisc_stepgen.3.position-fb  
net a-pos-fb                        axis.3.motor-pos-fb
net a-enable                        arisc_stepgen.3.enable       
net a-enable                        axis.3.amp-enable-out 


net probe-in                        motion.probe-input               
net probe-in                        arisc_gpio.PG8-in


net estop-out                       iocontrol.0.user-enable-out
net estop-out                       iocontrol.0.emc-enable-in
ЗЫ: debian stretch, "чистая" установка
Аватара пользователя
MX_Master
Мастер
Сообщения: 7489
Зарегистрирован: 27 июн 2015, 19:45
Репутация: 3113
Настоящее имя: Михаил
Откуда: Алматы
Контактная информация:

Re: LinuxCNC + Orange Pi

Сообщение MX_Master »

kemocat писал(а):rtapi_app_main(motmod): -1 Operation not permitted
тут дело не моём драйвере, а в том как Machinekit запускает компонент motmod

нужно делать вот так

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

loadrt trivkins
loadrt tp
loadrt [EMCMOT]EMCMOT base_period_nsec=[EMCMOT]BASE_PERIOD servo_period_nsec=[EMCMOT]SERVO_PERIOD num_joints=[TRAJ]AXES kins=trivkins tp=tp
взято из свежего тестового конфига для Machinekit

в конфиге для LinuxCNC, который ты используешь, запуск motmod выполнен иначе. Вот и вся ошибка :)
Аватара пользователя
xenon-alien
Почётный участник
Почётный участник
Сообщения: 4520
Зарегистрирован: 01 янв 2013, 13:13
Репутация: 925
Настоящее имя: Daniel
Откуда: Закарпатская обл. Украина
Контактная информация:

Re: LinuxCNC + Orange Pi

Сообщение xenon-alien »

done.png (2687 просмотров) <a class='original' href='./download/file.php?id=180732&mode=view' target=_blank>Загрузить оригинал (90.61 КБ)</a>
MX_Master писал(а):Инструкции по установке всё те же.
У меня только одна строка не проходила с драйвером и только её запустил.
Так норм?
Или по очереди пройтись ещё раз?
Ответить

Вернуться в «Электроника»