Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Linuxcnc v2.8.2 and 2.9.0 STATUS Bug #1564

Open
Lcvette opened this issue Feb 2, 2022 · 17 comments
Open

Linuxcnc v2.8.2 and 2.9.0 STATUS Bug #1564

Lcvette opened this issue Feb 2, 2022 · 17 comments

Comments

@Lcvette
Copy link

Lcvette commented Feb 2, 2022

Linuxcnc Master 2.9 and Stable 2.8 STATUS has broken recently and are not updating correctly. Iit appears that 2.8 is not updating gcodes and mcodes and 2.9 is not updating mcodes. This appears to be an issue with programs, but seems to work when using MDI on both versions. actions also are not updating in status.

This has broken some core functionality in the QtPyVCP user interfaces. the test was performed in the axis sim on both versions and is repeatable.

Here are the steps I follow to reproduce the issue:

  1. open axis on either version and set the machine up to run the default LinuxCNC program.
  2. open the status window and setup the workoffsets to run the program.
  3. run the program and note that the status is not registering some/all of the g and m codes as they are called in the program.

This is what I expected to happen:

I expected the status to update with the currently active g and m codes

This is what happened instead:

the status does not update for some items in version 2.9
the status does not update for most items both g and m codes in 2.8

It worked properly before this:

this functionality was working perfectly before and has been called out by numerous users recently as it effects QtPyVCP interfaces by causing issues loading the backplotter drawn lines at program load. it also effect other critical functionality relying on proper status updating.

Information about my hardware and software:

tests were run on debian 10 and debian 11 for both versions.

  • I am using this Linux distribution and version (often, shown by lsb_release -a):
    lsb_release -a
    No LSB modules are available.
    Distributor ID: Debian
    Description: Debian GNU/Linux 10 (buster)
    Release: 10
    Codename: buster

and

lsb_release -a
No LSB modules are available.
Distributor ID: Debian
Description: Debian GNU/Linux 11 (bullseye)
Release: 11
Codename: bullseye

  • I am using this kernel version (shown by uname -a):

uname -a
Linux PBDEV 4.19.0-18-rt-amd64 #1 SMP PREEMPT RT Debian 4.19.208-1 (2021-09-29) x86_64 GNU/Linux

and

uname -a
Linux py3dev 5.10.0-10-rt-amd64 #1 SMP PREEMPT_RT Debian 5.10.84-1 (2021-12-08) x86_64 GNU/Linux

  • I am running ...
    iso install from linuxcnc.org for the deb10 version 2.8.2

and running this install for deb 11 version 2.9
https://github.com/joco-nz/lcnc-bullseye-installer

  • I am using this user interface (GUI) (e.g., AXIS, Touchy, gmoccapy, etc):
    The issue effects all gui's i hav tested on in cluding QtPyVCP gui's and Stock Linuxcnc supplied Gui's

  • I am using this interface hardware vendor and chipset (e.g., parallel port, ethernet port, FPGA card):

I am running the following hardware for deb 11 version 2.8:
cnc@PBDEV:~$ lspci -v
00:00.0 Host bridge: Intel Corporation Core Processor DRAM Controller (rev 02)
Subsystem: Lenovo Core Processor DRAM Controller
Flags: bus master, fast devsel, latency 0
Capabilities:

00:01.0 PCI bridge: Intel Corporation Core Processor PCI Express x16 Root Port (rev 02) (prog-if 00 [Normal decode])
Flags: bus master, fast devsel, latency 0, IRQ 24
Bus: primary=00, secondary=01, subordinate=01, sec-latency=0
I/O behind bridge: 0000e000-0000efff
Memory behind bridge: fa000000-fb0fffff
Prefetchable memory behind bridge: 00000000c0000000-00000000d1ffffff
Capabilities:
Kernel driver in use: pcieport

00:16.0 Communication controller: Intel Corporation 5 Series/3400 Series Chipset HECI Controller (rev 06)
Subsystem: Lenovo 5 Series/3400 Series Chipset HECI Controller
Flags: bus master, fast devsel, latency 0, IRQ 28
Memory at fb149000 (64-bit, non-prefetchable) [size=16]
Capabilities:
Kernel driver in use: mei_me
Kernel modules: mei_me

00:19.0 Ethernet controller: Intel Corporation 82578DM Gigabit Network Connection (rev 06)
Subsystem: Lenovo 82578DM Gigabit Network Connection
Flags: bus master, fast devsel, latency 0, IRQ 25
Memory at fb120000 (32-bit, non-prefetchable) [size=128K]
Memory at fb148000 (32-bit, non-prefetchable) [size=4K]
I/O ports at f040 [size=32]
Capabilities:
Kernel driver in use: e1000e
Kernel modules: e1000e

00:1a.0 USB controller: Intel Corporation 5 Series/3400 Series Chipset USB2 Enhanced Host Controller (rev 06) (prog-if 20 [EHCI])
Subsystem: Lenovo 5 Series/3400 Series Chipset USB2 Enhanced Host Controller
Flags: bus master, medium devsel, latency 0, IRQ 16
Memory at fb147000 (32-bit, non-prefetchable) [size=1K]
Capabilities:
Kernel driver in use: ehci-pci
Kernel modules: ehci_pci

00:1b.0 Audio device: Intel Corporation 5 Series/3400 Series Chipset High Definition Audio (rev 06)
Subsystem: Lenovo 5 Series/3400 Series Chipset High Definition Audio
Flags: bus master, fast devsel, latency 0, IRQ 29
Memory at fb140000 (64-bit, non-prefetchable) [size=16K]
Capabilities:
Kernel driver in use: snd_hda_intel
Kernel modules: snd_hda_intel

00:1d.0 USB controller: Intel Corporation 5 Series/3400 Series Chipset USB2 Enhanced Host Controller (rev 06) (prog-if 20 [EHCI])
Subsystem: Lenovo 5 Series/3400 Series Chipset USB2 Enhanced Host Controller
Flags: bus master, medium devsel, latency 0, IRQ 23
Memory at fb146000 (32-bit, non-prefetchable) [size=1K]
Capabilities:
Kernel driver in use: ehci-pci
Kernel modules: ehci_pci

00:1e.0 PCI bridge: Intel Corporation 82801 PCI Bridge (rev a6) (prog-if 01 [Subtractive decode])
Flags: bus master, fast devsel, latency 0
Bus: primary=00, secondary=02, subordinate=02, sec-latency=32
Capabilities:

00:1f.0 ISA bridge: Intel Corporation Q57 Chipset LPC Interface Controller (rev 06)
Subsystem: Lenovo Q57 Chipset LPC Interface Controller
Flags: bus master, medium devsel, latency 0
Capabilities:
Kernel driver in use: lpc_ich
Kernel modules: lpc_ich

00:1f.2 SATA controller: Intel Corporation 5 Series/3400 Series Chipset 6 port SATA AHCI Controller (rev 06) (prog-if 01 [AHCI 1.0])
Subsystem: Lenovo 5 Series/3400 Series Chipset 6 port SATA AHCI Controller
Flags: bus master, 66MHz, medium devsel, latency 0, IRQ 26
I/O ports at f090 [size=8]
I/O ports at f080 [size=4]
I/O ports at f070 [size=8]
I/O ports at f060 [size=4]
I/O ports at f020 [size=32]
Memory at fb145000 (32-bit, non-prefetchable) [size=2K]
Capabilities:
Kernel driver in use: ahci
Kernel modules: ahci

00:1f.3 SMBus: Intel Corporation 5 Series/3400 Series Chipset SMBus Controller (rev 06)
Subsystem: Lenovo 5 Series/3400 Series Chipset SMBus Controller
Flags: medium devsel, IRQ 18
Memory at fb144000 (64-bit, non-prefetchable) [size=256]
I/O ports at f000 [size=32]
Kernel driver in use: i801_smbus
Kernel modules: i2c_i801

01:00.0 VGA compatible controller: NVIDIA Corporation GT218 [GeForce 310] (rev a2) (prog-if 00 [VGA controller])
Subsystem: Micro-Star International Co., Ltd. [MSI] GT218 [GeForce 310]
Flags: bus master, fast devsel, latency 0, IRQ 27
Memory at fa000000 (32-bit, non-prefetchable) [size=16M]
Memory at c0000000 (64-bit, prefetchable) [size=256M]
Memory at d0000000 (64-bit, prefetchable) [size=32M]
I/O ports at e000 [size=128]
Expansion ROM at 000c0000 [disabled] [size=128K]
Capabilities:
Kernel driver in use: nouveau
Kernel modules: nouveau

01:00.1 Audio device: NVIDIA Corporation High Definition Audio Controller (rev a1)
Subsystem: Micro-Star International Co., Ltd. [MSI] High Definition Audio Controller
Flags: bus master, fast devsel, latency 0, IRQ 16
Memory at fb080000 (32-bit, non-prefetchable) [size=16K]
Capabilities:
Kernel driver in use: snd_hda_intel
Kernel modules: snd_hda_intel

ff:00.0 Host bridge: Intel Corporation Core Processor QuickPath Architecture Generic Non-core Registers (rev 02)
Subsystem: Intel Corporation Core Processor QuickPath Architecture Generic Non-core Registers
Flags: bus master, fast devsel, latency 0

ff:00.1 Host bridge: Intel Corporation Core Processor QuickPath Architecture System Address Decoder (rev 02)
Subsystem: Intel Corporation Core Processor QuickPath Architecture System Address Decoder
Flags: bus master, fast devsel, latency 0

ff:02.0 Host bridge: Intel Corporation Core Processor QPI Link 0 (rev 02)
Subsystem: Intel Corporation Core Processor QPI Link 0
Flags: bus master, fast devsel, latency 0

ff:02.1 Host bridge: Intel Corporation 1st Generation Core i3/5/7 Processor QPI Physical 0 (rev 02)
Subsystem: Intel Corporation 1st Generation Core i3/5/7 Processor QPI Physical 0
Flags: bus master, fast devsel, latency 0

ff:02.2 Host bridge: Intel Corporation 1st Generation Core i3/5/7 Processor Reserved (rev 02)
Subsystem: Intel Corporation 1st Generation Core i3/5/7 Processor Reserved
Flags: bus master, fast devsel, latency 0

ff:02.3 Host bridge: Intel Corporation 1st Generation Core i3/5/7 Processor Reserved (rev 02)
Subsystem: Intel Corporation 1st Generation Core i3/5/7 Processor Reserved
Flags: bus master, fast devsel, latency 0

I am running the following hardware for Debian11 version 2.9:

HP Elite 8300 USDT core I5
py3dev@py3dev:~$ lspci -v
00:00.0 Host bridge: Intel Corporation Xeon E3-1200 v2/3rd Gen Core processor DRAM Controller (rev 09)
Subsystem: Hewlett-Packard Company Xeon E3-1200 v2/3rd Gen Core processor DRAM Controller
Flags: bus master, fast devsel, latency 0
Capabilities:
Kernel driver in use: ivb_uncore
Kernel modules: ie31200_edac

00:02.0 VGA compatible controller: Intel Corporation Xeon E3-1200 v2/3rd Gen Core processor Graphics Controller (rev 09) (prog-if 00 [VGA controller])
DeviceName: Onboard VGA
Subsystem: Hewlett-Packard Company Xeon E3-1200 v2/3rd Gen Core processor Graphics Controller
Flags: bus master, fast devsel, latency 0, IRQ 27
Memory at f7800000 (64-bit, non-prefetchable) [size=4M]
Memory at e0000000 (64-bit, prefetchable) [size=256M]
I/O ports at f000 [size=64]
Expansion ROM at 000c0000 [virtual] [disabled] [size=128K]
Capabilities:
Kernel driver in use: i915
Kernel modules: i915

00:14.0 USB controller: Intel Corporation 7 Series/C210 Series Chipset Family USB xHCI Host Controller (rev 04) (prog-if 30 [XHCI])
Subsystem: Hewlett-Packard Company 7 Series/C210 Series Chipset Family USB xHCI Host Controller
Flags: bus master, medium devsel, latency 0, IRQ 26
Memory at f7d20000 (64-bit, non-prefetchable) [size=64K]
Capabilities:
Kernel driver in use: xhci_hcd
Kernel modules: xhci_pci

00:19.0 Ethernet controller: Intel Corporation 82579LM Gigabit Network Connection (Lewisville) (rev 04)
DeviceName: Onboard LAN
Subsystem: Hewlett-Packard Company 82579LM Gigabit Network Connection (Lewisville)
Flags: bus master, fast devsel, latency 0, IRQ 24
Memory at f7d00000 (32-bit, non-prefetchable) [size=128K]
Memory at f7d39000 (32-bit, non-prefetchable) [size=4K]
I/O ports at f080 [size=32]
Capabilities:
Kernel driver in use: e1000e
Kernel modules: e1000e

00:1a.0 USB controller: Intel Corporation 7 Series/C216 Chipset Family USB Enhanced Host Controller #2 (rev 04) (prog-if 20 [EHCI])
Subsystem: Hewlett-Packard Company 7 Series/C216 Chipset Family USB Enhanced Host Controller
Flags: bus master, medium devsel, latency 0, IRQ 16
Memory at f7d38000 (32-bit, non-prefetchable) [size=1K]
Capabilities:
Kernel driver in use: ehci-pci
Kernel modules: ehci_pci

00:1b.0 Audio device: Intel Corporation 7 Series/C216 Chipset Family High Definition Audio Controller (rev 04)
Subsystem: Hewlett-Packard Company 7 Series/C216 Chipset Family High Definition Audio Controller
Flags: bus master, fast devsel, latency 0, IRQ 29
Memory at f7d30000 (64-bit, non-prefetchable) [size=16K]
Capabilities:
Kernel driver in use: snd_hda_intel
Kernel modules: snd_hda_intel

00:1c.0 PCI bridge: Intel Corporation 7 Series/C216 Chipset Family PCI Express Root Port 1 (rev c4) (prog-if 00 [Normal decode])
Flags: bus master, fast devsel, latency 0, IRQ 16
Bus: primary=00, secondary=01, subordinate=01, sec-latency=0
I/O behind bridge: [disabled]
Memory behind bridge: f7c00000-f7cfffff [size=1M]
Prefetchable memory behind bridge: [disabled]
Capabilities:
Kernel driver in use: pcieport

00:1d.0 USB controller: Intel Corporation 7 Series/C216 Chipset Family USB Enhanced Host Controller #1 (rev 04) (prog-if 20 [EHCI])
Subsystem: Hewlett-Packard Company 7 Series/C216 Chipset Family USB Enhanced Host Controller
Flags: bus master, medium devsel, latency 0, IRQ 23
Memory at f7d37000 (32-bit, non-prefetchable) [size=1K]
Capabilities:
Kernel driver in use: ehci-pci
Kernel modules: ehci_pci

00:1e.0 PCI bridge: Intel Corporation 82801 PCI Bridge (rev a4) (prog-if 01 [Subtractive decode])
Flags: bus master, fast devsel, latency 0
Bus: primary=00, secondary=02, subordinate=02, sec-latency=32
I/O behind bridge: [disabled]
Memory behind bridge: [disabled]
Prefetchable memory behind bridge: [disabled]
Capabilities:

00:1f.0 ISA bridge: Intel Corporation Q77 Express Chipset LPC Controller (rev 04)
Subsystem: Hewlett-Packard Company Q77 Express Chipset LPC Controller
Flags: bus master, medium devsel, latency 0
Capabilities:
Kernel driver in use: lpc_ich
Kernel modules: lpc_ich

00:1f.2 SATA controller: Intel Corporation 7 Series/C210 Series Chipset Family 6-port SATA Controller [AHCI mode] (rev 04) (prog-if 01 [AHCI 1.0])
Subsystem: Hewlett-Packard Company 7 Series/C210 Series Chipset Family 6-port SATA Controller [AHCI mode]
Flags: bus master, 66MHz, medium devsel, latency 0, IRQ 25
I/O ports at f0d0 [size=8]
I/O ports at f0c0 [size=4]
I/O ports at f0b0 [size=8]
I/O ports at f0a0 [size=4]
I/O ports at f060 [size=32]
Memory at f7d36000 (32-bit, non-prefetchable) [size=2K]
Capabilities:
Kernel driver in use: ahci
Kernel modules: ahci

00:1f.3 SMBus: Intel Corporation 7 Series/C216 Chipset Family SMBus Controller (rev 04)
Subsystem: Hewlett-Packard Company 7 Series/C216 Chipset Family SMBus Controller
Flags: medium devsel, IRQ 18
Memory at f7d35000 (64-bit, non-prefetchable) [size=256]
I/O ports at f040 [size=32]
Kernel driver in use: i801_smbus
Kernel modules: i2c_i801

01:00.0 Network controller: Intel Corporation Centrino Advanced-N 6205 [Taylor Peak] (rev 34)
Subsystem: Intel Corporation Centrino Advanced-N 6205 AGN
Flags: bus master, fast devsel, latency 0, IRQ 28
Memory at f7c00000 (64-bit, non-prefetchable) [size=8K]
Capabilities:
Kernel driver in use: iwlwifi
Kernel modules: iwlwifi

@c-morley
Copy link
Collaborator

c-morley commented Feb 4, 2022

I confirm something as you describe in master. If I run chips program and single step while watching the status window, I can see about every third step that the m3/m5 changing when it should not - might coincide with m2 being called after subroutine. I tried AXIS and Qtdragon. I haven't had time to git-bisect yet.
When you say linuxcnc 2.8.2, (If you know) does it include the bug fixes after 2.8.2 that are not officially released yet?

@Lcvette
Copy link
Author

Lcvette commented Feb 4, 2022

Chris, this test was done with installed iso download and then updated via sudo apt update/upgrade. I am guessing it would not have any of the mentioned unreleased fixes. non of the status seem to be updating from a program in the 2.8 installed version i was testing. they do update from mdi. they also do not update from action button calls.

@andypugh
Copy link
Collaborator

andypugh commented Feb 6, 2022

In master I see "M2" a lot of the time in the M-codes. Which doesn't seem right.
I have gone back to 2.7.15 via 2.8.2 and bsasically current master seems to be the best of the lot. It does at least show G0 / G1 / G2 / G3 correctly.
I was going to do a Git Bisect to find where it stopped working, but I am not sure that it ever worked, and is more nearly working now.
Perhaps a test program is needed that exercises all the codes that you feel should be updating, so that it is easier to work out whether a particular build is "good" or "bad" as I am not sure that I have managed to find a "good" status.

(I tried to go back to 2.6 but the test machine I was using is a preempt-rt setup and 2.6 doesn't understand that)

@satiowadahc
Copy link
Contributor

Started a testing app for status. Not sure if this has a place in this repository.
https://github.com/satiowadahc/LinuxcncTests

  • Requires pytest, pytest-qt
  • Run linuxcnc with another UI ( I might look into finding a way to add it to the tests)
  • pytest test_status.py

@Lcvette
Copy link
Author

Lcvette commented Feb 18, 2022 via email

@Lcvette
Copy link
Author

Lcvette commented Feb 18, 2022 via email

@silopolis
Copy link
Contributor

silopolis commented Feb 19, 2022 via email

@satiowadahc
Copy link
Contributor

3 tests complete... 85 more to go. This may be a slow process.

@Lcvette
Copy link
Author

Lcvette commented Feb 19, 2022 via email

@andypugh
Copy link
Collaborator

How is this going?

@satiowadahc
Copy link
Contributor

The test stubs have been written, documenting current issues, state and plans as I go. Some of status seems vague to me, so someone may need to validate the codes are right.

Once it's more complete, is there a place in this repository for it?

@Lcvette
Copy link
Author

Lcvette commented Feb 22, 2022 via email

@Lcvette
Copy link
Author

Lcvette commented Feb 22, 2022 via email

@cakeslob
Copy link

cakeslob commented Mar 7, 2022

Hey, sorry to chime in, I had issues with this when playing with the feedrate pin , motion.feed-upm. Here is early observations I had in this thread
https://forum.linuxcnc.org/38-general-linuxcnc-questions/41031-problem-with-feed-rates

Ill keep it short because I dont know what Im talking about compared to you guys, and because I wasnt working with G/M codes but with the F/S codes in the linuxcnc status. The main thing I observed was the difference between using G64, and G61/ G64 P0.001 Q0.001
You can watch in linuxcnc status under the "settings" line as the current line changes with the settings, and not the motion line

With G64, on my test program, it reads ahead 3000+ lines and displays F and S from the last point in the read ahead F/S were changed, which was 2000+ lines from the current line. You can observe jumping around of these settings as the it goes from g0 to g1/2/3 moves,

With G61/ G64 P0.001 Q0.001 it displays F/S correctly because it is not reading to far ahead of the actual motion line. This does not seem to help with M codes, for my program it just reads m5 and starts to toggle m30 towards the end of the program.

@silopolis
Copy link
Contributor

How hard is this one to fix ?
Any chances to have it for 2.9 ?

@satiowadahc
Copy link
Contributor

Summer got busy for me, hoping to get back to this come October/November.

@silopolis
Copy link
Contributor

silopolis commented Aug 27, 2022 via email

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

6 participants