PCI add in parallel port cards

More
20 Mar 2011 01:14 #7941 by wireb
Ran short of inputs on my PC so looking to add another bank.

Any recommendation on parallel port PCI add in cards?
Looking at this one right now
cgi.ebay.com/DB25-Parallel-Port-LPT-PCI-...&hash=item5adf207a4e

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

More
21 Mar 2011 15:19 #7974 by andypugh
I suspect that the only way to tell will be to install it and see. There seems to be no mention of that chipset on the site search.

My opnion is that when you run out of pins on your p-port then it makes more sense to go for the Mesa 7i43 (plugs into the P-port, gives you 48 IO pins and does PWM and step generation on the board hardware). It is a bit more expensive. at $80 or so, but is also a lot better.

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

More
21 Mar 2011 15:59 #7976 by Kirk_Wallace
Just about any PCI parallel port card should work if you just need software generated general purpose digital I/O. The chipset issue comes about when you want to connect an FPGA signal generator board onto the parallel port. These FPGA boards communicate using EPP and most cards don't use EPP in a compatible manner. The price of the PCI card in question is good, but it is a single port card. A dual port card usually costs just a few dollars, euros, etc. more. It has been rumored that at least one of the Syba cards is FPGA compatible, it would be nice to be able to see if this one is.

I agree an FPGA card would give you faster motion signals, but for the cost of a dual parallel port card, at the least, it's handy to have one or two around for testing and are much cheaper than burning up a motherboard port.

For more, see the links under PCI Parallel Port Cards here: wiki.linuxcnc.org/cgi-bin/emcinfo.pl?EMC2_Supported_Hardware.
--
Kirk Wallace
www.wallacecompany.com/machine_shop/
www.wallacecompany.com/E45/index.html
California, USA

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

More
18 Aug 2011 02:49 #12570 by aaa
I just wanted to comment that the cheap ch35x 2 port serial + 1 port parallel cards that are littering sites like aliexpress and ebay (search for something like "pci parallel") DO work ALMOST out of the box with the Ubuntu 10.04&EMC2 Live CD, except a few operations are needed to set them up (no modules or drivers to install).

I installed two of these cards and feedback from the command "lspci -v" looks like this:

00:08.0 Serial controller: Device 4348:7053 (rev 10) (prog-if 02)
Subsystem: Device 4348:3253
Flags: medium devsel, IRQ 16
I/O ports at d400 <- ttyS1
I/O ports at d000 <- ttyS2
I/O ports at cc00 <- lp1/parport1
I/O ports at c800
Kernel driver in use: serial

00:09.0 Serial controller: Device 4348:7053 (rev 10) (prog-if 02)
Subsystem: Device 4348:3253
Flags: medium devsel, IRQ 17
I/O ports at c400 <- ttyS3
I/O ports at c000 <-ttyS4
I/O ports at bc00 <-lp2/parport2
I/O ports at b800
Kernel driver in use: serial

You will need those addresses but the extra parallel devices (ie: /dev/parport1) do not exist yet, you will need to create links to these (well get to it shortly). Furthermore, only four total serial ports can be used unless the kernel is told to account for more, so you will also need to edit your grub config (AND update grub after)

1. Run the "lspci -v" command and copy the critical addresses as pointed-out above
2. Run "sudo chmod +x /etc/rc.local" to make the rc.local runtime script executable
3. Edit your /etc/rc.local script as sudo or with root privileges and add the following to the bottom (or where you need it), then save the file:
sudo mknod /dev/parport1 c 99 1
sudo mknod /dev/parport2 c 99 2
sudo mknod /dev/lp1 c 99 1
sudo mknod /dev/lp2 c 99 2
sudo chmod a+rw /dev/parport0 /dev/parport1 /dev/parport2 /dev/lp0 /dev/lp1 /dev/lp2

/usr/bin/my_serial_init.sh &

The name "my_serial_init.sh" and the /usr/bin directory were selected by me, you can pick whatever you please.
Note that I am adding in two more parallel ports here for a total of three (one onboard), adjust the contents of the above snippet of code to your needs.

4. Now we are going to create the serial init script that rc.local will run at startup. This can be run anytime to reset serial ports to your default settings but I've thrown in a delay (or else it doesn't work at startup) which may complicate things if used for that purpose.

Save this as /usr/bin/my_serial_init.sh or whatever you had rc.local run (EDIT THE ADDRESSES, IRQS, PARAMETERS, AND NUMBER OF ttyS DEVICES TO SUIT YOUR SYSTEM AND YOUR NEEDS, use "lspci -v" to find the right addresses for your ports):
#!/bin/bash
sleep 15 # Setserial needs a delay at system startup or else it will override your commands.  Experiment with this value.
setserial /dev/ttyS0 uart none # must set to uart none first or setserial gets aggressive about ports being in-use
setserial /dev/ttyS1 uart none
setserial /dev/ttyS2 uart none
setserial /dev/ttyS3 uart none
setserial /dev/ttyS4 uart none
setserial /dev/ttyS0 uart 16550A port 0x03f8 irq 4 baud_base 115200 spd_normal skip_test low_latency #change the 115200 baud rate and the parameters to whatever you need
setserial /dev/ttyS1 uart 16550A port 0xd400 irq 16 baud_base 115200 spd_normal skip_test low_latency
setserial /dev/ttyS2 uart 16550A port 0xd000 irq 16 baud_base 115200 spd_normal skip_test low_latency
setserial /dev/ttyS3 uart 16550A port 0xc400 irq 17 baud_base 115200 spd_normal skip_test low_latency
setserial /dev/ttyS4 uart 16550A port 0xc000 irq 17 baud_base 115200 spd_normal skip_test low_latency

Take this new script and make it executable with "sudo chmod +x /usr/bin/my_serial_init.sh" (sudo only needed if file is in /usr/bin or any directory your user cannot write to).

5. Edit /etc/default/grub (grub2 configuration) with root permissions (then save the file):
Change
GRUB_CMDLINE_LINUX=""
to
GRUB_CMDLINE_LINUX="8250.nr_uarts=5"
(in other words, add "8250.nr_uarts=5" to the grub kernel parameter list)

CHANGE THE "5" to THE TOTAL NUMBER OF SERIAL (ttyS, not ttyUSB) DEVICES YOU SHOULD HAVE ON YOUR SYSTEM. You may need to account for internal serial devices (like touchscreens) that do not use a physical serial port.

6. Run "sudo update-grub" (or else you edited that file for nothing).

7. Reboot, and enter "setserial -g /dev/ttyS*" to list current serial devices and settings, confirming that they are correct (try increasing the delay in the my_serial_init.sh script if it failed). Try the parallel port addresses in EMC2 and see if they operate your machinery.

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

Time to create page: 0.086 seconds
Powered by Kunena Forum