RPI 4 + Mesa 7c80 VFD Spindle Config

More
23 Feb 2021 02:42 - 23 Feb 2021 03:03 #199793 by BenStPierre
Hello,

I've been reading many posts on the forum for a while now and there's a lot of information out there, but not much for the Mesa 7c80.
I'm currently running the master branch and have followed this post for the most part: forum.linuxcnc.org/27-driver-boards/40315-7c80-install-on-rpi-4

I'm trying to use the mesa analog spindle output to control my VFD and so far I'm stuck at the spindle enable pins. I have found that on the 7c80 spindle enable is gpio 20 and spindle direction is gpio 21, but I'm missing something somewhere because I can't get any spindle control output from the board itself.

I have found the issue to be the same as on this post: 162.243.45.186/39-pncconf/37417-spindle-...QNo6Gd3tGeITry6bKChE
but on the mesa 7c80. Can anybody point me out in the correct direction?

This is the error: ./metal_3D_printer.hal:363: Pin 'hm2_7c80.0.spinena' does not exist

What are the spindle pins for the 7c80?
I suspect that the firmware on the mesa needs to be flashed (now it's as received from Mesa) to enable the spindle output or something. running readhmid gives this: (I'll also attach the .hal and .ini)
Configuration Name: HOSTMOT2

General configuration information:

  BoardName : MESA7C80
  FPGA Size: 9 KGates
  FPGA Pins: 144
  Number of IO Ports: 2
  Width of one I/O port: 27
  Clock Low frequency: 100.0000 MHz
  Clock High frequency: 200.0000 MHz
  IDROM Type: 3
  Instance Stride 0: 4
  Instance Stride 1: 64
  Register Stride 0: 256
  Register Stride 1: 256

Modules in configuration:

  Module: DPLL
  There are 1 of DPLL in configuration
  Version: 0
  Registers: 7
  BaseAddress: 7000
  ClockFrequency: 100.000 MHz
  Register Stride: 256 bytes
  Instance Stride: 4 bytes

  Module: WatchDog
  There are 1 of WatchDog in configuration
  Version: 0
  Registers: 3
  BaseAddress: 0C00
  ClockFrequency: 100.000 MHz
  Register Stride: 256 bytes
  Instance Stride: 4 bytes

  Module: IOPort
  There are 2 of IOPort in configuration
  Version: 0
  Registers: 5
  BaseAddress: 1000
  ClockFrequency: 100.000 MHz
  Register Stride: 256 bytes
  Instance Stride: 4 bytes

  Module: QCount
  There are 1 of QCount in configuration
  Version: 2
  Registers: 5
  BaseAddress: 3000
  ClockFrequency: 100.000 MHz
  Register Stride: 256 bytes
  Instance Stride: 4 bytes

  Module: StepGen
  There are 6 of StepGen in configuration
  Version: 2
  Registers: 10
  BaseAddress: 2000
  ClockFrequency: 100.000 MHz
  Register Stride: 256 bytes
  Instance Stride: 4 bytes

  Module: SSerial
  There are 1 of SSerial in configuration
  Version: 0
  Registers: 6
  BaseAddress: 5B00
  ClockFrequency: 100.000 MHz
  Register Stride: 256 bytes
  Instance Stride: 64 bytes

  Module: PWM
  There are 1 of PWM in configuration
  Version: 0
  Registers: 5
  BaseAddress: 4100
  ClockFrequency: 200.000 MHz
  Register Stride: 256 bytes
  Instance Stride: 4 bytes

  Module: SSR
  There are 1 of SSR in configuration
  Version: 0
  Registers: 2
  BaseAddress: 7D00
  ClockFrequency: 100.000 MHz
  Register Stride: 256 bytes
  Instance Stride: 4 bytes

  Module: InMux
  There are 1 of InMux in configuration
  Version: 0
  Registers: 5
  BaseAddress: 8000
  ClockFrequency: 100.000 MHz
  Register Stride: 256 bytes
  Instance Stride: 4 bytes

  Module: LED
  There are 1 of LED in configuration
  Version: 0
  Registers: 1
  BaseAddress: 0200
  ClockFrequency: 100.000 MHz
  Register Stride: 256 bytes
  Instance Stride: 4 bytes

Configuration pin-out:

IO Connections for StepGens+Misc
Pin#                  I/O   Pri. func    Sec. func       Chan      Pin func        Pin Dir

TB7 2,3                 0   IOPort       StepGen          0        Step/Table1     (Out)
TB7 4,5                 1   IOPort       StepGen          0        Dir/Table2      (Out)
TB8 2,3                 2   IOPort       StepGen          1        Step/Table1     (Out)
TB8 4,5                 3   IOPort       StepGen          1        Dir/Table2      (Out)
TB9 2,3                 4   IOPort       StepGen          2        Step/Table1     (Out)
TB9 4,5                 5   IOPort       StepGen          2        Dir/Table2      (Out)
TB10 2,3                6   IOPort       StepGen          3        Step/Table1     (Out)
TB10 4,5                7   IOPort       StepGen          3        Dir/Table2      (Out)
TB11 2,3                8   IOPort       StepGen          4        Step/Table1     (Out)
TB11 4,5                9   IOPort       StepGen          4        Dir/Table2      (Out)
TB12 2,3               10   IOPort       StepGen          5        Step/Table1     (Out)
TB13 4,5               11   IOPort       StepGen          5        Dir/Table2      (Out)
TB3 3,4                12   IOPort       SSerial          0        RXData0         (In)
TB3 5,6                13   IOPort       SSerial          0        TXData0         (Out)
Internal               14   IOPort       SSerial          0        TXEn0           (Out)
TB4 1,2                15   IOPort       QCount           0        Quad-A          (In)
TB4 4,5                16   IOPort       QCount           0        Quad-B          (In)
TB4 7,8                17   IOPort       QCount           0        Quad-IDX        (In)
TB5 2                  18   IOPort       PWM              0        PWM             (Out)
TB5 2                  19   IOPort       PWM              0        /Enable         (Out)
TB5 5,6                20   IOPort       None           
TB5 7,8Internal        21   IOPort       None           
Internal               22   IOPort       InMux            0        Addr0           (Out)
Internal               23   IOPort       InMux            0        Addr1           (Out)
Internal               24   IOPort       InMux            0        Addr2           (Out)
Internal               25   IOPort       InMux            0        Addr3           (Out)
(null)                 26   IOPort       InMux            0        Addr4           (Out)

IO Connections for Outputs+P1
Pin#                  I/O   Pri. func    Sec. func       Chan      Pin func        Pin Dir

Internal               27   IOPort       InMux            0        Data0           (In)
TB13 1,2               28   IOPort       SSR              0        Out-00          (Out)
TB13 3,4               29   IOPort       SSR              0        Out-01          (Out)
TB13 5,6               30   IOPort       SSR              0        Out-02          (Out)
TB13 7,8               31   IOPort       SSR              0        Out-03          (Out)
TB14 1,2               32   IOPort       SSR              0        Out-04          (Out)
TB14 3,4               33   IOPort       SSR              0        Out-05          (Out)
TB14 5,6               34   IOPort       SSR              0        Out-06          (Out)
TB14 7,8               35   IOPort       SSR              0        Out-07          (Out)
Internal               36   IOPort       SSR              0        AC Ref          (Out)
P1 1                   37   IOPort       None           
P1 14                  38   IOPort       None           
P1 2                   39   IOPort       None           
P1 15                  40   IOPort       None           
P1 3                   41   IOPort       None           
P1 16                  42   IOPort       None           
P1 4                   43   IOPort       None           
P1 17                  44   IOPort       None           
P1 5                   45   IOPort       None           
P1 6                   46   IOPort       None           
P1 7                   47   IOPort       None           
P1 8                   48   IOPort       None           
P1 9                   49   IOPort       None           
P1 10                  50   IOPort       None           
P1 11                  51   IOPort       None           
P1 12                  52   IOPort       None           
P1 13                  53   IOPort       None

And this is the booting scripts
pi@linuxcnc:~/linuxcnc-dev/scripts $ linuxcnc
LINUXCNC - 2.9.0~pre0
Machine configuration directory is '/home/pi/linuxcnc/configs/my_LinuxCNC_machine'
Machine configuration file is 'metal_3D_printer.ini'
Starting LinuxCNC...
Found file(REL): ./metal_3D_printer.hal
Note: Using POSIX realtime

trivkins: coordinates:XYYZA
   Joint 0 ==> Axis X
   Joint 1 ==> Axis Y
   Joint 2 ==> Axis Y
   Joint 3 ==> Axis Z
   Joint 4 ==> Axis A

hm2: loading Mesa HostMot2 driver version 0.15
hm2/hm2_7c80.0: Low Level init 0.15
hm2/hm2_7c80.0: Smart Serial Firmware Version 43
hm2/hm2_7c80.0: 54 I/O Pins used:
hm2/hm2_7c80.0:     IO Pin 000 (TB07-02/TB07-03): StepGen #0, pin Step (Output)
hm2/hm2_7c80.0:     IO Pin 001 (TB07-04/TB07-05): StepGen #0, pin Direction (Output)
hm2/hm2_7c80.0:     IO Pin 002 (TB08-02/TB08-03): StepGen #1, pin Step (Output)
hm2/hm2_7c80.0:     IO Pin 003 (TB08-04/TB08-05): StepGen #1, pin Direction (Output)
hm2/hm2_7c80.0:     IO Pin 004 (TB09-02/TB09-03): StepGen #2, pin Step (Output)
hm2/hm2_7c80.0:     IO Pin 005 (TB09-04/TB09-05): StepGen #2, pin Direction (Output)
hm2/hm2_7c80.0:     IO Pin 006 (TB10-02/TB10-03): StepGen #3, pin Step (Output)
hm2/hm2_7c80.0:     IO Pin 007 (TB10-04/TB10-05): StepGen #3, pin Direction (Output)
hm2/hm2_7c80.0:     IO Pin 008 (TB11-02/TB11-03): StepGen #4, pin Step (Output)
hm2/hm2_7c80.0:     IO Pin 009 (TB11-04/TB11-05): StepGen #4, pin Direction (Output)
hm2/hm2_7c80.0:     IO Pin 010 (TB12-02/TB12-03): IOPort
hm2/hm2_7c80.0:     IO Pin 011 (TB12-04/TB12-05): IOPort
hm2/hm2_7c80.0:     IO Pin 012 (TB03-03/TB04-04): IOPort
hm2/hm2_7c80.0:     IO Pin 013 (TB03-05/TB04-06): IOPort
hm2/hm2_7c80.0:     IO Pin 014 (TB03-05/TB03-06): IOPort
hm2/hm2_7c80.0:     IO Pin 015 (TB04-01/TB04-02): IOPort
hm2/hm2_7c80.0:     IO Pin 016 (TB04-04/TB04-05): IOPort
hm2/hm2_7c80.0:     IO Pin 017 (TB04-07/TB04-08): IOPort
hm2/hm2_7c80.0:     IO Pin 018 (TB05-02): IOPort
hm2/hm2_7c80.0:     IO Pin 019 (TB05-02): IOPort
hm2/hm2_7c80.0:     IO Pin 020 (TB05-05/TB05-06): IOPort
hm2/hm2_7c80.0:     IO Pin 021 (TB05-07/TB05-08): IOPort
hm2/hm2_7c80.0:     IO Pin 022 (Internal InMux0): InMux Input Mux #0, pin addr0 (Output)
hm2/hm2_7c80.0:     IO Pin 023 (Internal InMux1): InMux Input Mux #0, pin addr1 (Output)
hm2/hm2_7c80.0:     IO Pin 024 (Internal InMux2): InMux Input Mux #0, pin addr2 (Output)
hm2/hm2_7c80.0:     IO Pin 025 (Internal InMux3): InMux Input Mux #0, pin addr3 (Output)
hm2/hm2_7c80.0:     IO Pin 026 (Internal InMux4): InMux Input Mux #0, pin addr4 (Output)
hm2/hm2_7c80.0:     IO Pin 027 (Internal InMuxData): InMux Input Mux #0, pin muxdata (Input)
hm2/hm2_7c80.0:     IO Pin 028 (TB13-01/TB13-02): SSR #0, pin Out-00 (Output)
hm2/hm2_7c80.0:     IO Pin 029 (TB13-03/TB13-04): SSR #0, pin Out-01 (Output)
hm2/hm2_7c80.0:     IO Pin 030 (TB13-05/TB13-06): SSR #0, pin Out-02 (Output)
hm2/hm2_7c80.0:     IO Pin 031 (TB13-07/TB13-08): SSR #0, pin Out-03 (Output)
hm2/hm2_7c80.0:     IO Pin 032 (TB14-01/TB14-02): SSR #0, pin Out-04 (Output)
hm2/hm2_7c80.0:     IO Pin 033 (TB14-03/TB14-04): SSR #0, pin Out-05 (Output)
hm2/hm2_7c80.0:     IO Pin 034 (TB14-05/TB14-06): SSR #0, pin Out-06 (Output)
hm2/hm2_7c80.0:     IO Pin 035 (TB14-07/TB14-08): SSR #0, pin Out-07 (Output)
hm2/hm2_7c80.0:     IO Pin 036 (Internal SSR): SSR #0, pin AC Ref (internal) (Output)
hm2/hm2_7c80.0:     IO Pin 037 (P1-01): IOPort
hm2/hm2_7c80.0:     IO Pin 038 (P1-02): IOPort
hm2/hm2_7c80.0:     IO Pin 039 (P1-03): IOPort
hm2/hm2_7c80.0:     IO Pin 040 (P1-04): IOPort
hm2/hm2_7c80.0:     IO Pin 041 (P1-05): IOPort
hm2/hm2_7c80.0:     IO Pin 042 (P1-06): IOPort
hm2/hm2_7c80.0:     IO Pin 043 (P1-07): IOPort
hm2/hm2_7c80.0:     IO Pin 044 (P1-08): IOPort
hm2/hm2_7c80.0:     IO Pin 045 (P1-09): IOPort
hm2/hm2_7c80.0:     IO Pin 046 (P1-11): IOPort
hm2/hm2_7c80.0:     IO Pin 047 (P1-13): IOPort
hm2/hm2_7c80.0:     IO Pin 048 (P1-15): IOPort
hm2/hm2_7c80.0:     IO Pin 049 (P1-17): IOPort
hm2/hm2_7c80.0:     IO Pin 050 (P1-19): IOPort
hm2/hm2_7c80.0:     IO Pin 051 (P1-21): IOPort
hm2/hm2_7c80.0:     IO Pin 052 (P1-23): IOPort
hm2/hm2_7c80.0:     IO Pin 053 (P1-25): IOPort
hm2/hm2_7c80.0: registered
./metal_3D_printer.hal:363: Pin 'hm2_7c80.0.spinena' does not exist
Shutting down and cleaning up LinuxCNC...
Running HAL shutdown script
hm2: unloading
Note: Using POSIX realtime
LinuxCNC terminated with an error.  You can find more information in the log:
    /home/pi/linuxcnc_debug.txt
and
    /home/pi/linuxcnc_print.txt
as well as in the output of the shell command 'dmesg' and in the terminal

Thanks in advance,
Ben
Attachments:
Last edit: 23 Feb 2021 03:03 by BenStPierre.

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

More
23 Feb 2021 15:49 #199842 by PCW
Spindle analog output on a 7C80 is controlled by the PWMgen (PWMgen 0)

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

More
23 Feb 2021 17:13 #199860 by BenStPierre
Thank PCW for answering!

I think I'm confused, is the analog output and the 0-10v+ virtual potentiometer the same thing?

my VFD is wired to the SP-, SP and SP+ pins on the 7c80.

So what should I follow on this page (linuxcnc.org/docs/html/examples/spindle.html) the VFD or PWM HAL setup?

Thanks again
Ben

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

More
23 Feb 2021 17:59 - 23 Feb 2021 17:59 #199868 by PCW
No, you would setup the Mesa hardware PWM.
To list the available pins/parameters you can type these commands
while linuxCNC is running:

halcmd show pin hm2_7c80.0.pwm
halcmd show param hm2_7c80.0.pwm
Last edit: 23 Feb 2021 17:59 by PCW.

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

More
24 Feb 2021 17:26 #200007 by BenStPierre
Hey thanks for the reply, but when I do this with LinuxCNC running there are no PWM pins or parameters. Does this mean I have to flash the mesa to configure it?

Thanks in advance,

Ben
pi@linuxcnc:~ $ halcmd show pin hm2_7c80.0.pwm
Component Pins:
Owner   Type  Dir         Value  Name

pi@linuxcnc:~ $ halcmd show param hm2_7c80.0.pwm
Parameters:
Owner   Type  Dir         Value  Name

pi@linuxcnc:~ $ halcmd show pin hm2_7c80.0.
Component Pins:
Owner   Type  Dir         Value  Name
    26  float IN            -50  hm2_7c80.0.dpll.01.timer-us
    26  float IN            100  hm2_7c80.0.dpll.02.timer-us
    26  float IN            100  hm2_7c80.0.dpll.03.timer-us
    26  float IN            100  hm2_7c80.0.dpll.04.timer-us
    26  float IN              1  hm2_7c80.0.dpll.base-freq-khz
    26  u32   OUT    0x0000002A  hm2_7c80.0.dpll.ddsize
    26  float OUT      2.811547  hm2_7c80.0.dpll.phase-error-us
    26  u32   IN     0x00400000  hm2_7c80.0.dpll.plimit
    26  u32   OUT    0x00000018  hm2_7c80.0.dpll.prescale
    26  u32   IN     0x000007D0  hm2_7c80.0.dpll.time-const
    26  bit   OUT         FALSE  hm2_7c80.0.gpio.000.in
    26  bit   OUT          TRUE  hm2_7c80.0.gpio.000.in_not
    26  bit   OUT         FALSE  hm2_7c80.0.gpio.001.in
    26  bit   OUT          TRUE  hm2_7c80.0.gpio.001.in_not
    26  bit   OUT         FALSE  hm2_7c80.0.gpio.002.in
    26  bit   OUT          TRUE  hm2_7c80.0.gpio.002.in_not
    26  bit   OUT         FALSE  hm2_7c80.0.gpio.003.in
    26  bit   OUT          TRUE  hm2_7c80.0.gpio.003.in_not
    26  bit   OUT         FALSE  hm2_7c80.0.gpio.004.in
    26  bit   OUT          TRUE  hm2_7c80.0.gpio.004.in_not
    26  bit   OUT         FALSE  hm2_7c80.0.gpio.005.in
    26  bit   OUT          TRUE  hm2_7c80.0.gpio.005.in_not
    26  bit   OUT         FALSE  hm2_7c80.0.gpio.006.in
    26  bit   OUT          TRUE  hm2_7c80.0.gpio.006.in_not
    26  bit   OUT         FALSE  hm2_7c80.0.gpio.007.in
    26  bit   OUT          TRUE  hm2_7c80.0.gpio.007.in_not
    26  bit   OUT         FALSE  hm2_7c80.0.gpio.008.in
    26  bit   OUT          TRUE  hm2_7c80.0.gpio.008.in_not
    26  bit   OUT         FALSE  hm2_7c80.0.gpio.009.in
    26  bit   OUT          TRUE  hm2_7c80.0.gpio.009.in_not
    26  bit   OUT         FALSE  hm2_7c80.0.gpio.010.in
    26  bit   OUT          TRUE  hm2_7c80.0.gpio.010.in_not
    26  bit   IN          FALSE  hm2_7c80.0.gpio.010.out
    26  bit   OUT         FALSE  hm2_7c80.0.gpio.011.in
    26  bit   OUT          TRUE  hm2_7c80.0.gpio.011.in_not
    26  bit   IN          FALSE  hm2_7c80.0.gpio.011.out
    26  bit   OUT          TRUE  hm2_7c80.0.gpio.012.in
    26  bit   OUT         FALSE  hm2_7c80.0.gpio.012.in_not
    26  bit   IN          FALSE  hm2_7c80.0.gpio.012.out
    26  bit   OUT         FALSE  hm2_7c80.0.gpio.013.in
    26  bit   OUT          TRUE  hm2_7c80.0.gpio.013.in_not
    26  bit   IN          FALSE  hm2_7c80.0.gpio.013.out
    26  bit   OUT         FALSE  hm2_7c80.0.gpio.014.in
    26  bit   OUT          TRUE  hm2_7c80.0.gpio.014.in_not
    26  bit   IN          FALSE  hm2_7c80.0.gpio.014.out
    26  bit   OUT         FALSE  hm2_7c80.0.gpio.015.in
    26  bit   OUT          TRUE  hm2_7c80.0.gpio.015.in_not
    26  bit   IN          FALSE  hm2_7c80.0.gpio.015.out
    26  bit   OUT         FALSE  hm2_7c80.0.gpio.016.in
    26  bit   OUT          TRUE  hm2_7c80.0.gpio.016.in_not
    26  bit   IN          FALSE  hm2_7c80.0.gpio.016.out
    26  bit   OUT         FALSE  hm2_7c80.0.gpio.017.in
    26  bit   OUT          TRUE  hm2_7c80.0.gpio.017.in_not
    26  bit   IN          FALSE  hm2_7c80.0.gpio.017.out
    26  bit   OUT          TRUE  hm2_7c80.0.gpio.018.in
    26  bit   OUT         FALSE  hm2_7c80.0.gpio.018.in_not
    26  bit   IN          FALSE  hm2_7c80.0.gpio.018.out
    26  bit   OUT          TRUE  hm2_7c80.0.gpio.019.in
    26  bit   OUT         FALSE  hm2_7c80.0.gpio.019.in_not
    26  bit   IN          FALSE  hm2_7c80.0.gpio.019.out
    26  bit   OUT          TRUE  hm2_7c80.0.gpio.020.in
    26  bit   OUT         FALSE  hm2_7c80.0.gpio.020.in_not
    26  bit   IN          FALSE  hm2_7c80.0.gpio.020.out <== machine-is-enabled
    26  bit   OUT          TRUE  hm2_7c80.0.gpio.021.in
    26  bit   OUT         FALSE  hm2_7c80.0.gpio.021.in_not
    26  bit   IN          FALSE  hm2_7c80.0.gpio.021.out <== spindle-ccw
    26  bit   OUT         FALSE  hm2_7c80.0.gpio.022.in
    26  bit   OUT          TRUE  hm2_7c80.0.gpio.022.in_not
    26  bit   OUT          TRUE  hm2_7c80.0.gpio.023.in
    26  bit   OUT         FALSE  hm2_7c80.0.gpio.023.in_not
    26  bit   OUT         FALSE  hm2_7c80.0.gpio.024.in
    26  bit   OUT          TRUE  hm2_7c80.0.gpio.024.in_not
    26  bit   OUT          TRUE  hm2_7c80.0.gpio.025.in
    26  bit   OUT         FALSE  hm2_7c80.0.gpio.025.in_not
    26  bit   OUT         FALSE  hm2_7c80.0.gpio.026.in
    26  bit   OUT          TRUE  hm2_7c80.0.gpio.026.in_not
    26  bit   OUT          TRUE  hm2_7c80.0.gpio.027.in
    26  bit   OUT         FALSE  hm2_7c80.0.gpio.027.in_not
    26  bit   OUT         FALSE  hm2_7c80.0.gpio.028.in
    26  bit   OUT          TRUE  hm2_7c80.0.gpio.028.in_not
    26  bit   OUT         FALSE  hm2_7c80.0.gpio.029.in
    26  bit   OUT          TRUE  hm2_7c80.0.gpio.029.in_not
    26  bit   OUT         FALSE  hm2_7c80.0.gpio.030.in
    26  bit   OUT          TRUE  hm2_7c80.0.gpio.030.in_not
    26  bit   OUT         FALSE  hm2_7c80.0.gpio.031.in
    26  bit   OUT          TRUE  hm2_7c80.0.gpio.031.in_not
    26  bit   OUT         FALSE  hm2_7c80.0.gpio.032.in
    26  bit   OUT          TRUE  hm2_7c80.0.gpio.032.in_not
    26  bit   OUT         FALSE  hm2_7c80.0.gpio.033.in
    26  bit   OUT          TRUE  hm2_7c80.0.gpio.033.in_not
    26  bit   OUT         FALSE  hm2_7c80.0.gpio.034.in
    26  bit   OUT          TRUE  hm2_7c80.0.gpio.034.in_not
    26  bit   OUT         FALSE  hm2_7c80.0.gpio.035.in
    26  bit   OUT          TRUE  hm2_7c80.0.gpio.035.in_not
    26  bit   OUT         FALSE  hm2_7c80.0.gpio.036.in
    26  bit   OUT          TRUE  hm2_7c80.0.gpio.036.in_not
    26  bit   OUT          TRUE  hm2_7c80.0.gpio.037.in
    26  bit   OUT         FALSE  hm2_7c80.0.gpio.037.in_not
    26  bit   IN          FALSE  hm2_7c80.0.gpio.037.out
    26  bit   OUT          TRUE  hm2_7c80.0.gpio.038.in
    26  bit   OUT         FALSE  hm2_7c80.0.gpio.038.in_not
    26  bit   IN          FALSE  hm2_7c80.0.gpio.038.out
    26  bit   OUT          TRUE  hm2_7c80.0.gpio.039.in
    26  bit   OUT         FALSE  hm2_7c80.0.gpio.039.in_not
    26  bit   IN          FALSE  hm2_7c80.0.gpio.039.out
    26  bit   OUT          TRUE  hm2_7c80.0.gpio.040.in
    26  bit   OUT         FALSE  hm2_7c80.0.gpio.040.in_not
    26  bit   IN          FALSE  hm2_7c80.0.gpio.040.out
    26  bit   OUT          TRUE  hm2_7c80.0.gpio.041.in
    26  bit   OUT         FALSE  hm2_7c80.0.gpio.041.in_not
    26  bit   IN          FALSE  hm2_7c80.0.gpio.041.out
    26  bit   OUT          TRUE  hm2_7c80.0.gpio.042.in
    26  bit   OUT         FALSE  hm2_7c80.0.gpio.042.in_not
    26  bit   IN          FALSE  hm2_7c80.0.gpio.042.out
    26  bit   OUT          TRUE  hm2_7c80.0.gpio.043.in
    26  bit   OUT         FALSE  hm2_7c80.0.gpio.043.in_not
    26  bit   IN          FALSE  hm2_7c80.0.gpio.043.out
    26  bit   OUT          TRUE  hm2_7c80.0.gpio.044.in
    26  bit   OUT         FALSE  hm2_7c80.0.gpio.044.in_not
    26  bit   IN          FALSE  hm2_7c80.0.gpio.044.out
    26  bit   OUT          TRUE  hm2_7c80.0.gpio.045.in
    26  bit   OUT         FALSE  hm2_7c80.0.gpio.045.in_not
    26  bit   IN          FALSE  hm2_7c80.0.gpio.045.out
    26  bit   OUT          TRUE  hm2_7c80.0.gpio.046.in
    26  bit   OUT         FALSE  hm2_7c80.0.gpio.046.in_not
    26  bit   IN          FALSE  hm2_7c80.0.gpio.046.out
    26  bit   OUT          TRUE  hm2_7c80.0.gpio.047.in
    26  bit   OUT         FALSE  hm2_7c80.0.gpio.047.in_not
    26  bit   IN          FALSE  hm2_7c80.0.gpio.047.out
    26  bit   OUT          TRUE  hm2_7c80.0.gpio.048.in
    26  bit   OUT         FALSE  hm2_7c80.0.gpio.048.in_not
    26  bit   IN          FALSE  hm2_7c80.0.gpio.048.out
    26  bit   OUT          TRUE  hm2_7c80.0.gpio.049.in
    26  bit   OUT         FALSE  hm2_7c80.0.gpio.049.in_not
    26  bit   IN          FALSE  hm2_7c80.0.gpio.049.out
    26  bit   OUT          TRUE  hm2_7c80.0.gpio.050.in
    26  bit   OUT         FALSE  hm2_7c80.0.gpio.050.in_not
    26  bit   IN          FALSE  hm2_7c80.0.gpio.050.out
    26  bit   OUT          TRUE  hm2_7c80.0.gpio.051.in
    26  bit   OUT         FALSE  hm2_7c80.0.gpio.051.in_not
    26  bit   IN          FALSE  hm2_7c80.0.gpio.051.out
    26  bit   OUT          TRUE  hm2_7c80.0.gpio.052.in
    26  bit   OUT         FALSE  hm2_7c80.0.gpio.052.in_not
    26  bit   IN          FALSE  hm2_7c80.0.gpio.052.out
    26  bit   OUT          TRUE  hm2_7c80.0.gpio.053.in
    26  bit   OUT         FALSE  hm2_7c80.0.gpio.053.in_not
    26  bit   IN          FALSE  hm2_7c80.0.gpio.053.out
    26  s32   OUT             0  hm2_7c80.0.inmux.00.enc0-count
    26  s32   OUT             0  hm2_7c80.0.inmux.00.enc1-count
    26  s32   OUT             0  hm2_7c80.0.inmux.00.enc2-count
    26  s32   OUT             0  hm2_7c80.0.inmux.00.enc3-count
    26  bit   OUT         FALSE  hm2_7c80.0.inmux.00.input-00 ==> min-x
    26  bit   OUT          TRUE  hm2_7c80.0.inmux.00.input-00-not
    26  bit   IN          FALSE  hm2_7c80.0.inmux.00.input-00-slow
    26  bit   OUT         FALSE  hm2_7c80.0.inmux.00.input-01 ==> min-y
    26  bit   OUT          TRUE  hm2_7c80.0.inmux.00.input-01-not
    26  bit   IN          FALSE  hm2_7c80.0.inmux.00.input-01-slow
    26  bit   OUT         FALSE  hm2_7c80.0.inmux.00.input-02 ==> min-y2
    26  bit   OUT          TRUE  hm2_7c80.0.inmux.00.input-02-not
    26  bit   IN          FALSE  hm2_7c80.0.inmux.00.input-02-slow
    26  bit   OUT         FALSE  hm2_7c80.0.inmux.00.input-03 ==> min-z
    26  bit   OUT          TRUE  hm2_7c80.0.inmux.00.input-03-not
    26  bit   IN          FALSE  hm2_7c80.0.inmux.00.input-03-slow
    26  bit   OUT         FALSE  hm2_7c80.0.inmux.00.input-04
    26  bit   OUT          TRUE  hm2_7c80.0.inmux.00.input-04-not ==> estop-ext
    26  bit   IN          FALSE  hm2_7c80.0.inmux.00.input-04-slow
    26  bit   OUT         FALSE  hm2_7c80.0.inmux.00.input-05 ==> cycle_start
    26  bit   OUT          TRUE  hm2_7c80.0.inmux.00.input-05-not
    26  bit   IN          FALSE  hm2_7c80.0.inmux.00.input-05-slow
    26  bit   OUT         FALSE  hm2_7c80.0.inmux.00.input-06 ==> feed_hold
    26  bit   OUT          TRUE  hm2_7c80.0.inmux.00.input-06-not
    26  bit   IN          FALSE  hm2_7c80.0.inmux.00.input-06-slow
    26  bit   OUT         FALSE  hm2_7c80.0.inmux.00.input-07 ==> stop_program
    26  bit   OUT          TRUE  hm2_7c80.0.inmux.00.input-07-not
    26  bit   IN          FALSE  hm2_7c80.0.inmux.00.input-07-slow
    26  bit   OUT         FALSE  hm2_7c80.0.inmux.00.input-08 ==> probe-in
    26  bit   OUT          TRUE  hm2_7c80.0.inmux.00.input-08-not
    26  bit   IN          FALSE  hm2_7c80.0.inmux.00.input-08-slow
    26  bit   OUT         FALSE  hm2_7c80.0.inmux.00.input-09
    26  bit   OUT          TRUE  hm2_7c80.0.inmux.00.input-09-not
    26  bit   IN          FALSE  hm2_7c80.0.inmux.00.input-09-slow
    26  bit   OUT         FALSE  hm2_7c80.0.inmux.00.input-10
    26  bit   OUT          TRUE  hm2_7c80.0.inmux.00.input-10-not
    26  bit   IN          FALSE  hm2_7c80.0.inmux.00.input-10-slow
    26  bit   OUT         FALSE  hm2_7c80.0.inmux.00.input-11
    26  bit   OUT          TRUE  hm2_7c80.0.inmux.00.input-11-not
    26  bit   IN          FALSE  hm2_7c80.0.inmux.00.input-11-slow
    26  bit   OUT         FALSE  hm2_7c80.0.inmux.00.input-12
    26  bit   OUT          TRUE  hm2_7c80.0.inmux.00.input-12-not
    26  bit   IN          FALSE  hm2_7c80.0.inmux.00.input-12-slow
    26  bit   OUT         FALSE  hm2_7c80.0.inmux.00.input-13
    26  bit   OUT          TRUE  hm2_7c80.0.inmux.00.input-13-not
    26  bit   IN          FALSE  hm2_7c80.0.inmux.00.input-13-slow
    26  bit   OUT         FALSE  hm2_7c80.0.inmux.00.input-14
    26  bit   OUT          TRUE  hm2_7c80.0.inmux.00.input-14-not
    26  bit   IN          FALSE  hm2_7c80.0.inmux.00.input-14-slow
    26  bit   OUT         FALSE  hm2_7c80.0.inmux.00.input-15
    26  bit   OUT          TRUE  hm2_7c80.0.inmux.00.input-15-not
    26  bit   IN          FALSE  hm2_7c80.0.inmux.00.input-15-slow
    26  bit   OUT         FALSE  hm2_7c80.0.inmux.00.input-16
    26  bit   OUT          TRUE  hm2_7c80.0.inmux.00.input-16-not
    26  bit   IN          FALSE  hm2_7c80.0.inmux.00.input-16-slow
    26  bit   OUT         FALSE  hm2_7c80.0.inmux.00.input-17
    26  bit   OUT          TRUE  hm2_7c80.0.inmux.00.input-17-not
    26  bit   IN          FALSE  hm2_7c80.0.inmux.00.input-17-slow
    26  bit   OUT         FALSE  hm2_7c80.0.inmux.00.input-18
    26  bit   OUT          TRUE  hm2_7c80.0.inmux.00.input-18-not
    26  bit   IN          FALSE  hm2_7c80.0.inmux.00.input-18-slow
    26  bit   OUT         FALSE  hm2_7c80.0.inmux.00.input-19
    26  bit   OUT          TRUE  hm2_7c80.0.inmux.00.input-19-not
    26  bit   IN          FALSE  hm2_7c80.0.inmux.00.input-19-slow
    26  bit   OUT         FALSE  hm2_7c80.0.inmux.00.input-20
    26  bit   OUT          TRUE  hm2_7c80.0.inmux.00.input-20-not
    26  bit   IN          FALSE  hm2_7c80.0.inmux.00.input-20-slow
    26  bit   OUT         FALSE  hm2_7c80.0.inmux.00.input-21
    26  bit   OUT          TRUE  hm2_7c80.0.inmux.00.input-21-not
    26  bit   IN          FALSE  hm2_7c80.0.inmux.00.input-21-slow
    26  bit   OUT         FALSE  hm2_7c80.0.inmux.00.input-22
    26  bit   OUT          TRUE  hm2_7c80.0.inmux.00.input-22-not
    26  bit   IN          FALSE  hm2_7c80.0.inmux.00.input-22-slow
    26  bit   OUT         FALSE  hm2_7c80.0.inmux.00.input-23
    26  bit   OUT          TRUE  hm2_7c80.0.inmux.00.input-23-not
    26  bit   IN          FALSE  hm2_7c80.0.inmux.00.input-23-slow
    26  bit   OUT         FALSE  hm2_7c80.0.inmux.00.raw-input-00
    26  bit   OUT          TRUE  hm2_7c80.0.inmux.00.raw-input-00-not
    26  bit   OUT         FALSE  hm2_7c80.0.inmux.00.raw-input-01
    26  bit   OUT          TRUE  hm2_7c80.0.inmux.00.raw-input-01-not
    26  bit   OUT         FALSE  hm2_7c80.0.inmux.00.raw-input-02
    26  bit   OUT          TRUE  hm2_7c80.0.inmux.00.raw-input-02-not
    26  bit   OUT         FALSE  hm2_7c80.0.inmux.00.raw-input-03
    26  bit   OUT          TRUE  hm2_7c80.0.inmux.00.raw-input-03-not
    26  bit   OUT         FALSE  hm2_7c80.0.inmux.00.raw-input-04
    26  bit   OUT          TRUE  hm2_7c80.0.inmux.00.raw-input-04-not
    26  bit   OUT         FALSE  hm2_7c80.0.inmux.00.raw-input-05
    26  bit   OUT          TRUE  hm2_7c80.0.inmux.00.raw-input-05-not
    26  bit   OUT         FALSE  hm2_7c80.0.inmux.00.raw-input-06
    26  bit   OUT          TRUE  hm2_7c80.0.inmux.00.raw-input-06-not
    26  bit   OUT         FALSE  hm2_7c80.0.inmux.00.raw-input-07
    26  bit   OUT          TRUE  hm2_7c80.0.inmux.00.raw-input-07-not
    26  bit   OUT         FALSE  hm2_7c80.0.inmux.00.raw-input-08
    26  bit   OUT          TRUE  hm2_7c80.0.inmux.00.raw-input-08-not
    26  bit   OUT         FALSE  hm2_7c80.0.inmux.00.raw-input-09
    26  bit   OUT          TRUE  hm2_7c80.0.inmux.00.raw-input-09-not
    26  bit   OUT         FALSE  hm2_7c80.0.inmux.00.raw-input-10
    26  bit   OUT          TRUE  hm2_7c80.0.inmux.00.raw-input-10-not
    26  bit   OUT         FALSE  hm2_7c80.0.inmux.00.raw-input-11
    26  bit   OUT          TRUE  hm2_7c80.0.inmux.00.raw-input-11-not
    26  bit   OUT         FALSE  hm2_7c80.0.inmux.00.raw-input-12
    26  bit   OUT          TRUE  hm2_7c80.0.inmux.00.raw-input-12-not
    26  bit   OUT         FALSE  hm2_7c80.0.inmux.00.raw-input-13
    26  bit   OUT          TRUE  hm2_7c80.0.inmux.00.raw-input-13-not
    26  bit   OUT         FALSE  hm2_7c80.0.inmux.00.raw-input-14
    26  bit   OUT          TRUE  hm2_7c80.0.inmux.00.raw-input-14-not
    26  bit   OUT         FALSE  hm2_7c80.0.inmux.00.raw-input-15
    26  bit   OUT          TRUE  hm2_7c80.0.inmux.00.raw-input-15-not
    26  bit   OUT         FALSE  hm2_7c80.0.inmux.00.raw-input-16
    26  bit   OUT          TRUE  hm2_7c80.0.inmux.00.raw-input-16-not
    26  bit   OUT         FALSE  hm2_7c80.0.inmux.00.raw-input-17
    26  bit   OUT          TRUE  hm2_7c80.0.inmux.00.raw-input-17-not
    26  bit   OUT         FALSE  hm2_7c80.0.inmux.00.raw-input-18
    26  bit   OUT          TRUE  hm2_7c80.0.inmux.00.raw-input-18-not
    26  bit   OUT         FALSE  hm2_7c80.0.inmux.00.raw-input-19
    26  bit   OUT          TRUE  hm2_7c80.0.inmux.00.raw-input-19-not
    26  bit   OUT         FALSE  hm2_7c80.0.inmux.00.raw-input-20
    26  bit   OUT          TRUE  hm2_7c80.0.inmux.00.raw-input-20-not
    26  bit   OUT         FALSE  hm2_7c80.0.inmux.00.raw-input-21
    26  bit   OUT          TRUE  hm2_7c80.0.inmux.00.raw-input-21-not
    26  bit   OUT         FALSE  hm2_7c80.0.inmux.00.raw-input-22
    26  bit   OUT          TRUE  hm2_7c80.0.inmux.00.raw-input-22-not
    26  bit   OUT         FALSE  hm2_7c80.0.inmux.00.raw-input-23
    26  bit   OUT          TRUE  hm2_7c80.0.inmux.00.raw-input-23-not
    26  bit   IN          FALSE  hm2_7c80.0.led.CR01
    26  bit   IN          FALSE  hm2_7c80.0.led.CR02
    26  bit   IN          FALSE  hm2_7c80.0.led.CR03
    26  bit   IN          FALSE  hm2_7c80.0.led.CR04
    26  s32   OUT         35406  hm2_7c80.0.read.time
    26  bit   IN          FALSE  hm2_7c80.0.ssr.00.out-00 <== welder
    26  bit   IN          FALSE  hm2_7c80.0.ssr.00.out-01 <== argon
    26  bit   IN          FALSE  hm2_7c80.0.ssr.00.out-02 <== cooling-pump
    26  bit   IN          FALSE  hm2_7c80.0.ssr.00.out-03 <== cooling-fan
    26  bit   IN          FALSE  hm2_7c80.0.ssr.00.out-04
    26  bit   IN          FALSE  hm2_7c80.0.ssr.00.out-05
    26  bit   IN          FALSE  hm2_7c80.0.ssr.00.out-06
    26  bit   IN          FALSE  hm2_7c80.0.ssr.00.out-07
    26  u32   IN     0x000F4240  hm2_7c80.0.ssr.00.rate
    26  bit   IN           TRUE  hm2_7c80.0.stepgen.00.control-type
    26  s32   OUT             0  hm2_7c80.0.stepgen.00.counts
    26  float OUT             0  hm2_7c80.0.stepgen.00.dbg_err_at_match
    26  float OUT             0  hm2_7c80.0.stepgen.00.dbg_ff_vel
    26  float OUT             0  hm2_7c80.0.stepgen.00.dbg_pos_minus_prev_cmd
    26  float OUT             0  hm2_7c80.0.stepgen.00.dbg_s_to_match
    26  s32   OUT             0  hm2_7c80.0.stepgen.00.dbg_step_rate
    26  float OUT             0  hm2_7c80.0.stepgen.00.dbg_vel_error
    26  bit   IN          FALSE  hm2_7c80.0.stepgen.00.enable <== x-enable
    26  float IN              0  hm2_7c80.0.stepgen.00.position-cmd
    26  float OUT             0  hm2_7c80.0.stepgen.00.position-fb ==> x-pos-fb
    26  bit   IN          FALSE  hm2_7c80.0.stepgen.00.position-reset
    26  float IN              0  hm2_7c80.0.stepgen.00.velocity-cmd <== x-output
    26  float OUT             0  hm2_7c80.0.stepgen.00.velocity-fb
    26  bit   IN           TRUE  hm2_7c80.0.stepgen.01.control-type
    26  s32   OUT             0  hm2_7c80.0.stepgen.01.counts
    26  float OUT             0  hm2_7c80.0.stepgen.01.dbg_err_at_match
    26  float OUT             0  hm2_7c80.0.stepgen.01.dbg_ff_vel
    26  float OUT             0  hm2_7c80.0.stepgen.01.dbg_pos_minus_prev_cmd
    26  float OUT             0  hm2_7c80.0.stepgen.01.dbg_s_to_match
    26  s32   OUT             0  hm2_7c80.0.stepgen.01.dbg_step_rate
    26  float OUT             0  hm2_7c80.0.stepgen.01.dbg_vel_error
    26  bit   IN          FALSE  hm2_7c80.0.stepgen.01.enable <== y-enable
    26  float IN              0  hm2_7c80.0.stepgen.01.position-cmd
    26  float OUT             0  hm2_7c80.0.stepgen.01.position-fb ==> y-pos-fb
    26  bit   IN          FALSE  hm2_7c80.0.stepgen.01.position-reset
    26  float IN              0  hm2_7c80.0.stepgen.01.velocity-cmd <== y-output
    26  float OUT             0  hm2_7c80.0.stepgen.01.velocity-fb
    26  bit   IN           TRUE  hm2_7c80.0.stepgen.02.control-type
    26  s32   OUT             0  hm2_7c80.0.stepgen.02.counts
    26  float OUT             0  hm2_7c80.0.stepgen.02.dbg_err_at_match
    26  float OUT             0  hm2_7c80.0.stepgen.02.dbg_ff_vel
    26  float OUT             0  hm2_7c80.0.stepgen.02.dbg_pos_minus_prev_cmd
    26  float OUT             0  hm2_7c80.0.stepgen.02.dbg_s_to_match
    26  s32   OUT             0  hm2_7c80.0.stepgen.02.dbg_step_rate
    26  float OUT             0  hm2_7c80.0.stepgen.02.dbg_vel_error
    26  bit   IN          FALSE  hm2_7c80.0.stepgen.02.enable <== y2-enable
    26  float IN              0  hm2_7c80.0.stepgen.02.position-cmd
    26  float OUT             0  hm2_7c80.0.stepgen.02.position-fb ==> y2-pos-fb
    26  bit   IN          FALSE  hm2_7c80.0.stepgen.02.position-reset
    26  float IN              0  hm2_7c80.0.stepgen.02.velocity-cmd <== y2-output
    26  float OUT             0  hm2_7c80.0.stepgen.02.velocity-fb
    26  bit   IN           TRUE  hm2_7c80.0.stepgen.03.control-type
    26  s32   OUT             0  hm2_7c80.0.stepgen.03.counts
    26  float OUT             0  hm2_7c80.0.stepgen.03.dbg_err_at_match
    26  float OUT             0  hm2_7c80.0.stepgen.03.dbg_ff_vel
    26  float OUT             0  hm2_7c80.0.stepgen.03.dbg_pos_minus_prev_cmd
    26  float OUT             0  hm2_7c80.0.stepgen.03.dbg_s_to_match
    26  s32   OUT             0  hm2_7c80.0.stepgen.03.dbg_step_rate
    26  float OUT             0  hm2_7c80.0.stepgen.03.dbg_vel_error
    26  bit   IN          FALSE  hm2_7c80.0.stepgen.03.enable <== z-enable
    26  float IN              0  hm2_7c80.0.stepgen.03.position-cmd
    26  float OUT             0  hm2_7c80.0.stepgen.03.position-fb ==> z-pos-fb
    26  bit   IN          FALSE  hm2_7c80.0.stepgen.03.position-reset
    26  float IN              0  hm2_7c80.0.stepgen.03.velocity-cmd <== z-output
    26  float OUT             0  hm2_7c80.0.stepgen.03.velocity-fb
    26  bit   IN           TRUE  hm2_7c80.0.stepgen.04.control-type
    26  s32   OUT             0  hm2_7c80.0.stepgen.04.counts
    26  float OUT             0  hm2_7c80.0.stepgen.04.dbg_err_at_match
    26  float OUT             0  hm2_7c80.0.stepgen.04.dbg_ff_vel
    26  float OUT             0  hm2_7c80.0.stepgen.04.dbg_pos_minus_prev_cmd
    26  float OUT             0  hm2_7c80.0.stepgen.04.dbg_s_to_match
    26  s32   OUT             0  hm2_7c80.0.stepgen.04.dbg_step_rate
    26  float OUT             0  hm2_7c80.0.stepgen.04.dbg_vel_error
    26  bit   IN          FALSE  hm2_7c80.0.stepgen.04.enable <== a-enable
    26  float IN              0  hm2_7c80.0.stepgen.04.position-cmd
    26  float OUT             0  hm2_7c80.0.stepgen.04.position-fb ==> a-pos-fb
    26  bit   IN          FALSE  hm2_7c80.0.stepgen.04.position-reset
    26  float IN              0  hm2_7c80.0.stepgen.04.velocity-cmd <== a-output
    26  float OUT             0  hm2_7c80.0.stepgen.04.velocity-fb
    26  s32   IN              1  hm2_7c80.0.stepgen.timer-number
    26  bit   I/O         FALSE  hm2_7c80.0.watchdog.has_bit
    26  s32   OUT         29592  hm2_7c80.0.write.time

pi@linuxcnc:~ $ halcmd show param hm2_7c80.0.
Parameters:
Owner   Type  Dir         Value  Name
    26  bit   RW          FALSE  hm2_7c80.0.gpio.010.invert_output
    26  bit   RW          FALSE  hm2_7c80.0.gpio.010.is_opendrain
    26  bit   RW          FALSE  hm2_7c80.0.gpio.010.is_output
    26  bit   RW          FALSE  hm2_7c80.0.gpio.011.invert_output
    26  bit   RW          FALSE  hm2_7c80.0.gpio.011.is_opendrain
    26  bit   RW          FALSE  hm2_7c80.0.gpio.011.is_output
    26  bit   RW          FALSE  hm2_7c80.0.gpio.012.invert_output
    26  bit   RW          FALSE  hm2_7c80.0.gpio.012.is_opendrain
    26  bit   RW          FALSE  hm2_7c80.0.gpio.012.is_output
    26  bit   RW          FALSE  hm2_7c80.0.gpio.013.invert_output
    26  bit   RW          FALSE  hm2_7c80.0.gpio.013.is_opendrain
    26  bit   RW          FALSE  hm2_7c80.0.gpio.013.is_output
    26  bit   RW          FALSE  hm2_7c80.0.gpio.014.invert_output
    26  bit   RW          FALSE  hm2_7c80.0.gpio.014.is_opendrain
    26  bit   RW          FALSE  hm2_7c80.0.gpio.014.is_output
    26  bit   RW          FALSE  hm2_7c80.0.gpio.015.invert_output
    26  bit   RW          FALSE  hm2_7c80.0.gpio.015.is_opendrain
    26  bit   RW          FALSE  hm2_7c80.0.gpio.015.is_output
    26  bit   RW          FALSE  hm2_7c80.0.gpio.016.invert_output
    26  bit   RW          FALSE  hm2_7c80.0.gpio.016.is_opendrain
    26  bit   RW          FALSE  hm2_7c80.0.gpio.016.is_output
    26  bit   RW          FALSE  hm2_7c80.0.gpio.017.invert_output
    26  bit   RW          FALSE  hm2_7c80.0.gpio.017.is_opendrain
    26  bit   RW          FALSE  hm2_7c80.0.gpio.017.is_output
    26  bit   RW          FALSE  hm2_7c80.0.gpio.018.invert_output
    26  bit   RW          FALSE  hm2_7c80.0.gpio.018.is_opendrain
    26  bit   RW          FALSE  hm2_7c80.0.gpio.018.is_output
    26  bit   RW          FALSE  hm2_7c80.0.gpio.019.invert_output
    26  bit   RW          FALSE  hm2_7c80.0.gpio.019.is_opendrain
    26  bit   RW          FALSE  hm2_7c80.0.gpio.019.is_output
    26  bit   RW          FALSE  hm2_7c80.0.gpio.020.invert_output
    26  bit   RW          FALSE  hm2_7c80.0.gpio.020.is_opendrain
    26  bit   RW          FALSE  hm2_7c80.0.gpio.020.is_output
    26  bit   RW          FALSE  hm2_7c80.0.gpio.021.invert_output
    26  bit   RW          FALSE  hm2_7c80.0.gpio.021.is_opendrain
    26  bit   RW          FALSE  hm2_7c80.0.gpio.021.is_output
    26  bit   RW          FALSE  hm2_7c80.0.gpio.022.invert_output
    26  bit   RW          FALSE  hm2_7c80.0.gpio.022.is_opendrain
    26  bit   RW          FALSE  hm2_7c80.0.gpio.023.invert_output
    26  bit   RW          FALSE  hm2_7c80.0.gpio.023.is_opendrain
    26  bit   RW          FALSE  hm2_7c80.0.gpio.024.invert_output
    26  bit   RW          FALSE  hm2_7c80.0.gpio.024.is_opendrain
    26  bit   RW          FALSE  hm2_7c80.0.gpio.025.invert_output
    26  bit   RW          FALSE  hm2_7c80.0.gpio.025.is_opendrain
    26  bit   RW          FALSE  hm2_7c80.0.gpio.026.invert_output
    26  bit   RW          FALSE  hm2_7c80.0.gpio.026.is_opendrain
    26  bit   RW          FALSE  hm2_7c80.0.gpio.028.invert_output
    26  bit   RW          FALSE  hm2_7c80.0.gpio.028.is_opendrain
    26  bit   RW          FALSE  hm2_7c80.0.gpio.029.invert_output
    26  bit   RW          FALSE  hm2_7c80.0.gpio.029.is_opendrain
    26  bit   RW          FALSE  hm2_7c80.0.gpio.030.invert_output
    26  bit   RW          FALSE  hm2_7c80.0.gpio.030.is_opendrain
    26  bit   RW          FALSE  hm2_7c80.0.gpio.031.invert_output
    26  bit   RW          FALSE  hm2_7c80.0.gpio.031.is_opendrain
    26  bit   RW          FALSE  hm2_7c80.0.gpio.032.invert_output
    26  bit   RW          FALSE  hm2_7c80.0.gpio.032.is_opendrain
    26  bit   RW          FALSE  hm2_7c80.0.gpio.033.invert_output
    26  bit   RW          FALSE  hm2_7c80.0.gpio.033.is_opendrain
    26  bit   RW          FALSE  hm2_7c80.0.gpio.034.invert_output
    26  bit   RW          FALSE  hm2_7c80.0.gpio.034.is_opendrain
    26  bit   RW          FALSE  hm2_7c80.0.gpio.035.invert_output
    26  bit   RW          FALSE  hm2_7c80.0.gpio.035.is_opendrain
    26  bit   RW          FALSE  hm2_7c80.0.gpio.036.invert_output
    26  bit   RW          FALSE  hm2_7c80.0.gpio.036.is_opendrain
    26  bit   RW          FALSE  hm2_7c80.0.gpio.037.invert_output
    26  bit   RW          FALSE  hm2_7c80.0.gpio.037.is_opendrain
    26  bit   RW          FALSE  hm2_7c80.0.gpio.037.is_output
    26  bit   RW          FALSE  hm2_7c80.0.gpio.038.invert_output
    26  bit   RW          FALSE  hm2_7c80.0.gpio.038.is_opendrain
    26  bit   RW          FALSE  hm2_7c80.0.gpio.038.is_output
    26  bit   RW          FALSE  hm2_7c80.0.gpio.039.invert_output
    26  bit   RW          FALSE  hm2_7c80.0.gpio.039.is_opendrain
    26  bit   RW          FALSE  hm2_7c80.0.gpio.039.is_output
    26  bit   RW          FALSE  hm2_7c80.0.gpio.040.invert_output
    26  bit   RW          FALSE  hm2_7c80.0.gpio.040.is_opendrain
    26  bit   RW          FALSE  hm2_7c80.0.gpio.040.is_output
    26  bit   RW          FALSE  hm2_7c80.0.gpio.041.invert_output
    26  bit   RW          FALSE  hm2_7c80.0.gpio.041.is_opendrain
    26  bit   RW          FALSE  hm2_7c80.0.gpio.041.is_output
    26  bit   RW          FALSE  hm2_7c80.0.gpio.042.invert_output
    26  bit   RW          FALSE  hm2_7c80.0.gpio.042.is_opendrain
    26  bit   RW          FALSE  hm2_7c80.0.gpio.042.is_output
    26  bit   RW          FALSE  hm2_7c80.0.gpio.043.invert_output
    26  bit   RW          FALSE  hm2_7c80.0.gpio.043.is_opendrain
    26  bit   RW          FALSE  hm2_7c80.0.gpio.043.is_output
    26  bit   RW          FALSE  hm2_7c80.0.gpio.044.invert_output
    26  bit   RW          FALSE  hm2_7c80.0.gpio.044.is_opendrain
    26  bit   RW          FALSE  hm2_7c80.0.gpio.044.is_output
    26  bit   RW          FALSE  hm2_7c80.0.gpio.045.invert_output
    26  bit   RW          FALSE  hm2_7c80.0.gpio.045.is_opendrain
    26  bit   RW          FALSE  hm2_7c80.0.gpio.045.is_output
    26  bit   RW          FALSE  hm2_7c80.0.gpio.046.invert_output
    26  bit   RW          FALSE  hm2_7c80.0.gpio.046.is_opendrain
    26  bit   RW          FALSE  hm2_7c80.0.gpio.046.is_output
    26  bit   RW          FALSE  hm2_7c80.0.gpio.047.invert_output
    26  bit   RW          FALSE  hm2_7c80.0.gpio.047.is_opendrain
    26  bit   RW          FALSE  hm2_7c80.0.gpio.047.is_output
    26  bit   RW          FALSE  hm2_7c80.0.gpio.048.invert_output
    26  bit   RW          FALSE  hm2_7c80.0.gpio.048.is_opendrain
    26  bit   RW          FALSE  hm2_7c80.0.gpio.048.is_output
    26  bit   RW          FALSE  hm2_7c80.0.gpio.049.invert_output
    26  bit   RW          FALSE  hm2_7c80.0.gpio.049.is_opendrain
    26  bit   RW          FALSE  hm2_7c80.0.gpio.049.is_output
    26  bit   RW          FALSE  hm2_7c80.0.gpio.050.invert_output
    26  bit   RW          FALSE  hm2_7c80.0.gpio.050.is_opendrain
    26  bit   RW          FALSE  hm2_7c80.0.gpio.050.is_output
    26  bit   RW          FALSE  hm2_7c80.0.gpio.051.invert_output
    26  bit   RW          FALSE  hm2_7c80.0.gpio.051.is_opendrain
    26  bit   RW          FALSE  hm2_7c80.0.gpio.051.is_output
    26  bit   RW          FALSE  hm2_7c80.0.gpio.052.invert_output
    26  bit   RW          FALSE  hm2_7c80.0.gpio.052.is_opendrain
    26  bit   RW          FALSE  hm2_7c80.0.gpio.052.is_output
    26  bit   RW          FALSE  hm2_7c80.0.gpio.053.invert_output
    26  bit   RW          FALSE  hm2_7c80.0.gpio.053.is_opendrain
    26  bit   RW          FALSE  hm2_7c80.0.gpio.053.is_output
    26  bit   RW          FALSE  hm2_7c80.0.inmux.00.enc0_4xmode
    26  bit   RW          FALSE  hm2_7c80.0.inmux.00.enc1_4xmode
    26  bit   RW          FALSE  hm2_7c80.0.inmux.00.enc2_4xmode
    26  bit   RW          FALSE  hm2_7c80.0.inmux.00.enc3_4xmode
    26  u32   RW     0x00000005  hm2_7c80.0.inmux.00.fast_scans
    26  u32   RW     0x00004E20  hm2_7c80.0.inmux.00.scan_rate
    26  u32   RO     0x00000018  hm2_7c80.0.inmux.00.scan_width
    26  u32   RW     0x000001F4  hm2_7c80.0.inmux.00.slow_scans
    26  bit   RW          FALSE  hm2_7c80.0.io_error
    26  s32   RW         113350  hm2_7c80.0.read.tmax
    26  bit   RO          FALSE  hm2_7c80.0.read.tmax-increased
    26  bit   RW          FALSE  hm2_7c80.0.stepgen.00.direction.invert_output
    26  bit   RW          FALSE  hm2_7c80.0.stepgen.00.direction.is_opendrain
    26  u32   RW     0x00002710  hm2_7c80.0.stepgen.00.dirhold
    26  u32   RW     0x00002710  hm2_7c80.0.stepgen.00.dirsetup
    26  float RW           37.5  hm2_7c80.0.stepgen.00.maxaccel
    26  float RW           1.25  hm2_7c80.0.stepgen.00.maxvel
    26  float RW           2032  hm2_7c80.0.stepgen.00.position-scale
    26  bit   RW          FALSE  hm2_7c80.0.stepgen.00.step.invert_output
    26  bit   RW          FALSE  hm2_7c80.0.stepgen.00.step.is_opendrain
    26  u32   RW     0x00000000  hm2_7c80.0.stepgen.00.step_type
    26  u32   RW     0x00001770  hm2_7c80.0.stepgen.00.steplen
    26  u32   RW     0x00001770  hm2_7c80.0.stepgen.00.stepspace
    26  u32   RW     0x00000000  hm2_7c80.0.stepgen.00.table-data-0
    26  u32   RW     0x00000000  hm2_7c80.0.stepgen.00.table-data-1
    26  u32   RW     0x00000000  hm2_7c80.0.stepgen.00.table-data-2
    26  u32   RW     0x00000000  hm2_7c80.0.stepgen.00.table-data-3
    26  bit   RW          FALSE  hm2_7c80.0.stepgen.01.direction.invert_output
    26  bit   RW          FALSE  hm2_7c80.0.stepgen.01.direction.is_opendrain
    26  u32   RW     0x00002710  hm2_7c80.0.stepgen.01.dirhold
    26  u32   RW     0x00002710  hm2_7c80.0.stepgen.01.dirsetup
    26  float RW           37.5  hm2_7c80.0.stepgen.01.maxaccel
    26  float RW           1.25  hm2_7c80.0.stepgen.01.maxvel
    26  float RW            200  hm2_7c80.0.stepgen.01.position-scale
    26  bit   RW          FALSE  hm2_7c80.0.stepgen.01.step.invert_output
    26  bit   RW          FALSE  hm2_7c80.0.stepgen.01.step.is_opendrain
    26  u32   RW     0x00000000  hm2_7c80.0.stepgen.01.step_type
    26  u32   RW     0x00001388  hm2_7c80.0.stepgen.01.steplen
    26  u32   RW     0x00001388  hm2_7c80.0.stepgen.01.stepspace
    26  u32   RW     0x00000000  hm2_7c80.0.stepgen.01.table-data-0
    26  u32   RW     0x00000000  hm2_7c80.0.stepgen.01.table-data-1
    26  u32   RW     0x00000000  hm2_7c80.0.stepgen.01.table-data-2
    26  u32   RW     0x00000000  hm2_7c80.0.stepgen.01.table-data-3
    26  bit   RW          FALSE  hm2_7c80.0.stepgen.02.direction.invert_output
    26  bit   RW          FALSE  hm2_7c80.0.stepgen.02.direction.is_opendrain
    26  u32   RW     0x00002710  hm2_7c80.0.stepgen.02.dirhold
    26  u32   RW     0x00002710  hm2_7c80.0.stepgen.02.dirsetup
    26  float RW           37.5  hm2_7c80.0.stepgen.02.maxaccel
    26  float RW           1.25  hm2_7c80.0.stepgen.02.maxvel
    26  float RW            200  hm2_7c80.0.stepgen.02.position-scale
    26  bit   RW          FALSE  hm2_7c80.0.stepgen.02.step.invert_output
    26  bit   RW          FALSE  hm2_7c80.0.stepgen.02.step.is_opendrain
    26  u32   RW     0x00000000  hm2_7c80.0.stepgen.02.step_type
    26  u32   RW     0x00001388  hm2_7c80.0.stepgen.02.steplen
    26  u32   RW     0x00001388  hm2_7c80.0.stepgen.02.stepspace
    26  u32   RW     0x00000000  hm2_7c80.0.stepgen.02.table-data-0
    26  u32   RW     0x00000000  hm2_7c80.0.stepgen.02.table-data-1
    26  u32   RW     0x00000000  hm2_7c80.0.stepgen.02.table-data-2
    26  u32   RW     0x00000000  hm2_7c80.0.stepgen.02.table-data-3
    26  bit   RW          FALSE  hm2_7c80.0.stepgen.03.direction.invert_output
    26  bit   RW          FALSE  hm2_7c80.0.stepgen.03.direction.is_opendrain
    26  u32   RW     0x00002710  hm2_7c80.0.stepgen.03.dirhold
    26  u32   RW     0x00002710  hm2_7c80.0.stepgen.03.dirsetup
    26  float RW           37.5  hm2_7c80.0.stepgen.03.maxaccel
    26  float RW           1.25  hm2_7c80.0.stepgen.03.maxvel
    26  float RW            200  hm2_7c80.0.stepgen.03.position-scale
    26  bit   RW          FALSE  hm2_7c80.0.stepgen.03.step.invert_output
    26  bit   RW          FALSE  hm2_7c80.0.stepgen.03.step.is_opendrain
    26  u32   RW     0x00000000  hm2_7c80.0.stepgen.03.step_type
    26  u32   RW     0x00001388  hm2_7c80.0.stepgen.03.steplen
    26  u32   RW     0x00001388  hm2_7c80.0.stepgen.03.stepspace
    26  u32   RW     0x00000000  hm2_7c80.0.stepgen.03.table-data-0
    26  u32   RW     0x00000000  hm2_7c80.0.stepgen.03.table-data-1
    26  u32   RW     0x00000000  hm2_7c80.0.stepgen.03.table-data-2
    26  u32   RW     0x00000000  hm2_7c80.0.stepgen.03.table-data-3
    26  bit   RW          FALSE  hm2_7c80.0.stepgen.04.direction.invert_output
    26  bit   RW          FALSE  hm2_7c80.0.stepgen.04.direction.is_opendrain
    26  u32   RW     0x00002710  hm2_7c80.0.stepgen.04.dirhold
    26  u32   RW     0x00002710  hm2_7c80.0.stepgen.04.dirsetup
    26  float RW           37.5  hm2_7c80.0.stepgen.04.maxaccel
    26  float RW           1.25  hm2_7c80.0.stepgen.04.maxvel
    26  float RW            200  hm2_7c80.0.stepgen.04.position-scale
    26  bit   RW          FALSE  hm2_7c80.0.stepgen.04.step.invert_output
    26  bit   RW          FALSE  hm2_7c80.0.stepgen.04.step.is_opendrain
    26  u32   RW     0x00000000  hm2_7c80.0.stepgen.04.step_type
    26  u32   RW     0x00001388  hm2_7c80.0.stepgen.04.steplen
    26  u32   RW     0x00001388  hm2_7c80.0.stepgen.04.stepspace
    26  u32   RW     0x00000000  hm2_7c80.0.stepgen.04.table-data-0
    26  u32   RW     0x00000000  hm2_7c80.0.stepgen.04.table-data-1
    26  u32   RW     0x00000000  hm2_7c80.0.stepgen.04.table-data-2
    26  u32   RW     0x00000000  hm2_7c80.0.stepgen.04.table-data-3
    26  u32   RW     0x004C4B40  hm2_7c80.0.watchdog.timeout_ns
    26  s32   RW         135646  hm2_7c80.0.write.tmax
    26  bit   RO          FALSE  hm2_7c80.0.write.tmax-increased

pi@linuxcnc:~ $ 

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

More
24 Feb 2021 19:44 - 24 Feb 2021 19:44 #200017 by PCW
The firmware contains 1 PWMgen for the spindle:

Module: PWM
  There are 1 of PWM in configuration
  Version: 0
  Registers: 5
  BaseAddress: 4100
  ClockFrequency: 200.000 MHz
  Register Stride: 256 bytes
  Instance Stride: 4 bytes

It likely you have the PWM generator disabled in your hal or ini ifile
Last edit: 24 Feb 2021 19:44 by PCW.

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

More
24 Feb 2021 22:50 #200044 by Clive S

I do this with LinuxCNC running there are no PWM pins or parameters. Does this mean I have to flash the mesa to configure it?



You have
loadrt hm2_rpspi config=" num_encoders=0 num_pwmgens=0 num_stepgens=5"

try

loadrt hm2_rpspi config=" num_encoders=0 num_pwmgens=1 num_stepgens=5"

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

Time to create page: 0.092 seconds
Powered by Kunena Forum