# 14-Segment Alpha-numeric LED FeatherWing

## Overview

![](https://cdn-learn.adafruit.com/assets/assets/000/032/132/medium800thumb/feather_White_GIF_ForLimor.jpg?1462384061)

Display, elegantly, 012345678 or 9! Gaze, hypnotized, at ABCDEFGHIJKLM - well it can display the whole alphabet. You get the point.

This is the **Adafruit 0.56" 4-Digit 14-Segment Display w/ FeatherWing Combo Pack**! Available in&nbsp;Blue, Green, Red, White, and Yellow. It is a nice, bright alphanumeric display that shows letters and numbers in a beautiful hue. It's super bright and designed for viewing from distances up to 23 feet (7 meters) away. Each of the digit sets have 14 segments on a dark background and we give you a set of two alphanumeric displays as well as a Featherwing driver board so you can make a clock or a four letter word.

Works with any and all Feathers!

![](https://cdn-learn.adafruit.com/assets/assets/000/032/129/medium800/feather_3089_iso_ASSEMBLEDORIG_copy.jpg?1462383825)

14-Segment Matrices like these are 'multiplexed' - so to control all the seven-segment LEDs you need 18 pins. That's a lot of pins, and there are [driver chips like the MAX7219](https://www.adafruit.com/products/453) that can control a matrix for you but there's a lot of wiring to set up and they take up a ton of space. Wouldn't it be awesome if you could control a matrix without tons of wiring? That's where these Alphanumeric LED Matrix FeatherWings come in, they make it really easy to add a 4-digit alphanumeric display with decimal points.

![](https://cdn-learn.adafruit.com/assets/assets/000/032/131/medium800/feather_3089_kit_ORIG.jpg?1462383929)

The LEDs themselves do not connect to the Feather. Instead, a matrix driver chip (HT16K33) does the multiplexing for you. The Feather simply sends i2c commands to the chip to tell it what LEDs to light up and it is handled for you. This takes a lot of the work and pin-requirements off the Feather. Since it uses only I2C for control, it works with any Feather and can share the I2C pins for other sensors or displays.

The product kit comes with:

- A fully tested and assembled Adafruit 4-Digit 14-Segment LED Matrix Display FeatherWing
- Ultra-bright 4-digit 0.54" tall segmented display
- Two sixteen pin headers

A bit of soldering is required to attach the matrix onto the FeatherWing but its very easy to do and only takes about 5 minutes!

![](https://cdn-learn.adafruit.com/assets/assets/000/032/130/medium800/feather_3089_kit_ORIG_quarter.jpg?1462383853)

Of course, in classic Adafruit fashion, we also have a detailed tutorial showing you how to solder, wire and control the display. We even wrote [a very nice library for the backpacks so you can get running in under half an hour, displaying images on the matrix or numbers on the 7-segment](https://github.com/adafruit/Adafruit-LED-Backpack-Library). If you've been eyeing matrix displays but hesitated because of the complexity, his is the solution you've been looking for!

# 14-Segment Alpha-numeric LED FeatherWing

## Pinouts

![](https://cdn-learn.adafruit.com/assets/assets/000/032/133/medium800/feather_pinouttop.jpg?1462384191)

![](https://cdn-learn.adafruit.com/assets/assets/000/032/134/medium800/feather_pinoutbot.jpg?1462384198)

The 14-segment backpack makes it really easy to add a 4-digit numeric display with decimal points

The LEDs themselves do not connect to the Feather. Instead, a matrix driver chip (HT16K33) does the multiplexing for you. The Feather simply sends i2c commands to the chip to tell it what LEDs to light up and it is handled for you. This takes a lot of the work and pin-requirements off the Feather. Since it uses only I2C for control, it works with any Feather and can share the I2C pins for other sensors or displays.

# Power Pins
![](https://cdn-learn.adafruit.com/assets/assets/000/032/135/medium800/feather_powrpins.jpg?1462384265)

The LED matrix uses only the **3V** (second from the right, above) and **GND** (fourth from the right) pins for power and logic. Current draw depends on how many LEDs are lit but you can approximate it as about 80mA for most uses.

Note that the 3.3V power supply is a tiny bit lower than the forward voltage for the pure green, blue and white LED matrices but we didn't find any significant degredation in brightness. Really, they're still very bright.

# I2C pins
![](https://cdn-learn.adafruit.com/assets/assets/000/032/136/medium800/feather_i2cpins.jpg?1462384293)

All LED control is done over I2C using the HT16K33 interface library. This means **SDA** (leftmost) and **SCL** (to the right of SDA) must be connected, see above for those pins.

The default address is **0x70** but you can change the address to **0x71-0x77** by bridging solder onto the address pins.

# Address Jumpers
![](https://cdn-learn.adafruit.com/assets/assets/000/032/137/medium800/feather_jumpers.jpg?1462384329)

## Changing Addresses

You can change the address of a backpack very easily. Look on the back to find the two or three **A0, A1 or A2** solder jumpers. Each one of these is used to hardcode in the address. If a jumper is shorted with solder, that sets the address. **A0** sets the lowest bit with a value of **1** , **A1** sets the middle bit with a value of **2** and **A2** sets the high bit with a value of **4**. The final address is **0x70 + A2 + A1 + A0**. So for example if **A2** is shorted and **A0** is shorted, the address is **0x70 + 4 + 1 = 0x75.** If only A1 is shorted, the address is **0x70 + 2 = 0x72**

# 14-Segment Alpha-numeric LED FeatherWing

## Assembly

When you buy a pack from Adafruit, it comes with the fully tested and assembled backpack as well as a two 14-segment dualdisplays in one of the colors we provide (say, red, yellow, blue or green). You'll need to solder the matrix onto the backpack but it's an easy task.

![feather_3089_kit_ORIG_quarter.jpg](https://cdn-learn.adafruit.com/assets/assets/000/032/144/medium640/feather_3089_kit_ORIG_quarter.jpg?1462387671)

## Prepare the header strips:

You'll need three 7-pin and a 3-pin strip of header to attach the Featherwing to your Feather. Cut the header strip to length if necessary. It will be easier to solder if you insert it into a breadboard - **long pins down**

![feather_headerplace.jpg](https://cdn-learn.adafruit.com/assets/assets/000/032/145/medium640/feather_headerplace.jpg?1462387697)

## Add the FeatherWing PCB:

Place the circuit board over the pins so that the short pins poke through the breakout pads

![feather_place.jpg](https://cdn-learn.adafruit.com/assets/assets/000/032/146/medium640/feather_place.jpg?1462387732)

## And Solder!

Be sure to solder all pins for reliable electrical contact.  
  
_(For tips on soldering, be sure to check out our_ [_Guide to Excellent Soldering_](http://learn.adafruit.com/adafruit-guide-excellent-soldering)_)._

![feather_solder1.jpg](https://cdn-learn.adafruit.com/assets/assets/000/032/147/medium640/feather_solder1.jpg?1462387745)

![feather_solder2.jpg](https://cdn-learn.adafruit.com/assets/assets/000/032/148/medium640/feather_solder2.jpg?1462387751)

![feather_solder3.jpg](https://cdn-learn.adafruit.com/assets/assets/000/032/149/medium640/feather_solder3.jpg?1462387755)

Do both all 4 header strips completely!

![feather_solder4.jpg](https://cdn-learn.adafruit.com/assets/assets/000/032/150/medium640/feather_solder4.jpg?1462387770)

![feather_solder5.jpg](https://cdn-learn.adafruit.com/assets/assets/000/032/151/medium640/feather_solder5.jpg?1462387773)

![feather_solder6.jpg](https://cdn-learn.adafruit.com/assets/assets/000/032/152/medium640/feather_solder6.jpg?1462387777)

![feather_solder7.jpg](https://cdn-learn.adafruit.com/assets/assets/000/032/153/medium640/feather_solder7.jpg?1462387782)

Check your solder joints visually and continue onto the next step

![feather_done.jpg](https://cdn-learn.adafruit.com/assets/assets/000/032/154/medium640/feather_done.jpg?1462387878)

Next we'll attach the LED matrices  
Check the Matrices and line it up next to the FeatherWing

Be careful to NOT PUT THE DISPLAYS ON UPSIDE DOWN OR IT WONT WORK!! Check the image to make sure the 'decimal point' dots are on the bottom, matching the silkscreen.

![feather_lineup.jpg](https://cdn-learn.adafruit.com/assets/assets/000/032/155/medium640/feather_lineup.jpg?1462387900)

Slot the LED module on top, check again that you have it right way up!

![feather_ledplace.jpg](https://cdn-learn.adafruit.com/assets/assets/000/032/156/medium640/feather_ledplace.jpg?1462387914)

Since there's two modules and they don't sit completely flat on the PCB you may want to use a little tape to bind the modules together to minimize any gap in between.

![feather_ledtaping.jpg](https://cdn-learn.adafruit.com/assets/assets/000/032/157/medium640/feather_ledtaping.jpg?1462387951)

![feather_ledseat.jpg](https://cdn-learn.adafruit.com/assets/assets/000/032/158/medium640/feather_ledseat.jpg?1462387954)

Flip over the kit and bend a few of the LED matrix legs out to keep the LED from slipping out while you solder

![feather_bendpins.jpg](https://cdn-learn.adafruit.com/assets/assets/000/032/159/medium640/feather_bendpins.jpg?1462387977)

Solder the matrix in place. Note this will be a little tougher because there's not as much space. Go slow, do one pin at a time and you can clip it after each point if you need!

![feather_solder8.jpg](https://cdn-learn.adafruit.com/assets/assets/000/032/160/medium640/feather_solder8.jpg?1462387988)

![feather_solder9.jpg](https://cdn-learn.adafruit.com/assets/assets/000/032/161/medium640/feather_solder9.jpg?1462387992)

![feather_solder12.jpg](https://cdn-learn.adafruit.com/assets/assets/000/032/165/medium640/feather_solder12.jpg?1462388049)

![feather_solder13.jpg](https://cdn-learn.adafruit.com/assets/assets/000/032/167/medium640/feather_solder13.jpg?1462388082)

Check your solder joints visually and continue onto the next step

![feather_solder14.jpg](https://cdn-learn.adafruit.com/assets/assets/000/032/166/medium640/feather_solder14.jpg?1462388061)

Once soldered, clip each wire short

![feather_clip1.jpg](https://cdn-learn.adafruit.com/assets/assets/000/032/168/medium640/feather_clip1.jpg?1462388093)

![feather_clip2.jpg](https://cdn-learn.adafruit.com/assets/assets/000/032/169/medium640/feather_clip2.jpg?1462388096)

You're done! You can now install software and get blinking

![feather_clipped.jpg](https://cdn-learn.adafruit.com/assets/assets/000/032/170/medium640/feather_clipped.jpg?1462388114)

![feather_3089_iso_ASSEMBLEDORIG_copy.jpg](https://cdn-learn.adafruit.com/assets/assets/000/032/171/medium640/feather_3089_iso_ASSEMBLEDORIG_copy.jpg?1462388170)

# 14-Segment Alpha-numeric LED FeatherWing

## Usage

![](https://cdn-learn.adafruit.com/assets/assets/000/032/138/medium800/feather_thumb.jpg?1462384356)

To talk to the LED helper chip you'll need to use our Arduino [Adafruit LED Backpack library from github](https://github.com/adafruit/Adafruit-LED-Backpack-Library "Link: https://github.com/adafruit/Adafruit-LED-Backpack-Library").

To download you can visit the repository, or simply click on this button:

[Download Adafruit LED Backpack library](https://github.com/adafruit/Adafruit_LED_Backpack/archive/master.zip)
Rename the uncompressed folder **Adafruit\_LEDBackpack**. Check that the **Adafruit\_LEDBackpack** folder contains **Adafruit\_LEDBackpack.cpp** and **Adafruit\_LEDBackpack.h** Place the **Adafruit\_LEDBackpack** library folder your _arduinosketchfolder_ **/libraries/** folder.

You may need to create the _libraries_ subfolder if it's your first library. We also have a great tutorial on Arduino library installation at:  
[http://learn.adafruit.com/adafruit-all-about-arduino-libraries-install-use](http://learn.adafruit.com/adafruit-all-about-arduino-libraries-install-use "Link: http://learn.adafruit.com/adafruit-all-about-arduino-libraries-install-use")

# Install Adafruit GFX

[You will need to do the same for the Adafruit\_GFX library available here](https://github.com/adafruit/Adafruit-GFX-Library "Link: https://github.com/adafruit/Adafruit-GFX-Library")

[Download Adafruit GFX](https://github.com/adafruit/Adafruit-GFX-Library/archive/master.zip)
Rename the uncompressed folder **Adafruit\_GFX** and check that the **Adafruit\_GFX** folder contains **Adafruit\_GFX.**** cpp **and** Adafruit\_GFX ****.h**  
  
Place the&nbsp; **Adafruit\_GFX** library folder your **_arduinosketchfolder_/libraries/** folder like you did with the LED Backpack library

If using an older version of the Arduino IDE (pre-1.8.10), also locate and install the [**Adafruit\_BusIO**](https://github.com/adafruit/Adafruit_BusIO/archive/master.zip) library (newer versions do this automatically when using the Arduino Library Manager).

Adafruit\_GFX isn’t actually used for the segmented display, it's only for the matrix backpacks but it's still required by the library so please install it to avoid errors! Restart the IDE.

# Run Test!

Once you've restarted you should be able to select the **File-\>Examples-\>Adafruit\_LEDBackpack-\>quadalphanum** example sketch. Upload it to your Feather as usual. You should see a basic test program that goes through a bunch of different routines.

![](https://cdn-learn.adafruit.com/assets/assets/000/032/139/medium800/feather_demo.png?1462384541)

![](https://cdn-learn.adafruit.com/assets/assets/000/032/140/medium800thumb/feather_White_GIF_ForLimor.jpg?1462384558)

Upload to your Arduino, and open up the Serial console at 9600 baud speed. You'll see each digit light up all the segments, then the display will scroll through the 'font table' showing every character that it knows how to display. Finally, you'll get a notice to start typing into the serial console. Type a message and hit return, you'll see it scroll onto the display!

![](https://cdn-learn.adafruit.com/assets/assets/000/032/141/medium800/feather_led_matrix_demo.png?1462384671)

![](https://cdn-learn.adafruit.com/assets/assets/000/032/142/medium800/feather_led_matrix_1912-08.jpg?1462384676)

# Library Reference

For the quad displays, we have a special object that can handle ascii data for easy printing.  
  
You can create the object with

```
Adafruit_AlphaNum4 alpha4 = Adafruit_AlphaNum4();
```

There's no arguments or pins because the backpacks use the fixed I2C pins.  
By default, the address is 0x70, but you can pass in the I2C address used when you initialize the display with **begin**

```cpp
alpha4.begin(0x70);  // pass in the address
```

Next up, the segments can be turned on/off for each digit by writing the 'raw' bitmap you want, for example, all the LEDs off on digit #3 is

```
alpha4.writeDigitRaw(3, 0x0);
```

All the segments on for digit #0, but not the decimal point, can be done by:

```
alpha4.writeDigitRaw(0, 0x3FFF);
```

This is the segment map:

![](https://cdn-learn.adafruit.com/assets/assets/000/032/143/medium800/feather_led_matrix_segments.png?1462384756)

The 16 bit digit you pass in for raw image has this mapping **:**

```auto
Name: -- DP  N  M  L  K  J  H G2 G1  F  E  D  C  B  A
Bit:  15 14 13 12 11 10  9  8  7  6  5  4  3  2  1  0
```

The left-most&nbsp; bit isn't used and is ignored. Named constants are also available for each segment:

```cpp
#define ALPHANUM_SEG_A  0b0000000000000001  ///&lt; Alphanumeric segment A
#define ALPHANUM_SEG_B  0b0000000000000010  ///&lt; Alphanumeric segment B
#define ALPHANUM_SEG_C  0b0000000000000100  ///&lt; Alphanumeric segment C
#define ALPHANUM_SEG_D  0b0000000000001000  ///&lt; Alphanumeric segment D
#define ALPHANUM_SEG_E  0b0000000000010000  ///&lt; Alphanumeric segment E
#define ALPHANUM_SEG_F  0b0000000000100000  ///&lt; Alphanumeric segment F
#define ALPHANUM_SEG_G1 0b0000000001000000  ///&lt; Alphanumeric segment G1
#define ALPHANUM_SEG_G2 0b0000000010000000  ///&lt; Alphanumeric segment G2
#define ALPHANUM_SEG_H  0b0000000100000000  ///&lt; Alphanumeric segment H
#define ALPHANUM_SEG_J  0b0000001000000000  ///&lt; Alphanumeric segment J
#define ALPHANUM_SEG_K  0b0000010000000000  ///&lt; Alphanumeric segment K
#define ALPHANUM_SEG_L  0b0000100000000000  ///&lt; Alphanumeric segment L
#define ALPHANUM_SEG_M  0b0001000000000000  ///&lt; Alphanumeric segment M
#define ALPHANUM_SEG_N  0b0010000000000000  ///&lt; Alphanumeric segment N
#define ALPHANUM_SEG_DP 0b0100000000000000  ///&lt; Alphanumeric segment DP
```

To turn on just the **A** segment, use `ALPHANUM_SEG_A` or `0x0001`.  
To turn on just the **G1** segment, use `ALPHANUM_SEG_G1` or `0x0040` **.**

To turn on multiple segments at once, you can combine them with the bitwise OR operator, `|` .&nbsp; For instance, to turn on the top and bottom segments, do:

```cpp
alpha4.writeDigitRaw(0, ALPHANUM_SEG_A | ALPHANUM_SEG_D);
```

# ASCII data

If you're just looking to print 'text' you can use our font table, just pass in an ASCII character!  
  
For example, to set digit #0 to **A** call:

```
alpha4.writeDigitAscii(0, 'A')
```

# Writing Data

Don't forget to 'write' the data to the display with

```
alpha4.writeDisplay();
```

That's what actually 'sets' the data onto the LEDs!

# 14-Segment Alpha-numeric LED FeatherWing

## CircuitPython

# Adafruit CircuitPython Module Install

To use the LED backpack&nbsp;with your&nbsp;[Adafruit CircuitPython](https://learn.adafruit.com/welcome-to-circuitpython/overview)&nbsp;board you'll need to install the&nbsp;[Adafruit\_CircuitPython\_HT16K33](https://github.com/adafruit/Adafruit_CircuitPython_HT16K33)&nbsp;module on your board.&nbsp; **Remember this module is for Adafruit CircuitPython firmware and not MicroPython.org firmware!**

First make sure you are running the&nbsp;[latest version of Adafruit CircuitPython](https://github.com/adafruit/circuitpython/releases)&nbsp;for your board. &nbsp;Next you'll need to install the necessary libraries&nbsp;to use the hardware--read below and carefully follow the referenced steps to find and install these libraries from [Adafruit's CircuitPython library bundle](https://github.com/adafruit/Adafruit_CircuitPython_Bundle).

## Bundle Install

For express boards that have extra flash storage, like the Feather/Metro M0 express and Circuit Playground express, you can easily install the necessary libraries with [Adafruit's CircuitPython bundle](https://github.com/adafruit/Adafruit_CircuitPython_Bundle). &nbsp;This is an all-in-one package that includes the necessary libraries to use the LED backpack display with CircuitPython. For details on installing the bundle, read about [CircuitPython Libraries](https://learn.adafruit.com/welcome-to-circuitpython/circuitpython-libraries).

Remember for non-express boards like the Trinket M0, Gemma M0, and Feather/Metro M0 basic you'll need to [manually install the necessary libraries](https://learn.adafruit.com/welcome-to-circuitpython/circuitpython-libraries#non-express-boards-11-13) from the bundle:

- **adafruit\_ht16k33**
- **adafruit\_bus\_device**
- **adafruit\_register**

If your board supports USB mass storage, like the M0-based boards, then simply drag the files to the board's file system.&nbsp;**Note on boards without external SPI flash, like a Feather M0 or Trinket/Gemma M0, you might run into issues on Mac OSX with hidden files taking up too much space when drag and drop copying,&nbsp;[see this page for a workaround](../../../../micropython-for-samd21/usb-mass-storage#mac-osx-file-copy-issues).**

If your board doesn't support USB mass storage, like the ESP8266, then&nbsp;[use a tool like ampy to copy the file to the board](../../../../micropython-basics-load-files-and-run-code). You can use the latest version of ampy and its&nbsp;[new directory copy command](../../../../micropython-basics-load-files-and-run-code/file-operations#copy-directories-to-board)&nbsp;to easily move module directories to the board.

Before continuing make sure your board's **lib** folder or root filesystem has at least the&nbsp; **adafruit\_ht16k33** ,&nbsp; **adafruit\_bus\_device** , and&nbsp; **adafruit\_register** &nbsp;folders/modules copied over.

![](https://cdn-learn.adafruit.com/assets/assets/000/046/333/medium800/micropython_Screen_Shot_2017-09-13_at_2.33.52_PM.png?1505338457)

# Usage

The following section will show how to control the LED backpack&nbsp;from the board's Python prompt / REPL. &nbsp;You'll walk through how to control the LED display and learn how to use the CircuitPython module built for the display.

First&nbsp;[connect to the board's serial REPL&nbsp;](https://learn.adafruit.com/welcome-to-circuitpython/the-repl)so you are at the CircuitPython&nbsp; **\>\>\>** &nbsp;prompt.

## I2C Initialization

First you'll need to initialize the I2C bus for your board. &nbsp;First import the necessary modules:

```
import board
import busio as io
```

Note if you're using the ESP8266 or other boards which do not support hardware I2C you need to import from the bitbangio module instead of busio:

```
import board
import bitbangio as io
```

Now for either board run this command to create the I2C instance using the default SCL and SDA pins (which will be marked on the boards pins if using a Feather or similar Adafruit board):

```
i2c = io.I2C(board.SCL, board.SDA)
```

# LED Matrix

To use a LED matrix you'll first need to&nbsp;import the&nbsp; **adafruit\_ht16k33.matrix** &nbsp;module and create an instance of the appropriate Matrix class. &nbsp;There are three classes currently available to use:

- **Matrix8x8** &nbsp;- This is for a simple 8x8 matrix (square or round pixels, they're both the same driver and code).
- **Matrix16x8** &nbsp;- This is for a 16x8 matrix (i.e. double the width of the 8x8 matrices). &nbsp;For the LED Matrix FeatherWing you want to use this Matrix16x8 class.
- **Matrix8x8x2** &nbsp;- This is for a 8x8 bi-color matrix.

For example&nbsp;to use the Matrix16x8 class import the module and create an instance with:

```
import adafruit_ht16k33.matrix 
matrix = adafruit_ht16k33.matrix.Matrix16x8(i2c)
```

![](https://cdn-learn.adafruit.com/assets/assets/000/046/334/medium800/micropython_IMG_20170913_144507378.jpg?1505339572)

The above command will create the matrix class using the default I2C address of the display (0x70). &nbsp;If you've changed the I2C address (like when using multiple backpacks or displays) you can override it in the initializer using an optional&nbsp; **address** &nbsp;keyword argument.

For example to create an instance of the Matrix8x8 class on address 0x74:

```
matrix = adafruit_ht16k33.matrix.Matrix8x8(i2c, address=0x74)
```

You might notice the matrix turns on to a 'jumbled' collection of random LEDs. &nbsp;Don't worry! &nbsp;The display isn't broken, right now the module that controls it doesn't clear the display state on startup so you might see noise from random memory values.

To clear the display and turn all the pixels off you can use the&nbsp; **fill** &nbsp;command with a color of 0 (off):

```
matrix.fill(0)
```

![](https://cdn-learn.adafruit.com/assets/assets/000/046/335/medium800/micropython_IMG_20170913_144530499.jpg?1505339584)

By default the display will update automatically. This way you do not need to call the **show** function every time you update the display buffer. However, this means it is being sent the contents of the display buffer with every change. This can slow things down if you're trying to do something fancy. If you think you're running into that issue, you can simply turn the auto write feature off. Then you will need to call **show** to update the display.

```
# auto write can be turned off
matrix.auto_write = False
# and fill is same as before
matrix.fill(0)
# but now you have to call show()
matrix.show()
```

To turn all the pixels on you can use **fill** with a color of 1 (on):

```
matrix.fill(1)
```

![](https://cdn-learn.adafruit.com/assets/assets/000/046/336/medium800/micropython_IMG_20170913_144542195.jpg?1505339595)

If you're using the bi-color matrix you can even use a fill color of 2 or 3 to change to different colors&nbsp;of red, green, and yellow (red + green).

Next you can set pixels on the display by accessing them using x,y coordinates and setting a color:

- **X position** &nbsp;- X position of the pixel on the matrix.
- **Y position** &nbsp;- Y position of the pixel on the matrix.
- **Color** &nbsp;- 0 for off, 1 for on (or one of the LEDs for bi-color display), 2 or 3 for other bi-color display colors.

The general way to set a pixel is:

```
matrix[x,y] = color
```

For example to set the first pixel at position 0, 0 to on:

```
matrix[0, 0] = 1
```

![](https://cdn-learn.adafruit.com/assets/assets/000/046/337/medium800/micropython_IMG_20170913_144617377.jpg?1505339607)

Or to set the opposite corner pixel at position 7, 7&nbsp;to on:

```
matrix[7, 7] = 1
```

![](https://cdn-learn.adafruit.com/assets/assets/000/046/338/medium800/micropython_IMG_20170913_144630045.jpg?1505339619)

That's all there is to controlling the pixels on a LED matrix! &nbsp;Right now the matrix library is simple and only exposes basic pixel control. &nbsp;In the future more advanced drawing commands might be avaialable.

## Brightness and Blinking

You can change the brightness of the entire display with the **brightness** property. &nbsp;This property has a decimanl value from 0 to 1, where 0 is the lowest brightness and 1 is the highest brightness. &nbsp;Note that you don't need to call **show** after calling **brightness** , the change is instant.

For example to set the brightness to the minimum:

```
matrix.brightness = 0
```

![](https://cdn-learn.adafruit.com/assets/assets/000/046/339/medium800/micropython_IMG_20170913_144648307.jpg?1505339634)

Or to set it back to maximum:

```auto
matrix.brightness = 1
```

![](https://cdn-learn.adafruit.com/assets/assets/000/046/340/medium800/micropython_IMG_20170913_144657638.jpg?1505339649)

To set brightness to half:

```python
matrix.brightness = 0.5
```

You can also make the entire display blink at 3 different rates using the&nbsp; **blink\_rate** property, which has a value 0 to 3:

- **0** &nbsp;= no blinking
- **1** &nbsp;= fast blinking (~once a 1/2 second)
- **2** &nbsp;= moderate blinking (~once a second)
- **3** &nbsp;= slow blinking (~once every 2 seconds)

Again you don't need to call **show** after setting the blink rate, the change will immediately take effect.

For example to blink quickly:

```
matrix.blink_rate = 1
```

And to stop blinking:

```
matrix.blink_rate = 0
```

# LED 7-segment Display

To use a&nbsp;7-segment display&nbsp;you'll first need to&nbsp;import the **adafruit\_ht16k33.segments** &nbsp;module and create an instance of the&nbsp; **Seg7x4** &nbsp;class.

```
import adafruit_ht16k33.segments
display = adafruit_ht16k33.segments.Seg7x4(i2c)
```

![](https://cdn-learn.adafruit.com/assets/assets/000/046/341/medium800/micropython_IMG_20170913_144031598.jpg?1505339662)

The above command will create the 7-segment&nbsp;class using the default I2C address of the display (0x70). &nbsp;If you've changed the I2C address (like when using multiple backpacks or displays) you can override it in the initializer using an optional&nbsp; **address** &nbsp;keyword argument.

For example to create an instance of the **Seg7x4** &nbsp;class on address 0x74:

```
display = adafruit_ht16k33.Seg7x4(i2c, address=0x74)
```

You might notice the display&nbsp;turns on to a 'jumbled' collection of random LEDs. &nbsp;Don't worry! &nbsp;The display isn't broken, right now the module that controls it doesn't clear the display state on startup so you might see noise from random memory values.

To clear the display and turn all the LEDs&nbsp;off you can use the&nbsp; **fill** &nbsp;command with a color of 0 (off):

```
display.fill(0)

```

![](https://cdn-learn.adafruit.com/assets/assets/000/046/342/medium800/micropython_IMG_20170913_144106436.jpg?1505339676)

## Setting Individual Digits

You can put a numeric value in any of the display's 4 positions by accessing it using the index of the position. &nbsp;For example to set position 0 to the number 1 and position 1 to the number 2 call:

```
display[0] = '1'
display[1] = '2'
display.show()
```

![](https://cdn-learn.adafruit.com/assets/assets/000/046/343/medium800/micropython_IMG_20170913_144135715.jpg?1505339686)

## Display&nbsp;Numbers and Hex Values

You can also use the **print** function to write to the entire display. Remember the display only has 4 digits so a best effort will be made to display the number--you might need to round the number or adjust it to fit!

```
display.print(1234)
display.show()
display.print(3.141)
display.show()
```

![](https://cdn-learn.adafruit.com/assets/assets/000/046/344/medium800/micropython_IMG_20170913_144202675.jpg?1505339699)

To display hex values, pass in a string to **print**. The hex characters A-F can be displayed.

```
display.print('FEED')
display.show()
```

If you want to work with actual integer values, then use the built in string formatting.

```
display.print('{:x}'.format(65261))
display.show()
```

![](https://cdn-learn.adafruit.com/assets/assets/000/046/345/medium800/micropython_IMG_20170913_144231327.jpg?1505339716)

You can pass some special characters to the display to control extra capabilities:

- **Colon** &nbsp;- Use ':' to turn the colon on, you don't need to specify the position parameter.&nbsp; Use ';' to turn the colon off.
- **Hex character** &nbsp;- Use a character 'a' through 'f' to display a high hex character value at a specified position.

# LED 14-segment Quad Alphanumeric Display

To use a 14-segment quad alphanumeric display it's almost exactly the same as the 7-segment display, but with a slightly different class name. &nbsp;Import the&nbsp; **adafruit\_ht16k33.segments** &nbsp;module again but this time create an instance of the&nbsp; **Seg14x4** &nbsp;class.

```
import adafruit_ht16k33.segments
display = adafruit_ht16k33.segments.Seg14x4(i2c)
```

The above command will create the 14-segment&nbsp;class using the default I2C address of the display (0x70). &nbsp;If you've changed the I2C address (like when using multiple backpacks or displays) you can override it in the initializer using an optional&nbsp; **address** &nbsp;keyword argument.

For example to create an instance of the **Seg14x4** &nbsp;class on address 0x74:

```
display = adafruit_ht16k33.segments.Seg14x4(i2c, address=0x74)
```

![](https://cdn-learn.adafruit.com/assets/assets/000/046/346/medium800/micropython_IMG_20170913_155708729.jpg?1505346466)

You might notice the display&nbsp;turns on to a 'jumbled' collection of random LEDs. &nbsp;Don't worry! &nbsp;The display isn't broken, right now the module that controls it doesn't clear the display state on startup so you might see noise from random memory values.

To clear the display and turn all the LEDs&nbsp;off you can use the&nbsp; **fill** &nbsp;command with a color of 0 (off):

```
display.fill(0)
display.show()
```

![](https://cdn-learn.adafruit.com/assets/assets/000/046/347/medium800/micropython_IMG_20170913_155729464.jpg?1505346593)

To access the individual digits, it's the same as with the 7-segment display. However, the 14-segment display can take any alphanumeric character. For example:

```
display[0] = 'C'
display[1] = 'I'
display[2] = 'P'
display[3] = 'Y'
display.show() 
```

![](https://cdn-learn.adafruit.com/assets/assets/000/046/471/medium800/micropython_IMG_20170914_163845075.jpg?1505432490)

You can use the **print** function to write to the entire display.

```
display.print('CPY!')
display.show()
```

![](https://cdn-learn.adafruit.com/assets/assets/000/046/472/medium800/micropython_IMG_20170914_163935712.jpg?1505432509)

# 14-Segment Alpha-numeric LED FeatherWing

## Downloads

- [Arduino LED Backpack Library](https://github.com/adafruit/Adafruit_LED_Backpack)
- [EagleCAD Featherwing PCB files](https://github.com/adafruit/Adafruit-LED-Backpack-FeatherWing-PCB)
- [Fritzing objects in Adafruit Fritzing library](https://github.com/adafruit/Fritzing-Library)

# Schematic
![](https://cdn-learn.adafruit.com/assets/assets/000/032/172/medium800/feather_schem.png?1462388525)

# Fabrication Print

Dimensions in inches

![](https://cdn-learn.adafruit.com/assets/assets/000/032/173/medium800/feather_fabprint.png?1462388532)


## Featured Products

### Adafruit 14-Segment Alphanumeric LED FeatherWing

[Adafruit 14-Segment Alphanumeric LED FeatherWing](https://www.adafruit.com/product/3089)
Display, elegantly, 012345678 or 9! Gaze, hypnotized, at ABCDEFGHIJKLM - well it can display the whole alphabet. You get the point.

A Feather board without ambition is a Feather board without FeatherWings!&nbsp;This is the&nbsp; **Adafruit 0.54" 4-Digit 14-Segment Display...**

Out of Stock
[Buy Now](https://www.adafruit.com/product/3089)
[Related Guides to the Product](https://learn.adafruit.com/products/3089/guides)
### Adafruit 0.54" Quad Alphanumeric FeatherWing Display - Red

[Adafruit 0.54" Quad Alphanumeric FeatherWing Display - Red](https://www.adafruit.com/product/3130)
Display, elegantly, 012345678 or 9! Gaze, hypnotized, at ABCDEFGHIJKLM - well it can display the whole alphabet. You get the point.

This is the **Red Adafruit 0.54" Dual Alphanumeric Display w/ FeatherWing Combo Pack**! We also have these combo packs in <a...></a...>

In Stock
[Buy Now](https://www.adafruit.com/product/3130)
[Related Guides to the Product](https://learn.adafruit.com/products/3130/guides)
### Adafruit 0.54" Quad Alphanumeric FeatherWing Display - Yellow

[Adafruit 0.54" Quad Alphanumeric FeatherWing Display - Yellow](https://www.adafruit.com/product/3131)
Display, elegantly, 012345678 or 9! Gaze, hypnotized, at ABCDEFGHIJKLM - well it can display the whole alphabet. You get the point.

This is the **Yellow Adafruit 0.54" Dual Alphanumeric Display w/ FeatherWing Combo Pack**! We also have these combo packs in

In Stock
[Buy Now](https://www.adafruit.com/product/3131)
[Related Guides to the Product](https://learn.adafruit.com/products/3131/guides)
### Adafruit 0.54" Quad Alphanumeric FeatherWing - Yellow/Green

[Adafruit 0.54" Quad Alphanumeric FeatherWing - Yellow/Green](https://www.adafruit.com/product/3132)
Display, elegantly, 012345678 or 9! Gaze, hypnotized, at ABCDEFGHIJKLM - well it can display the whole alphabet. You get the point.

This is the **Yellow/Green Adafruit 0.54" Dual Alphanumeric FeatherWing Display Combo Pack**! We also have these combo packs in <a...></a...>

No Longer Stocked
[Buy Now](https://www.adafruit.com/product/3132)
[Related Guides to the Product](https://learn.adafruit.com/products/3132/guides)
### Adafruit 0.54" Quad Alphanumeric FeatherWing Display - Green

[Adafruit 0.54" Quad Alphanumeric FeatherWing Display - Green](https://www.adafruit.com/product/3129)
Display, elegantly, 012345678 or 9! Gaze, hypnotized, at ABCDEFGHIJKLM - well it can display the whole alphabet. You get the point.

This is the **Green Adafruit 0.54" Dual Alphanumeric FeatherWing Display Combo Pack**! We also have these combo packs in

In Stock
[Buy Now](https://www.adafruit.com/product/3129)
[Related Guides to the Product](https://learn.adafruit.com/products/3129/guides)
### Adafruit 0.54" Quad Alphanumeric FeatherWing Display - Blue

[Adafruit 0.54" Quad Alphanumeric FeatherWing Display - Blue](https://www.adafruit.com/product/3128)
Display, elegantly, 012345678 or 9! Gaze, hypnotized, at ABCDEFGHIJKLM - well it can display the whole alphabet. You get the point.

This is the **Blue Adafruit 0.54" Dual Alphanumeric FeatherWing Display Combo Pack**! We also have these combo packs in

In Stock
[Buy Now](https://www.adafruit.com/product/3128)
[Related Guides to the Product](https://learn.adafruit.com/products/3128/guides)
### Adafruit 0.54" Quad Alphanumeric FeatherWing Display - White

[Adafruit 0.54" Quad Alphanumeric FeatherWing Display - White](https://www.adafruit.com/product/3127)
Display, elegantly, 012345678 or 9! Gaze, hypnotized, at ABCDEFGHIJKLM - well it can display the whole alphabet. You get the point.

This is the **White Adafruit 0.54" Dual Alphanumeric Display w/ FeatherWing Combo Pack**! We also have these combo packs in&nbsp;<a...></a...>

In Stock
[Buy Now](https://www.adafruit.com/product/3127)
[Related Guides to the Product](https://learn.adafruit.com/products/3127/guides)

## Related Guides

- [Mystery Box: Crypto Countdown Case](https://learn.adafruit.com/mystery-box-crypto-countdown-case.md)
- [Adafruit Ultimate GPS HAT for Raspberry Pi](https://learn.adafruit.com/adafruit-ultimate-gps-hat-for-raspberry-pi.md)
- [Upgrading AirLift ESP32 Firmware](https://learn.adafruit.com/upgrading-esp32-firmware.md)
- [Adafruit Monochrome 1.12" 128x128 OLED Graphic Display](https://learn.adafruit.com/adafruit-monochrome-1-12-in-128x128-oled.md)
- [Adafruit BMP280 Barometric Pressure + Temperature Sensor Breakout](https://learn.adafruit.com/adafruit-bmp280-barometric-pressure-plus-temperature-sensor-breakout.md)
- [Adafruit 2.2" PiTFT HAT - 320x240 Display](https://learn.adafruit.com/adafruit-2-2-pitft-hat-320-240-primary-display-for-raspberry-pi.md)
- [Adafruit MCP9601 I2C Thermocouple Amplifier](https://learn.adafruit.com/adafruit-mcp9601.md)
- [Adafruit INA219 Current Sensor Breakout](https://learn.adafruit.com/adafruit-ina219-current-sensor-breakout.md)
- [Adafruit 16-channel PWM/Servo Shield](https://learn.adafruit.com/adafruit-16-channel-pwm-slash-servo-shield.md)
- [Adafruit TFP401 HDMI/DVI Decoder to 40-pin TTL Display](https://learn.adafruit.com/adafruit-tfp401-hdmi-slash-dvi-decoder-to-40-pin-ttl-display.md)
- [Adafruit I2C FRAM Breakout](https://learn.adafruit.com/adafruit-i2c-fram-breakout.md)
- [Simple and Beautiful NeoPixel Holiday Lights](https://learn.adafruit.com/simple-beautiful-color-changing-light-strand.md)
- [Getting Started with FLORA](https://learn.adafruit.com/getting-started-with-flora.md)
- [Ultrasonic Sonar Distance Sensors](https://learn.adafruit.com/ultrasonic-sonar-distance-sensors.md)
- [Adafruit AS7341 10-Channel Light / Color Sensor Breakout](https://learn.adafruit.com/adafruit-as7341-10-channel-light-color-sensor-breakout.md)
