Getting Started with the Seven Segment Display Module

Posted on July 22, 2012 by Matt Isenhower

The new Seven Segment Display Module for Netduino Go from Komodex Labs is now shipping! This module features four 7-segment LED digits and can be used to display many types of data including sensor readouts, times, temperatures, and much more.


The drivers for this module can be downloaded from the Komodex Labs Downloads page.

If you want to check out some demos, open the Visual Studio solution file included with the source code and press F5 to deploy the sample application to your Netduino Go. You can press the button on the Netduino Go mainboard to cycle between the different display demos.

Using the Display

To use the display in your own projects, first add a reference to the Komodex.NETMF.SevenSegmentDisplay.dll assembly within your project. If you have the Komodex Module Drivers package installed, you can simply right click on “References” within your project and select “Add Reference…” to find this assembly.

At the top of your program file, insert the following line near the other using statements:

using Komodex.NETMF;

Similar to other go!bus modules, you can instantiate a Seven Segment Display as follows:

SevenSegmentDisplay display = new SevenSegmentDisplay();

The SevenSegmentDisplay class has several methods for controlling the behavior of the display. The SetValue method is used to set the actual value that appears on the module. SetValue has several overrides for use with different data types.

Integer Values

Action and Code Result
Set integer value

Show leading zeros

display.SetValue(123, true);
Negative integers


Multiple Ints

You can use four different ints to set the value on each digit manually.

Action and Code Result
Set value with multiple ints

display.SetValue(1, 2, 3, 4);
Use -1 to display a blank digit

display.SetValue(1, 2, 3, -1);


Positive and negative floating point numbers can be displayed with a specified number of decimal places.

Action and Code Result
Display a floating point number

display.SetValue(1.234f, 3);
Show only 2 decimal places

display.SetValue(0.987f, 2);
Show leading zeros

display.SetValue(0.987f, 2, true);
Negative floating point numbers

display.setValue(-1.234f, 2);

Raw, Custom Digits

It is possible to send raw values (i.e., specific LED states) for each digit to the display. The Digit enumeration contains several common values including the numbers 0-9 and hexadecimal numbers A-F. It is also possible to cast a number to a Digit to specify custom digits.

A custom digit is simply an 8-bit integer. The 7 least significant bits are used for the digit, and the 8th bit is used for the decimal point. The diagram to the left shows the position of each segment.

For example, to display the digit 5, segments A, C, D, F, and G need to be turned on. In binary, this is represented by the number 01101101:

Display segment: DpGFEDCBA
Binary value:     01101101

The binary value 01101101 is represented in hex as 0x6D. You can cast this or any custom value to a Digit to display it on the module: (Digit)0x6D.

Action and Code Result
Setting values from the Digit enum

display.SetValue(Digit.Dash, Digit.D1,
  Digit.D9, Digit.C);
Use a bitwise OR to add a decimal point

display.SetValue(Digit.Dash, Digit.D1,
    Digit.D9 | Digit.Decimal, Digit.C);
Send custom values by casting to a Digit

display.SetValue((Digit)0x7C, (Digit)0x5C,
  (Digit)0x5C, (Digit)0x78);

String Values

Strings can also be interpreted and displayed. The string parser understands digits 0-9, hex digits A-F, dashes, decimal points, and spaces. When a decimal point is found, it is appended to the previous digit.

Action and Code Result
Display a string value

Decimal points are added automatically

Use hex digits A-F


Colon and Apostrophe

The colon and apostrophe are controlled independently from the rest of the display. They can be turned on or off at any time without changing the displayed value.

Action and Code Result
Turn colon on

Turn colon off

Turn apostrophe on

Turn apostrophe off



The DateTime parser will, by default, show times in 12-hour mode, using the last decimal point as a PM indicator.

Action and Code Result
DateTime value

Default settings: 12-hour display with PM indicator (decimal point)

// January 1, 2012 at 14:34:00
DateTime dt = new DateTime(2012, 1, 1, 14, 34, 0);
12-hour display with no PM indicator

// January 1, 2012 at 14:34:00
DateTime dt = new DateTime(2012, 1, 1, 14, 34, 0);
display.SetValue(dt, true, false);
24-hour display

// January 1, 2012 at 14:34:00
DateTime dt = new DateTime(2012, 1, 1, 14, 34, 0);
display.SetValue(dt, false);


The TimeSpan parser will automatically choose between displaying hours and minutes or minutes and seconds. If the TimeSpan is less than one hour long, the value will be displayed in mm:ss format. Otherwise, it will be displayed in hh:mm format.

Action and Code Result
Automatic mode: chooses between hh:mm and mm:ss automatically

TimeSpan ts = new TimeSpan(12, 34, 56);
Forcing mm:ss display

TimeSpan ts = new TimeSpan(12, 34, 56);
display.SetValue(ts, TimeSpanDisplayMode.MinuteSecond);

Display Brightness

The brightness of the entire display (including the colon, apostrophe, and decimal points) can be modified by sending a floating point value between 0 and 1.

Action and Code Result
Full brightness (1.0f)

Half brightness (0.5f)

Display off (0.0f)


One comment on “Getting Started with the Seven Segment Display Module

  1. Pingback: Silverlight Developer » Blog Archive Komodex Seven Segment Display and Breakout Modules - Silverlight Developer

Leave a reply

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> 


Fatal error: Call to undefined method Error::shutdown_handler() in /srv/www/ on line 77