SC407 – I2C Switches and Lights Module

SC407 is an SC400 series switches and lights module for the I2C bus.

This module provides a simple switches and lights interface for the I2C bus.

A PCF8574 is used to provide 8 quasi-bidirectional I/O lines. Each I/O line can be driven low by the PCF8574 or pulled low by a push button switch. When the I/O line is low its LED is on. The state of the I/O lines can be written and read by an I2C bus master.

The I2C device address is selected with three jumpers.

There are two versions of the PCF8574 chip: PCF8574 and PCF8574A. It is assumed the ‘A’ part is used with SC407. The difference between the versions is the I2C slave addresses.

The PCF8574A slave address (7-bit) is: 0b0111AAA, where AAA = three address jumpers.

The recommended (default) slave address (7-bit) for SC407 is: 0b0111111, 0x3F (address jumpers: A2=1, A1=1, A0=1)
The address bytes are: 0x7E write, 0x7F read

The original PCF8574 slave address (7-bit) is: 0b0100AAA.



Parts List

PCB1SC407, v1.0, PCB
Design at OSHWLab
C11Capacitor, ceramic, 100 nF
JP1 to JP33Header, male , 1 row x 3 pin, straight
Jumper shunts3Jumper shunt
LED1 to LED88LED, orange, 3mm
P11Header, male, 2 row x 6 pin, angled
The second row of pins needs to be removed.
P21Header, male, 1 row x 6 pin, straight
P31Header, male , 1 row x 10 pin, straight
P41Header, male , 1 row x 3 pin, straight
R1 and R22Resistor, 10k, 0.25W
RP11Resistor pack, 8 x 1k, SIL, 9-pin
S11Header, female, 1 row x 6 pin, straight
SW1 to SW88Switch, tactile button, straight
U1 socket116-pin DIL socket


This design is so simple it does not justify a detailed assembly guide. Just assemble according to the photo above.

In order for the daisy-chained PCBs to be a consistent level, header pins (P1) need to have a profile that matches the socket (S1) on the host module. By far the most common angled header pins do not match. A suitable profile header can be created by removing the second row of pins from a double row header. The pins can easily be pulled out of the plastic guide with a small pair of pliers.

Ensure the resistor pack RP1 is fitted the correct way around. Pin 1 is usually marked with a dot on the resistor and this must match the marked end on the PCB.

The two resistors, R1 and R2, are not normally required. These are pull up resistors for the I2C bus signals, serial clock and serial data. The pull up resistors typically found on I2C bus masters are usually all that is required. However, should you require additional resistors for any reason, they can be fitted here. The most likely reason to add resistors is to terminate a long bus with many devices connected.


  • This product is designed for hobby use and is not suitable for industrial, commercial or safety-critical applications.
  • The product contains small parts and is not suitable for young children.

Homebrew 8-bit retro computing