Getting started with 8i20
30 Aug 2014 03:26 #50494
by jmizer
Getting started with 8i20 was created by jmizer
Basic questions about how to get started with 8i20.
I have never used smart serial so the problem may be there.
My testings setup is wired like:
5i23 card, connected to a 7i44,
then cable to the 8i20.
7i44 is powered extra, 8i20 from the RJ45 cable.
also 5V on enable IN+,- of 8i20.
No motor voltage
When connected, I have LEDs on like:
pwr:green,
LV status:orange
ISO pwr:green
fault:red
I load in ini file:
[HOSTMOT2]
DRIVER=hm2_pci
BOARD=5i23
CONFIG="firmware=hm2/5i23/SVSS6_6.BIT sserial_port_0=0000xxxx"
in hal file, I have some standard things of the sample file (hm2-servo.hal)
very restricted so that I can start linuxcnc.
The problem is that, when looking at halshow, I don't have any pin like
hm2_5i23.0.8i20.something
few lines from dmesg:
[ 1379.775511] hm2: loading Mesa HostMot2 driver version 0.15
[ 1379.778599] hm2_pci: loading Mesa AnyIO HostMot2 driver version 0.7
[ 1379.778647] hm2_pci: discovered 5i23 at 0000:03:02.0
[ 1379.953269] hm2/hm2_5i23.0: Smart Serial Firmware Version 38
[ 1380.016737] hm2/hm2_5i23.0: 72 I/O Pins used:
[ 1380.016741] hm2/hm2_5i23.0: IO Pin 000 (P2-01): IOPort
[ 1380.016745] hm2/hm2_5i23.0: IO Pin 001 (P2-03): Muxed Encoder #0, pin Muxed A (Input)
[ 1380.016749] hm2/hm2_5i23.0: IO Pin 002 (P2-05): Muxed Encoder #0, pin Muxed B (Input)
[ 1380.016753] hm2/hm2_5i23.0: IO Pin 003 (P2-07): Muxed Encoder #0, pin Muxed Index (Input)
[ 1380.016756] hm2/hm2_5i23.0: IO Pin 004 (P2-09): Muxed Encoder #1, pin Muxed A (Input)
[ 1380.016760] hm2/hm2_5i23.0: IO Pin 005 (P2-11): Muxed Encoder #1, pin Muxed B (Input)
[ 1380.016764] hm2/hm2_5i23.0: IO Pin 006 (P2-13): Muxed Encoder #1, pin Muxed Index (Input)
[ 1380.016767] hm2/hm2_5i23.0: IO Pin 007 (P2-15): Muxed Encoder #2, pin Muxed A (Input)
[ 1380.016771] hm2/hm2_5i23.0: IO Pin 008 (P2-17): Muxed Encoder #2, pin Muxed B (Input)
[ 1380.016775] hm2/hm2_5i23.0: IO Pin 009 (P2-19): Muxed Encoder #2, pin Muxed Index (Input)
[ 1380.016779] hm2/hm2_5i23.0: IO Pin 010 (P2-21): Muxed Encoder Select #0, pin Mux Select 0 (Output)
[ 1380.016782] hm2/hm2_5i23.0: IO Pin 011 (P2-23): IOPort
[ 1380.016785] hm2/hm2_5i23.0: IO Pin 012 (P2-25): IOPort
...
...
[ 1380.017052] hm2/hm2_5i23.0: registered
[ 1380.017056] hm2_5i23.0: initialized AnyIO board at 0000:03:02.0
Simple question: what is wrong - why I don not see any 8i20 pin?
Maybe it is just the lack of understandung of the smart serial interface.
Some questions I would think of , do I need to configure the 8i20 card, e.g., through setserial before using?
The 8i20 is apparently in fault state, is it because of the missing motor voltage? Is the fault state the reason why
are the 8i20 pins missing? Or is it possible that the 7i44 card is damaged? or does it need a different BIT file?
Another question, the "sserial_port_0=0000xxxx", what about the 0000xxxx address, what is the logic behind.
Possibly these questions are somewhere answered, if so, please let forward me there.
Thank you, JMizer
I have never used smart serial so the problem may be there.
My testings setup is wired like:
5i23 card, connected to a 7i44,
then cable to the 8i20.
7i44 is powered extra, 8i20 from the RJ45 cable.
also 5V on enable IN+,- of 8i20.
No motor voltage
When connected, I have LEDs on like:
pwr:green,
LV status:orange
ISO pwr:green
fault:red
I load in ini file:
[HOSTMOT2]
DRIVER=hm2_pci
BOARD=5i23
CONFIG="firmware=hm2/5i23/SVSS6_6.BIT sserial_port_0=0000xxxx"
in hal file, I have some standard things of the sample file (hm2-servo.hal)
very restricted so that I can start linuxcnc.
The problem is that, when looking at halshow, I don't have any pin like
hm2_5i23.0.8i20.something
few lines from dmesg:
[ 1379.775511] hm2: loading Mesa HostMot2 driver version 0.15
[ 1379.778599] hm2_pci: loading Mesa AnyIO HostMot2 driver version 0.7
[ 1379.778647] hm2_pci: discovered 5i23 at 0000:03:02.0
[ 1379.953269] hm2/hm2_5i23.0: Smart Serial Firmware Version 38
[ 1380.016737] hm2/hm2_5i23.0: 72 I/O Pins used:
[ 1380.016741] hm2/hm2_5i23.0: IO Pin 000 (P2-01): IOPort
[ 1380.016745] hm2/hm2_5i23.0: IO Pin 001 (P2-03): Muxed Encoder #0, pin Muxed A (Input)
[ 1380.016749] hm2/hm2_5i23.0: IO Pin 002 (P2-05): Muxed Encoder #0, pin Muxed B (Input)
[ 1380.016753] hm2/hm2_5i23.0: IO Pin 003 (P2-07): Muxed Encoder #0, pin Muxed Index (Input)
[ 1380.016756] hm2/hm2_5i23.0: IO Pin 004 (P2-09): Muxed Encoder #1, pin Muxed A (Input)
[ 1380.016760] hm2/hm2_5i23.0: IO Pin 005 (P2-11): Muxed Encoder #1, pin Muxed B (Input)
[ 1380.016764] hm2/hm2_5i23.0: IO Pin 006 (P2-13): Muxed Encoder #1, pin Muxed Index (Input)
[ 1380.016767] hm2/hm2_5i23.0: IO Pin 007 (P2-15): Muxed Encoder #2, pin Muxed A (Input)
[ 1380.016771] hm2/hm2_5i23.0: IO Pin 008 (P2-17): Muxed Encoder #2, pin Muxed B (Input)
[ 1380.016775] hm2/hm2_5i23.0: IO Pin 009 (P2-19): Muxed Encoder #2, pin Muxed Index (Input)
[ 1380.016779] hm2/hm2_5i23.0: IO Pin 010 (P2-21): Muxed Encoder Select #0, pin Mux Select 0 (Output)
[ 1380.016782] hm2/hm2_5i23.0: IO Pin 011 (P2-23): IOPort
[ 1380.016785] hm2/hm2_5i23.0: IO Pin 012 (P2-25): IOPort
...
...
[ 1380.017052] hm2/hm2_5i23.0: registered
[ 1380.017056] hm2_5i23.0: initialized AnyIO board at 0000:03:02.0
Simple question: what is wrong - why I don not see any 8i20 pin?
Maybe it is just the lack of understandung of the smart serial interface.
Some questions I would think of , do I need to configure the 8i20 card, e.g., through setserial before using?
The 8i20 is apparently in fault state, is it because of the missing motor voltage? Is the fault state the reason why
are the 8i20 pins missing? Or is it possible that the 7i44 card is damaged? or does it need a different BIT file?
Another question, the "sserial_port_0=0000xxxx", what about the 0000xxxx address, what is the logic behind.
Possibly these questions are somewhere answered, if so, please let forward me there.
Thank you, JMizer
Please Log in or Create an account to join the conversation.
30 Aug 2014 06:37 #50497
by PCW
Replied by PCW on topic Getting started with 8i20
Looks like the wrong bit file to me (the 7I44 has 8 channels so a SVSS6_8 would make sense)
Please Log in or Create an account to join the conversation.
01 Sep 2014 22:42 #50577
by andypugh
Replied by andypugh on topic Getting started with 8i20
Can you give us the full list of pins?
Possibly the 7i44 is on the wrong connector.
Possibly the 7i44 is on the wrong connector.
Please Log in or Create an account to join the conversation.
02 Sep 2014 01:03 #50595
by jmizer
Replied by jmizer on topic Getting started with 8i20
Thank you for a hint, it was the important one!
Just to document my progress:
I downloaded freeby.mesanet.com/SVSS6_8.ZIP, there was a BIT and PIN file. That one did not work (failed to load), I noticed that the size of the BIT file is ca double of the BIT files which I have in my installation (/lib/firmware/hm2/5i23). (sorry for my youtube knowledge-level explatations).
I then got separately freeby.mesanet.com/SVSS6_8.BIT and PIN files -- they are different unless it changed since then. Now this was the correct size and also loaded well.
I noticed - answer to the hint of Andy (?) that the P4 of 5i23 was the correct connector, so yes - I got then my 8i20 pins!
I don't have any encoder card home, so I plugged the encoder to optoisolator 7i37 card, ok working, maybe a strange solution. With hall sensors I got inspired by the description of the 7i39 card and tried through some Schmitt triggers, but I got tired of wiring it (not speaking about connecting 4 comp power sources together...).
First question:
Could you recommend some card for plugging encoders and hall sensors? or how is it usually done? - I have only worked with 7i39 before and there it is easy.
I then decided to try first just with 7i39 (400W 48V motor) and I got into problems that I did not have before.
My motor has just one pole pair. My encoder 50 counts.
So I set bldc.0.scale 50
I was not able to do much with the motor, I then noticed that with this setting I have 2x zero per revolution of the rotor-angle value. man bldc says that there are 2 zeros per revolution for a 4-pole motor (with 1 pair I have 2 pole motor in this nomenclature ) so I would expect only one zero per revolution.
I set then bldc.0.scale 100, and it kind of works - one zero per revolution and I can rotate my motor in linuxcnc, but the motor has problems in following in any but extremely low speeds and accelerations, in any other it overshoots, tries wrong direction -maybe side effect of the scale?
Does it look like some obvious problem? should I rather post the my .hal/ .ini files?
One more little question. I though of not using the hall sensors, but my index encoder signal does not work for some reason (encoder problem) so I would use the "q" personality for which "the motor is rather springy" ... I am planning to use the motor as a spindle motor for sherline little mill/lathe, any comment about what would it mean in my case this "springy" ? is it very recommendable to use the hall sensors if possible?
Thanks
Just to document my progress:
I downloaded freeby.mesanet.com/SVSS6_8.ZIP, there was a BIT and PIN file. That one did not work (failed to load), I noticed that the size of the BIT file is ca double of the BIT files which I have in my installation (/lib/firmware/hm2/5i23). (sorry for my youtube knowledge-level explatations).
I then got separately freeby.mesanet.com/SVSS6_8.BIT and PIN files -- they are different unless it changed since then. Now this was the correct size and also loaded well.
I noticed - answer to the hint of Andy (?) that the P4 of 5i23 was the correct connector, so yes - I got then my 8i20 pins!
I don't have any encoder card home, so I plugged the encoder to optoisolator 7i37 card, ok working, maybe a strange solution. With hall sensors I got inspired by the description of the 7i39 card and tried through some Schmitt triggers, but I got tired of wiring it (not speaking about connecting 4 comp power sources together...).
First question:
Could you recommend some card for plugging encoders and hall sensors? or how is it usually done? - I have only worked with 7i39 before and there it is easy.
I then decided to try first just with 7i39 (400W 48V motor) and I got into problems that I did not have before.
My motor has just one pole pair. My encoder 50 counts.
So I set bldc.0.scale 50
I was not able to do much with the motor, I then noticed that with this setting I have 2x zero per revolution of the rotor-angle value. man bldc says that there are 2 zeros per revolution for a 4-pole motor (with 1 pair I have 2 pole motor in this nomenclature ) so I would expect only one zero per revolution.
I set then bldc.0.scale 100, and it kind of works - one zero per revolution and I can rotate my motor in linuxcnc, but the motor has problems in following in any but extremely low speeds and accelerations, in any other it overshoots, tries wrong direction -maybe side effect of the scale?
Does it look like some obvious problem? should I rather post the my .hal/ .ini files?
One more little question. I though of not using the hall sensors, but my index encoder signal does not work for some reason (encoder problem) so I would use the "q" personality for which "the motor is rather springy" ... I am planning to use the motor as a spindle motor for sherline little mill/lathe, any comment about what would it mean in my case this "springy" ? is it very recommendable to use the hall sensors if possible?
Thanks
Please Log in or Create an account to join the conversation.
02 Sep 2014 01:21 #50596
by andypugh
As you have probably noticed the "poles" and "scale" are very tightly linked, and in fact just get divided one by the other inside the bldc component. The reason to have "poles" is so that 6 pole motors can still work without rounding errors accumulating.
It's hard to say. I am afraid that it is all really a bit of a game setting up motors. With only 50 counts I think that the control will always be a bit "springy" as you would have horrible oscillation problems with enough P gain to correct at 1 count error, and you will end up tuned so that need to turn to 10 counts or so to get full torque.
What bldc commutation mode are you using? I have found qh to be the most unambiguous. qih requires you to know where the index is magnetically.
Replied by andypugh on topic Getting started with 8i20
What is "poles" set to? It probably defaults to 2, but should be checked.My motor has just one pole pair. My encoder 50 counts.
So I set bldc.0.scale 50
As you have probably noticed the "poles" and "scale" are very tightly linked, and in fact just get divided one by the other inside the bldc component. The reason to have "poles" is so that 6 pole motors can still work without rounding errors accumulating.
Does it look like some obvious problem? should I rather post the my .hal/ .ini files?
It's hard to say. I am afraid that it is all really a bit of a game setting up motors. With only 50 counts I think that the control will always be a bit "springy" as you would have horrible oscillation problems with enough P gain to correct at 1 count error, and you will end up tuned so that need to turn to 10 counts or so to get full torque.
What bldc commutation mode are you using? I have found qh to be the most unambiguous. qih requires you to know where the index is magnetically.
Please Log in or Create an account to join the conversation.
02 Sep 2014 02:41 #50600
by jmizer
Replied by jmizer on topic Getting started with 8i20
I have bldc.0.poles 1
I got now a bit confused , if poles 1 is one pole-pair or one magnetic monopole![:-) :-)](/media/kunena/emoticons/smile.png)
so I tried with 2 but it did not seem like working.
I have also encoder disk with 500 counts, I thought that I would not be able to spin it reasonably fast then, but I can try.
I am using now "qh" as with 7i39 it is easy to connect the hall sensors, the question about "q" was if using with 8i20, without halls.
I will try still try with what i can - I have one self-made machine where I use 7i39 and 12 pole-pair flat motors (and an old 2.5.n linuxcnc), I can try experimenting there to find some possible hint, and try the 500 resolution enc. disk on "this" motor also. I will either report or ask again.
Thank you so far!
I got now a bit confused , if poles 1 is one pole-pair or one magnetic monopole
![:-) :-)](/media/kunena/emoticons/smile.png)
so I tried with 2 but it did not seem like working.
I have also encoder disk with 500 counts, I thought that I would not be able to spin it reasonably fast then, but I can try.
I am using now "qh" as with 7i39 it is easy to connect the hall sensors, the question about "q" was if using with 8i20, without halls.
I will try still try with what i can - I have one self-made machine where I use 7i39 and 12 pole-pair flat motors (and an old 2.5.n linuxcnc), I can try experimenting there to find some possible hint, and try the 500 resolution enc. disk on "this" motor also. I will either report or ask again.
Thank you so far!
Please Log in or Create an account to join the conversation.
02 Sep 2014 03:05 - 02 Sep 2014 03:06 #50604
by PCW
Replied by PCW on topic Getting started with 8i20
1 pole is not right but might work if you have the encoder counts/turn wrong
for example if you entered 500 for the encoder counts rather than the expected 2000
counts for a 500 line encoder (and you have a 4 pole motor)
for example if you entered 500 for the encoder counts rather than the expected 2000
counts for a 500 line encoder (and you have a 4 pole motor)
Last edit: 02 Sep 2014 03:06 by PCW.
Please Log in or Create an account to join the conversation.
03 Sep 2014 01:26 #50644
by jmizer
Replied by jmizer on topic Getting started with 8i20
thank you both!
it was really bldc.0.poles 2 and scale 2000 - when changing to the 500-line disc. Then also I could tune the servo "easily" and got a maximum speed of some 10turns/s.
(still surprised that with the servo period of 150 000ns it was in fact possible as it cannot calculate the loop at every encoder count any more). Anyway it is potentially usefull e.g. for threading or even turning already like this (have 3.6 ratio down to the sherline spindle). With that 50-line encoder the speed could have been enough for milling if I am right, looks like that was too optimistic.
I will restate my questions about the 8i20 maybe sometime later. At the moment I am fine with this.
Thanks again. J.
it was really bldc.0.poles 2 and scale 2000 - when changing to the 500-line disc. Then also I could tune the servo "easily" and got a maximum speed of some 10turns/s.
(still surprised that with the servo period of 150 000ns it was in fact possible as it cannot calculate the loop at every encoder count any more). Anyway it is potentially usefull e.g. for threading or even turning already like this (have 3.6 ratio down to the sherline spindle). With that 50-line encoder the speed could have been enough for milling if I am right, looks like that was too optimistic.
I will restate my questions about the 8i20 maybe sometime later. At the moment I am fine with this.
Thanks again. J.
Please Log in or Create an account to join the conversation.
03 Sep 2014 01:34 - 03 Sep 2014 01:34 #50645
by PCW
Replied by PCW on topic Getting started with 8i20
Not sure why you think you need to sample the position at every encoder count,
no systems with high resolution encoders do this. At a 150 usec servo thread,
6000 RPM or faster should be no problem at all
no systems with high resolution encoders do this. At a 150 usec servo thread,
6000 RPM or faster should be no problem at all
Last edit: 03 Sep 2014 01:34 by PCW.
Please Log in or Create an account to join the conversation.
03 Sep 2014 03:33 #50648
by jmizer
Replied by jmizer on topic Getting started with 8i20
That sounds really good! just a quick question - should it be possible also when having a position feedback? I have it so far still in a testing phase, as a rotating axis with a position feedback. Like that when reaching ca 600rpm I would get a joint following error.
Please Log in or Create an account to join the conversation.
Time to create page: 0.164 seconds