Remora - ethernet NVEM / EC300 / EC500 cnc board
13 Oct 2023 16:06 #282902
by chrstrvs
Replied by chrstrvs on topic Remora - ethernet NVEM / EC300 / EC500 cnc board
I decided to try to install Raspberry Pi OS 64 bit, so Debian 12, and try to install the latest realtime kernel, which turned not to be that difficult when I found the correct resources.
All went well and I installed the Remora-nv component. Did a ping to the NVEM with the following result
So a lot better than before!
Started LinuxCNC. "Following error"...
I'm not the kind that gives up easily, but this is getting seriously annoying. I'm trying to read up on how to set up PID controller in LinuxCNC, but like everything else in Linux, it's all greek to me
All went well and I installed the Remora-nv component. Did a ping to the NVEM with the following result
64 bytes from 10.10.10.10: icmp_seq=35 ttl=255 time=0.169 ms
64 bytes from 10.10.10.10: icmp_seq=36 ttl=255 time=0.174 ms
64 bytes from 10.10.10.10: icmp_seq=37 ttl=255 time=0.160 ms
64 bytes from 10.10.10.10: icmp_seq=38 ttl=255 time=0.167 ms
64 bytes from 10.10.10.10: icmp_seq=39 ttl=255 time=0.185 ms
64 bytes from 10.10.10.10: icmp_seq=40 ttl=255 time=0.158 ms
64 bytes from 10.10.10.10: icmp_seq=41 ttl=255 time=0.173 ms
64 bytes from 10.10.10.10: icmp_seq=42 ttl=255 time=0.178 ms
64 bytes from 10.10.10.10: icmp_seq=43 ttl=255 time=0.151 ms
64 bytes from 10.10.10.10: icmp_seq=44 ttl=255 time=0.160 ms
64 bytes from 10.10.10.10: icmp_seq=45 ttl=255 time=0.164 ms
64 bytes from 10.10.10.10: icmp_seq=46 ttl=255 time=0.150 ms
64 bytes from 10.10.10.10: icmp_seq=47 ttl=255 time=0.208 ms
64 bytes from 10.10.10.10: icmp_seq=48 ttl=255 time=0.171 ms
64 bytes from 10.10.10.10: icmp_seq=49 ttl=255 time=0.164 ms
64 bytes from 10.10.10.10: icmp_seq=50 ttl=255 time=0.168 ms
64 bytes from 10.10.10.10: icmp_seq=51 ttl=255 time=0.183 ms
64 bytes from 10.10.10.10: icmp_seq=52 ttl=255 time=0.164 ms
So a lot better than before!
Started LinuxCNC. "Following error"...
I'm not the kind that gives up easily, but this is getting seriously annoying. I'm trying to read up on how to set up PID controller in LinuxCNC, but like everything else in Linux, it's all greek to me
Please Log in or Create an account to join the conversation.
13 Oct 2023 17:24 #282913
by GeramyL
Replied by GeramyL on topic Remora - ethernet NVEM / EC300 / EC500 cnc board
Which PID Controller?I decided to try to install Raspberry Pi OS 64 bit, so Debian 12, and try to install the latest realtime kernel, which turned not to be that difficult when I found the correct resources.
All went well and I installed the Remora-nv component. Did a ping to the NVEM with the following result
64 bytes from 10.10.10.10: icmp_seq=35 ttl=255 time=0.169 ms 64 bytes from 10.10.10.10: icmp_seq=36 ttl=255 time=0.174 ms 64 bytes from 10.10.10.10: icmp_seq=37 ttl=255 time=0.160 ms 64 bytes from 10.10.10.10: icmp_seq=38 ttl=255 time=0.167 ms 64 bytes from 10.10.10.10: icmp_seq=39 ttl=255 time=0.185 ms 64 bytes from 10.10.10.10: icmp_seq=40 ttl=255 time=0.158 ms 64 bytes from 10.10.10.10: icmp_seq=41 ttl=255 time=0.173 ms 64 bytes from 10.10.10.10: icmp_seq=42 ttl=255 time=0.178 ms 64 bytes from 10.10.10.10: icmp_seq=43 ttl=255 time=0.151 ms 64 bytes from 10.10.10.10: icmp_seq=44 ttl=255 time=0.160 ms 64 bytes from 10.10.10.10: icmp_seq=45 ttl=255 time=0.164 ms 64 bytes from 10.10.10.10: icmp_seq=46 ttl=255 time=0.150 ms 64 bytes from 10.10.10.10: icmp_seq=47 ttl=255 time=0.208 ms 64 bytes from 10.10.10.10: icmp_seq=48 ttl=255 time=0.171 ms 64 bytes from 10.10.10.10: icmp_seq=49 ttl=255 time=0.164 ms 64 bytes from 10.10.10.10: icmp_seq=50 ttl=255 time=0.168 ms 64 bytes from 10.10.10.10: icmp_seq=51 ttl=255 time=0.183 ms 64 bytes from 10.10.10.10: icmp_seq=52 ttl=255 time=0.164 ms So a lot better than before! Started LinuxCNC. "Following error"... I'm not the kind that gives up easily, but this is getting seriously annoying. I'm trying to read up on how to set up PID controller in LinuxCNC, but like everything else in Linux, it's all greek to me [img]/media/kunena/emoticons/dizzy.png[/img]
Please Log in or Create an account to join the conversation.
13 Oct 2023 18:07 #282917
by chrstrvs
Replied by chrstrvs on topic Remora - ethernet NVEM / EC300 / EC500 cnc board
Uhm, pass...? I was given the advice to add PGAIN, but I might have misinterpreted that as adding PID parameters to the joints in the ini-file.
I decided to try to install Raspberry Pi OS 64 bit, so Debian 12, and try to install the latest realtime kernel, which turned not to be that difficult when I found the correct resources.
All went well and I installed the Remora-nv component. Did a ping to the NVEM with the following result
64 bytes from 10.10.10.10: icmp_seq=35 ttl=255 time=0.169 ms 64 bytes from 10.10.10.10: icmp_seq=36 ttl=255 time=0.174 ms 64 bytes from 10.10.10.10: icmp_seq=37 ttl=255 time=0.160 ms 64 bytes from 10.10.10.10: icmp_seq=38 ttl=255 time=0.167 ms 64 bytes from 10.10.10.10: icmp_seq=39 ttl=255 time=0.185 ms 64 bytes from 10.10.10.10: icmp_seq=40 ttl=255 time=0.158 ms 64 bytes from 10.10.10.10: icmp_seq=41 ttl=255 time=0.173 ms 64 bytes from 10.10.10.10: icmp_seq=42 ttl=255 time=0.178 ms 64 bytes from 10.10.10.10: icmp_seq=43 ttl=255 time=0.151 ms 64 bytes from 10.10.10.10: icmp_seq=44 ttl=255 time=0.160 ms 64 bytes from 10.10.10.10: icmp_seq=45 ttl=255 time=0.164 ms 64 bytes from 10.10.10.10: icmp_seq=46 ttl=255 time=0.150 ms 64 bytes from 10.10.10.10: icmp_seq=47 ttl=255 time=0.208 ms 64 bytes from 10.10.10.10: icmp_seq=48 ttl=255 time=0.171 ms 64 bytes from 10.10.10.10: icmp_seq=49 ttl=255 time=0.164 ms 64 bytes from 10.10.10.10: icmp_seq=50 ttl=255 time=0.168 ms 64 bytes from 10.10.10.10: icmp_seq=51 ttl=255 time=0.183 ms 64 bytes from 10.10.10.10: icmp_seq=52 ttl=255 time=0.164 ms So a lot better than before! Started LinuxCNC. "Following error"... I'm not the kind that gives up easily, but this is getting seriously annoying. I'm trying to read up on how to set up PID controller in LinuxCNC, but like everything else in Linux, it's all greek to me [img]/media/kunena/emoticons/dizzy.png[/img]
Please Log in or Create an account to join the conversation.
13 Oct 2023 19:04 #282931
by chrstrvs
Replied by chrstrvs on topic Remora - ethernet NVEM / EC300 / EC500 cnc board
I did some more digging around and found some examples of how to implement a PID controller.
In the hal-file I added this
and in the ini-file I added this to the JOINT_0 section
Is this the correct way to implement a PID controller for an axis? If no, what did I do wrong? If yes, what values should I start out with? With these values I still get following error.
In the hal-file I added this
loadrt pid names=pid.x
setp pid.x.Pgain [JOINT_0]P
setp pid.x.Igain [JOINT_0]I
setp pid.x.Dgain [JOINT_0]D
setp pid.x.bias [JOINT_0]BIAS
setp pid.x.FF0 [JOINT_0]FF0
setp pid.x.FF1 [JOINT_0]FF1
setp pid.x.FF2 [JOINT_0]FF2
setp pid.x.deadband [JOINT_0]DEADBAND
setp pid.x.maxoutput [JOINT_0]MAX_OUTPUT
and in the ini-file I added this to the JOINT_0 section
P = 1000.0
I = 0.0
D = 0.0
FF0 = 0.0
FF1 = 1.0
FF2 = 0.0
BIAS = 0.0
DEADBAND = 0.0
MAX_OUTPUT = 0
Is this the correct way to implement a PID controller for an axis? If no, what did I do wrong? If yes, what values should I start out with? With these values I still get following error.
Please Log in or Create an account to join the conversation.
13 Oct 2023 19:28 #282935
by GeramyL
Replied by GeramyL on topic Remora - ethernet NVEM / EC300 / EC500 cnc board
For remora thats now how you implement it, attached are my files for linuxcnc 2.9I did some more digging around and found some examples of how to implement a PID controller.
In the hal-file I added this[/code]loadrt pid names=pid.x setp pid.x.Pgain [JOINT_0]P setp pid.x.Igain [JOINT_0]I setp pid.x.Dgain [JOINT_0]D setp pid.x.bias [JOINT_0]BIAS setp pid.x.FF0 [JOINT_0]FF0 setp pid.x.FF1 [JOINT_0]FF1 setp pid.x.FF2 [JOINT_0]FF2 setp pid.x.deadband [JOINT_0]DEADBAND setp pid.x.maxoutput [JOINT_0]MAX_OUTPUT and in the ini-file I added this to the JOINT_0 section [code]P = 1000.0 I = 0.0 D = 0.0 FF0 = 0.0 FF1 = 1.0 FF2 = 0.0 BIAS = 0.0 DEADBAND = 0.0 MAX_OUTPUT = 0 Is this the correct way to implement a PID controller for an axis? If no, what did I do wrong? If yes, what values should I start out with? With these values I still get following error.
Please Log in or Create an account to join the conversation.
13 Oct 2023 19:53 #282938
by chrstrvs
My hal and ini now looks like this. This is a correct implementation, right? I tried with PGAIN = 10, 100, 1000, 10000. No difference what I can tell.
Replied by chrstrvs on topic Remora - ethernet NVEM / EC300 / EC500 cnc board
That's really helpful, thanks for sharing!
I did some more digging around and found some examples of how to implement a PID controller.
In the hal-file I added this[/code]loadrt pid names=pid.x setp pid.x.Pgain [JOINT_0]P setp pid.x.Igain [JOINT_0]I setp pid.x.Dgain [JOINT_0]D setp pid.x.bias [JOINT_0]BIAS setp pid.x.FF0 [JOINT_0]FF0 setp pid.x.FF1 [JOINT_0]FF1 setp pid.x.FF2 [JOINT_0]FF2 setp pid.x.deadband [JOINT_0]DEADBAND setp pid.x.maxoutput [JOINT_0]MAX_OUTPUT and in the ini-file I added this to the JOINT_0 section [code]P = 1000.0 I = 0.0 D = 0.0 FF0 = 0.0 FF1 = 1.0 FF2 = 0.0 BIAS = 0.0 DEADBAND = 0.0 MAX_OUTPUT = 0 Is this the correct way to implement a PID controller for an axis? If no, what did I do wrong? If yes, what values should I start out with? With these values I still get following error. For remora thats now how you implement it, attached are my files for linuxcnc 2.9
My hal and ini now looks like this. This is a correct implementation, right? I tried with PGAIN = 10, 100, 1000, 10000. No difference what I can tell.
Please Log in or Create an account to join the conversation.
13 Oct 2023 21:04 #282940
by GeramyL
Replied by GeramyL on topic Remora - ethernet NVEM / EC300 / EC500 cnc board
I see you have set the joint_0 axis only. You can send me an email and I can help you more directly This email address is being protected from spambots. You need JavaScript enabled to view it. your going to need to do a few things in order to get it right, you can do halcmd -kf inside a terminal and run the following command setp remora.joint.0.pgain 89 and change the pgain until your f-error becomes better, remove f-error and min-ferror from the config by commenting it out and then run a hal scope and load joint.0.f-error in one of the channels and joint.0.fb-pos-cmd in another and then put it on loop and run it back and forth you will be able to read the f-error value and adjust the pgain via halcmd until you reduce the peak and then use ff1gain to reduce the curve.
I did some more digging around and found some examples of how to implement a PID controller.
In the hal-file I added this[/code]loadrt pid names=pid.x setp pid.x.Pgain [JOINT_0]P setp pid.x.Igain [JOINT_0]I setp pid.x.Dgain [JOINT_0]D setp pid.x.bias [JOINT_0]BIAS setp pid.x.FF0 [JOINT_0]FF0 setp pid.x.FF1 [JOINT_0]FF1 setp pid.x.FF2 [JOINT_0]FF2 setp pid.x.deadband [JOINT_0]DEADBAND setp pid.x.maxoutput [JOINT_0]MAX_OUTPUT and in the ini-file I added this to the JOINT_0 section [code]P = 1000.0 I = 0.0 D = 0.0 FF0 = 0.0 FF1 = 1.0 FF2 = 0.0 BIAS = 0.0 DEADBAND = 0.0 MAX_OUTPUT = 0 Is this the correct way to implement a PID controller for an axis? If no, what did I do wrong? If yes, what values should I start out with? With these values I still get following error. For remora thats now how you implement it, attached are my files for linuxcnc 2.9 That's really helpful, thanks for sharing! My hal and ini now looks like this. This is a correct implementation, right? I tried with PGAIN = 10, 100, 1000, 10000. No difference what I can tell.
Please Log in or Create an account to join the conversation.
14 Oct 2023 03:53 #282962
by GeramyL
Replied by GeramyL on topic Remora - ethernet NVEM / EC300 / EC500 cnc board
Chris the next question is what firmware did you flash, what .txt file did you upload to your board? You need to make sure to upload a config file that works for you if it’s gonna be DMAStepgen you need the latest beta firmware from the dmastepgen branch 2.1 , everything is very specific, any one parameter wrong and your whole system will be like a turtle crossing the road in the middle of traffic. Scary at best haha.
Please Log in or Create an account to join the conversation.
14 Oct 2023 06:50 #282963
by chrstrvs
The reason I only set up PID controller for JOINT_X is because I don't think it's necessary to troubleshoot all axes at the same time. If we can figure out what the issue is on one axis, we can probably implement the same solution on the other axes.
Replied by chrstrvs on topic Remora - ethernet NVEM / EC300 / EC500 cnc board
That is truly really nice of you! I will take you up on that offer and send you an email later.
I did some more digging around and found some examples of how to implement a PID controller.
In the hal-file I added this[/code]loadrt pid names=pid.x setp pid.x.Pgain [JOINT_0]P setp pid.x.Igain [JOINT_0]I setp pid.x.Dgain [JOINT_0]D setp pid.x.bias [JOINT_0]BIAS setp pid.x.FF0 [JOINT_0]FF0 setp pid.x.FF1 [JOINT_0]FF1 setp pid.x.FF2 [JOINT_0]FF2 setp pid.x.deadband [JOINT_0]DEADBAND setp pid.x.maxoutput [JOINT_0]MAX_OUTPUT and in the ini-file I added this to the JOINT_0 section [code]P = 1000.0 I = 0.0 D = 0.0 FF0 = 0.0 FF1 = 1.0 FF2 = 0.0 BIAS = 0.0 DEADBAND = 0.0 MAX_OUTPUT = 0 Is this the correct way to implement a PID controller for an axis? If no, what did I do wrong? If yes, what values should I start out with? With these values I still get following error. For remora thats now how you implement it, attached are my files for linuxcnc 2.9 That's really helpful, thanks for sharing! My hal and ini now looks like this. This is a correct implementation, right? I tried with PGAIN = 10, 100, 1000, 10000. No difference what I can tell. I see you have set the joint_0 axis only. You can send me an email and I can help you more directly geramy.loveless@ansuzindustrial.com your going to need to do a few things in order to get it right, you can do halcmd -kf inside a terminal and run the following command setp remora.joint.0.pgain 89 and change the pgain until your f-error becomes better, remove f-error and min-ferror from the config by commenting it out and then run a hal scope and load joint.0.f-error in one of the channels and joint.0.fb-pos-cmd in another and then put it on loop and run it back and forth you will be able to read the f-error value and adjust the pgain via halcmd until you reduce the peak and then use ff1gain to reduce the curve.
The reason I only set up PID controller for JOINT_X is because I don't think it's necessary to troubleshoot all axes at the same time. If we can figure out what the issue is on one axis, we can probably implement the same solution on the other axes.
Please Log in or Create an account to join the conversation.
- rbobey1989
-
- Offline
- Premium Member
-
Less
More
- Posts: 105
- Thank you received: 27
14 Oct 2023 19:20 #283009
by rbobey1989
Replied by rbobey1989 on topic Remora - ethernet NVEM / EC300 / EC500 cnc board
Hello everyone here, it has taken me a few hours to change the interruption from the Index pin to GPIO mmmmm, dark things hahaha, but well the news is very good at the point I am now you can use the 4 ENC (Qdc) Well, following Scott's brilliant idea of using the GPIO interrupt for the Index pins, we have more pins free in XBAR, I urge those who have motors with encoders to try and comment on the results, I hope that encoder arrives soon Scott, greetings.
My repository in case you want to take a look.
***** I have created another branch for the interruption version per GPIO module QdcIndexGpioInterrupt branch , in the main branch there is the interruption implementation through the Index signal of the ENC Modules (Qdc)******
My repository in case you want to take a look.
***** I have created another branch for the interruption version per GPIO module QdcIndexGpioInterrupt branch , in the main branch there is the interruption implementation through the Index signal of the ENC Modules (Qdc)******
The following user(s) said Thank You: oficinerobotica
Please Log in or Create an account to join the conversation.
Time to create page: 0.270 seconds