An 8-digit seven segment display with driver circuit from easily obtainable components.
Switch branches/tags
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.


= ICMI Seven-Segment Board                                          =
* Author          : Hendrik Busch
* Current version : 1.1
* License         : Creative Commons Attribution-NonCommercial-
                    ShareAlike 3.0 Germany License.

The Seven-Segment Board offers up to 8 seven-segment digits with a
control circuit made up of several cheap and easy to obtain

WARNING: The current board still has a design flaw. Since the ULN2803
and the 2N7002 each incur a voltage drop when active, 5 volts is not
really enough to light the display properly when driving high refresh 
rates for the POV effect. The first counter measure given the current
design is to insert lower current limiting resistors (say 10 ohms 
instead of 150). The other measure would be to increase the voltage,
but with the current design voltage can only be increased to 7 volts
as this is the maximum voltage for the shift register and the decade
counter. So an increase from 5 to 6 volts currently seems the most 
The next design iteration will feature seperated supply lines for the
LED segments and the TTL logic, just to make sure.

Seven-segment LED circuit
The board uses dual common anode seven-segment displays, meaning that
each component feature two digits with seven segments each. Each digit
has its own anode that is common to all segments in that digit (thus
common anode) and each segment has its own cathode, resulting in two 
anodes and 14 cathodes per component. Each segment cathode of a
digit is connected to all the other cathodes for this segment on
the other digits.
The LED circuit therefore features 8 anodes (one for each digit) and
7 cathodes (one for each segment).

Switching circuit
The switching circuit uses a minimum of I/O 5 pins (excluding power).

Two are needed for a 74HC4017 decade counter that is responsible for
sourcing power to the digits, one at a time. Using a software timer,
the decade counter switches through each digit so fast, that the
human eye cannot distinguish between the single digits being turned
on and off but sees a steady display with all eight digits lit (this
is called the POV (persistence-of-vision) effect. Exploiting this
effect, the software and circuit only have to worry about displaying
a single digit at a time and switching between digits.

In order to control what each digit is actually displaying, a shift
register (74HC595) is used to set the state of each segment. As the
shift register is not made to sink current, it is connected to an
ULN2803A darlington array. If one of the shift register pins is HIGH,
the corresponding switch in the darlington array sinks the incoming
LED current on that pin, effectively lighting the corresponding 

The software must ensure that the digit switching and the segment
configuration are in sync, otherwise the display content may show
as distorted of shifted.

Version History

- v1.1
  - The CLEAR pin of the shift register is now connected to VCC and 
    not to GND as before. Pulling it to GND in v1.0 resulted in a
	continous purge of any data loaded into the register and thus
	rendering the display unusable.

- v1.0
  - Initial revision