7i80 and 7i77
for a simple static point to point link (probably net manager re-establishing a DHCP initialized link)
I just tried 192.168.1.1 on wheezy and it works fine, this was setup completetly by using the netmanager GUI
This is what I did
1. Delete any other net manager entries using the Ethernet port used for RT
2. create a new entry (say named 192.168.1.1 RT)
3. Select manual configure for the RT Ethernet IPV4 settings
4. Set the IP addtress to 192.168.1.1, netmask 255.255.255.0
5 Set IPV6 settings to ignore
6. Select this entry
You must make sure there is not another net manager entry for the
RT Ethernet port or you will have endless problems with netmanager trying to establish a internet connection on that port
(this is why I suggested NOT using the same Ethernet port for internet and RT even one at a time)
On a final system you will want to disable the net manager from touching the RT Ethernet port
Please Log in or Create an account to join the conversation.
hm2_eth: loading Mesa AnyIO HostMot2 ethernet driver version 0.2
hm2_eth: WARNING: Unable to restrict other access to the hm2-eth device.
This means that other software using the same network interface can violate
realtime guarantees. See hm2_eth(9) for more information.
hm2_eth: loading Mesa AnyIO HostMot2 ethernet driver version 0.2
hm2_eth: Using iptables for exclusive access to network interface
hm2_eth: Hardware address: 00:60:1b:11:80:14
hm2_eth: ERROR: receiving packet: Resource temporarily unavailable
hm2_eth: No ethernet board found
what am I doing wrong? what else can I check? I have not so much experience with Linux.
Please Log in or Create an account to join the conversation.
I think the (currently hard wired) response timeout is 400 usec so if your system can't
meet that deadline there will be trouble.
Heres my desktop (an old 2 Ghz core duo) pinging a 7I76E:
PING 10.10.10.10 (10.10.10.10) 56(84) bytes of data.
64 bytes from 10.10.10.10: icmp_seq=1 ttl=64 time=0.139 ms
64 bytes from 10.10.10.10: icmp_seq=2 ttl=64 time=0.085 ms
64 bytes from 10.10.10.10: icmp_seq=3 ttl=64 time=0.083 ms
64 bytes from 10.10.10.10: icmp_seq=4 ttl=64 time=0.082 ms
64 bytes from 10.10.10.10: icmp_seq=5 ttl=64 time=0.085 ms
64 bytes from 10.10.10.10: icmp_seq=6 ttl=64 time=0.083 ms
The first ping time is longer because the ARP cache has timed out and the host
must send a "ARP who has 10.10.10.10" broadcast packet and wait for the response
EDIT
Also are you sure you are running the Preemt-rt kernel?
uname -a
will show the running kernel name
Please Log in or Create an account to join the conversation.
cnc@cnc:/etc/network$ uname -a
Linux cnc 3.2.0-4-rt-686-pae #1 SMP PREEMPT RT Debian 3.2.60-1+deb7u3 i686 GNU/Linux
cnc@cnc:/etc/network$
I thing that's ok, but latency test is very high.
Max Jitter (ns)
Servo thread (1ms) 575994
Base thread (25µs) 66213
I have an Intel Atom A330 (dual 1,6Ghz).
With a fresh wheezy iso linuxcnc installation has the same PC Max Jitter (servo thread) about 6000ns.
I've made this steps:
1. I start with a fresh wheezy iso linuxcnc installation
2. Step by step the post #51638 (reboot)
3. adjusted the network interface
This is my current ping
PING 192.168.1.121 (192.168.1.121) 56(84) bytes of data.
64 bytes from 192.168.1.121: icmp_req=1 ttl=64 time=0.254 ms
64 bytes from 192.168.1.121: icmp_req=2 ttl=64 time=0.121 ms
64 bytes from 192.168.1.121: icmp_req=3 ttl=64 time=0.114 ms
64 bytes from 192.168.1.121: icmp_req=4 ttl=64 time=0.130 ms
64 bytes from 192.168.1.121: icmp_req=5 ttl=64 time=0.117 ms
64 bytes from 192.168.1.121: icmp_req=6 ttl=64 time=0.148 ms
64 bytes from 192.168.1.121: icmp_req=7 ttl=64 time=0.117 ms
^C
--- 192.168.1.121 ping statistics ---
7 packets transmitted, 7 received, 0% packet loss, time 5998ms
rtt min/avg/max/mdev = 0.114/0.143/0.254/0.046 ms
Please Log in or Create an account to join the conversation.
I just tried with a Intel D945GCLF2 (dual core Atom 330)and get about 110 usec of
latency if I run you tube videos when the latency test is running
Do you have hyperthreading support and power management turned off in the BIOS?
EDIT
Also turn off the base thread when running the latency test:
latency-test 1ms 1ms
The D945GCLF2 runs OK (but its rather painfully slow) at 1 KHz with the 7I76E:
pcw@test22:~$ uname -a
Linux test22 3.2.0-4-rt-686-pae #1 SMP PREEMPT RT Debian 3.2.60-1+deb7u3 i686 GNU/Linux
pcw@test22:~$ linuxcnc
LINUXCNC - 2.7.0~pre0
Machine configuration directory is '/home/pcw/linuxcnc/configs/hm2-stepper'
Machine configuration file is '7i76es1.ini'
Starting LinuxCNC...
Note: Using POSIX realtime
hm2: loading Mesa HostMot2 driver version 0.15
hm2_eth: loading Mesa AnyIO HostMot2 ethernet driver version 0.2
hm2_eth: Using iptables for exclusive access to network interface
hm2_eth: Hardware address: 00:60:1b:10:40:13
hm2_eth: discovered 7I76E-16
hm2/hm2_7i76e.0: Smart Serial Firmware Version 43
Board hm2_7i76e.0.7i76.0.0 Hardware Mode 0 = standard
Board hm2_7i76e.0.7i76.0.0 Software Mode 0 = io_spin
Board hm2_7i76e.0.7i76.0.0 Software Mode 1 = io_ana_spin
Board hm2_7i76e.0.7i76.0.0 Software Mode 2 = io_enc_ana_spin_fv
Board hm2_7i76e.0.7i83.0.1 Hardware Mode 0 = standard
Board hm2_7i76e.0.7i83.0.1 Software Mode 0 = analogout_enables
hm2/hm2_7i76e.0: 51 I/O Pins used:
hm2/hm2_7i76e.0: IO Pin 000 (P1-01): StepGen #0, pin Direction (Output)
hm2/hm2_7i76e.0: IO Pin 001 (P1-14): StepGen #0, pin Step (Output)
hm2/hm2_7i76e.0: IO Pin 002 (P1-02): StepGen #1, pin Direction (Output)
hm2/hm2_7i76e.0: IO Pin 003 (P1-15): StepGen #1, pin Step (Output)
hm2/hm2_7i76e.0: IO Pin 004 (P1-03): StepGen #2, pin Direction (Output)
hm2/hm2_7i76e.0: IO Pin 005 (P1-16): StepGen #2, pin Step (Output)
hm2/hm2_7i76e.0: IO Pin 006 (P1-04): StepGen #3, pin Direction (Output)
hm2/hm2_7i76e.0: IO Pin 007 (P1-17): StepGen #3, pin Step (Output)
hm2/hm2_7i76e.0: IO Pin 008 (P1-05): StepGen #4, pin Direction (Output)
hm2/hm2_7i76e.0: IO Pin 009 (P1-06): StepGen #4, pin Step (Output)
hm2/hm2_7i76e.0: IO Pin 010 (P1-07): Smart Serial Interface #0, pin TxData0 (Output)
hm2/hm2_7i76e.0: IO Pin 011 (P1-08): Smart Serial Interface #0, pin RxData0 (Input)
hm2/hm2_7i76e.0: IO Pin 012 (P1-09): Smart Serial Interface #0, pin TxData1 (Output)
hm2/hm2_7i76e.0: IO Pin 013 (P1-10): Smart Serial Interface #0, pin RxData1 (Input)
hm2/hm2_7i76e.0: IO Pin 014 (P1-11): Encoder #0, pin Index (Input)
hm2/hm2_7i76e.0: IO Pin 015 (P1-12): Encoder #0, pin B (Input)
hm2/hm2_7i76e.0: IO Pin 016 (P1-13): Encoder #0, pin A (Input)
hm2/hm2_7i76e.0: IO Pin 017 (P2-01): IOPort
hm2/hm2_7i76e.0: IO Pin 018 (P2-14): IOPort
hm2/hm2_7i76e.0: IO Pin 019 (P2-02): IOPort
hm2/hm2_7i76e.0: IO Pin 020 (P2-15): IOPort
hm2/hm2_7i76e.0: IO Pin 021 (P2-03): IOPort
hm2/hm2_7i76e.0: IO Pin 022 (P2-16): IOPort
hm2/hm2_7i76e.0: IO Pin 023 (P2-04): IOPort
hm2/hm2_7i76e.0: IO Pin 024 (P2-17): IOPort
hm2/hm2_7i76e.0: IO Pin 025 (P2-05): IOPort
hm2/hm2_7i76e.0: IO Pin 026 (P2-06): IOPort
hm2/hm2_7i76e.0: IO Pin 027 (P2-07): IOPort
hm2/hm2_7i76e.0: IO Pin 028 (P2-08): IOPort
hm2/hm2_7i76e.0: IO Pin 029 (P2-09): IOPort
hm2/hm2_7i76e.0: IO Pin 030 (P2-10): IOPort
hm2/hm2_7i76e.0: IO Pin 031 (P2-11): IOPort
hm2/hm2_7i76e.0: IO Pin 032 (P2-12): IOPort
hm2/hm2_7i76e.0: IO Pin 033 (P2-13): IOPort
hm2/hm2_7i76e.0: IO Pin 034 (P3-01): IOPort
hm2/hm2_7i76e.0: IO Pin 035 (P3-14): IOPort
hm2/hm2_7i76e.0: IO Pin 036 (P3-02): IOPort
hm2/hm2_7i76e.0: IO Pin 037 (P3-15): IOPort
hm2/hm2_7i76e.0: IO Pin 038 (P3-03): IOPort
hm2/hm2_7i76e.0: IO Pin 039 (P3-16): IOPort
hm2/hm2_7i76e.0: IO Pin 040 (P3-04): IOPort
hm2/hm2_7i76e.0: IO Pin 041 (P3-17): IOPort
hm2/hm2_7i76e.0: IO Pin 042 (P3-05): IOPort
hm2/hm2_7i76e.0: IO Pin 043 (P3-06): IOPort
hm2/hm2_7i76e.0: IO Pin 044 (P3-07): IOPort
hm2/hm2_7i76e.0: IO Pin 045 (P3-08): IOPort
hm2/hm2_7i76e.0: IO Pin 046 (P3-09): IOPort
hm2/hm2_7i76e.0: IO Pin 047 (P3-10): IOPort
hm2/hm2_7i76e.0: IO Pin 048 (P3-11): IOPort
hm2/hm2_7i76e.0: IO Pin 049 (P3-12): IOPort
hm2/hm2_7i76e.0: IO Pin 050 (P3-13): IOPort
hm2/hm2_7i76e.0: registered
EDIT:
Now been up for several hours with no issues so far
Please Log in or Create an account to join the conversation.
I have the following problems in the hal file
#setp hm2_[HOSTMOT2](BOARD).0.dpll.01.timer-us -50
#setp hm2_[HOSTMOT2](BOARD).0.stepgen.timer-number 1
#setp pid.0.maxerror [AXIS_0]MAX_ERROR
#setp pid.1.maxerror [AXIS_1]MAX_ERROR
#setp pid.2.maxerror [AXIS_2]MAX_ERROR
# setp hm2_[HOSTMOT2]BOARD.0.7i76.0.0.spinout-scalemax [SPINDLE_9]SCALE
# setp hm2_[HOSTMOT2]BOARD.0.7i76.0.0.spinout-minlim [SPINDLE_9]MINLIM
# setp hm2_[HOSTMOT2]BOARD.0.7i76.0.0.spinout-maxlim [SPINDLE_9]MAXLIM
That's all commands that hal don't accept, if I commented it out, LCC runs, but I can't get any reaction. Steppermotors without Timer will not work. The Max_error should be a little problem,
but the 3 Spindle parameters. I tried to run some MDI commands, but the analog output rtemains on -5V.
Please Log in or Create an account to join the conversation.
I'm now at the meeting in Stuttgart, but no one can me help with my problem.
I have the following problems in the hal file
#setp hm2_[HOSTMOT2](BOARD).0.dpll.01.timer-us -50
#setp hm2_[HOSTMOT2](BOARD).0.stepgen.timer-number 1
#setp pid.0.maxerror [AXIS_0]MAX_ERROR
#setp pid.1.maxerror [AXIS_1]MAX_ERROR
#setp pid.2.maxerror [AXIS_2]MAX_ERROR
# setp hm2_[HOSTMOT2]BOARD.0.7i76.0.0.spinout-scalemax [SPINDLE_9]SCALE
# setp hm2_[HOSTMOT2]BOARD.0.7i76.0.0.spinout-minlim [SPINDLE_9]MINLIM
# setp hm2_[HOSTMOT2]BOARD.0.7i76.0.0.spinout-maxlim [SPINDLE_9]MAXLIM
When you have LinuxCNC running, try
halcmd show pin
halcmd show param
That will tell you what pins you actually have, which should let you know what is going wrong in the HAL file.
It might help to explain what is happening. [HOSTMOT2]BOARD means that the HAL file should look in the INI file for a BOARD parameter in the [HOSTMOT2] section. It then substitutes the text from the INI file into the HAL file.
One problem you might have is that the INI file doesn't actually have quite the right text and the pin names are coming out wrong.
I actually don't like using the INI file to specify card names, and I always write out the HAL pin names in full. It's probably easier for you to do that, you can copy and paste from a text file if you put the pin names from the show commands in there.
Please Log in or Create an account to join the conversation.
(no spindle IO will work without field power)
# setp hm2_[HOSTMOT2]BOARD.0.7i76.0.0.spinout-scalemax [SPINDLE_9]SCALE
# setp hm2_[HOSTMOT2]BOARD.0.7i76.0.0.spinout-minlim [SPINDLE_9]MINLIM
# setp hm2_[HOSTMOT2]BOARD.0.7i76.0.0.spinout-maxlim [SPINDLE_9]MAXLIM
The DPLL timer select does not affect whether stepgens work or not
If the stepgen pins are there, the stepgens are there and will work
(without the DPLL you may have to widen the ferror limits to avoid joint following errors)
To use the DPLL you will have to use the latest master and perhaps update your 7I76E firmware
BTW I really like the ini file aliases since it allows a common hal file with almost any FPGA card
Please Log in or Create an account to join the conversation.
I tried to look at the firmware of the 7i76e but get always the error segmentation fault.
I have connected only field power, should I connect the 5V from P3 as well or is it not necessary?
I tried before with +/- 5V connected to the spindle output but get always only -5V
Please Log in or Create an account to join the conversation.
halcmd replies nothing
That's probably expected if linuxcnc is not running or connected to the 7I76E card
I tried to look at the firmware of the 7i76e but get always the error segmentation fault.
Do you have the latest mesaflash? (sudo apt-get install mesaflash)
if I do
mesaflash --device 7i76e --addr 10.10.10.10 --readhmid
I get a full pinout listing (just tried, of course your IP address may be different)
I have connected only field power, should I connect the 5V from P3 as well or is it not necessary?
The 7I76E can get its 5V power from P3 or by using the unregulated power input on TB3, at least one needs to be supplied
I tried before with +/- 5V connected to the spindle output but get always only -5V
That's expected and correct if linuxcnc is not communicating with the card (and spindle enable is off)
Please Log in or Create an account to join the conversation.