Board address

You must set the board address with the DIP switches first. There are 512 register addresses in the 9-bit address space.

  • address lines 3..0 identify a register on a BlinkenBoard.
  • address lines 8..4 are the DIP switch address of the board. They are setup with DIP switch 4-8, see image.

blinkenboard switch

The further examples assume the  board address is set to 0 (like in the image), so usable registers addresses are 0x000 to 0x00f.

 Input/output registers

A BlinkenBoard has 11 digital output registers and 5 digital input registers, each with 8 terminals.

blinkenboard io

Notice that the "Pin 0" orientation is different for OUT6 to OUT10.

The Input registers IN0-IN4 can be queried by reading address 0x000 to 0x004, the outputs OUT0 -OUT10 can be set by writing to 0x000 to 0x00a.

Output drivers

When writing to the outputs, keep in mind that driver chips are needed, and that the drivers are either "high-side" or "low-side". High side drivers are ULN2981 and switch their terminals to the "IO-voltage" Vio. Low-side drivers are ULN 2803 and switch to ground. Low-side drivers invert the signal: A logic "high" on the input means "switch to Ground", resulting in a Low-level.

Driver types can be mixed. You have to set the driver-selection jumpers properly for each chip. For low-side drivers, jumpers are set "to the left":

blinkenboard driver selection jumpers



The BlinkenBoard just needs +3.3V for its logic. But even if you use low-side drivers (without Vio), you have to connect +5V to the BlinkenBoard. This voltage is needed by the input protection circuits.

When using high-side drivers, you need also to connect the "IO-Voltage" (Vio). This is the voltage routed to the terminals, it can be different from the +3.3V resp +5V on the board. Special versions of ULN2981 (ULN2984LW) can switch up to 80 Volts! Of course you can also connect Vio to +5V on the big screw-terminal.