The connector used for some of the devices has been designed with a plug and socket arrangement so that more then one device and even different devices can be stacked together.
All devices with this interface share a set of 8 common pins.
Normally only TX/ RX OR SDA/ SCL are used but provided on the connector anyway. Some devices may not support SDA/SCL (I2C) so check with the data sheet.
Physically this provides a standard serial interface using 1 start bit 8 data bits and 1 stop bit, although it will still work with 2 stop bits. The connection is intended to be used on a standard terminal or microcontroller UART. The voltage requirements are 0 and +L. +L can be any voltage between 2.5V and 5.5V. The serial protocol that goes with this interface has also been designed for simplicity and ease of debugging.
Quite often there is a mix of 3.3V and 5V that needs to be dealt with. Most of the devices that are available operate on 5V, yet the modern microcontroller and the RPi both operate at 3.3V. With the PIC32 and the ByPic controller this is not so much of a problem as some of the pins are 5V tolerant but in the case of the RPi there are no such pins.
Using an I2C interface does not cause any problems as the host (say RPi) will set the voltage and the slave will simply pull this to ground. With a serial interface however, the TX pin would normally send out 0-5V that may eventually damage the RPi input circuits although I strongly suspect that they have some form of protection.
The sideways interface provides a solution for this as there are two power inputs:
+L this provides the logic supply and
+V this provides power for the circuit as needed which may or may not be 5V **
As an example the relays in the twin relay board require 5V to operate correctly and so they are supplied from the +V line, if operating with a 3.3V host then the +L line is supplied with 3.3V and the device will be fully compatible with the 3.3V host.
Another more extreme example is the motor controllers that may require 24V or more to operate. In that case the +V pin is supplied with 24V, there is a 5V on board regulator that supplies the driver IC, which will not work on 3.3V and the +L is supplied with 3.3V to do the controlling and interface with the host.
** WARNING as the +V pin is shared, some devices have differing power requirements as an example the motor controllers may need 12V but the relay maximum is 5V, so when stacking differing devices be aware of this.
In this example, a relay is stacked to a motor controller. The supply to the motor controller is 24V through the +V pin and so as can be seen the relay is stacked because it shares all of the other pins but the +V pin is bent out of the way so that it can be connected to a separate 5V supply.
This pin can normally be left disconnected but where the device supports it; a momentary low on this pin will reset the device.
Some devices have both an I2C and Serial interface, where this is the case a pull down resistor is connected to the SDA line and the device at start up will monitor this, if it is low then the serial interface will be selected. The specification of the I2C bus is that there will be a pull up resistor on both the SDA and SCL lines so if the bus is connected when the device is reset or on power on, the high on d th SDA line is detected and the I2C interface is selected. Not all devices support this or indeed have I2C firmware but it may still be marked on the PCB. Check with the data sheet for that device.