High side switch

From BitWizard WIKI
Jump to: navigation, search
The High side switch

This is the documentation page for the I2C/SPI High Side Switch boards. The high side switch board can be bought here in the BitWizard Shop.


The High side switch board allow you to drive four loads from a 12-24V powersupply, that use up to 1.5A. The board has an I2C and an SPI version.

Assembly instructions

None: the board comes fully assembled.


To make the HSS PCB do things, you need to send things over the SPI or I2C bus to the PCB.

The general overview of the protocol is here.

The specific commands for the HSS PCB are explained on the page about the spi_dio board, as the two boards share the same protocol: DIO_protocol . The default address of the HSS is 0xa8.

For Arduino, a sample PDE is available, called ardemo_lcd.pde, also at the BitWizard software download directory .

This is a demo to send things using SPI to the lcd board. The SPI routines there are applicable for the hss board as well.

Jumper settings

The HSS board has no normal jumpers.

There is a solder jumper that switches the second SPI port from "SPI port" to "ICSP" port for the little CPU on the board. This is used for development.

Additional Considerations

The switching chips on the board, the ISP762T, claim to be able to do "2A". That kind of spec is usually under the condition that you cool the chip very well. This is probably not ideal on our board, so the limit will be a bit lower. The chip is supposed to protect itself when it gets to hot. The chip is supposed to be able to handle a short. Still I'd try to prevent overload and shorts, just on general principle....

Chips like these end up getting warm/hot when you pass a current through. In theory they can get over 100 degrees C before things get problematic. My rule-of-thumb is that if you don't burn your fingers, things are fine. Above that: Be careful.

Note that when you measure the voltage on the output, the (small) leakage current of the device will be sufficient to make the multimeter show a value as opposed to the 0V you might expect.

Note that the device requires > 6V on the power connection to work properly. (there is an undervoltage lockout that kicks in around 5-6V.)

Default operation

By default the switches will start out in the "off" position. (i.e. the devices connected to the switches are not powered).


For the SPI connector see: SPI_connector_pinout.

For the I2C connector see: I2C_connector_pinout.

pin function remark
1 GND GROUND for the power-side.
2 OUT 1 Switched output 1
3 OUT 1 Switched output 2
4 OUT 1 Switched output 3
5 OUT 1 Switched output 4
6 V+ positive of the powersupply.

Controlling the outputs of the HSS board

With the 10 register you can turn everything on or off. It is a bitmask register. (bw_tool uses hexadecimal numbers, so add the values for the diffrent relays together, 1,2,4,8 for outputs 1-4.)

bw_tool -s 50000 -a 9c -W 10:0:b #Everything off
bw_tool -s 50000 -a 9c -W 10:1:b #output 1 on
bw_tool -s 50000 -a 9c -W 10:8:b #output 4 on
bw_tool -s 50000 -a 9c -W 10:6:b #output 2 and 3 on

You can use register 20 to 23 to turn every single output on or off.

bw_tool -s 50000 -a 9c -W 20:0:b #output 1 off
bw_tool -s 50000 -a 9c -W 23:1:b #output 4 on

Which method you use is up to you. If your program "knows" the state of all the outputs, using register 0x10 may be easier. But if say you have one program controlling one output and another program controlling another, using the 20-23 registers is probably easier.


There is one power led.

Related projects

External resources


Additional software



  • next version will have leds indicating the state of the outputs.



  • Initial public release