In complement of the free software ClassicLadder, for people interested, I offer for sale a "ready to be used" hardware interface to connect various sensors and actuators. Since the parallel port has disappeared of our computers, it is really harder to make such interface easily.
It is an inputs/outputs slave module using the classic serial modbus protocol (RTU). The inputs/outputs are opto-isolated to protect the computer (it was elsewhere tricky with the parallel port)
The microcontroller inside it is an AVR ATmega644p (Atmel, in DIP 40 pins) clocked at 14,7 Mhz.
In the same spirit than ClassicLadder, the sources of the embedded software (firmware) are released under the free GPL licence on this page: Firmware_binaries_sources.

Look on this page for more photos of the prototype and the production serie : Classicladder_io_module photos

- 12 digital opto-isolated inputs (9VDC to 24VDC power common)
- 12 digital opto-isolated outputs (48V, 100 mA maxi, two commons independants - per 6 outputs group)
- Quality connectors with Phoenix Contact terminals
- One internal I2C temperature sensor.
- I2C terminal (an external temperature sensor will be available later in option).
- Three informations leds (power on, modbus/setup mode, modbus slave access).
- Power input from 9VDC to 24VDC (on jack or 2 points terminal). Switching regulator for better efficiency.
- Possible fixation on DIN rail.
- Main components in DIP packages (easier manipulations). IC on supports.
- A toggle switch to select between 'modbus link' / 'setup menu' modes.
- Setup menu usable with a simple serial terminal (see note on RS485 below).
- Integrated BootLoader to be able to upgrade firmware (under GPL licence) without the need for an hardware programmer.
  (a very small and compact ISP-connector is available, if necessary).
- Log of the latest frames exchanged between the master and the module (diagnostic help of the communication)

3 differents versions are available for the serial modbus link:
- RS232 (DB9 male)
- RS485 (half-duplex, on 2 points terminal)
- USB (câble type A of a length of about 1,5m )
Speed from 1200 to 115200 bps.

For more informations, look at the PDF file on the page Doc PDF with the complete use guide (unfortunately only in french for now...)

Here are the prices in euros of each versions proposed, and some possible options:
ClassicLadder I/O Module USB144 € 
ClassicLadder I/O Module RS232134 € 
ClassicLadder I/O Module RS485129 € 
Option Power Supply 12VDC/400mA10 €(for a 230V/50hz input, to connect on the jack socket of the module)
Option USB-RS485 "auto-tx" converter (perhaps without case)xxx €(offered on sell be used with the RS485 module version)
15 € extra for postage and packing.
E-mail me if interested, specifying the desired version.

The firmware of the module is released under the GPL licence. The binaries and the sources (C language) are available for download on this site.
So for people, it means the possibility to add own features and to do what the hardware allow to realize (as why not a self-actions module operating locally, by adding some intelligence to it)
All the developments tools for the  microcontroller AVR ATmega are freely available (avr-gcc on Linux used to build the firmware).
This project is absolutely not based on Arduino, except for the bootloader used based on ADABootLoader.

Many modules like this one are available on market, so why prefering this one?
With it you will not be "stucked" with a frozen embedded software (the sources of the firmware are available!), and the components are easily manipulables (DIP packages) instead of SMC if in future you would have to touch them! And if you are aware of the advantages of free software then there's really no contest...

The ClassicLadder software used to drive the module can open a single serial port for Modbus. So with USB or serial RS232, only one module can be connected.

RS485 note:
With the RS485 version, many modules can be connected on one single port and with long distance on only 2 wires.
To be able to update the firware, it is required to use on PC side a RS485 converter driving automatically in "hardware" the switch between sending/receiving (as the one offered in option featuring such "auto-tx"). For the software terminal to use the menu setup, if the converter do not do it in "hard", you must use a software driving it in software (GtkTerm for Linux can make it, but it is not very common...)

(c) 2009-2014 Marc Le Douarain.
(to contact me, with preferably an explicit subject name ! to facilitate sorting...)