Advanced Search

Search Results (Searched for: )

  • meister
  • meister
05 Nov 2024 16:26

LinuxCNC-RIO - RealtimeIO for LinuxCNC based on FPGA (ICE40 / ECP5)

Category: Computers and Hardware

well, last night I got first movements to work on my iceshield derivative, and got the scale correct. Trying to get my head around the PID settings, I'm a bit lost since I'm normally a stepper guy working with more direct controllers that work similar to parallel port setups, 1 step = 1 step moved, no hunting position. this seems to be treating the fpga as it would treat a servo with encoder feedback. The position doesn't quite reach the commanded position, and it hunts a little, which I find odd for open-loop steppers with no encoder feedback.

Can anyone enlighten me on how to tune this? Is P too high? I have a feeling it maybe should be set to 1.0 instead of the default 250 so there is no gain.
 

the pid-loop is necessary with external hardware, as only velocity information can be sent in this way.

The deviations are actually only rounding errors, which should be no different with mesa hardware.

Remora does it the same way, only with a little trick, there the PID controller is hidden in the driver and linuxcnc does not show the calculated values but those that were sent.

In the beginning I also had the PID controller in the driver (linuxcnc-component), because it was only a copy of the remora driver, but that is actually just optics.

so far, the position has always been accurate to the step...

tuning is also not necessary if you use stepper
 
  • Micro2000
  • Micro2000
05 Nov 2024 16:22 - 05 Nov 2024 16:23
Replied by Micro2000 on topic LinuxCNC Error

LinuxCNC Error

Category: General LinuxCNC Questions

After I got the error and copied that specific part the error changed it won't come back again.

How would I get an RTAI version of linuxcnc, I have been looking at the getting started and installing linuxcnc and haven't seen anything like that.

I am so confused right now because the documentation has instructions but it seems like packages are missing from the pre-made files, and the documentation that is stated does not work. Then when I go to forums I am being told that some things may be missing. I am so lost right now, I don't know what to follow and what to ignore, out of date info, what files do and don't work with each other...etc.
  • mBender
  • mBender
05 Nov 2024 16:17

LinuxCNC-RIO - RealtimeIO for LinuxCNC based on FPGA (ICE40 / ECP5)

Category: Computers and Hardware

Just a stab in the dark, but does the TX0108E have capacitors wired to power lines and close to the chip?
A 10 microFarad electrolytic and a 0.1 micro ceramic should do.
 
 
I'm not as familiar with the TX0108E , but another option is to switch the low side instead of the high side. Such as a simple transistor between the - of the driver and GND, if that's an option for your stepper driver. (See image).

I wonder if you're running into voltage drop on the TX0108E if you're switching the high side? I also wonder if the Tang Nano can't push enough current on the 5v rail for your application, maybe provide an external 5v source to VB? Perhaps monitor VB with the scope as well, see how stable that is?

 

I thought about the Transistor solution as well. I have actually some transistors laying around, but the fact that the new level shifter should arrive any minute has me stopped that. At least for the moment. 

The power supply from the Tang is stable. I had that suspicion too and tested it with my oscilloscope. 5V is clean and no power drop.

What I have found out is that the bidirectional level shifter have some weird logic to figure out which side is driving and it seems they create often problems. I even tried to put the output side with a pull up / pull down. No difference.

I think something like a 74ACT245 where you can external control the direction might be better for this application.
  • digiex_chris
  • digiex_chris
05 Nov 2024 16:02 - 05 Nov 2024 16:03

LinuxCNC-RIO - RealtimeIO for LinuxCNC based on FPGA (ICE40 / ECP5)

Category: Computers and Hardware

Just a stab in the dark, but does the TX0108E have capacitors wired to power lines and close to the chip?
A 10 microFarad electrolytic and a 0.1 micro ceramic should do.
 
 

I'm not as familiar with the TX0108E , but another option is to switch the low side instead of the high side. Such as a simple transistor between the - of the driver and GND, if that's an option for your stepper driver. (See image).



I wonder if you're running into voltage drop on the TX0108E if you're switching the high side? I also wonder if the Tang Nano can't push enough current on the 5v rail for your application, maybe provide an external 5v source to VB? Perhaps monitor VB with the scope as well, see how stable that is?
 
  • Lcvette
  • Lcvette's Avatar
05 Nov 2024 15:30

Unexpected realtime delay on task 0 with period 1000000

Category: QtPyVCP

is that doing the same thing as the irq coalesce blurb in the network manager setup?
  • digiex_chris
  • digiex_chris
05 Nov 2024 15:26 - 05 Nov 2024 15:31

LinuxCNC-RIO - RealtimeIO for LinuxCNC based on FPGA (ICE40 / ECP5)

Category: Computers and Hardware

well, last night I got first movements to work on my iceshield derivative, and got the scale correct. Trying to get my head around the PID settings, I'm a bit lost since I'm normally a stepper guy working with more direct controllers that work similar to parallel port setups, 1 step = 1 step moved, no hunting position. this seems to be treating the fpga as it would treat a servo with encoder feedback. The position doesn't quite reach the commanded position, and it hunts a little, which I find odd for open-loop steppers with no encoder feedback.

Can anyone enlighten me on how to tune this? Is P too high? I have a feeling it maybe should be set to 1.0 instead of the default 250 so there is no gain.
  • Aldenflorio
  • Aldenflorio's Avatar
05 Nov 2024 15:03
Compensating For Angled Cut was created by Aldenflorio

Compensating For Angled Cut

Category: Plasma & Laser

Hello Everyone,
I would like to have the ability to create an angled/beveled cut. I can simply redesign the way the z-axis attaches to allow degrees of angling. Though I'm curious how I would go about compensating for the possible voltage difference, the distance offset due to said angle, and the z-axis limit in terms of configuring with Linuxcnc. There may be even other things I'm not considering as well.
  • Lcvette
  • Lcvette's Avatar
05 Nov 2024 14:24

Error getting packages on fresh install on Raspberry Pi 5

Category: QtPyVCP

i removed the amd64 warning from the docs now, arm64 should be a viable install. some things i recall were that the linuxcnc iso has some remnant installations that made installing qtpyvcp easier previously and these may conflict, but i do not recall what they were off the top of my head. it may be the skipped warnings or errors when trying to install via apt., do you have the install log still with any of the possible conflicts that popped up?
  • Finngineering
  • Finngineering
05 Nov 2024 14:23 - 05 Nov 2024 14:29
Replied by Finngineering on topic Strange stepgen behaviour with 7i95t_1pktv2d firmware

Strange stepgen behaviour with 7i95t_1pktv2d firmware

Category: Driver Boards

Thank you for investing time in this. Of course, if the issue is not reproducible for you, the "return on investment" for you looking for the cause is very low.

I have done a bit of investigation myself, by looking at the network traffic. There will be quite a bit of information here, but I would say the conclusion is that the jump in position-fb is not visible in the packets from the 7i95T. In other words, the cause almost has to be somewhere on the linuxcnc side.

I changed my config to enable some debugging information and reducing the "modules" as much as possible (while still having the jump in position-fb):
loadrt threads name1=servo-thread period1=1000000
loadrt hostmot2 debug_module_descriptors=1 debug_modules=1
loadrt hm2_eth board_ip="10.10.10.10" config="num_stepgens=5 num_ssrs=0 num_inmuxs=0 num_leds=0" # This causes jumps in hm2_7i95.0.stepgen.00.position-fb

addf hm2_7i95.0.read          servo-thread
addf hm2_7i95.0.write         servo-thread

loadrt maho_vfd ports=hm2_7i95.0.pktuart.0
addf maho_vfd.00 servo-thread

start

The console output from starting the script is:
$ halcmd -f pktuart_bug.hal 
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: 10.10.10.10: INFO: Hardware address (MAC): 00:60:1b:15:80:02
hm2_eth: discovered 7I95T
hm2/hm2_7i95.0: Low Level init 0.15
hm2/hm2_7i95.0: Module Descriptor 0 at 0x0440:
hm2/hm2_7i95.0:     General Function Tag: 26 (Hostmot2 DPLL)
hm2/hm2_7i95.0:     Version: 0
hm2/hm2_7i95.0:     Clock Tag: 1 (100.000 MHz)
hm2/hm2_7i95.0:     Instances: 1
hm2/hm2_7i95.0:     Base Address: 0x7000
hm2/hm2_7i95.0:     -- Num Registers: 7
hm2/hm2_7i95.0:     Register Stride: 0x00000100
hm2/hm2_7i95.0:     -- Instance Stride: 0x00000004
hm2/hm2_7i95.0:     -- Multiple Registers: 0x00000000
hm2/hm2_7i95.0: Module Descriptor 1 at 0x044C:
hm2/hm2_7i95.0:     General Function Tag: 2 (Watchdog)
hm2/hm2_7i95.0:     Version: 0
hm2/hm2_7i95.0:     Clock Tag: 1 (100.000 MHz)
hm2/hm2_7i95.0:     Instances: 1
hm2/hm2_7i95.0:     Base Address: 0x0C00
hm2/hm2_7i95.0:     -- Num Registers: 3
hm2/hm2_7i95.0:     Register Stride: 0x00000100
hm2/hm2_7i95.0:     -- Instance Stride: 0x00000004
hm2/hm2_7i95.0:     -- Multiple Registers: 0x00000000
hm2/hm2_7i95.0: Module Descriptor 2 at 0x0458:
hm2/hm2_7i95.0:     General Function Tag: 3 (IOPort)
hm2/hm2_7i95.0:     Version: 0
hm2/hm2_7i95.0:     Clock Tag: 1 (100.000 MHz)
hm2/hm2_7i95.0:     Instances: 2
hm2/hm2_7i95.0:     Base Address: 0x1000
hm2/hm2_7i95.0:     -- Num Registers: 5
hm2/hm2_7i95.0:     Register Stride: 0x00000100
hm2/hm2_7i95.0:     -- Instance Stride: 0x00000004
hm2/hm2_7i95.0:     -- Multiple Registers: 0x0000001F
hm2/hm2_7i95.0: Module Descriptor 3 at 0x0464:
hm2/hm2_7i95.0:     General Function Tag: 12 (Muxed Encoder)
hm2/hm2_7i95.0:     Version: 4
hm2/hm2_7i95.0:     Clock Tag: 1 (100.000 MHz)
hm2/hm2_7i95.0:     Instances: 6
hm2/hm2_7i95.0:     Base Address: 0x3600
hm2/hm2_7i95.0:     -- Num Registers: 5
hm2/hm2_7i95.0:     Register Stride: 0x00000100
hm2/hm2_7i95.0:     -- Instance Stride: 0x00000004
hm2/hm2_7i95.0:     -- Multiple Registers: 0x00000003
hm2/hm2_7i95.0: Module Descriptor 4 at 0x0470:
hm2/hm2_7i95.0:     General Function Tag: 13 (Muxed Encoder Select)
hm2/hm2_7i95.0:     Version: 0
hm2/hm2_7i95.0:     Clock Tag: 1 (100.000 MHz)
hm2/hm2_7i95.0:     Instances: 1
hm2/hm2_7i95.0:     Base Address: 0x0000
hm2/hm2_7i95.0:     -- Num Registers: 0
hm2/hm2_7i95.0:     Register Stride: 0x00000100
hm2/hm2_7i95.0:     -- Instance Stride: 0x00000004
hm2/hm2_7i95.0:     -- Multiple Registers: 0x00000000
hm2/hm2_7i95.0: Module Descriptor 5 at 0x047C:
hm2/hm2_7i95.0:     General Function Tag: 27 (PktUART Transmit Channel)
hm2/hm2_7i95.0:     Version: 2
hm2/hm2_7i95.0:     Clock Tag: 1 (100.000 MHz)
hm2/hm2_7i95.0:     Instances: 1
hm2/hm2_7i95.0:     Base Address: 0x6100
hm2/hm2_7i95.0:     -- Num Registers: 4
hm2/hm2_7i95.0:     Register Stride: 0x00000100
hm2/hm2_7i95.0:     -- Instance Stride: 0x00000004
hm2/hm2_7i95.0:     -- Multiple Registers: 0x0000000F
hm2/hm2_7i95.0: Module Descriptor 6 at 0x0488:
hm2/hm2_7i95.0:     General Function Tag: 28 (PktUART Receive Channel)
hm2/hm2_7i95.0:     Version: 2
hm2/hm2_7i95.0:     Clock Tag: 1 (100.000 MHz)
hm2/hm2_7i95.0:     Instances: 1
hm2/hm2_7i95.0:     Base Address: 0x6500
hm2/hm2_7i95.0:     -- Num Registers: 4
hm2/hm2_7i95.0:     Register Stride: 0x00000100
hm2/hm2_7i95.0:     -- Instance Stride: 0x00000004
hm2/hm2_7i95.0:     -- Multiple Registers: 0x0000000F
hm2/hm2_7i95.0: Module Descriptor 7 at 0x0494:
hm2/hm2_7i95.0:     General Function Tag: 193 (Smart Serial Interface)
hm2/hm2_7i95.0:     Version: 0
hm2/hm2_7i95.0:     Clock Tag: 1 (100.000 MHz)
hm2/hm2_7i95.0:     Instances: 1
hm2/hm2_7i95.0:     Base Address: 0x5B00
hm2/hm2_7i95.0:     -- Num Registers: 6
hm2/hm2_7i95.0:     Register Stride: 0x00000100
hm2/hm2_7i95.0:     -- Instance Stride: 0x00000040
hm2/hm2_7i95.0:     -- Multiple Registers: 0x0000003C
hm2/hm2_7i95.0: Module Descriptor 8 at 0x04A0:
hm2/hm2_7i95.0:     General Function Tag: 5 (StepGen)
hm2/hm2_7i95.0:     Version: 2
hm2/hm2_7i95.0:     Clock Tag: 1 (100.000 MHz)
hm2/hm2_7i95.0:     Instances: 6
hm2/hm2_7i95.0:     Base Address: 0x2000
hm2/hm2_7i95.0:     -- Num Registers: 10
hm2/hm2_7i95.0:     Register Stride: 0x00000100
hm2/hm2_7i95.0:     -- Instance Stride: 0x00000004
hm2/hm2_7i95.0:     -- Multiple Registers: 0x000001FF
hm2/hm2_7i95.0: Module Descriptor 9 at 0x04AC:
hm2/hm2_7i95.0:     General Function Tag: 195 (SSR)
hm2/hm2_7i95.0:     Version: 0
hm2/hm2_7i95.0:     Clock Tag: 1 (100.000 MHz)
hm2/hm2_7i95.0:     Instances: 1
hm2/hm2_7i95.0:     Base Address: 0x7D00
hm2/hm2_7i95.0:     -- Num Registers: 2
hm2/hm2_7i95.0:     Register Stride: 0x00000100
hm2/hm2_7i95.0:     -- Instance Stride: 0x00000004
hm2/hm2_7i95.0:     -- Multiple Registers: 0x00000003
hm2/hm2_7i95.0: Module Descriptor 10 at 0x04B8:
hm2/hm2_7i95.0:     General Function Tag: 30 (InMux Input Mux)
hm2/hm2_7i95.0:     Version: 0
hm2/hm2_7i95.0:     Clock Tag: 1 (100.000 MHz)
hm2/hm2_7i95.0:     Instances: 1
hm2/hm2_7i95.0:     Base Address: 0x8000
hm2/hm2_7i95.0:     -- Num Registers: 5
hm2/hm2_7i95.0:     Register Stride: 0x00000100
hm2/hm2_7i95.0:     -- Instance Stride: 0x00000004
hm2/hm2_7i95.0:     -- Multiple Registers: 0x0000001F
hm2/hm2_7i95.0: Module Descriptor 11 at 0x04C4:
hm2/hm2_7i95.0:     General Function Tag: 128 (LED)
hm2/hm2_7i95.0:     Version: 0
hm2/hm2_7i95.0:     Clock Tag: 1 (100.000 MHz)
hm2/hm2_7i95.0:     Instances: 1
hm2/hm2_7i95.0:     Base Address: 0x0200
hm2/hm2_7i95.0:     -- Num Registers: 1
hm2/hm2_7i95.0:     Register Stride: 0x00000100
hm2/hm2_7i95.0:     -- Instance Stride: 0x00000004
hm2/hm2_7i95.0:     -- Multiple Registers: 0x00000000
hm2/hm2_7i95.0: created PktUART Interface function hm2_7i95.0.pktuart.0.
hm2/hm2_7i95.0: Smart Serial Firmware Version 43
Board hm2_7i95.0.7i84.0.0 Hardware Mode 0 = standard
Board hm2_7i95.0.7i84.0.0 Software Mode 0 = input_output
Board hm2_7i95.0.7i84.0.0 Software Mode 1 = io_analog_fieldvoltage
Board hm2_7i95.0.7i84.0.0 Software Mode 2 = io_encoder_analog
hm2/hm2_7i95.0: 58 I/O Pins used:
hm2/hm2_7i95.0:     IO Pin 000 (TB3-02/TB3-03): StepGen #0, pin Step (Output)
hm2/hm2_7i95.0:     IO Pin 001 (TB3-04/TB3-05): StepGen #0, pin Direction (Output)
hm2/hm2_7i95.0:     IO Pin 002 (TB3-08/TB3-09): StepGen #1, pin Step (Output)
hm2/hm2_7i95.0:     IO Pin 003 (TB3-10/TB3-11): StepGen #1, pin Direction (Output)
hm2/hm2_7i95.0:     IO Pin 004 (TB3-14/TB3-15): StepGen #2, pin Step (Output)
hm2/hm2_7i95.0:     IO Pin 005 (TB3-16/TB3-17): StepGen #2, pin Direction (Output)
hm2/hm2_7i95.0:     IO Pin 006 (TB3-20/TB3-21): StepGen #3, pin Step (Output)
hm2/hm2_7i95.0:     IO Pin 007 (TB3-22/TB3-23): StepGen #3, pin Direction (Output)
hm2/hm2_7i95.0:     IO Pin 008 (TB4-02/TB4-03): StepGen #4, pin Step (Output)
hm2/hm2_7i95.0:     IO Pin 009 (TB4-04/TB4-05): StepGen #4, pin Direction (Output)
hm2/hm2_7i95.0:     IO Pin 010 (TB4-08/TB4-09): IOPort
hm2/hm2_7i95.0:     IO Pin 011 (TB4-10/TB4-11): IOPort
hm2/hm2_7i95.0:     IO Pin 012 (TB4-14/TB4-15): Smart Serial Interface #0, pin rx0 (Input)
hm2/hm2_7i95.0:     IO Pin 013 (TB4-16/TB4-17): Smart Serial Interface #0, pin tx0 (Output)
hm2/hm2_7i95.0:     IO Pin 014 (TB3-16/TB3-17): Smart Serial Interface #0, pin txen0 (Output)
hm2/hm2_7i95.0:     IO Pin 015 (TB4-20/TB4-21): PktUART Receive Channel #0, pin RX Data (Input)
hm2/hm2_7i95.0:     IO Pin 016 (TB4-22/TB4-23): PktUART Transmit Channel #0, pin TX Data (Output)
hm2/hm2_7i95.0:     IO Pin 017 (TB4-22/TB4-23): PktUART Transmit Channel #0, pin Drv Enable (Output)
hm2/hm2_7i95.0:     IO Pin 018 (TB1-01/TB1-09): Muxed Encoder #0, pin Muxed A (Input)
hm2/hm2_7i95.0:     IO Pin 019 (TB1-04/TB1-12): Muxed Encoder #0, pin Muxed B (Input)
hm2/hm2_7i95.0:     IO Pin 020 (TB1-07/TB1-15): Muxed Encoder #0, pin Muxed Index (Input)
hm2/hm2_7i95.0:     IO Pin 021 (TB1-17/TB2-01): Muxed Encoder #1, pin Muxed A (Input)
hm2/hm2_7i95.0:     IO Pin 022 (TB1-20/TB2-04): Muxed Encoder #1, pin Muxed B (Input)
hm2/hm2_7i95.0:     IO Pin 023 (TB1-23/TB2-07): Muxed Encoder #1, pin Muxed Index (Input)
hm2/hm2_7i95.0:     IO Pin 024 (TB2-09/TB2-17): Muxed Encoder #2, pin Muxed A (Input)
hm2/hm2_7i95.0:     IO Pin 025 (TB2-12/TB2-20): Muxed Encoder #2, pin Muxed B (Input)
hm2/hm2_7i95.0:     IO Pin 026 (TB2-15/TB2-23): Muxed Encoder #2, pin Muxed Index (Input)
hm2/hm2_7i95.0:     IO Pin 027 (Internal EncMux): Muxed Encoder Select #0, pin Mux Select 0 (Output)
hm2/hm2_7i95.0:     IO Pin 028 (Internal InMux0): IOPort
hm2/hm2_7i95.0:     IO Pin 029 (Internal InMux1): IOPort
hm2/hm2_7i95.0:     IO Pin 030 (Internal InMux2): IOPort
hm2/hm2_7i95.0:     IO Pin 031 (Internal InMux3): IOPort
hm2/hm2_7i95.0:     IO Pin 032 (Internal InMux4): IOPort
hm2/hm2_7i95.0:     IO Pin 033 (Internal InMuxData): IOPort
hm2/hm2_7i95.0:     IO Pin 034 (TB5-13/TB5-14): IOPort
hm2/hm2_7i95.0:     IO Pin 035 (TB5-15/TB5-16): IOPort
hm2/hm2_7i95.0:     IO Pin 036 (TB5-17/TB5-18): IOPort
hm2/hm2_7i95.0:     IO Pin 037 (TB5-19/TB5-20): IOPort
hm2/hm2_7i95.0:     IO Pin 038 (TB5-21/TB5-22): IOPort
hm2/hm2_7i95.0:     IO Pin 039 (TB5-23/TB5-24): IOPort
hm2/hm2_7i95.0:     IO Pin 040 (internal): IOPort
hm2/hm2_7i95.0:     IO Pin 041 (P1-01/DB25-01): IOPort
hm2/hm2_7i95.0:     IO Pin 042 (P1-02/DB25-14): IOPort
hm2/hm2_7i95.0:     IO Pin 043 (P1-03/DB25-02): IOPort
hm2/hm2_7i95.0:     IO Pin 044 (P1-04/DB25-15): IOPort
hm2/hm2_7i95.0:     IO Pin 045 (P1-05/DB25-03): IOPort
hm2/hm2_7i95.0:     IO Pin 046 (P1-06/DB25-16): IOPort
hm2/hm2_7i95.0:     IO Pin 047 (P1-07/DB25-04): IOPort
hm2/hm2_7i95.0:     IO Pin 048 (P1-08/DB25-17): IOPort
hm2/hm2_7i95.0:     IO Pin 049 (P1-09/DB25-05): IOPort
hm2/hm2_7i95.0:     IO Pin 050 (P1-11/DB25-06): IOPort
hm2/hm2_7i95.0:     IO Pin 051 (P1-13/DB25-07): IOPort
hm2/hm2_7i95.0:     IO Pin 052 (P1-15/DB25-08): IOPort
hm2/hm2_7i95.0:     IO Pin 053 (P1-17/DB25-09): IOPort
hm2/hm2_7i95.0:     IO Pin 054 (P1-19/DB25-10): IOPort
hm2/hm2_7i95.0:     IO Pin 055 (P1-21/DB25-11): IOPort
hm2/hm2_7i95.0:     IO Pin 056 (P1-23/DB25-12): IOPort
hm2/hm2_7i95.0:     IO Pin 057 (P1-25/DB25-13): IOPort
hm2/hm2_7i95.0: HM2 Modules used:
hm2/hm2_7i95.0: Encoders: 6
hm2/hm2_7i95.0:     clock_frequency: 100000000 Hz (100.000 MHz)
hm2/hm2_7i95.0:     version: 4
hm2/hm2_7i95.0:     counter_addr: 0x3600
hm2/hm2_7i95.0:     latch_control_addr: 0x3700
hm2/hm2_7i95.0:     timestamp_div_addr: 0x3800
hm2/hm2_7i95.0:     timestamp_count_addr: 0x3900
hm2/hm2_7i95.0:     filter_rate_addr: 0x3A00
hm2/hm2_7i95.0:     timestamp_div: 0x0000
hm2/hm2_7i95.0:     instance 0:
hm2/hm2_7i95.0:         hw:
hm2/hm2_7i95.0:             counter = 4aec.0001
hm2/hm2_7i95.0:             latch/control = 0000.0800
hm2/hm2_7i95.0:             prev_control = 0000.0800
hm2/hm2_7i95.0:     instance 1:
hm2/hm2_7i95.0:         hw:
hm2/hm2_7i95.0:             counter = 0000.0000
hm2/hm2_7i95.0:             latch/control = 0000.0800
hm2/hm2_7i95.0:             prev_control = 0000.0800
hm2/hm2_7i95.0:     instance 2:
hm2/hm2_7i95.0:         hw:
hm2/hm2_7i95.0:             counter = 90db.ffff
hm2/hm2_7i95.0:             latch/control = 0000.0800
hm2/hm2_7i95.0:             prev_control = 0000.0800
hm2/hm2_7i95.0:     instance 3:
hm2/hm2_7i95.0:         hw:
hm2/hm2_7i95.0:             counter = 003d.ffff
hm2/hm2_7i95.0:             latch/control = 0000.0800
hm2/hm2_7i95.0:             prev_control = 0000.0800
hm2/hm2_7i95.0:     instance 4:
hm2/hm2_7i95.0:         hw:
hm2/hm2_7i95.0:             counter = 0000.0000
hm2/hm2_7i95.0:             latch/control = 0000.0800
hm2/hm2_7i95.0:             prev_control = 0000.0800
hm2/hm2_7i95.0:     instance 5:
hm2/hm2_7i95.0:         hw:
hm2/hm2_7i95.0:             counter = 0000.0000
hm2/hm2_7i95.0:             latch/control = 0000.0800
hm2/hm2_7i95.0:             prev_control = 0000.0800
hm2/hm2_7i95.0: SSerial: 1
hm2/hm2_7i95.0:   version 43
hm2/hm2_7i95.0:     instance 0:
hm2/hm2_7i95.0:         Command Addr 0x5b00
hm2/hm2_7i95.0:         Data Addr    0x5c00
hm2/hm2_7i95.0:         port 0 device hm2_7i95.0.7i84.0.0
hm2/hm2_7i95.0:              Parameters:
hm2/hm2_7i95.0:                    RecordType = 0xa0
hm2/hm2_7i95.0:                    DataLength = 0x20
hm2/hm2_7i95.0:                    DataType = 0x01
hm2/hm2_7i95.0:                    DataDir = 0x00
hm2/hm2_7i95.0:                    ParmMax 1.00
hm2/hm2_7i95.0:                    ParmMin 0.00
hm2/hm2_7i95.0:                    SizeOf ParmMin 0x04
hm2/hm2_7i95.0:                    ParmAddr = 0x0808
hm2/hm2_7i95.0:                    UnitString = none
hm2/hm2_7i95.0:                    NameString = input

hm2/hm2_7i95.0:                    RecordType = 0xa0
hm2/hm2_7i95.0:                    DataLength = 0x10
hm2/hm2_7i95.0:                    DataType = 0x01
hm2/hm2_7i95.0:                    DataDir = 0x80
hm2/hm2_7i95.0:                    ParmMax 1.00
hm2/hm2_7i95.0:                    ParmMin 0.00
hm2/hm2_7i95.0:                    SizeOf ParmMin 0x04
hm2/hm2_7i95.0:                    ParmAddr = 0x0800
hm2/hm2_7i95.0:                    UnitString = none
hm2/hm2_7i95.0:                    NameString = output

hm2/hm2_7i95.0:              Globals:
hm2/hm2_7i95.0:                    RecordType = 0xa0
hm2/hm2_7i95.0:                    DataLength = 0x08
hm2/hm2_7i95.0:                    DataType = 0x02
hm2/hm2_7i95.0:                    DataDir = 0x00
hm2/hm2_7i95.0:                    ParmMax 36.29
hm2/hm2_7i95.0:                    ParmMin 0.00
hm2/hm2_7i95.0:                    SizeOf ParmMin 4
hm2/hm2_7i95.0:                    ParmAddr = 0x0810
hm2/hm2_7i95.0:                    UnitString = volts
hm2/hm2_7i95.0:                    NameString = analogin0

hm2/hm2_7i95.0:                    RecordType = 0xa0
hm2/hm2_7i95.0:                    DataLength = 0x08
hm2/hm2_7i95.0:                    DataType = 0x02
hm2/hm2_7i95.0:                    DataDir = 0x00
hm2/hm2_7i95.0:                    ParmMax 36.29
hm2/hm2_7i95.0:                    ParmMin 0.00
hm2/hm2_7i95.0:                    SizeOf ParmMin 4
hm2/hm2_7i95.0:                    ParmAddr = 0x0811
hm2/hm2_7i95.0:                    UnitString = volts
hm2/hm2_7i95.0:                    NameString = analogin1

hm2/hm2_7i95.0:                    RecordType = 0xa0
hm2/hm2_7i95.0:                    DataLength = 0x08
hm2/hm2_7i95.0:                    DataType = 0x02
hm2/hm2_7i95.0:                    DataDir = 0x00
hm2/hm2_7i95.0:                    ParmMax 36.29
hm2/hm2_7i95.0:                    ParmMin 0.00
hm2/hm2_7i95.0:                    SizeOf ParmMin 4
hm2/hm2_7i95.0:                    ParmAddr = 0x0812
hm2/hm2_7i95.0:                    UnitString = volts
hm2/hm2_7i95.0:                    NameString = analogin2

hm2/hm2_7i95.0:                    RecordType = 0xa0
hm2/hm2_7i95.0:                    DataLength = 0x08
hm2/hm2_7i95.0:                    DataType = 0x02
hm2/hm2_7i95.0:                    DataDir = 0x00
hm2/hm2_7i95.0:                    ParmMax 36.29
hm2/hm2_7i95.0:                    ParmMin 0.00
hm2/hm2_7i95.0:                    SizeOf ParmMin 4
hm2/hm2_7i95.0:                    ParmAddr = 0x0813
hm2/hm2_7i95.0:                    UnitString = volts
hm2/hm2_7i95.0:                    NameString = analogin3

hm2/hm2_7i95.0:                    RecordType = 0xa0
hm2/hm2_7i95.0:                    DataLength = 0x08
hm2/hm2_7i95.0:                    DataType = 0x08
hm2/hm2_7i95.0:                    DataDir = 0x00
hm2/hm2_7i95.0:                    ParmMax 0.00
hm2/hm2_7i95.0:                    ParmMin 0.00
hm2/hm2_7i95.0:                    SizeOf ParmMin 4
hm2/hm2_7i95.0:                    ParmAddr = 0x09a0
hm2/hm2_7i95.0:                    UnitString = counts
hm2/hm2_7i95.0:                    NameString = enc0

hm2/hm2_7i95.0:                    RecordType = 0xa0
hm2/hm2_7i95.0:                    DataLength = 0x08
hm2/hm2_7i95.0:                    DataType = 0x08
hm2/hm2_7i95.0:                    DataDir = 0x00
hm2/hm2_7i95.0:                    ParmMax 0.00
hm2/hm2_7i95.0:                    ParmMin 0.00
hm2/hm2_7i95.0:                    SizeOf ParmMin 4
hm2/hm2_7i95.0:                    ParmAddr = 0x09a2
hm2/hm2_7i95.0:                    UnitString = counts
hm2/hm2_7i95.0:                    NameString = enc1

hm2/hm2_7i95.0:                    RecordType = 0xa0
hm2/hm2_7i95.0:                    DataLength = 0x10
hm2/hm2_7i95.0:                    DataType = 0x02
hm2/hm2_7i95.0:                    DataDir = 0x00
hm2/hm2_7i95.0:                    ParmMax 36.29
hm2/hm2_7i95.0:                    ParmMin 0.00
hm2/hm2_7i95.0:                    SizeOf ParmMin 4
hm2/hm2_7i95.0:                    ParmAddr = 0x08a6
hm2/hm2_7i95.0:                    UnitString = volts
hm2/hm2_7i95.0:                    NameString = fieldvoltagea

hm2/hm2_7i95.0:                    RecordType = 0xa0
hm2/hm2_7i95.0:                    DataLength = 0x10
hm2/hm2_7i95.0:                    DataType = 0x02
hm2/hm2_7i95.0:                    DataDir = 0x00
hm2/hm2_7i95.0:                    ParmMax 36.29
hm2/hm2_7i95.0:                    ParmMin 0.00
hm2/hm2_7i95.0:                    SizeOf ParmMin 4
hm2/hm2_7i95.0:                    ParmAddr = 0x08a8
hm2/hm2_7i95.0:                    UnitString = volts
hm2/hm2_7i95.0:                    NameString = fieldvoltageb

hm2/hm2_7i95.0:                    RecordType = 0xa0
hm2/hm2_7i95.0:                    DataLength = 0x10
hm2/hm2_7i95.0:                    DataType = 0x02
hm2/hm2_7i95.0:                    DataDir = 0x00
hm2/hm2_7i95.0:                    ParmMax 0.00
hm2/hm2_7i95.0:                    ParmMin 0.00
hm2/hm2_7i95.0:                    SizeOf ParmMin 4
hm2/hm2_7i95.0:                    ParmAddr = 0x095c
hm2/hm2_7i95.0:                    UnitString = none
hm2/hm2_7i95.0:                    NameString = swrevision

hm2/hm2_7i95.0:                    RecordType = 0xa0
hm2/hm2_7i95.0:                    DataLength = 0x10
hm2/hm2_7i95.0:                    DataType = 0x02
hm2/hm2_7i95.0:                    DataDir = 0x00
hm2/hm2_7i95.0:                    ParmMax 0.00
hm2/hm2_7i95.0:                    ParmMin 0.00
hm2/hm2_7i95.0:                    SizeOf ParmMin 4
hm2/hm2_7i95.0:                    ParmAddr = 0x0974
hm2/hm2_7i95.0:                    UnitString = none
hm2/hm2_7i95.0:                    NameString = hwrevision

hm2/hm2_7i95.0:                    RecordType = 0xa0
hm2/hm2_7i95.0:                    DataLength = 0x20
hm2/hm2_7i95.0:                    DataType = 0x04
hm2/hm2_7i95.0:                    DataDir = 0x00
hm2/hm2_7i95.0:                    ParmMax 0.00
hm2/hm2_7i95.0:                    ParmMin 0.00
hm2/hm2_7i95.0:                    SizeOf ParmMin 4
hm2/hm2_7i95.0:                    ParmAddr = 0x0078
hm2/hm2_7i95.0:                    UnitString = none
hm2/hm2_7i95.0:                    NameString = nvunitnumber

hm2/hm2_7i95.0:                    RecordType = 0xa0
hm2/hm2_7i95.0:                    DataLength = 0x10
hm2/hm2_7i95.0:                    DataType = 0x04
hm2/hm2_7i95.0:                    DataDir = 0x40
hm2/hm2_7i95.0:                    ParmMax 0.00
hm2/hm2_7i95.0:                    ParmMin 0.00
hm2/hm2_7i95.0:                    SizeOf ParmMin 4
hm2/hm2_7i95.0:                    ParmAddr = 0x0064
hm2/hm2_7i95.0:                    UnitString = none
hm2/hm2_7i95.0:                    NameString = nvwatchdogtimeout

hm2/hm2_7i95.0:                    RecordType = 0xa0
hm2/hm2_7i95.0:                    DataLength = 0x10
hm2/hm2_7i95.0:                    DataType = 0x02
hm2/hm2_7i95.0:                    DataDir = 0x40
hm2/hm2_7i95.0:                    ParmMax 0.00
hm2/hm2_7i95.0:                    ParmMin 0.00
hm2/hm2_7i95.0:                    SizeOf ParmMin 4
hm2/hm2_7i95.0:                    ParmAddr = 0x0998
hm2/hm2_7i95.0:                    UnitString = none
hm2/hm2_7i95.0:                    NameString = encmode0

hm2/hm2_7i95.0:                    RecordType = 0xa0
hm2/hm2_7i95.0:                    DataLength = 0x10
hm2/hm2_7i95.0:                    DataType = 0x02
hm2/hm2_7i95.0:                    DataDir = 0x40
hm2/hm2_7i95.0:                    ParmMax 0.00
hm2/hm2_7i95.0:                    ParmMin 0.00
hm2/hm2_7i95.0:                    SizeOf ParmMin 4
hm2/hm2_7i95.0:                    ParmAddr = 0x099a
hm2/hm2_7i95.0:                    UnitString = none
hm2/hm2_7i95.0:                    NameString = encmode1

hm2/hm2_7i95.0:                    RecordType = 0xa0
hm2/hm2_7i95.0:                    DataLength = 0x10
hm2/hm2_7i95.0:                    DataType = 0x04
hm2/hm2_7i95.0:                    DataDir = 0x40
hm2/hm2_7i95.0:                    ParmMax 0.00
hm2/hm2_7i95.0:                    ParmMin 0.00
hm2/hm2_7i95.0:                    SizeOf ParmMin 4
hm2/hm2_7i95.0:                    ParmAddr = 0x0066
hm2/hm2_7i95.0:                    UnitString = none
hm2/hm2_7i95.0:                    NameString = nvencmode0

hm2/hm2_7i95.0:                    RecordType = 0xa0
hm2/hm2_7i95.0:                    DataLength = 0x10
hm2/hm2_7i95.0:                    DataType = 0x04
hm2/hm2_7i95.0:                    DataDir = 0x40
hm2/hm2_7i95.0:                    ParmMax 0.00
hm2/hm2_7i95.0:                    ParmMin 0.00
hm2/hm2_7i95.0:                    SizeOf ParmMin 4
hm2/hm2_7i95.0:                    ParmAddr = 0x0068
hm2/hm2_7i95.0:                    UnitString = none
hm2/hm2_7i95.0:                    NameString = nvencmode1

hm2/hm2_7i95.0:              Modes:
hm2/hm2_7i95.0:                RecordType = 0xb0
hm2/hm2_7i95.0:                ModeIndex = 0x00
hm2/hm2_7i95.0:                ModeType = 0x00
hm2/hm2_7i95.0:                Unused = 0
hm2/hm2_7i95.0:                NameString = standard

hm2/hm2_7i95.0:                RecordType = 0xb0
hm2/hm2_7i95.0:                ModeIndex = 0x00
hm2/hm2_7i95.0:                ModeType = 0x01
hm2/hm2_7i95.0:                Unused = 0
hm2/hm2_7i95.0:                NameString = input_output

hm2/hm2_7i95.0: 
hm2/hm2_7i95.0: StepGen: 5
hm2/hm2_7i95.0:     clock_frequency: 100000000 Hz (100.000 MHz)
hm2/hm2_7i95.0:     version: 2
hm2/hm2_7i95.0:     step_rate_addr: 0x2000
hm2/hm2_7i95.0:     accumulator_addr: 0x2100
hm2/hm2_7i95.0:     mode_addr: 0x2200
hm2/hm2_7i95.0:     dir_setup_time_addr: 0x2300
hm2/hm2_7i95.0:     dir_hold_time_addr: 0x2400
hm2/hm2_7i95.0:     pulse_width_addr: 0x2500
hm2/hm2_7i95.0:     pulse_idle_width_addr: 0x2600
hm2/hm2_7i95.0:     table_sequence_data_setup_addr: 0x2700
hm2/hm2_7i95.0:     table_sequence_length_addr: 0x2800
hm2/hm2_7i95.0:     master_dds_addr: 0x2900
hm2/hm2_7i95.0:     instance 0:
hm2/hm2_7i95.0:         enable = 0
hm2/hm2_7i95.0:         hw:
hm2/hm2_7i95.0:             step_rate = 0x00000000
hm2/hm2_7i95.0:             accumulator = 0x00000000
hm2/hm2_7i95.0:             mode = 0x00000000
hm2/hm2_7i95.0:             dir_setup_time = 0x00003FFF (163830 ns)
hm2/hm2_7i95.0:             dir_hold_time = 0x00003FFF (163830 ns)
hm2/hm2_7i95.0:             pulse_width = 0x00003FFF (163830 ns)
hm2/hm2_7i95.0:             pulse_idle_width = 0x00003FFF (163830 ns)
hm2/hm2_7i95.0:     instance 1:
hm2/hm2_7i95.0:         enable = 0
hm2/hm2_7i95.0:         hw:
hm2/hm2_7i95.0:             step_rate = 0x00000000
hm2/hm2_7i95.0:             accumulator = 0x00000000
hm2/hm2_7i95.0:             mode = 0x00000000
hm2/hm2_7i95.0:             dir_setup_time = 0x00003FFF (163830 ns)
hm2/hm2_7i95.0:             dir_hold_time = 0x00003FFF (163830 ns)
hm2/hm2_7i95.0:             pulse_width = 0x00003FFF (163830 ns)
hm2/hm2_7i95.0:             pulse_idle_width = 0x00003FFF (163830 ns)
hm2/hm2_7i95.0:     instance 2:
hm2/hm2_7i95.0:         enable = 0
hm2/hm2_7i95.0:         hw:
hm2/hm2_7i95.0:             step_rate = 0x00000000
hm2/hm2_7i95.0:             accumulator = 0x00000000
hm2/hm2_7i95.0:             mode = 0x00000000
hm2/hm2_7i95.0:             dir_setup_time = 0x00003FFF (163830 ns)
hm2/hm2_7i95.0:             dir_hold_time = 0x00003FFF (163830 ns)
hm2/hm2_7i95.0:             pulse_width = 0x00003FFF (163830 ns)
hm2/hm2_7i95.0:             pulse_idle_width = 0x00003FFF (163830 ns)
hm2/hm2_7i95.0:     instance 3:
hm2/hm2_7i95.0:         enable = 0
hm2/hm2_7i95.0:         hw:
hm2/hm2_7i95.0:             step_rate = 0x00000000
hm2/hm2_7i95.0:             accumulator = 0x00000000
hm2/hm2_7i95.0:             mode = 0x00000000
hm2/hm2_7i95.0:             dir_setup_time = 0x00003FFF (163830 ns)
hm2/hm2_7i95.0:             dir_hold_time = 0x00003FFF (163830 ns)
hm2/hm2_7i95.0:             pulse_width = 0x00003FFF (163830 ns)
hm2/hm2_7i95.0:             pulse_idle_width = 0x00003FFF (163830 ns)
hm2/hm2_7i95.0:     instance 4:
hm2/hm2_7i95.0:         enable = 0
hm2/hm2_7i95.0:         hw:
hm2/hm2_7i95.0:             step_rate = 0x00000000
hm2/hm2_7i95.0:             accumulator = 0x00000000
hm2/hm2_7i95.0:             mode = 0x00000000
hm2/hm2_7i95.0:             dir_setup_time = 0x00003FFF (163830 ns)
hm2/hm2_7i95.0:             dir_hold_time = 0x00003FFF (163830 ns)
hm2/hm2_7i95.0:             pulse_width = 0x00003FFF (163830 ns)
hm2/hm2_7i95.0:             pulse_idle_width = 0x00003FFF (163830 ns)
hm2/hm2_7i95.0: IO Ports: 2
hm2/hm2_7i95.0:     clock_frequency: 100000000 Hz (100.000 MHz)
hm2/hm2_7i95.0:     version: 0
hm2/hm2_7i95.0:     data_addr: 0x1000
hm2/hm2_7i95.0:     ddr_addr: 0x1100
hm2/hm2_7i95.0:     alt_source_addr: 0x1200
hm2/hm2_7i95.0:     open_drain_addr: 0x1300
hm2/hm2_7i95.0:     output_invert_addr: 0x1400
hm2/hm2_7i95.0:     instance 0:
hm2/hm2_7i95.0:         data_read = 0x1427BFFF
hm2/hm2_7i95.0:         data_write = 0x000000
hm2/hm2_7i95.0:         ddr = 0x8036000
hm2/hm2_7i95.0:         alt_source = 0xFFFF3FF
hm2/hm2_7i95.0:         open_drain = 0x000000
hm2/hm2_7i95.0:         output_invert = 0x000000
hm2/hm2_7i95.0:     instance 1:
hm2/hm2_7i95.0:         data_read = 0x1FFFFFEF
hm2/hm2_7i95.0:         data_write = 0x000000
hm2/hm2_7i95.0:         ddr = 0x000000
hm2/hm2_7i95.0:         alt_source = 0x000000
hm2/hm2_7i95.0:         open_drain = 0x000000
hm2/hm2_7i95.0:         output_invert = 0x000000
hm2/hm2_7i95.0: Watchdog: 1
hm2/hm2_7i95.0:     clock_frequency: 100000000 Hz (100.000 MHz)
hm2/hm2_7i95.0:     version: 0
hm2/hm2_7i95.0:     timer_addr: 0x0C00
hm2/hm2_7i95.0:     status_addr: 0x0D00
hm2/hm2_7i95.0:     reset_addr: 0x0E00
hm2/hm2_7i95.0:     instance 0:
hm2/hm2_7i95.0:         param timeout_ns = 5000000
hm2/hm2_7i95.0:         pin has_bit = 0
hm2/hm2_7i95.0:         reg timer = 0x80000000
hm2/hm2_7i95.0: registered

I took a network capture of running the script and stopped it only once I had seen a position-fb peak in halscope. The file is attached. I also created a small python program to parse the capture file, and I have attached that as well. With the parse and capture file, I run the following commands:
$ ./lbp16.py capture.pcap > capture.txt
$
$ cat capture.txt | grep "ADDRESS 0x2000" | grep -v "DATA 0x0000000000000000000000000000000000000000"
$
$ cat capture.txt | grep "ADDRESS 0x2100" | grep -v "DATA 0x0000000000000000000000000000000000000000"
$

None of the commands generate any output. This means that step rate register 0x2000 is never written anything else than 0, and the accumulator registers 0x2100 never reads anything else than 0.

I'm not exactly sure what my next step is at the moment. But if you think mesa modbus is the prime suspect, I might start looking around at that code.
 

File Attachment:

File Name: capture.zip
File Size:381 KB

 

File Attachment:

File Name: lbp16.py
File Size:5 KB


edit: I added the the output from parsing the capture file by lbp16.py (plain text)
 

File Attachment:

File Name: capture-parsed.zip
File Size:1,083 KB

edit2: Editing messed up the code codes... hopefully fixed now
  • tommylight
  • tommylight's Avatar
05 Nov 2024 12:38
Replied by tommylight on topic Pi-5, NVMe and Mesa

Pi-5, NVMe and Mesa

Category: Installing LinuxCNC

RPI5 works for sure, the network must be set up for Mesa, usually using Network Manager, but i do not know if RPI uses Network Manager.
It just needs setting the network to 10.10.10.11 or 192.168.1.11 on RPI, depending on what Mesa is set to with jumpers.
  • tommylight
  • tommylight's Avatar
05 Nov 2024 12:33
  • xenon-alien
  • xenon-alien's Avatar
05 Nov 2024 12:31
Replied by xenon-alien on topic mb2hal sets up float pins. Can this be fixed?

mb2hal sets up float pins. Can this be fixed?

Category: General LinuxCNC Questions

Hello!

Is it possible to see the sent value from rs485 as a negative value in the 1.1 version in 2.9.3 LCNC?
I want to read the torque, rpm etc. and they have negative value, but i see only 65k number.
  • tommylight
  • tommylight's Avatar
05 Nov 2024 12:30
Replied by tommylight on topic LinuxCNC Error

LinuxCNC Error

Category: General LinuxCNC Questions

Do you also have the RTAI version of LinuxCNC? It seems you do as the .ko should be RTAI and .so should be Preempt.
Paste the full error report here, please.
  • tommylight
  • tommylight's Avatar
05 Nov 2024 12:27
Replied by tommylight on topic Controlling a compressor with Linuxcnc.

Controlling a compressor with Linuxcnc.

Category: Plasmac

Probably yes, it will be a bit tricky to figure out when to stop, one option would be when motion is rapid (going from one cut to another), still, i think you would need another sensor to notify LinuxCNC it is safe to continue.
2 pressure sensors should do just fine, one for low and the other for high, or use the existing one in compressor for the high side, but this complicates wiring and logic a bit more.
Displaying 21616 - 21630 out of 22570 results.
Time to create page: 0.442 seconds
Powered by Kunena Forum