Remora - ethernet NVEM / EC300 / EC500 cnc board

More
16 Nov 2023 22:05 #285658 by hanskuster

Hey Hans. For setup start with a lower scale count.

Im not positive on how the new step portions are implemented, but perhaps you need to increase your Step length/space
{
"Thread": "DMA",
"Type": "DMAstepgen",
"Comment": "Z - Joint 2 step generator",
"Joint Number": 2,
"Step Pin": "P1_18",
"Direction Pin": "P1_25",
"Step Length": 1,
"Step Space": 1
 

hi cakeslob,
if You mean [JOINT_0].SCALE in the ini file with "scale count", then I had the best result with a value of 6000. I could use values between 4500 up to 6000.
On lower values the motor didn't move or at least a very little jump at the beginning of the jog.
On With a value of 7000 the motor did stutter only and with a even higher value I got only "joint 0 following error".

After modifying "Step Length" and/or "Step Space" to other values than 1 and 1 the motor didn't move anymore. It moves only with Step Length=1 and Step Width=1.

Regards, Hans
 
Attachments:

Please Log in or Create an account to join the conversation.

More
16 Nov 2023 22:13 #285662 by hanskuster

Hey Hans,
Since we are using  external hardware, I dont think that we use a basethread. That is mostly for parallel port setups. 
Its good that it shows up in the preview
 
Hi cakeslob,
I updated to the newest firmware and modified according to the info from scotta (forum.linuxcnc.org/18-computer/44828-rem...rd?start=1360#285461)
After many tries and tests I found that the stepper motor moves though, but only under certain conditions which I have no explanation for:
- I had to change the [JOINT_0].SCALE from 3000 to 6000
- when running the sample program axis.ngc the stepper move only sometimes, maybe bigger rapid moves?
Whenever the stepper moves, then I get many "Spike filter active..." in the console.
In Jog I can move the stepper only in bigger moves like 5mm and up. On smaller steps the motor doesn't move at all. Only its position on the display changes.

Any Ideas?

Regards, Hans

Wow, I've never seen the spike filter active in the Ethernet version. I think this is due to miss match between the LinuxCNC servo period and the controller board servo period.

The following line must to match the controller board servo frequency.

SERVO_PERIOD = 3000000

should be

[code]SERVO_PERIOD = 1000000

ie 1khz
[/code]
 

hi scotta,
I had to modify the SERVO_PERIOD to avoid the latency error message. With the latency test I got a value of 40153 which should be good, I think.
I changed the SERVO_PERIOD back to 1'000'000 and still get "Spike filter active..." but now with smaller values than with 3'000'000.

Regards, Hans

Please Log in or Create an account to join the conversation.

More
16 Nov 2023 22:58 #285668 by rbobey1989
Hello everyone here, first of all thanks to Scott for keeping my work in mind and including it in the remora project, this is a great project without a doubt.
Well, to the point, I've been looking at some cheap drivers from AliExpress and Ebay, but I'm a little confused with all this about the new DMA stepgen, I would like to be able to get the most out of it, the DM860H stepper drivers that I've seen have a pulse frequency and direction between 100khz-200khz, I imagine that this frequency has to coincide with the 500khz of the DMA stepgen module. If you can clarify this for me, I would appreciate it and if you can point out a particular stepper driver.
I intend to buy an HBM BF35 milling machine and use some nema 34 12Nm motors with closed loop and yes Scott, the idea has always been to convert this machine to CNC in closed loop control, that's why I decided to take on the task of implementing the module QDC, thanks Scott for your ideas, I really appreciate them.
The HBS86 closed loop drivers, I am not sure if they can work in open circuit, I have used cloosed loop drivers before and they do not allow them to be used without the encoder connection, if someone can clarify this it would be good.

Please Log in or Create an account to join the conversation.

More
17 Nov 2023 00:23 #285671 by scotta

Hey Hans,
Since we are using  external hardware, I dont think that we use a basethread. That is mostly for parallel port setups. 
Its good that it shows up in the preview
 
Hi cakeslob,
I updated to the newest firmware and modified according to the info from scotta (forum.linuxcnc.org/18-computer/44828-rem...rd?start=1360#285461)
After many tries and tests I found that the stepper motor moves though, but only under certain conditions which I have no explanation for:
- I had to change the [JOINT_0].SCALE from 3000 to 6000
- when running the sample program axis.ngc the stepper move only sometimes, maybe bigger rapid moves?
Whenever the stepper moves, then I get many "Spike filter active..." in the console.
In Jog I can move the stepper only in bigger moves like 5mm and up. On smaller steps the motor doesn't move at all. Only its position on the display changes.

Any Ideas?

Regards, Hans

Wow, I've never seen the spike filter active in the Ethernet version. I think this is due to miss match between the LinuxCNC servo period and the controller board servo period.

The following line must to match the controller board servo frequency.

SERVO_PERIOD = 3000000

should be

[code]SERVO_PERIOD = 1000000

ie 1khz
 


hi scotta,
I had to modify the SERVO_PERIOD to avoid the latency error message. With the latency test I got a value of 40153 which should be good, I think.
I changed the SERVO_PERIOD back to 1'000'000 and still get "Spike filter active..." but now with smaller values than with 3'000'000.

Regards, Hans
[/code]

Don't worry about the latency warning. As we're only using the LinuxCNC servo thread a bit of jitter is of no concern. The hard real-time stuff is running on the controller board. I've got so use to closing the error pop up on every restart.

Please Log in or Create an account to join the conversation.

More
17 Nov 2023 00:30 #285673 by scotta

Hello everyone here, first of all thanks to Scott for keeping my work in mind and including it in the remora project, this is a great project without a doubt.
Well, to the point, I've been looking at some cheap drivers from AliExpress and Ebay, but I'm a little confused with all this about the new DMA stepgen, I would like to be able to get the most out of it, the DM860H stepper drivers that I've seen have a pulse frequency and direction between 100khz-200khz, I imagine that this frequency has to coincide with the 500khz of the DMA stepgen module. If you can clarify this for me, I would appreciate it and if you can point out a particular stepper driver.
I intend to buy an HBM BF35 milling machine and use some nema 34 12Nm motors with closed loop and yes Scott, the idea has always been to convert this machine to CNC in closed loop control, that's why I decided to take on the task of implementing the module QDC, thanks Scott for your ideas, I really appreciate them.
The HBS86 closed loop drivers, I am not sure if they can work in open circuit, I have used cloosed loop drivers before and they do not allow them to be used without the encoder connection, if someone can clarify this it would be good.

Thanks to you for your great contribution!!

The DMA stepgen uses a form of Direct Digital Synthesis. The underlying 1mhz clock drives the DMA. The required frequency is synthesised as close as possible over this clock frequency. There has to be a bit of inaccuracy between steps but the average will be very very close to the requested frequency.

Please Log in or Create an account to join the conversation.

More
17 Nov 2023 05:35 #285690 by scotta
rbobey, I've had a look at the stepper driver manual and this has prompted me to add a dirHold parameter to the DMA stepgen.

Now available in v3.1.0

For the DM860H stepper drivers the following step parameters are needed. Unfortunately we only have 1 micro second resolution to play with.
        "Step Length":        3,
        "Step Space":        3,
        "Dir Hold":            5,
        "Dir Setup":        5

Please Log in or Create an account to join the conversation.

More
17 Nov 2023 10:53 #285725 by manager12345
Hello everyone! I managed to install and configure everything! Thank you very much, Scott! But maybe someone has encountered the same problem as me, when I want to make changes to the HAL file, it gives an error at startup that an unknown loadrt command. Any ideas how to solve it?
Attachments:
The following user(s) said Thank You: scotta

Please Log in or Create an account to join the conversation.

More
17 Nov 2023 19:47 - 17 Nov 2023 21:35 #285772 by rbobey1989
Hello Scott, thank you for your very illustrative answer, I think I have understood, in the stepper driver datasheet there is a graph showing the time requirements for the step/dir signals and as you say, having a resolution of 1us, the times that you explain before are very Logically, I am about to order some DM860H drivers and some nema 34 motors but I am waiting for a response from the seller because I want to make sure that the encoder outputs are the ones I need, as soon as I have everything I will start testing a closed loop configuration, greetings
Last edit: 17 Nov 2023 21:35 by rbobey1989.

Please Log in or Create an account to join the conversation.

More
18 Nov 2023 17:57 #285844 by hanskuster

Hey Hans,
Since we are using  external hardware, I dont think that we use a basethread. That is mostly for parallel port setups. 
Its good that it shows up in the preview
 
Hi cakeslob,
I updated to the newest firmware and modified according to the info from scotta (forum.linuxcnc.org/18-computer/44828-rem...rd?start=1360#285461)
After many tries and tests I found that the stepper motor moves though, but only under certain conditions which I have no explanation for:
- I had to change the [JOINT_0].SCALE from 3000 to 6000
- when running the sample program axis.ngc the stepper move only sometimes, maybe bigger rapid moves?
Whenever the stepper moves, then I get many "Spike filter active..." in the console.
In Jog I can move the stepper only in bigger moves like 5mm and up. On smaller steps the motor doesn't move at all. Only its position on the display changes.

Any Ideas?

Regards, Hans

Wow, I've never seen the spike filter active in the Ethernet version. I think this is due to miss match between the LinuxCNC servo period and the controller board servo period.

The following line must to match the controller board servo frequency.

SERVO_PERIOD = 3000000

should be

[code]SERVO_PERIOD = 1000000

ie 1khz
 


hi scotta,
I had to modify the SERVO_PERIOD to avoid the latency error message. With the latency test I got a value of 40153 which should be good, I think.
I changed the SERVO_PERIOD back to 1'000'000 and still get "Spike filter active..." but now with smaller values than with 3'000'000.

Regards, Hans



Don't worry about the latency warning. As we're only using the LinuxCNC servo thread a bit of jitter is of no concern. The hard real-time stuff is running on the controller board. I've got so use to closing the error pop up on every restart.
 




Hi scotta,
thanks for Your help!
The version 3.1 and the new parameters I could make my system running. I had to set the following parameters:
 
[/code]
 

Hi scotta, rbobey1989 and cakeslob,
with Your help and infos I could make my system running!
I checked my motors and found that they are capable of 200kHz only, but Remora delivered 500kHz.
So I flashed version 3.1 and modified the parameters to
"Step Length":  10,   ; <-- make the pulse longer
"Step Space":    3,
"Dir Hold":      5,
"Dir Setup":     5

Now the motor did move but I still had the "following error".

I had to modify the module remora-eth-3.0.c as follows:
    // read the command and feedback
    command = *(data->pos_cmd[i]);
    //feedback = *(data->pos_fb[i]);
    feedback = *(data->pos_cmd[i]);   // <-- added

    // calcuate the error
    //error = command - feedback;
    error = 0;   // <-- added
The commented-out code is not needed because I don't have any feedback from my motors.

Now, let's start to conquer the next problems ;-)

Regards, Hans

Please Log in or Create an account to join the conversation.

More
18 Nov 2023 19:31 #285853 by cakeslob
lol Hans, I like your enthusiasm, but the feedback from the motor is not what you may be thinking a. You will still physically get the following error, but it may not alarm for it. The feedback is not from the motor, but from the stepgen.
error = command - feedback;
if linuxcnc commands more steps than it receives feedback , that is ferror and it should be, because you have sent more steps than you actually do.

A following error occurs when linuxcnc commands a position that it can not physically achieve in the time required. If your commanded distance/speed cannot be made in the time needed within the FERROR parameter, you get an error. If you didnt get an following error, you would suffer from skipped steps and positional errors.

The recommended course of action to address following errors, is probably involving these parameters
MAX_VELOCITY = 166.0 --- start low and go higher
MAX_ACCELERATION = 400.0 --- start low and go higher
STEPGEN_MAXACCEL = 440.0 --- start low and go higher
SCALE = 3000.0 --- start low and go higher
FERROR = 1.0 --- start high and go lower This is how much distance error you allow
MIN_FERROR = 0.5

If your joint scale is still 6000, I would start by making that lower.
If linuxcnc is trying to send 6000 pulses per mm, it needs to physically be able to execute that many steps in the time required.

Please Log in or Create an account to join the conversation.

Time to create page: 0.295 seconds
Powered by Kunena Forum