Контроллер LinuxCNC на базе FPGA?

Обсуждение установки, настройки и использования LinuxCNC. Вопросы по Gкоду.
Аватара пользователя
R6MF49T2
Мастер
Сообщения: 229
Зарегистрирован: 14 июл 2016, 17:18
Репутация: 32
Откуда: Великий Новгород/Санкт-Петербург
Контактная информация:

Контроллер LinuxCNC на базе FPGA?

Сообщение R6MF49T2 »

Сейчас по работе работаю с интересным чипом Intel (Altera) Cyclone V SOC FPGA.
По сути это ПЛИСина с двумя ядрами ARM Cortex-A9. Линукс на ядрах завёлся с пол пинка, на ПЛИС можно написать любые генераторы сигналов/интерфейсы и без проблем их подключить к ядрам с очень низкой задержкой и очень простым управлением. Появилась идея реализовать на данном чипе компактный контроллер на базе LinuxCNC.

С железной стороны всё довольно очевидно, ставим плис с обвязкой, выводим наружу все доступные интерфейсы арм-подсистемы (езернеты, usb, uart, i2c, spi и прочие). Память, питание, генераторы, картридер для загрузки, часы с батарейкой распаиваем на плате. Видеовыход делаем на плисине, например eDP (есть ip-core + куча дешёвых матриц от ноутбуков, причём много с встроенным ёмкостным сенсором). Все свободные ноги плисины выводим на мезанинный разъём, к которому можно подключить либо плату опторазвязки, либо кому что захочется.
В итоге получим компактную плату с LinuxCNC подключаемую к дешёвым сенсорным матрицам и железным генератором управляющих сигналов по стоимости сравнимой с некоторыми платами mesa.

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

Теперь к вопросам:
1)Из опыта использования LCNC, сколько необходимо оперативной памяти и вычислительных ресурсов (частоты/количество ядер/поддержка float) для комфортной работы пользовательского интерфейса? Про латенси можно забыть так как генерация сигналов будет в плис.
2)Будет ли интерес к проекту?
3)За какую стоимость вы купили бы подобную плату при условии открытого проекта и наличии всех исходников?
Аватара пользователя
MX_Master
Мастер
Сообщения: 6601
Зарегистрирован: 27 июн 2015, 19:45
Репутация: 2767
Настоящее имя: Миша
Контактная информация:

Re: Контроллер LinuxCNC на базе FPGA?

Сообщение MX_Master »

Для полноценной работы текущих интерфейсов LinuxCNC нужен настольный проц от 1.6 ГГц с настольным видеочипом, который полноценно поддерживает OpenGL. Что-то мне подсказывает, что в вышеуказанных чипах есть поддержка только OpenGL ES. Ну и память для комфортной работы должна быть от 2 Гб и выше.

Ну и как показала практика, люди хотят уже готовые решения. Есть ли исходники там или нет - дело десятое, т.к. из всех потенциальных пользователей туда заглянет только 2-3 человека за всё время.
Аватара пользователя
R6MF49T2
Мастер
Сообщения: 229
Зарегистрирован: 14 июл 2016, 17:18
Репутация: 32
Откуда: Великий Новгород/Санкт-Петербург
Контактная информация:

Re: Контроллер LinuxCNC на базе FPGA?

Сообщение R6MF49T2 »

MX_Master, да, с OpenGL засада. OpenGL ES тоже нет, хотя существует возможность реализовать его на ПЛИС.
Не могу найти информацию, можно ли собрать LinuxCNC без графики. Вроде при какой-то ошибке конфигурирования он мне выдал что мол можно использовать опцию --disable-python, но видимо в текушей версии такого варианта нет.
Аватара пользователя
MX_Master
Мастер
Сообщения: 6601
Зарегистрирован: 27 июн 2015, 19:45
Репутация: 2767
Настоящее имя: Миша
Контактная информация:

Re: Контроллер LinuxCNC на базе FPGA?

Сообщение MX_Master »

Думаю, питон отключать не надо, в LinuxCNC на нём работает не только графика, но и много чего интересного. Если надо только для пробы, можно не собирая LinuxCNC, просто установить Machinekit (клон LinuxCNC) - http://www.machinekit.io/docs/getting-s ... -packages/. Если для управления юзать не графический интерфейс, а, скажем, Python Interface, то графика в чипе будет не нужна.
mmv
Мастер
Сообщения: 449
Зарегистрирован: 24 май 2016, 21:58
Репутация: 27
Контактная информация:

Re: Контроллер LinuxCNC на базе FPGA?

Сообщение mmv »

И сколько будет стоить подобное творение в партии несколько десятков. Сколько сам чип стоит?
Комплект плат PinCET для модернизации станков на Linuxcnc.
viewtopic.php?f=19&t=11116#p268407
Аватара пользователя
R6MF49T2
Мастер
Сообщения: 229
Зарегистрирован: 14 июл 2016, 17:18
Репутация: 32
Откуда: Великий Новгород/Санкт-Петербург
Контактная информация:

Re: Контроллер LinuxCNC на базе FPGA?

Сообщение R6MF49T2 »

MX_Master писал(а):Думаю, питон отключать не надо, в LinuxCNC на нём работает не только графика, но и много чего интересного. Если надо только для пробы, можно не собирая LinuxCNC, просто установить Machinekit (клон LinuxCNC) - http://www.machinekit.io/docs/getting-s ... -packages/. Если для управления юзать не графический интерфейс, а, скажем, Python Interface, то графика в чипе будет не нужна.
Спасибо, полезная для меня информация. Попробую запустить на отладке чтоб оценить жизнеспособность задуманного. Правильно я понимаю что собрать LinuxCNC без пакетного менеджера нереально? В своих эксперементах с различными платами, Вы собирали непосредственно на плате или использовали кросс-компиляцию?
mmv писал(а):И сколько будет стоить подобное творение в партии несколько десятков. Сколько сам чип стоит?
Попробую прикинуть. Возможно несколько вариантов:
1) Отладка с плис 50 тыс. логических ячеек (без GX-ов) продаются от 100 долларов, например https://www.terasic.com.tw/cgi-bin/page ... 205&No=941 (при стоимости чипа например в дижикее 145 долларов). С доставкой в Россию отладка будет стоить 130. Если выбрать дисплей с параллельным интерфейсом (или с не очень высокочастотным LVDS), то всего-то нужно сделать мезаниную плату к отладке с опторазвязкой (или необходимым интерфейсом) и разъёмами, думаю в 40 долларов уложится можно + стоимость дисплея. Из минусов - сложно найти недорогой дисплей который не снят с производства с более менее нормальным разрешением, подключение дисплея займёт 15-30 IO из 40 доступных.
2) Выбрать отладку чуть подороже, за 130 (162 с доставкой в рф), вот такую https://www.terasic.com.tw/cgi-bin/page ... 05&No=1046
В ней есть HDMI что упростит задачу, так как не понадобится возится с выбором дисплея, все IO доступны под интерфейсы. Но придётся делать поддержку различных разрешений мониторов, добавлять драйвера различных тачей, городить usb-hub. Тогда нужна крайне простая интерфейсная плата, можно даже готовую китайскую выбрать если не лень возится с жгутами.
3) Разработать полностью свою плату. Тут уже можно выбрать чип с GX, что позволит подключить дешёвые ноутбучные матрицы с высоким разрешением по интерфейсу eDP, можно получить плату более компактную и энергоэффективную, с любыми интерфейсами и хотелками. Стоимость такого решения сказать затрудняюсь, но это будет явно дороже предыдущих вариантов, но такой вариант более красивый с инженерной точки зрения.

Но вначале нужно запустить на данном чипе LCNC, может он просто не потянет его...
Аватара пользователя
MX_Master
Мастер
Сообщения: 6601
Зарегистрирован: 27 июн 2015, 19:45
Репутация: 2767
Настоящее имя: Миша
Контактная информация:

Re: Контроллер LinuxCNC на базе FPGA?

Сообщение MX_Master »

R6MF49T2 писал(а):Правильно я понимаю что собрать LinuxCNC без пакетного менеджера нереально? В своих эксперементах с различными платами, Вы собирали непосредственно на плате или использовали кросс-компиляцию?
Я никогда LinuxCNC не собирал (: Cобирал только Linux c помощью Armbian. Только кросс-компиляция. На ARM платах собирать такое можно целый день, не стоит оно того.

По поводу цены.. лично я уже всё посчитал (: комплект Orange Pi (H3/H5) + STM32 будет самым лучшим по соотношению цены и производительности. 4-5 МГц - без проблем. Чтобы было красивее с инженерной точки зрения, я планирую сделать платку с STM32 в виде шильдика для Orange Pi.
Аватара пользователя
donvictorio
Мастер
Сообщения: 2399
Зарегистрирован: 11 окт 2012, 16:26
Репутация: 664
Настоящее имя: Виктор
Откуда: Санкт-Петербург
Контактная информация:

Re: Контроллер LinuxCNC на базе FPGA?

Сообщение donvictorio »

R6MF49T2 писал(а):3)За какую стоимость вы купили бы подобную плату при условии открытого проекта и наличии всех исходников?
100-150 баксов. выше уже нет смысла, полно интегрированных решений, типа ddcsv.
Аватара пользователя
R6MF49T2
Мастер
Сообщения: 229
Зарегистрирован: 14 июл 2016, 17:18
Репутация: 32
Откуда: Великий Новгород/Санкт-Петербург
Контактная информация:

Re: Контроллер LinuxCNC на базе FPGA?

Сообщение R6MF49T2 »

MX_Master писал(а):Я никогда LinuxCNC не собирал (: Cобирал только Linux c помощью Armbian. Только кросс-компиляция. На ARM платах собирать такое можно целый день, не стоит оно того.
Ну ядро и rootfs понятно что компилить с компа. А вот LinuxCNC для сборки (компиляции из исходников) требует много всяческих библиотек и пакетов. Всё это ставить через make очень не хочется, а пакетного менеджера на подобии apt-get у меня в rootfs нет (голый linux). Предполагаю что можно собрать rootfs на базе например debian или ubuntu, тогда при помощи apt-get собрать LinuxCNC будет проще. Но возникла мысль кросс-скомпилировать LinuxCNC на стационарном компе под Arm и засунуть их в rootfs, но не уверен что такое возможно.
donvictorio писал(а):100-150 баксов. выше уже нет смысла, полно интегрированных решений, типа ddcsv.
Спасибо за мнение. У меня есть ddcsv, и по сравнению с LCNC его возможности крайне бедны.
mmv
Мастер
Сообщения: 449
Зарегистрирован: 24 май 2016, 21:58
Репутация: 27
Контактная информация:

Re: Контроллер LinuxCNC на базе FPGA?

Сообщение mmv »

Как коммерческий продукт при такой себестоимости не прокатит. Потому что есть более простые решения: PC+меса,PC+STM,PC+to_pci(ethernet), вместо PC может быть и orange pi. В сравнении с которыми ваш проект с пользовательской точки зрения не даёт никаких преимуществ. Пользователь выберет более распространенный продукт, по которому много чего написано.
Как проект, что бы попробовать свои силы да, наверно не плохо. Но ресурсов (время) будет потрачено очень много.
Комплект плат PinCET для модернизации станков на Linuxcnc.
viewtopic.php?f=19&t=11116#p268407
Аватара пользователя
Lexxa
Мастер
Сообщения: 2688
Зарегистрирован: 16 дек 2011, 16:48
Репутация: 316
Настоящее имя: Алексей
Откуда: ryazan
Контактная информация:

Re: Контроллер LinuxCNC на базе FPGA?

Сообщение Lexxa »

А главное зачем? На рынке полно законченных вполне бюджетных промышленных решений
:bender:
aftaev
Зачётный участник
Зачётный участник
Сообщения: 32825
Зарегистрирован: 04 апр 2010, 19:22
Репутация: 5887
Откуда: Казахстан. Шымкент
Контактная информация:

Re: Контроллер LinuxCNC на базе FPGA?

Сообщение aftaev »

Если есть интерес, могу разобрать и сфоткать на каких чипах собран ЧПУ Сименс 808Д. Работает под Linux.
Дилетанту сложные вещи кажутся очень простыми, и только профессионал понимает насколько сложна самая простая вещь
Кто хочет - ищет возможности, кто не хочет - ищет оправдание.
Найди работу по душе и тебе не придется работать.
Аватара пользователя
MX_Master
Мастер
Сообщения: 6601
Зарегистрирован: 27 июн 2015, 19:45
Репутация: 2767
Настоящее имя: Миша
Контактная информация:

Re: Контроллер LinuxCNC на базе FPGA?

Сообщение MX_Master »

aftaev писал(а):Если есть интерес, могу разобрать и сфоткать на каких чипах собран ЧПУ Сименс 808Д. Работает под Linux.
Александр, думаю, не надо. Всё равно казахский сименс будет работать на STM'ах :hehehe:
Аватара пользователя
Lexxa
Мастер
Сообщения: 2688
Зарегистрирован: 16 дек 2011, 16:48
Репутация: 316
Настоящее имя: Алексей
Откуда: ryazan
Контактная информация:

Re: Контроллер LinuxCNC на базе FPGA?

Сообщение Lexxa »

aftaev, я разбирал.
Там Intel Atom процессор впаяный, оперативка тоже впаяная, Altera Cyclone IV fpga на природную часть, s7-200 впаяная для PLC, ну и драйверы RS232, RS485, I/O.

Но на самом деле там хитро как-то работает linux.
Ядро ЧПУ на linux, а HMI приложения windows'a.
:bender:
aftaev
Зачётный участник
Зачётный участник
Сообщения: 32825
Зарегистрирован: 04 апр 2010, 19:22
Репутация: 5887
Откуда: Казахстан. Шымкент
Контактная информация:

Re: Контроллер LinuxCNC на базе FPGA?

Сообщение aftaev »

Lexxa писал(а):aftaev, я разбирал.
Я тоже разбирал, но не фоткал. Раз народу не интересно, фоткать не буду.
Дилетанту сложные вещи кажутся очень простыми, и только профессионал понимает насколько сложна самая простая вещь
Кто хочет - ищет возможности, кто не хочет - ищет оправдание.
Найди работу по душе и тебе не придется работать.
Аватара пользователя
MX_Master
Мастер
Сообщения: 6601
Зарегистрирован: 27 июн 2015, 19:45
Репутация: 2767
Настоящее имя: Миша
Контактная информация:

Re: Контроллер LinuxCNC на базе FPGA?

Сообщение MX_Master »

Lexxa писал(а):Но на самом деле там хитро как-то работает linux.
Ядро ЧПУ на linux, а HMI приложения windows'a.
Wine? Кстати, если кто-то захочет свою стойку сделать под Windows, есть ReactOS ;)
Аватара пользователя
R6MF49T2
Мастер
Сообщения: 229
Зарегистрирован: 14 июл 2016, 17:18
Репутация: 32
Откуда: Великий Новгород/Санкт-Петербург
Контактная информация:

Re: Контроллер LinuxCNC на базе FPGA?

Сообщение R6MF49T2 »

mmv писал(а):Как коммерческий продукт при такой себестоимости не прокатит. Потому что есть более простые решения: PC+меса,PC+STM,PC+to_pci(ethernet), вместо PC может быть и orange pi. В сравнении с которыми ваш проект с пользовательской точки зрения не даёт никаких преимуществ. Пользователь выберет более распространенный продукт, по которому много чего написано.
Как проект, что бы попробовать свои силы да, наверно не плохо. Но ресурсов (время) будет потрачено очень много.
Ну какая стоимость получится комплекта PC+меса? Если рассматривать именно pci/pcie решения? PC+STM не рассматриваю, так как они просто не смогут обеспечить такую стабильность и скорость генерации сигналов как fpga.

Главное преимущество именно моего решения - минимальные задержки передачи данных между cpu и fpga (пропускная способность 16-17 Гбит/c) абсолютно без нагрузки на cpu. Ну и конструкция получится значительно более компактная, законченная, пользователю просто не нужно что либо устанавливать, компилировать и так далее. Записал обаз на флешку, включил и работай. По крайней мере задумка такая. За счёт того что stepgen переносится из cpu на fpga, linuxcnc должен работать значительно шустрее, латенси минимальный, почти как в случае c linuxcnc + mesa только быстрее за счёт значительно более быстрого интерфейса между cpu и fpga. Ну и сам Linux тут будет скомпилирован только с самым необходимым, что так же должно сказаться на скорости работы и надёжности. Если конечно доведу проект до конца.
Lexxa писал(а):А главное зачем? На рынке полно законченных вполне бюджетных промышленных решений
В качестве хобби. Вторая причина - по недосмотру купил 100-ватные сервопаки с интерфейсом RTEX (Realtime Express), а готовые pci платы для этого интерфейса стоят от 500$.
Микруху этого интерфейса MNM1221 заказал по дешёвке, но реализовывать конвертер step/dir -> RTEX почти так же по сложности как и сделать готовую стойку с этим интерфейсом, характеристики которой будут значительно более лучшими.
Аватара пользователя
R6MF49T2
Мастер
Сообщения: 229
Зарегистрирован: 14 июл 2016, 17:18
Репутация: 32
Откуда: Великий Новгород/Санкт-Петербург
Контактная информация:

Re: Контроллер LinuxCNC на базе FPGA?

Сообщение R6MF49T2 »

aftaev писал(а):
Lexxa писал(а):aftaev, я разбирал.
Я тоже разбирал, но не фоткал. Раз народу не интересно, фоткать не буду.
Ну специально ради этого думаю нет смысла разбирать, но при случае фото будут интересны
Аватара пользователя
MX_Master
Мастер
Сообщения: 6601
Зарегистрирован: 27 июн 2015, 19:45
Репутация: 2767
Настоящее имя: Миша
Контактная информация:

Re: Контроллер LinuxCNC на базе FPGA?

Сообщение MX_Master »

R6MF49T2 писал(а):PC+STM не рассматриваю, так как они просто не смогут обеспечить такую стабильность и скорость генерации сигналов как fpga.
И степмастер от Михаила Юрова наглядное тому опровержение (:
Когда буду тестировать свой новый генератор на STM32H7, обязательно покажу фотки вывода. Я, чесслово, без понятия каким таким драйверам нужно на вход больше 4-5 МГц, но для STM'ов это не проблема. При этом всём процессор может свободно заниматься и другими делами :)
Аватара пользователя
Serg
Мастер
Сообщения: 21756
Зарегистрирован: 17 апр 2012, 14:58
Репутация: 5113
Заслуга: c781c134843e0c1a3de9
Настоящее имя: Сергей
Откуда: Москва
Контактная информация:

Re: Контроллер LinuxCNC на базе FPGA?

Сообщение Serg »

R6MF49T2 писал(а):Главное преимущество именно моего решения - минимальные задержки передачи данных между cpu и fpga (пропускная способность 16-17 Гбит/c) абсолютно без нагрузки на cpu.
Как раз это и не нужно, тут вполне хватает скоростей ethernet. А вот быстродействия для работы нормального пользовательского интерфейса (gmoccapy) катастрофически недостаточно. Я уже год-два назад пробовал и DE10-Nano и DE0-Nano-SoC - шевелится довольно печально...
Я пробовал разные платы, минимальные требования получаются такими: от 1.8GHz, лучше 2GHz, от 1GB RAM, лучше 2GB.
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
Ответить

Вернуться в «LinuxCNC»