- 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)
- tommylight
-
- Offline
- Moderator
-
Less
More
- Posts: 21796
- Thank you received: 7446
06 Aug 2026 01:30 #348477
by tommylight
Replied by tommylight on topic LinuxCNC-RIO - RealtimeIO for LinuxCNC based on FPGA (ICE40 / ECP5)
1. interference due to bad/not shielded/grounded cabling
2. marginal output signals for the drive optocouplers
3. Tango skipping steps, although LinuxCNC is very good at avoiding this, tango might not be, or LinuxCNC might not be aware that is happening.
Does this also happen at very low feeds/speeds?
2. marginal output signals for the drive optocouplers
3. Tango skipping steps, although LinuxCNC is very good at avoiding this, tango might not be, or LinuxCNC might not be aware that is happening.
Does this also happen at very low feeds/speeds?
Please Log in or Create an account to join the conversation.
- PCW
-
- Offline
- Moderator
-
Less
More
- Posts: 18008
- Thank you received: 5289
06 Aug 2026 02:10 #348480
by PCW
Replied by PCW on topic LinuxCNC-RIO - RealtimeIO for LinuxCNC based on FPGA (ICE40 / ECP5)
Another possibility is marginal timing.
Either too narrow step pulse widths,
or insufficient setup times from DIR change to
STEP or insufficient hold times from STEP
to DIR change.
Either too narrow step pulse widths,
or insufficient setup times from DIR change to
STEP or insufficient hold times from STEP
to DIR change.
Please Log in or Create an account to join the conversation.
- viewsat
- Offline
- New Member
-
Less
More
- Posts: 10
- Thank you received: 2
06 Aug 2026 03:02 - 06 Aug 2026 03:22 #348482
by viewsat
Replied by viewsat on topic LinuxCNC-RIO - RealtimeIO for LinuxCNC based on FPGA (ICE40 / ECP5)
My tests on both the ICEBreakerV1.0e and Tana Nano9k yielded the same results, not due to the FPGA brand, noise, or settings.
I noticed that the Dir PIN output returns to its original position after the step action is completed. This may be because the DIR operation is not yet complete, but the STEP operation occurs prematurely, causing an error.
I noticed that the Dir PIN output returns to its original position after the step action is completed. This may be because the DIR operation is not yet complete, but the STEP operation occurs prematurely, causing an error.
Last edit: 06 Aug 2026 03:22 by viewsat.
Please Log in or Create an account to join the conversation.
- meister
- Offline
- Platinum Member
-
Less
More
- Posts: 763
- Thank you received: 480
06 Aug 2026 04:20 #348483
by meister
Replied by meister on topic LinuxCNC-RIO - RealtimeIO for LinuxCNC based on FPGA (ICE40 / ECP5)
can you post your json config please, i will check it.
you can also try to invert the step pulse in rio, maybe thats the problem.
Another possible cause could be that the deadband value is too high. Does the zero position drift, or does it remain stable with the same offset? How large is the deviation from the actual zero point (approximately 1, 10, 100, or 1,000 steps)?
you can also try to invert the step pulse in rio, maybe thats the problem.
Another possible cause could be that the deadband value is too high. Does the zero position drift, or does it remain stable with the same offset? How large is the deviation from the actual zero point (approximately 1, 10, 100, or 1,000 steps)?
Please Log in or Create an account to join the conversation.
- meister
- Offline
- Platinum Member
-
Less
More
- Posts: 763
- Thank you received: 480
06 Aug 2026 05:40 #348484
by meister
Replied by meister on topic LinuxCNC-RIO - RealtimeIO for LinuxCNC based on FPGA (ICE40 / ECP5)
I checked the stepdir generator again in Verilog/GTKWave and tested a few edge cases.
I noticed that a pulse can be strtched if the velocity drops to 0 at the wrong moment, so I fixed that.
But that shouldn't have anything to do with your problem; it's more of a cosmetic change than a bug fix.
(in the dev branch)
I noticed that a pulse can be strtched if the velocity drops to 0 at the wrong moment, so I fixed that.
But that shouldn't have anything to do with your problem; it's more of a cosmetic change than a bug fix.
(in the dev branch)
Please Log in or Create an account to join the conversation.
- meister
- Offline
- Platinum Member
-
Less
More
- Posts: 763
- Thank you received: 480
07 Aug 2026 11:49 #348526
by meister
Replied by meister on topic LinuxCNC-RIO - RealtimeIO for LinuxCNC based on FPGA (ICE40 / ECP5)
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: 10
- Thank you received: 2
08 Aug 2026 01:49 #348548
by viewsat
Replied by viewsat on topic LinuxCNC-RIO - RealtimeIO for LinuxCNC based on FPGA (ICE40 / ECP5)
Because I'm busy with work, I'll do testing when I have time.
Please Log in or Create an account to join the conversation.
- viewsat
- Offline
- New Member
-
Less
More
- Posts: 10
- Thank you received: 2
09 Aug 2026 14:15 - 10 Aug 2026 01:32 #348598
by viewsat
Replied by viewsat on topic LinuxCNC-RIO - RealtimeIO for LinuxCNC based on FPGA (ICE40 / ECP5)
I tested with the Branches dev from GitHub and the Tang Nano 9k, but the motor still couldn't return to the zero position after stopping. You must use the same DM542 stepper motor driver to reproduce this problem.
Attachments:
Last edit: 10 Aug 2026 01:32 by viewsat.
Please Log in or Create an account to join the conversation.
- meister
- Offline
- Platinum Member
-
Less
More
- Posts: 763
- Thank you received: 480
09 Aug 2026 14:49 - 09 Aug 2026 15:25 #348602
by meister
Replied by meister on topic LinuxCNC-RIO - RealtimeIO for LinuxCNC based on FPGA (ICE40 / ECP5)
1. try other pins, looks like you are on two of the HDMI pins (there are filters on the board)
2. set an inverter/modifier to the step pin: (Pins -> Step -> Modifier + -> invert)
3. check that Pulse_LEN and Dir_Delay set to default (4.0 / 0.7)
I have several machines running on this, and there are a few other users as well, all with different drivers and motors; so far, it’s always worked.
EDIT: what is on the breadboard ?
EDIT2: I’ve gone ahead and ordered one of those DM542s just to be on the safe side,
it’s due to arrive on Tuesday or Wednesday
2. set an inverter/modifier to the step pin: (Pins -> Step -> Modifier + -> invert)
3. check that Pulse_LEN and Dir_Delay set to default (4.0 / 0.7)
I have several machines running on this, and there are a few other users as well, all with different drivers and motors; so far, it’s always worked.
EDIT: what is on the breadboard ?
EDIT2: I’ve gone ahead and ordered one of those DM542s just to be on the safe side,
it’s due to arrive on Tuesday or Wednesday
Last edit: 09 Aug 2026 15:25 by meister.
Please Log in or Create an account to join the conversation.
- viewsat
- Offline
- New Member
-
Less
More
- Posts: 10
- Thank you received: 2
10 Aug 2026 01:44 - 10 Aug 2026 02:09 #348622
by viewsat
Replied by viewsat on topic LinuxCNC-RIO - RealtimeIO for LinuxCNC based on FPGA (ICE40 / ECP5)
1. I will try other pins.( tests on both the ICEBreakerV1.0e and Tana Nano9k yielded the same results)
2. I will set an inverter/modifier to the step pin
3. Pulse_LEN => 10us and Dir_Delay => 25us
4. There is a 74HC245 on the breadboard.
I have used many DM542 stepper motor drivers (see the photo above), and no problems when using GRBL and 7i92.
2. I will set an inverter/modifier to the step pin
3. Pulse_LEN => 10us and Dir_Delay => 25us
4. There is a 74HC245 on the breadboard.
I have used many DM542 stepper motor drivers (see the photo above), and no problems when using GRBL and 7i92.
Attachments:
Last edit: 10 Aug 2026 02:09 by viewsat.
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.335 seconds