Mesa cards compatibility question: Machinekit + ROS (Pins vs Params)

111 views
Skip to first unread message

Jakub Kaminski

unread,
Sep 9, 2021, 5:39:59 PM9/9/21
to Machinekit
Dear Machinekit Community,
tl;dr:
Machinekit uses HAL Pins for ROS bindings which is (or was?) nonstandard for Mesa cards (which uses params). Can I use any Mesa card with ROS and Machinekit for Step-dir control? (Looking at 7i92 + daughter cards). Trying to validate what I read online.

Full message:
Impressed by the possibilities that Machinekit + ROS offer and your great work at:
hal_ros_control package (@Zultron @Luminize @Machinekoder),
ros_hal_tests  (@Cdsteinkuehler)

I would like to ask some compatibilty questions.

As @Luminize stated in ros_hello_machinekit repository :
depending on the hardware you will need to use this machinekit branch (no support !!!) which uses pins instead of params for the mesa hardware stepgen. BEWARE only tested on a mesa 5i20 card. YMMV 

I plan to buy 7i92 + daughter step/dir card just in case my parallel port is not good enough. Will it work with Machinekit + ROS without much modifications? Do I need to apply some custom branch or some other hacking?

Thank you for your time devoted to this and making these meaningful contributions, which are a real game-changer for robotics researchers.

Best regards,
Jakub

Charles Steinkuehler

unread,
Sep 12, 2021, 12:31:47 PM9/12/21
to machi...@googlegroups.com
You should be able to use anything supported by Machinekit to generate
step/dir pulses, and last I knew most of the Mesa hardware was
supported. The pins/parameters thing relates to Machinekit generally
dropping support for parameters in favor of pins. This was for a
variety of reasons, but mostly because it allowed for making components
instantiable at run-time, eg: eliminating the need to know ahead of time
exactly how many instances of some component you might need for your HAL
file.

Most of the Mesa driver logic (eg: the HM2 driver) should be working in
Machinekit, or at least it was when I was playing with Mesa VHDL code in
the FPGA+SoC platforms a while back. Each individual card then has a
small shim of code to handle the different communications protocols (eg:
PCI/PCIe, EPP, SPI, Ethernet, etc).

On 9/9/2021 4:39 PM, Jakub Kaminski wrote:
> Dear Machinekit Community,
> *tl;dr:*
> Machinekit uses HAL Pins for ROS bindings which is (or was?) nonstandard
> for Mesa cards (which uses params). Can I use any Mesa card with ROS and
> Machinekit for Step-dir control? (Looking at 7i92 + daughter cards). Trying
> to validate what I read online.
>
> *Full message:*
> Impressed by the possibilities that Machinekit + ROS offer and your great
> work at:
> hal_ros_control <https://github.com/zultron/hal_ros_control>package
> (@Zultron @Luminize @Machinekoder),
> ros_hal_tests <https://github.com/cdsteinkuehler/ros_hal_tests>
> (@Cdsteinkuehler)
> ros_hello_machinekit <https://github.com/luminize/ros_hello_machinekit>
> (@Luminize )
>
> I would like to ask some compatibilty questions.
>
> As @Luminize stated in ros_hello_machinekit repository
> <https://github.com/luminize/ros_hello_machinekit> :
> *depending on the hardware you will need to use this machinekit branch (no
> support !!!)
> <https://github.com/luminize/machinekit/tree/hostmot-remove-params2> which
> uses pins instead of params for the mesa hardware stepgen. BEWARE only
> tested on a mesa 5i20 card. YMMV *
>
> I plan to buy 7i92 + daughter step/dir card just in case my parallel port
> is not good enough. Will it work with Machinekit + ROS without much
> modifications? Do I need to apply some custom branch or some other hacking?
>
> Thank you for your time devoted to this and making these meaningful
> contributions, which are a real game-changer for robotics researchers.
>
> Best regards,
> Jakub
>

--
Charles Steinkuehler
cha...@steinkuehler.net

Jakub Kaminski

unread,
Sep 14, 2021, 1:01:02 AM9/14/21
to Machinekit
Hi Charles,
Thank you for your reply and being supportive!

I found the following commit:
Moreover, currently this file also mentions 7i92 and some others.

Running text search tools across machinekit-hal repo, I did not find any information about the newest cards like 7i96 or 7i95.

I spoke with a Mesa engineer today and finally bought 7i92 and 7i88 for my Machinekit-related work  (7i88 daughter board because of the number of step-dir axes which will be used in my research application).
There is a plan to later add a second daughter board for inputs only.

Best regards,
Jakub
Reply all
Reply to author
Forward
0 new messages