- Hardware & Machines
- Computers and Hardware
- LinuxCNC-RIO - RealtimeIO for LinuxCNC based on FPGA (ICE40 / ECP5)
LinuxCNC-RIO - RealtimeIO for LinuxCNC based on FPGA (ICE40 / ECP5)
- meister
- Offline
- Platinum Member
-
Less
More
- Posts: 762
- Thank you received: 479
18 Jul 2026 12:52 #347823
by meister
Replied by meister on topic LinuxCNC-RIO - RealtimeIO for LinuxCNC based on FPGA (ICE40 / ECP5)
Another small milestone:
There is now a PRV32 (PicorV32/RISC-V) plugin that allows one or more soft cores to run in the FPGA.
A few tweaks still need to be made, but it’s already good enough for tinkering
* Up to 16 GPIOs
* Multiple 32-bit variables for data exchange with LinuxCNC
* Serial support
* GCC support
* tested on TangNano9k, ICE40up5k, ICE40hx8K
TODO:
* Add I2C and SPI master support
* Add PWM support
* 1-bit variables for LinuxCNC
* Adding support for use as an interface plugin
* Testing and optimize for more platforms
At the moment, I don’t have a practical application for it yet, but one will come along. (Anything that’s too cumbersome in Verilog, or for those who know C)
Furthermore, there’s also a SERV (World’s Smallest RISC-V) plugin,
which is considerably more resource-efficient but currently only offers assembler support and 3 output pins.
There is now a PRV32 (PicorV32/RISC-V) plugin that allows one or more soft cores to run in the FPGA.
A few tweaks still need to be made, but it’s already good enough for tinkering
* Up to 16 GPIOs
* Multiple 32-bit variables for data exchange with LinuxCNC
* Serial support
* GCC support
* tested on TangNano9k, ICE40up5k, ICE40hx8K
TODO:
* Add I2C and SPI master support
* Add PWM support
* 1-bit variables for LinuxCNC
* Adding support for use as an interface plugin
* Testing and optimize for more platforms
At the moment, I don’t have a practical application for it yet, but one will come along. (Anything that’s too cumbersome in Verilog, or for those who know C)
Furthermore, there’s also a SERV (World’s Smallest RISC-V) plugin,
which is considerably more resource-efficient but currently only offers assembler support and 3 output pins.
The following user(s) said Thank You: viewsat, besriworld, NWE
Please Log in or Create an account to join the conversation.
- meister
- Offline
- Platinum Member
-
Less
More
- Posts: 762
- Thank you received: 479
27 Jul 2026 06:11 #348087
by meister
the embedded ARM core of the TangNano4K is also supported now
Replied by meister on topic LinuxCNC-RIO - RealtimeIO for LinuxCNC based on FPGA (ICE40 / ECP5)
the embedded ARM core of the TangNano4K is also supported now
Please Log in or Create an account to join the conversation.
- viewsat
- Offline
- New Member
-
Less
More
- Posts: 9
- Thank you received: 2
30 Jul 2026 13:16 #348212
by viewsat
Replied by viewsat on topic LinuxCNC-RIO - RealtimeIO for LinuxCNC based on FPGA (ICE40 / ECP5)
I'm using a Tang Nano 9k FPGA. How do I configure it to output a PWM signal to the spindle?
Please Log in or Create an account to join the conversation.
- meister
- Offline
- Platinum Member
-
Less
More
- Posts: 762
- Thank you received: 479
30 Jul 2026 14:01 #348213
by meister
Replied by meister on topic LinuxCNC-RIO - RealtimeIO for LinuxCNC based on FPGA (ICE40 / ECP5)
there is an example:
./bin/rio-flow riocore/configs/TangNano9K/config.json
./bin/rio-flow riocore/configs/TangNano9K/config.json
The following user(s) said Thank You: viewsat
Please Log in or Create an account to join the conversation.
- babinda01
- Offline
- Junior Member
-
Less
More
- Posts: 29
- Thank you received: 2
30 Jul 2026 21:29 #348239
by babinda01
Replied by babinda01 on topic LinuxCNC-RIO - RealtimeIO for LinuxCNC based on FPGA (ICE40 / ECP5)
Hi Guys. I have used RIOcore on a Tang Nano 9k (TangBOB board) a couple of times. I am now wanting to try out Ethercat. I was wondering what my options are for doing this. I want to use a RP5 with the Tang connected via an SPI connection to the GPIO pins on the RP5. My first question is where do I connect my Ethercat Drives? from the RP5 or from the Wiznet module connected to the Tang. I would dearly love it if all my configurations for Ethercat can be done within RIOcore.
Cheers
Andrew
Cheers
Andrew
Please Log in or Create an account to join the conversation.
- viewsat
- Offline
- New Member
-
Less
More
- Posts: 9
- Thank you received: 2
31 Jul 2026 01:02 #348255
by viewsat
Replied by viewsat on topic LinuxCNC-RIO - RealtimeIO for LinuxCNC based on FPGA (ICE40 / ECP5)
I use ./bin/rio-flow riocore/configs/TangNano9K/config.json
The automatically generated ini and HAL files cannot output a 1kHz PWM spindle signal. Do I need to edit the HAL and ini files myself to output the spindle PWM signal?
The automatically generated ini and HAL files cannot output a 1kHz PWM spindle signal. Do I need to edit the HAL and ini files myself to output the spindle PWM signal?
Please Log in or Create an account to join the conversation.
- meister
- Offline
- Platinum Member
-
Less
More
- Posts: 762
- Thank you received: 479
31 Jul 2026 04:37 #348260
by meister
Hi Andrew,
EtherCAT must be connected directly to the RPi5. Rio runs independently of it; it can only adopt part of the configuration (and even then, only to a limited extent).
Replied by meister on topic LinuxCNC-RIO - RealtimeIO for LinuxCNC based on FPGA (ICE40 / ECP5)
Hi Guys. I have used RIOcore on a Tang Nano 9k (TangBOB board) a couple of times. I am now wanting to try out Ethercat. I was wondering what my options are for doing this. I want to use a RP5 with the Tang connected via an SPI connection to the GPIO pins on the RP5. My first question is where do I connect my Ethercat Drives? from the RP5 or from the Wiznet module connected to the Tang. I would dearly love it if all my configurations for Ethercat can be done within RIOcore.
Cheers
Andrew
Hi Andrew,
EtherCAT must be connected directly to the RPi5. Rio runs independently of it; it can only adopt part of the configuration (and even then, only to a limited extent).
Please Log in or Create an account to join the conversation.
- meister
- Offline
- Platinum Member
-
Less
More
- Posts: 762
- Thank you received: 479
31 Jul 2026 04:49 #348262
by meister
Which interface are you using, and where do you want the PWM output to be?
To use the spindle in LinuxCNC, you still need to configure it in the “Signals” tab.
dty/net = spindle.0.speed-out
enable/net = spindle.0.on
@all WARNING: Serial/USB does work, but it's really just for testing;
I wouldn't use it in a production environment.
Replied by meister on topic LinuxCNC-RIO - RealtimeIO for LinuxCNC based on FPGA (ICE40 / ECP5)
What does your setup look like?I use ./bin/rio-flow riocore/configs/TangNano9K/config.json
The automatically generated ini and HAL files cannot output a 1kHz PWM spindle signal. Do I need to edit the HAL and ini files myself to output the spindle PWM signal?
Which interface are you using, and where do you want the PWM output to be?
To use the spindle in LinuxCNC, you still need to configure it in the “Signals” tab.
dty/net = spindle.0.speed-out
enable/net = spindle.0.on
@all WARNING: Serial/USB does work, but it's really just for testing;
I wouldn't use it in a production environment.
Attachments:
The following user(s) said Thank You: viewsat
Please Log in or Create an account to join the conversation.
- viewsat
- Offline
- New Member
-
Less
More
- Posts: 9
- Thank you received: 2
31 Jul 2026 12:23 - 31 Jul 2026 16:00 #348282
by viewsat
Replied by viewsat on topic LinuxCNC-RIO - RealtimeIO for LinuxCNC based on FPGA (ICE40 / ECP5)
Last edit: 31 Jul 2026 16:00 by viewsat.
Please Log in or Create an account to join the conversation.
- meister
- Offline
- Platinum Member
-
Less
More
- Posts: 762
- Thank you received: 479
31 Jul 2026 12:24 #348283
by meister
Replied by meister on topic LinuxCNC-RIO - RealtimeIO for LinuxCNC based on FPGA (ICE40 / ECP5)
i only see the screenshot
Please Log in or Create an account to join the conversation.
- Hardware & Machines
- Computers and Hardware
- LinuxCNC-RIO - RealtimeIO for LinuxCNC based on FPGA (ICE40 / ECP5)
Time to create page: 0.348 seconds