Bit file for Mesa 7i76e with UART?
13 Sep 2017 13:47 #98922
by rodw
Bit file for Mesa 7i76e with UART? was created by rodw
Is there a bit file that I could install on my 7i76e that replaces the smart serial with a UART?
I'd like to play with RS485
I'd like to play with RS485
Please Log in or Create an account to join the conversation.
14 Sep 2017 14:06 #98948
by PCW
Replied by PCW on topic Bit file for Mesa 7i76e with UART?
I can make a bitfile with a UART on the 7I76Es expansion connector
_But_
1. the 7I76/7I76E has a RS-422 interface, not RS485 so will only work with 4 wire interfaces (not 2 wire)
2. There is little support for the UART (Packet UART in this case) in LinuxCNC
You might be able to work around (1) with some say 100 Ohm series resistors in the RS-422 TX lines
and wiring the TX and RX together
What kind of command protocol does the plasma use? As far as I know there are only user written components that access the Packet UART (one included example communicates with a gyroscope...)
_But_
1. the 7I76/7I76E has a RS-422 interface, not RS485 so will only work with 4 wire interfaces (not 2 wire)
2. There is little support for the UART (Packet UART in this case) in LinuxCNC
You might be able to work around (1) with some say 100 Ohm series resistors in the RS-422 TX lines
and wiring the TX and RX together
What kind of command protocol does the plasma use? As far as I know there are only user written components that access the Packet UART (one included example communicates with a gyroscope...)
Please Log in or Create an account to join the conversation.
14 Sep 2017 20:16 #98968
by rodw
Replied by rodw on topic Bit file for Mesa 7i76e with UART?
Peter thanks
Andy pointed me towards this hostmot2 driver via the Developers mailing list
github.com/LinuxCNC/linuxcnc/blob/master...ivers/mesa_uart.comp
The protocol is MODBUS and the plasma machine has a 4 wire interface
See this link for protocol and wiring pinout:
forum.robotsinarchitecture.org/index.php...pic=232.0;attach=335
And yes, I know I'll have to write some code. It would be nice if there was a Hypertherm modbus component for Mesa cards to support your THCAD.
Andy pointed me towards this hostmot2 driver via the Developers mailing list
github.com/LinuxCNC/linuxcnc/blob/master...ivers/mesa_uart.comp
The protocol is MODBUS and the plasma machine has a 4 wire interface
See this link for protocol and wiring pinout:
forum.robotsinarchitecture.org/index.php...pic=232.0;attach=335
And yes, I know I'll have to write some code. It would be nice if there was a Hypertherm modbus component for Mesa cards to support your THCAD.
Please Log in or Create an account to join the conversation.
20 Sep 2017 10:51 #99155
by rodw
Replied by rodw on topic Bit file for Mesa 7i76e with UART?
Peter, it would be great if you could find the time to build this bit file. I think it would be very helpful for plasma table builders.
Rod
Rod
Please Log in or Create an account to join the conversation.
23 Sep 2017 02:45 #99301
by PCW
Replied by PCW on topic Bit file for Mesa 7i76e with UART?
freeby.mesanet.com/7i76e_7i76x1_PktD.bit
Not sure
1. if the driver is complete
2. How you talk to it
Not sure
1. if the driver is complete
2. How you talk to it
The following user(s) said Thank You: rodw
Please Log in or Create an account to join the conversation.
23 Sep 2017 04:56 #99306
by rodw
Replied by rodw on topic Bit file for Mesa 7i76e with UART?
Peter thanks so much. I'm tied up at a trade show all weekend so it might be a week or so before I can play with this.
Please Log in or Create an account to join the conversation.
24 Sep 2017 21:55 #99388
by rodw
Replied by rodw on topic Bit file for Mesa 7i76e with UART?
Well, I don't have a Hypertherm handy yet so I need some way of emulating one to test this out. I think I'll use an Arduino and a MAX488 chip as per this pinout. www.homebuiltrovs.com/rovforum/viewtopic.php?f=15&t=1047
I had a look at the MAX488 data sheet and it all looks pretty straight forward to convert the Arduino's 2 wire UART via the MAX488 to a 4 wire RS485 connection. The MAX488 pins map directly to the Hypertherm pinout.
One question though. The MAX488 documentation say so to connect a 120 ohm resistor between RX+ and RX- at each end of the link. Is this necessary at the Mesa 7i76e end?
I had a look at the MAX488 data sheet and it all looks pretty straight forward to convert the Arduino's 2 wire UART via the MAX488 to a 4 wire RS485 connection. The MAX488 pins map directly to the Hypertherm pinout.
One question though. The MAX488 documentation say so to connect a 120 ohm resistor between RX+ and RX- at each end of the link. Is this necessary at the Mesa 7i76e end?
Please Log in or Create an account to join the conversation.
25 Sep 2017 02:44 #99391
by PCW
Replied by PCW on topic Bit file for Mesa 7i76e with UART?
The 7I76E RX pins are already terminated
The following user(s) said Thank You: rodw
Please Log in or Create an account to join the conversation.
30 Sep 2017 23:01 #99705
by rodw
Replied by rodw on topic Bit file for Mesa 7i76e with UART?
I finally found some time to see if I could install the bit file using hm2_eth
I found that with this configuration, my MPG encoders disappeared, so I had to add back in the " sserial_port_0=2xxxx"
I did not think I should be playing with a sserial_port. The output does not show a UART loaded
Do I need to flash the bitfile?
With Serial port
sserial_port_0=2xxxx
encoders are enabled now
LINUXCNC - 2.8.0~pre1
Machine configuration directory is '/home/plasma/linuxcnc/configs/Plasma3.10.01'
Machine configuration file is 'Spaceship_Plasma.ini'
Starting LinuxCNC...
Found file(REL): ./Spaceship_Plasma.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: Hardware address: 00:60:1b:10:40:6c
hm2_eth: discovered 7I76E-16
hm2/hm2_7i76e.0: Smart Serial Firmware Version 43
Board hm2_7i76e.0.7i76.0.0 Hardware Mode 0 = standard
Board hm2_7i76e.0.7i76.0.0 Software Mode 0 = io_spin
Board hm2_7i76e.0.7i76.0.0 Software Mode 1 = io_ana_spin
Board hm2_7i76e.0.7i76.0.0 Software Mode 2 = io_enc_ana_spin_fv
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): IOPort
hm2/hm2_7i76e.0: IO Pin 013 (P1-10): IOPort
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
loadrt hm2_eth board_ip="10.10.10.10" config="firmware=/home/plasma/linuxcnc/configs/Plasma3.10.01/7i76e_7i76x1_PktD.bit num_encoders=1 num_pwmgens=0 num_stepgens=5 "
I found that with this configuration, my MPG encoders disappeared, so I had to add back in the " sserial_port_0=2xxxx"
loadrt hm2_eth board_ip="10.10.10.10" config="firmware=/home/plasma/linuxcnc/configs/Plasma3.10.01/7i76e_7i76x1_PktD.bit num_encoders=1 num_pwmgens=0 num_stepgens=5 sserial_port_0=2xxxx"
I did not think I should be playing with a sserial_port. The output does not show a UART loaded
Do I need to flash the bitfile?
Warning: Spoiler!
With Serial port
sserial_port_0=2xxxx
encoders are enabled now
LINUXCNC - 2.8.0~pre1
Machine configuration directory is '/home/plasma/linuxcnc/configs/Plasma3.10.01'
Machine configuration file is 'Spaceship_Plasma.ini'
Starting LinuxCNC...
Found file(REL): ./Spaceship_Plasma.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: Hardware address: 00:60:1b:10:40:6c
hm2_eth: discovered 7I76E-16
hm2/hm2_7i76e.0: Smart Serial Firmware Version 43
Board hm2_7i76e.0.7i76.0.0 Hardware Mode 0 = standard
Board hm2_7i76e.0.7i76.0.0 Software Mode 0 = io_spin
Board hm2_7i76e.0.7i76.0.0 Software Mode 1 = io_ana_spin
Board hm2_7i76e.0.7i76.0.0 Software Mode 2 = io_enc_ana_spin_fv
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): IOPort
hm2/hm2_7i76e.0: IO Pin 013 (P1-10): IOPort
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
Please Log in or Create an account to join the conversation.
01 Oct 2017 00:01 #99708
by PCW
Replied by PCW on topic Bit file for Mesa 7i76e with UART?
The firmware=xxxx does nothing on the 7I76e (or any other Mesa FPGA card that loads its configuration from flash memory)
You need to use mesaflash and program the 7I76E with the new firmware
Note that no hal pins are created by the UART but its pins should show up in the pinout list that's printed when
LinuxCNC starts
You need to use mesaflash and program the 7I76E with the new firmware
Note that no hal pins are created by the UART but its pins should show up in the pinout list that's printed when
LinuxCNC starts
Please Log in or Create an account to join the conversation.
Time to create page: 0.084 seconds