A power switch transistor array to toggle various things on and off.
15% Off
Subscribe to our newsletter and get a 15% discount coupon on Amazon for our products

One module to switch them all

Do you need to control many similar devices with your Arduino, Raspberry Pi, or another controller board? Fine, that's just what your general input/output pins are made for.

Unfortunately, they can handle only a few milliamps which is sufficient to drive only low-power components such as 3mm LED. Anything more power hungry like a LED strip, pump, solenoid valve, laser, or DC motor requires some kind of a controllable power source.

You could use a mechanical relay or a solid-state transistor switch circuit. This is exactly what Octofet is: a power switch based on P-Channel MOSFET transistors.

Single Octofet
Single device
Multiple power switches
Wires, switches... uhh

8 channels over 3 signal wires

We’ve put a shift register IC between the Octofet’s signal input and the transistor switches. That means you don’t have to spend a single GPIO pin of your controller per switching channel.

The whole module is controlled through the SPI interface, which uses only 3 pins. In case you want to address the second, third, or fourth Octofet, only one extra GPIO pin is required.

Octofet is a lifesaver for projects where the number of devices you need to control exceeds the number of controller pins available.

Drawing of Octofet SPI connection

Daisy chain to multiply the channels

As told above, an additional Octofet requires an extra GPIO pin of the controller. If this is already out of reach, you may link several Octofets in a chain by wiring the logical output pin headers of one module to the inputs of another. The update time will slightly increase but you’ll be able to switch 16, 24, 32, 40, 48, and even more channels using only three wires of your controller board!

Switch up to 30 volts with a 3-to-5 volt signal

Octofet is compatible with logic level of 3 to 5 volts which means it is electronically compatible with most microcontrollers and single-board computers on the market. You don’t even need to supply the logic voltage from your board, since Octofet will take care of it by sourcing the required logic voltage from its common power input.

The power input may be anything in the range from 5 to 30 volts DC and is passed with a minimal voltage drop (acts as a .1 Ohm resistor) to the output channels. The board can deliver the continuous current of 2 amps per each channel simultaneously.

Octofet with maximum load

Clear indication

Octofet provides nine status LEDs for easier debugging and device monitoring. Each channel is accompanied by a little LED which lights up whenever the channel is switched on, and a dedicated LED shows whether the board receives power at all.

OFF means OFF

In contrast to many simple power switching modules when a controlled device (load) is told to switch OFF by Octofet, it is switched OFF, i.e. pulled to the ground (GND).

Most transistor switches are based on so-called N-channel FET transistors because they require no extra circuity to be driven with a microcontroller. On the other hand, the N-channel transistors can only break the connection between the load and ground/chassis effectively leaving the load wired to the positive voltage bus. This is OK for dumb and isolated devices like LEDs but causes some problems if you want to control digital devices or interconnected devices. Furthermore, it’s physically impossible to disconnect the ground in some cases. For example, all devices in cars are hard-wired to the chassis (which is the ground) and the only way to control them is to switch the positive wire.

Octofet uses extra components to drive its P-channel FETs without any hassle, so you don’t have to worry about it. Plug in the power, wire up the DC devices to switch, and you’re all set up!

The advanages of P-channel MOSFET switch

Works fine with inductive loads

When an inductive load like a DC motor or electric magnet gets turned off, it generates so-called reverse EMF which could damage the controlling circuit. Octofet uses transistors with flyback diodes which can handle reverse current pulses up to 16 amps. That means you can safely drive inductive loads with Octofet.

Octofet with solenoids

Octofet is compatible to (but not limited to) Arduino Uno, Nano, Mega 2560, Pro Mini, Raspberry Pi and their analogs. It only requires the SPI bus and works with any voltage between 3.3 and 5 volts. In fact, it’s compatible with the vast majority of DIY-controllers on the market.

We prepared a ready-to-use library for Arduino with quickstart examples.

Here’s a sneak peak:

Octofet connected to Arduino Uno
    // Two Octofet libraries have to be included first
#include <Octofet.h>
#include <SPI.h>

// any GPIO pin can be used as pinCS
constexpr auto pinCS = 10;

// Create an object of Octofet type to use hardware SPI
Octofet octofet(pinCS);

void setup() {
    // Start communication with the board 

void loop() {
    // Set each power switch to "on" state
    // one by one with 1 second interval
    for (int i = 0; i < 8; i++) {
        octofet.digitalWrite(i, HIGH);
    // Similarly, set switches to "off" state
    for (int i = 0; i < 8; i++) {
        octofet.digitalWrite(i, LOW);

Octofet works fine with Raspberry Pi. We have a Python library for it, which can be found along with documentation on GitHub.

Here’s how it looks:

Octofet connected to Raspberry Pi
    # Switches Octofet channels to "on" state
# one by one with 1 second interval.

import time

# Import the class required
# from the library octofet
from octofet import Octofet

# Create an Octofet object connected
# to the CE0 pin of the Raspberry Pi board.
octo = Octofet(0)
# Switch state variable.
state = True

while True:
    # For each switch.
    for switch in range(8):
        # Set the current state for the switch.
        octo.digital_write(switch, state)
        # Wait 1 second.
    # Toogle state.
    state = not state
XOD power switch using Octofet

RoHS compliant

Octofet does not contain lead, so it is safe for children. It also won’t poison the rivers one day it would be wasted.
Octofet board schematics
Octofet component layout
Octofet dimensions


  • Electrical Characteristics
    • Rated Voltage: 3.3–5 V
    • Supply Current: ≤50 mA
    • Max Switch Voltage: 30 V
    • Max Current per Channel: 2 A
    • Max Current Total: 16 A
  • Communication
    • Interface: SPI
    • Update Frequency (8-ch write): 1 MHz
  • Design
    • Load Channels: 8
    • Power MOSFET: IRLML9301
    • Shift Register: STPIC6C595
    • Voltage Regulator: L78L05AB
  • Connection
    • 0.1” pin headers
    • Screw terminals
  • Mechanical Characteristics
    • Dimensions: 76 × 35 × 16 mm
    • Weight: 31 g