What is SI/OP?
SI/OP stands for Simple I/O Project. SI/OP is a free and an open source project.
Project Vision
Create a flat-file managed I/O daemon for action modules integration. ✓
Features
  • An I/O daemon regularly reads and writes, in an infinite loop.
  • With user permission control set per pin, in order to maintain data and performance integrity; if any, vacant pins may be simultaneously utilised by another user programme/process.
  • Unlike the conventional event-handling by hardware interrupt signals; this I/O daemon regularly reads from, and writes to, the parallel port pins, on every loop iteration.
  • States of the port output pins are controllable, both locally (on the same computer hosting the flat files), and/or remotely across the network (using your preferred access method).
Operation Outline
  • While the I/O daemon is running, states of input pins 10-13, 15 are read into their corresponding flat files — "0" represents Off state, while "1" is On.
  • Whereas, output pins 1-9, 14, 16, 17 are set according to the values stored in their corresponding flat files.
    $ ls /home/port*/* $ cat /home/port*/*
    /home/port0/input:
    pin10 pin11 pin12 pin13 pin15
    /home/port0/input:
    10001
    /home/port0/output:
    pin1 pin14 pin16 pin17 pin2 pin3 pin4 pin5 pin6 pin7 pin8 pin9
    /home/port0/output:
    000001010101
    /home/port1/input:
    pin10 pin11 pin12 pin13 pin15
    /home/port1/input:
    00100
    /home/port1/output:
    pin1 pin14 pin16 pin17 pin2 pin3 pin4 pin5 pin6 pin7 pin8 pin9
    /home/port1/output:
    100101010001
    /home/port2/input:
    pin10 pin11 pin12 pin13 pin15
    /home/port2/input:
    01010
    /home/port2/output:
    pin1 pin14 pin16 pin17 pin2 pin3 pin4 pin5 pin6 pin7 pin8 pin9
    /home/port2/output:
    000100100100
  • The user may selectively utilise any number of input and/or output pins, out of those enumerated above, for their project. The remaining vacant pins will be available for other programmes or processes of both the same user or otherwise.
  • User programmes may utilise port pins by means of interfacing with the flat files of the pins in use
  • The pins flat files can be read and edited as with any text file; by either using your preferred text editor, manipulating the output pins flat files contents or with CLI utility tools; such as cat, awk, and sed. Alternatively, devise an algorithm by any programming language of your choice.
  • As a kickstart, status01.sh, a sample BASH shell script, demonstrates an example method of how input pins states are read, and output pins states are controlled.
SI/OP - Stepper Motor

Prototype testing with a stepper motor.

SI/OP Back View - Parallel Ports

Prototype back view with parallel ports.