update Firmware of 7i73, through 7i74 and 7i76e

More
31 Jul 2016 11:51 #78180 by newbynobi
Hallo,

I have my 7i76e connected to 192.168.1.121 on P1 I have connected a 7i74 and on that one on chanel 0 is connected the 7i73

As I got problems with the keycodes and find that updating the firmware might solve the problem I tried to update.

So I modified updategeneric-eth.hal to load as follows
loadrt hostmot2 sserial_baudrate=115200
loadrt hm2_eth board_ip="192.168.1.121" config="firmware=hm2/7i76/7i76e_7i76x1_7i74x1D.BIT"
loadrt setsserial cmd="flash hm2_7i76e.0.7i73.1.0 hm2/7i73/7I73R14.BIN"
exit

Now I can run ./updatess-eth 7i73 7i76e 1
I put the 7i76e to setup mode W8 right and the 7i73 as well W5 and W6 up

The updater does find the 7i73 but I get the error remote failt to start

Here are the complete output:
gmoccapy@machinekit:/Data/Downloads/MESA/sserial/utils/linuxcnc$ ./updatess-eth 7i73 7i76e 1
set jumper on remote device to setup mode
cycle remote device power and then hit return

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: 192.168.1.121: Hardware address: 00:60:1b:10:40:30
hm2_eth: discovered 7I76E-16
hm2/hm2_7i76e.0: Smart Serial Firmware Version 43
hm2/hm2_7i76e.0: num_channels = 2
hm2/hm2_7i76e.0: Chan 0 baudrate = 2500000
hm2/hm2_7i76e.0: Chan 0. Baudrate set to 115200
hm2/hm2_7i76e.0: Chan 1 baudrate = 2500000
hm2/hm2_7i76e.0: Chan 1. Baudrate set to 115200
Setup mode
Looking for 8i20s, crc_addr = 142
found a     
Setup mode
Looking for 8i20s, crc_addr = 192
found a     
hm2/hm2_7i76e.0: Smart Serial Firmware Version 43
hm2/hm2_7i76e.0: num_channels = 8
hm2/hm2_7i76e.0: Chan 0 baudrate = 2500000
hm2/hm2_7i76e.0: Chan 0. Baudrate set to 115200
hm2/hm2_7i76e.0: Chan 1 baudrate = 2500000
hm2/hm2_7i76e.0: Chan 1. Baudrate set to 115200
hm2/hm2_7i76e.0: Chan 2 baudrate = 2500000
hm2/hm2_7i76e.0: Chan 2. Baudrate set to 115200
hm2/hm2_7i76e.0: Chan 3 baudrate = 2500000
hm2/hm2_7i76e.0: Chan 3. Baudrate set to 115200
hm2/hm2_7i76e.0: Chan 4 baudrate = 2500000
hm2/hm2_7i76e.0: Chan 4. Baudrate set to 115200
hm2/hm2_7i76e.0: Chan 5 baudrate = 2500000
hm2/hm2_7i76e.0: Chan 5. Baudrate set to 115200
hm2/hm2_7i76e.0: Chan 6 baudrate = 2500000
hm2/hm2_7i76e.0: Chan 6. Baudrate set to 115200
hm2/hm2_7i76e.0: Chan 7 baudrate = 2500000
hm2/hm2_7i76e.0: Chan 7. Baudrate set to 115200
Setup mode
found a 7I73
Setup mode
Looking for 8i20s, crc_addr = 192
found a     
Setup mode
Looking for 8i20s, crc_addr = 242
found a     
Setup mode
Looking for 8i20s, crc_addr = 292
found a     
Setup mode
Looking for 8i20s, crc_addr = 342
found a     
Setup mode
Looking for 8i20s, crc_addr = 392
found a     
Setup mode
Looking for 8i20s, crc_addr = 442
found a     
Setup mode
Looking for 8i20s, crc_addr = 492
found a     
hm2/hm2_7i76e.0: Setup mode, creating no pins for smart-serial channel hm2_7i76e.0.7i73.1.0
hm2/hm2_7i76e.0: 51 I/O Pins used:
hm2/hm2_7i76e.0:     IO Pin 000 (P1-01): StepGen #0, pin Direction (Output)
hm2/hm2_7i76e.0:     IO Pin 001 (P1-14): StepGen #0, pin Step (Output)
hm2/hm2_7i76e.0:     IO Pin 002 (P1-02): StepGen #1, pin Direction (Output)
hm2/hm2_7i76e.0:     IO Pin 003 (P1-15): StepGen #1, pin Step (Output)
hm2/hm2_7i76e.0:     IO Pin 004 (P1-03): StepGen #2, pin Direction (Output)
hm2/hm2_7i76e.0:     IO Pin 005 (P1-16): StepGen #2, pin Step (Output)
hm2/hm2_7i76e.0:     IO Pin 006 (P1-04): StepGen #3, pin Direction (Output)
hm2/hm2_7i76e.0:     IO Pin 007 (P1-17): StepGen #3, pin Step (Output)
hm2/hm2_7i76e.0:     IO Pin 008 (P1-05): StepGen #4, pin Direction (Output)
hm2/hm2_7i76e.0:     IO Pin 009 (P1-06): StepGen #4, pin Step (Output)
hm2/hm2_7i76e.0:     IO Pin 010 (P1-07): Smart Serial Interface #0, pin TxData0 (Output)
hm2/hm2_7i76e.0:     IO Pin 011 (P1-08): Smart Serial Interface #0, pin RxData0 (Input)
hm2/hm2_7i76e.0:     IO Pin 012 (P1-09): Smart Serial Interface #0, pin TxData1 (Output)
hm2/hm2_7i76e.0:     IO Pin 013 (P1-10): Smart Serial Interface #0, pin RxData1 (Input)
hm2/hm2_7i76e.0:     IO Pin 014 (P1-11): Encoder #0, pin Index (Input)
hm2/hm2_7i76e.0:     IO Pin 015 (P1-12): Encoder #0, pin B (Input)
hm2/hm2_7i76e.0:     IO Pin 016 (P1-13): Encoder #0, pin A (Input)
hm2/hm2_7i76e.0:     IO Pin 017 (P2-01): IOPort
hm2/hm2_7i76e.0:     IO Pin 018 (P2-14): IOPort
hm2/hm2_7i76e.0:     IO Pin 019 (P2-02): IOPort
hm2/hm2_7i76e.0:     IO Pin 020 (P2-15): IOPort
hm2/hm2_7i76e.0:     IO Pin 021 (P2-03): IOPort
hm2/hm2_7i76e.0:     IO Pin 022 (P2-16): IOPort
hm2/hm2_7i76e.0:     IO Pin 023 (P2-04): IOPort
hm2/hm2_7i76e.0:     IO Pin 024 (P2-17): IOPort
hm2/hm2_7i76e.0:     IO Pin 025 (P2-05): IOPort
hm2/hm2_7i76e.0:     IO Pin 026 (P2-06): IOPort
hm2/hm2_7i76e.0:     IO Pin 027 (P2-07): IOPort
hm2/hm2_7i76e.0:     IO Pin 028 (P2-08): IOPort
hm2/hm2_7i76e.0:     IO Pin 029 (P2-09): IOPort
hm2/hm2_7i76e.0:     IO Pin 030 (P2-10): IOPort
hm2/hm2_7i76e.0:     IO Pin 031 (P2-11): IOPort
hm2/hm2_7i76e.0:     IO Pin 032 (P2-12): IOPort
hm2/hm2_7i76e.0:     IO Pin 033 (P2-13): IOPort
hm2/hm2_7i76e.0:     IO Pin 034 (P3-01): IOPort
hm2/hm2_7i76e.0:     IO Pin 035 (P3-14): IOPort
hm2/hm2_7i76e.0:     IO Pin 036 (P3-02): IOPort
hm2/hm2_7i76e.0:     IO Pin 037 (P3-15): IOPort
hm2/hm2_7i76e.0:     IO Pin 038 (P3-03): IOPort
hm2/hm2_7i76e.0:     IO Pin 039 (P3-16): IOPort
hm2/hm2_7i76e.0:     IO Pin 040 (P3-04): IOPort
hm2/hm2_7i76e.0:     IO Pin 041 (P3-17): IOPort
hm2/hm2_7i76e.0:     IO Pin 042 (P3-05): IOPort
hm2/hm2_7i76e.0:     IO Pin 043 (P3-06): IOPort
hm2/hm2_7i76e.0:     IO Pin 044 (P3-07): IOPort
hm2/hm2_7i76e.0:     IO Pin 045 (P3-08): IOPort
hm2/hm2_7i76e.0:     IO Pin 046 (P3-09): IOPort
hm2/hm2_7i76e.0:     IO Pin 047 (P3-10): IOPort
hm2/hm2_7i76e.0:     IO Pin 048 (P3-11): IOPort
hm2/hm2_7i76e.0:     IO Pin 049 (P3-12): IOPort
hm2/hm2_7i76e.0:     IO Pin 050 (P3-13): IOPort
hm2/hm2_7i76e.0: registered
flash command
Firmware size 0xa800
setup start: data_reg readback = 1
Remote failed to start
Firmware Flash Failed
setsserial: rtapi_app_main: Operation not permitted (-1)
setsserial: not loaded
<commandline>:0: exit value: 255
<commandline>:0: rmmod failed, returned -1
hm2_eth: HostMot2 ethernet driver unloaded
hm2: unloading
<commandline>:0: unloadrt failed
Note: Using POSIX realtime
set jumper on remote device back to operate mode
and cycle remote device power
gmoccapy@machinekit:/Data/Downloads/MESA/sserial/utils/linuxcnc$ 

Is it possible to update the 7i73 through the 7i74?
Otherwise I will have to get all the hardware out of its boxes.

Norbert

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

More
31 Jul 2016 14:47 #78185 by PCW
What is the current 7I73 firmware version?
Unless its very old there are no firmware updates (V14 is the latest)

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

More
31 Jul 2016 15:10 #78188 by newbynobi
hm2_7i76e.0.7i73.1.0.swrevision shows 0x0000000E
hm2_7i76e.0.7i76e.0.0.swrevision shows 0x0000000E

so it seems to be up to date.

So may be my connection is wrong, is there an example for a test with a few wires?

Norbert

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

More
31 Jul 2016 15:16 #78189 by PCW
You should be able to generate a single key operation with just one wire between the row and column keyboard pins of the
7I73 (the 7I73 does need to have it hardware jumpers set right to enable the keypad scanning)

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

More
31 Jul 2016 15:42 #78191 by newbynobi
OK,

W5 = DOWN
W6 = UP
W7 = UP

should be OK

One wire connected to P1 pin 8
One wire connected to P1 pin 14

Now I watch hm2_7i76e.0.7i73.1.0.keycode it is 64
But shorting the wires does not bring any change of the keycode :-(

Hardware 7i76e with 7i74 on Expansion Connector P1 and the 7i73 connected to port 0 of the 7i74
loaded with
loadrt hm2_eth board_ip="192.168.1.121" config="firmware=hm2/7i76/7i76e_7i76ex1_7i74x1D.bit num_encoders=1 num_pwmgens=1 num_stepgens=3 sserial_port_0=0xxxxx sserial_port_1=10000000"

I tested with 2.7.5 and master with kernel 4.1.0-0.bpo.1-rt-amd64
(Jessie with machinekit kernel)

Norbert

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

More
31 Jul 2016 20:29 - 31 Jul 2016 22:10 #78206 by PCW
Its very unlikely this has anything to do with LinuxCNC, OS, or kernel versions or interface hardware

Are you sure you have the correct P1 pins and are not connecting any other keypad pins
to external signals?

The headers are numbered with one row of odd pins and one row of even pins like this:
(TOP VIEW)

1 2
3 4
5 6

Pin one is marked with a a square pad on the back of the card and a white band on the top of the card

BTW AFAICR, you need the matrix_kb component to decode the 7I73 scancodes as they may only appear once
(for one servo cycle)
Last edit: 31 Jul 2016 22:10 by PCW.
The following user(s) said Thank You: newbynobi

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

More
01 Aug 2016 07:18 #78223 by newbynobi
Thanks PCW,

matrix_kb did the trick ;-)

I was just watching the keycode in halshow, and that one didn't change.
After I added
loadrt matrix_kb config=4x8
addf matrix_kb.0 servo-thread
net keycode matrix_kb.0.keycode <= hm2_7i76e.0.7i73.1.0.keycode

to my hal, I was able to watch the pin changing the state.

Now I only have to find out, why I am not able to load the lcd component, but that is on another thread.

Thanks Norbert

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

More
01 Aug 2016 14:01 #78235 by PCW
Yeah, I had forgotten that the keycodes (other then the idle code) are only present for 1 servo period
so pretty hard to catch with hal watch

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

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