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

More
10 years 3 months ago #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
Code:
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:
Code:
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 to join the conversation.

More
10 years 3 months ago #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 to join the conversation.

More
10 years 3 months ago #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 to join the conversation.

More
10 years 3 months ago #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 to join the conversation.

More
10 years 3 months ago #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 to join the conversation.

More
10 years 2 months ago #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)

Please Log in to join the conversation.

More
10 years 2 months ago #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
Code:
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 to join the conversation.

More
10 years 2 months ago #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 to join the conversation.

Time to create page: 0.239 seconds
Powered by Kunena Forum