MiscJunk logo

Adafruit 1.2" Displays

The standard PDT construction optionally utilizes the Adafruit 0.56" displays for showing each lane's place order and finish time. The digits on the displays are 0.56" tall and are similar to the displays utilized on other timers.

In some cases it is desirable to have larger displays. An option for this are the Adafruit 1.2" displays which, with a little work, can be utilized by the PDT timer. The photo below shows the 1.2" displays compared to the 0.56" displays (the measurement in each case indicates the height of the digits).

Adafruit displays

This page describes how to implement the Adafruit 1.2" displays as part of the PDT. The following subjects are covered:

Hardware Setup

The 1.2" displays are setup almost identically to the 0.56" displays as described on the Construction page. There are two differences: one is the 1.2" displays have an extra pin in its header - it is labled V_IO. This pin should be connected to +5V - one option is to simply connect it to the neighboring +5V pin on the header as shown below:

Adafruit display header

The other difference is because the only decimal point on the display is on the top - the display must be mounted/used upside down as shown below:

Adafruit display upside down
BACK TO TOP

Software Changes

Since the 1.2" displays must be used upside down the corresponding Adafruit library must be modified to drive the displays correctly. You will need to modify the following file (change 'USERNAME' below to your Windows username):

C:\Users\USERNAME\Documents\Arduino\libraries\Adafruit_LED_Backpack_Library\Adafruit_LEDBackpack.cpp

Find the definition for 'numbertable' and change it to the following:

static const uint8_t numbertable[] = {
0x3F, /* 0 */
0x30, /* 1 */
0x5B, /* 2 */
0x79, /* 3 */
0x74, /* 4 */
0x6D, /* 5 */
0x6F, /* 6 */
0x38, /* 7 */
0x7F, /* 8 */
0x7D, /* 9 */
0x7E, /* a */
0x67, /* b */
0x0F, /* C */
0x73, /* d */
0x4F, /* E */
0x4E, /* F */
};

Then find the definition for 'Adafruit_7segment::writeDigitRaw' and change it to the following:

void Adafruit_7segment::writeDigitRaw(uint8_t d, uint8_t bitmask) {
if (d > 4) return;
displaybuffer[4-d] = bitmask;
}

Finally you will need to enable the LARGE_DISP parameter in the PDT sketch as described on the Software page.

BACK TO TOP

Power Considerations

Although they are bigger the 1.2" displays do not draw more power than the 0.56" displays. The power considerations are the same, refer to the power section on the Construction page.

BACK TO TOP

BACK TO CONSTRUCTION



Last updated: 5 March 2017