Struggling to get all encoders to show up on 7i77 via 7i94T

More
24 Mar 2025 17:59 #324801 by workshop54
I've been working on this all day and it's starting to drive me a bit crazy.

I'm using a 7i77 connected through a 7i94T and trying to get at least 3 of the encoders to show up in halcmd show pin. So far, only two encoders are visible.

Here’s what I see:
~/linuxcnc/configs/maho_mh400e$ halcmd show pin | grep 7i77
    26  float OUT             0  hm2_7i94.0.7i77.0.0.analogin0
    26  float OUT             0  hm2_7i94.0.7i77.0.0.analogin1
    26  float OUT             0  hm2_7i94.0.7i77.0.0.analogin2
    26  float OUT             0  hm2_7i94.0.7i77.0.0.analogin3
    26  s32   OUT             0  hm2_7i94.0.7i77.0.0.enc0.count
    26  bit   I/O         FALSE  hm2_7i94.0.7i77.0.0.enc0.index-enable
    26  float OUT             0  hm2_7i94.0.7i77.0.0.enc0.position
    26  s32   OUT             0  hm2_7i94.0.7i77.0.0.enc0.rawcounts
    26  bit   I/O         FALSE  hm2_7i94.0.7i77.0.0.enc0.reset
    26  s32   OUT             0  hm2_7i94.0.7i77.0.0.enc1.count
    26  bit   I/O         FALSE  hm2_7i94.0.7i77.0.0.enc1.index-enable
    26  float OUT             0  hm2_7i94.0.7i77.0.0.enc1.position
    26  s32   OUT             0  hm2_7i94.0.7i77.0.0.enc1.rawcounts
    26  bit   I/O         FALSE  hm2_7i94.0.7i77.0.0.enc1.reset
    26  float OUT      25.02753  hm2_7i94.0.7i77.0.0.fieldvoltage
    26  bit   OUT         FALSE  hm2_7i94.0.7i77.0.0.input-00
    26  bit   OUT          TRUE  hm2_7i94.0.7i77.0.0.input-00-not
    // omitted other input pins for brevity
    26  bit   IN          FALSE  hm2_7i94.0.7i77.0.0.output-00
    // omitted other output pins for brevity
    26  bit   IN          FALSE  hm2_7i94.0.7i77.0.1.analogena
    26  float IN              0  hm2_7i94.0.7i77.0.1.analogout0
    26  float IN              0  hm2_7i94.0.7i77.0.1.analogout1
    26  float IN              0  hm2_7i94.0.7i77.0.1.analogout2
    26  float IN              0  hm2_7i94.0.7i77.0.1.analogout3
    26  float IN              0  hm2_7i94.0.7i77.0.1.analogout4
    26  float IN              0  hm2_7i94.0.7i77.0.1.analogout5
    26  bit   IN          FALSE  hm2_7i94.0.7i77.0.1.spinena

I’ve double-checked the firmware:
~/linuxcnc/configs/maho_mh400e$ mesaflash —device 7i94t —addr 192.168.1.121 —readhmid
Configuration Name: HOSTMOT2

General configuration information:

  BoardName : MESA7I94
  FPGA Size: 20 KGates
  FPGA Pins: 256
  Number of IO Ports: 2
  Width of one I/O port: 21
  Clock Low frequency: 100.0000 MHz
  Clock High frequency: 175.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: MuxedQCount
  There are 6 of MuxedQCount in configuration
  Version: 4
  Registers: 5
  BaseAddress: 3600
  ClockFrequency: 100.000 MHz
  Register Stride: 256 bytes
  Instance Stride: 4 bytes

  Module: MuxedQCountSel
  There are 1 of MuxedQCountSel in configuration
  Version: 0
  Registers: 0
  BaseAddress: 0000
  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: 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 Expansion+Serial 0..1 -> 7I94_0
Pin#                  I/O   Pri. func    Sec. func        Chan     Sec. Pin func   Sec. Pin Dir

P1-01/DB25-01           0   IOPort       SSerial          0        TXEn2           (Out)
P1-02/DB25-14           1   IOPort       SSerial          0        TXData2         (Out)
P1-03/DB25-02           2   IOPort       SSerial          0        RXData2         (In)
P1-04/DB25-15           3   IOPort       SSerial          0        TXData1         (Out)
P1-05/DB25-03           4   IOPort       SSerial          0        RXData1         (In)
P1-06/DB25-16           5   IOPort       SSerial          0        TXData0         (Out)
P1-07/DB25-04           6   IOPort       SSerial          0        RXData0         (In)
P1-08/DB25-17           7   IOPort       MuxedQCountSel   0        MuxSel0         (Out)
P1-09/DB25-05           8   IOPort       MuxedQCount      0        MuxQ-A          (In)
P1-11/DB25-06           9   IOPort       MuxedQCount      0        MuxQ-B          (In)
P1-13/DB25-07          10   IOPort       MuxedQCount      0        MuxQ-IDX        (In)
P1-15/DB25-08          11   IOPort       MuxedQCount      1        MuxQ-A          (In)
P1-17/DB25-09          12   IOPort       MuxedQCount      1        MuxQ-B          (In)
P1-19/DB25-10          13   IOPort       MuxedQCount      1        MuxQ-IDX        (In)
P1-21/DB25-11          14   IOPort       MuxedQCount      2        MuxQ-A          (In)
P1-23/DB25-12          15   IOPort       MuxedQCount      2        MuxQ-B          (In)
P1-25/DB25-13          16   IOPort       MuxedQCount      2        MuxQ-IDX        (In)
J6 1,2                 17   IOPort       SSerial          0        RXData3         (In)
J6 3,6                 18   IOPort       SSerial          0        TXData3         (Out)
J6 TXEN                19   IOPort       SSerial          0        TXEn3           (Out)
J7 1,2                 20   IOPort       SSerial          0        RXData4         (In)

IO Connections for Serial 1..7 -> 7I94_1
Pin#                  I/O   Pri. func    Sec. func        Chan     Sec. Pin func   Sec. Pin Dir

J7-3,6                 21   IOPort       SSerial          0        TXData4         (Out)
J7-TXEN                22   IOPort       SSerial          0        TXEn4           (Out)
J8-1,2                 23   IOPort       SSerial          0        RXData5         (In)
J8-3,6                 24   IOPort       SSerial          0        TXData5         (Out)
J8-TXEN                25   IOPort       SSerial          0        TXEn5           (Out)
J9-1,2                 26   IOPort       SSerial          0        RXData6         (In)
J9-3,6                 27   IOPort       SSerial          0        TXData6         (Out)
J9-TXEN                28   IOPort       SSerial          0        TXEn6           (Out)
J4-1,2                 29   IOPort       SSerial          0        RXData7         (In)
J4-3,6                 30   IOPort       SSerial          0        TXData7         (Out)
J4-TXEN                31   IOPort       SSerial          0        TXEn7           (Out)
J3-1,2                 32   IOPort       None           
J3-3,6                 33   IOPort       None           
J3-TXEN                34   IOPort       None           
J2-1,2                 35   IOPort       None           
J2-3,6                 36   IOPort       None           
J2-TXEN                37   IOPort       None           
J1-1,2                 38   IOPort       None           
J1-3,6                 39   IOPort       None           
J1-TXEN                40   IOPort       None           
P2-/ENA                41   IOPort       None 

My HAL config includes:
loadrt hm2_eth board_ip=192.168.1.121 config=”sserial_port_0=300xxx”

The SmartSerial section seems to be working fine; analog IOs and digital IOs show up correctly.

But I expected more encoders from the 7i77 to appear — at least enc2..enc4 — and I can’t figure out what I’m missing. Is there anything I need to change in the firmware, or is my HAL config wrong?

Any help would be very appreciated. I’m just trying to get basic encoder feedback working for now before wiring up the rest.

Thanks in advance!

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

More
24 Mar 2025 18:19 - 24 Mar 2025 22:47 #324807 by PCW
That's an odd error, I'll see if I can duplicate it here.

Have you had any communication errors? The only time I've seen something like this
before is where there were major communication issues.

That is, can you:

EDIT change IP address

sudo chrt 99 ping -i .001 -c 60000 -q 192.168.1.121


Without any dropped packets?


Note that 10.10.10.10 is suggested as the 7I94T IP address as 192.168.1.121
often overlaps local NAT ranges.


Note, checked a 7I94 with 7I77 firmware:  7i94t_7i77d.bin  and all encoders
showed up:

 

File Attachment:

File Name: 7i94tenc.txt
File Size:6 KB



 
Attachments:
Last edit: 24 Mar 2025 22:47 by PCW.

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

More
25 Mar 2025 15:26 - 25 Mar 2025 15:32 #324887 by workshop54
Ahhh, there they are.

I was doing grep 7i77 instead of grep enc.

Now I notice that the encoders are actually directly under the 7i94T, instead of the 7i77.
This makes me feel like a total newb again. (Well, I am in LinuxCNC, but not in programming)

Running the card on 192.168.1.121 works fine for me because I changed the NetworkManager config.

I tried to get the card on 10.10.10.10 with mesaflash —device 7i94t —addr 192.168.1.121 —set ip=10.10.10.10, but that doesn’t work for some reason.

The chrt command you gave me showed no packet loss.
~/linuxcnc/configs/maho_mh400e$  sudo chrt 99 ping -i .001 -c 60000 -q 192.168.1.121
PING 192.168.1.121 (192.168.1.121) 56(84) bytes of data.

—- 192.168.1.121 ping statistics —-
60000 packets transmitted, 60000 received, 0% packet loss, time 60022ms
rtt min/avg/max/mdev = 0.137/0.258/0.477/0.030 ms
Last edit: 25 Mar 2025 15:32 by workshop54. Reason: Inline code is not supported

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

More
25 Mar 2025 15:39 #324888 by PCW
You change to the EEPROM IP address (default is 10.10.10.10 )
by moving the IP address setting jumper (and power cycling)

What you did was re-write the EEPROM IP address to 10.10.10.10 (it was already that)
The following user(s) said Thank You: workshop54

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

Moderators: PCWjmelson
Time to create page: 0.085 seconds
Powered by Kunena Forum