3 line to 32 line output expander

Expand 3 digital output lines to 32 with shift registers

Similar projects worth following
A serial to parallel output expansion board using the 74HC595 shift register.

This is a driver board for the nixie cathode switching transistors in #Repurposing an old nixie thermometer. It converts 3 signal lines to up to 32 parallel outputs. I need 28 lines to drive the 4 nixies. Since a minimum of 5 boards had to be produced, I designed it to be versatile. The sharp eyed will notice that only 7 lines out of each octet are actually used for this application.

The minimum lines required to use this board are: GND, SER (data), SRCLK (shift), RCLK (strobe). Vcc depends on the power arrangement. You should jumper the ~OESEL (output enable select) to ground if you don't wish to disable the display by signal, or vary the output with PWM, from a controller. The ~SRCLR input is only needed for resetting the output by the controller.

This board is designed with optional aspects you can choose to include or not:

  • As mentioned some lines don't need to be driven in smaller configurations.
  • Between 1 and 4 74HC595s can be installed for 8-32 outputs, in steps of 8. Naturally only the resistors for the used outputs need to be installed.
  • The 74HC595 can source or sink 6 mA current.
  • The 74HC595 can operate between 2V and 6V. This can be chosen to suit the controller, e.g. 3.3V or 5V, and the power supply section if installed.
  • The power supply section is optional. You can choose to power this from the controller. Or you could power the controller with this.
  • Copper pads for data and output are duplicated so you can attach more connectors or even solder wires. The input power is also brought out to duplicate pads for piggybacking to other circuits, e.g. an auxiliary board.
  • Although the connectors are rendered as vertical pin headers, you can use other kinds of connectors like pin sockets, or even solder wires to the pads.

A simple Arduino test program is attached which alternates between the patterns 0x55555555 and 0xAAAAAAAA. LEDs connected to the outputs will alternate.

A future version will use SMT to shrink the size of the board and avoid soldering resistors, letting the PCB assembly service do that, soldering the rest by hand. In such a situation, the resistor values have to be all the same to minimise the cost. That will give me practice in ordering PCB assembly with the many offers around.


Ardunio test program which pulses odd and even lines alternately.

ino - 1.28 kB - 03/02/2022 at 09:04


  • Another use for the expander board

    Ken Yap03/29/2024 at 12:31 0 comments

    I've put another of this board to use to drive an alarm clock display. My bedside radio/alarm clock is failing so I'm replacing the dedicated clock chip from the 70s in it with a modern MCU based design. I have a second copy of the LED display used there with all segments brought out to the connector. The display is dim despite a current of about 5 mA per segment due to the era of the LEDs but that's ok for a bedside clock; you don't want to be kept awake by the light.

    The display is being tested so it's upside down. But even if you flip the display mentally, you'll notice that the time is strange, it reads 80:32. The reason is the test program is sending out the serial data most significant digit first, so the correct time is actually 23:08. It's just a test program so I'm not bothered as long as it proves that the display is working.

    I'll write up the alarm clock project when it's done.

  • SMT version published

    Ken Yap07/20/2022 at 21:22 0 comments

    I have published a SMT version of the board, ready for PCB assembly to avoid hand soldering a whole heap of resistors and capacitors. It follows my investigations into the cost. You can find the link to the Github repository in the link section.

    This version is not tested, as I currently do not have a need for more expanders, as I still have a lot of the THT version, used for example here. However the circuit design is unchanged, only the components have been rearranged on the board, and BoM and CPL files generated for a sample manufacturer, JLCPCB. So it should work, touch wood. I'm publishing it in case someone can use the design.

View all 2 project logs

Enjoy this project?



Similar Projects

Does this project spark your interest?

Become a member to follow this project and never miss any updates