LinuxCNC-RIO - RealtimeIO for LinuxCNC based on FPGA (ICE40 / ECP5)

More
3 years 1 month ago #279528 by fest
I am now designing a single-axis prototype for interfacing +/-10V servo drive and RS422 encoder for Colorlight i5 devboard (basically to verify hardware building blocks before making a modular multi-axis one). 

One feature I noticed is lacking is some kind of watchdog that expects an update (patting) from linuxcnc and disables an output if not updated every 10-100ms. Something similar to this is often used in controllers that are commanded by PC, as a safeguard for PC/OS/linuxcnc crash. Hardware would then drive the outputs to a safe state (i.e. disabled motors and spindle).
Another possible implementation to safeguard against FPGA malfunction (be it gateware issue, a poor contact in clock signal or just user deciding to reflash FPGA with motors running) is to have FPGA generate a low frequency PWM when update is received, and hardware monitoring that there is an activity on the pin (IIRC there are watchdog ICs for this purpose), instead of just low or high signal coming from FPGA.


I'll probably take a shot at implementing this once I'm happy with the single axis prototype.


Edit: I realized such a feature can be implemented in a higher level (and sure, it already is implemented) without special support in driver/hardware controller.

Please Log in to join the conversation.

More
3 years 1 month ago #279549 by meister
hi,
a kind of watchdog is implemented,
it monitors for new SPI signals and disables the enable output of the steppers. There is also an LED output that is switched in case of an error.

A special hardware watchdog is not available but I would be happy to support you in implementing such a function.

Please Log in to join the conversation.

More
3 years 1 month ago #279579 by serdigi
Hello;
Congratulations. Thank you for sharing this economical and efficient project with us. My question is: What is the maximum step frequency in 4 axes? Have you had a chance to test it? Thank you. Kind regards...

Please Log in to join the conversation.

More
3 years 1 month ago #279581 by meister
Thanks, but I can't say what the maximum is, but I can say that the FPGA is not the limiting component :) and that it doesn't depend on the number of axes, but that all stepgen/pwm run in parallel

Please Log in to join the conversation.

More
3 years 1 month ago #280182 by fest
Designed and ordered a single-axis evaluation board for Colorlight i5 (+/-10V analog output, step/dir, RS422 encoder input, a couple of inputs) to test out the Lichuan servo and Ditron scales I have on order. It is not a complete solution yet, but perhaps useful to someone following along at home:  github.com/festlv/linuxcnc-rio-servo-eval

Please Log in to join the conversation.

More
3 years 1 month ago #280205 by Cant do this anymore bye all

Please Log in to join the conversation.

More
3 years 1 month ago #280221 by fest
Are you and/or @meister working on something similar? If that's intended as an open-source hardware project, perhaps you need help?

Please Log in to join the conversation.

More
3 years 1 month ago #280235 by Cant do this anymore bye all
I've got a couple of boards I designed a few years ago, but currently they don't have an RS-422 interface on them. So would be interested in your implementation as a reference.

Tho I did grab2 of these to play with, hopefully have a SPI490, if not no harm
 

Please Log in to join the conversation.

More
3 years 1 month ago #280255 by meister
it would be great if we had open source hardware, but it's not that simple.

The FPGAs that are suitable are difficult to route and solder. Someone should be familiar with BGAs.

Ready-made plug-in boards usually don't meet the requirements,
I would have the flash be flashable via the SPI port.
However, on almost all boards this is not wired to the pins but to a USB chip.

I have tried a board with modular plug-in cards, based on an ICE40HX4K, which is enough for a start, but I would prefer an ECP5.

Please Log in to join the conversation.

More
3 years 1 month ago #281447 by Zayoo
Hello to all.
Excellent project and I need help.
How to use python script plugin.py in Plugins folder?
I'm using TangNano9K board and would like to drive just 2 steppers over UART so how to create my own config.json. I see that there are some difficulties with the UART but there is a will to troubleshoot it.

Please Log in to join the conversation.

Time to create page: 0.233 seconds
Powered by Kunena Forum