Projects · 3-Bank Display

3-Bank Display Test

Arduino sketch for an OSEPP Pro Mini (ATmega328, 5 V, 16 MHz) driving three PDSP1880 LED character displays. It scrolls the printable ASCII set across all digit positions; a pot on analog pin 0 sets scroll speed.

Full write-up (hardware, wiring, behavior)

Overview

This program displays text on three PDSP1880 modules wired as one master display and two slave displays. Characters are written left to right across all digit positions; when the end of the character set is reached, the sequence wraps back to the start. At shorter delay times the full ASCII run looks like a right-to-left scroll.

Scroll speed comes from analog port 0: the pot wiper is read, scaled with map(), and converted to a delay between digit writes from 20 ms (fast) to 500 ms (slow).

Hardware

ItemDetail
MCUOSEPP Pro Mini - ATmega328 @ 5 V, 16 MHz
Displays3× PDSP1880 (1 master + 2 slaves)
Scroll control10 kΩ potentiometer wiper on A0 (CCW = GND, CW = +5 V)
Power+5 V and GND to Pro Mini and displays

Pin mapping

Port D carries the 7-bit character data and write strobe; port B selects bank and digit address.

Pro Mini pinPortFunction
D0 (RX)PD0Display bit 0
D1 (TX)PD1Display bit 1
D2PD2Display bit 2
D3PD3Display bit 3
D4PD4Display bit 4
D5PD5Display bit 5
D6PD6Display bit 6
D7PD7Display write (active low)
D8PB0Display A0
D9PB1Display A1
D10PB2Display A2
D11PB3Bank select 1 (left display)
D12PB4Bank select 2 (middle display)
D13PB5Bank select 3 (right display)
A0PC0Scroll-speed pot wiper

Bank decode in firmware: digits 0-7 drive the left module (Bank = 0xF0), 8-15 the middle (0xE8), 16-23 the right (0xD8). Each bank exposes 8 character positions; TotalDig = 0x17 (23) is the total digit count across the chain.

Behavior

  • Char2Count walks the character set; Char2Dis is the byte sent to the display after wrap-around math at the end of the ASCII range (TotalDisChar = 0x7F).
  • DisPosCount selects which digit position receives the current character.
  • setup() sets DDRD and DDRB as outputs and blanks the displays on power-up so no garbage characters appear.
  • Each loop pass writes one character to each digit position in order, then advances the character index.

Build and upload

  1. Clone or download 3_bank_display_test from GitHub.
  2. Open the sketch file Three_bank_display_test in the Arduino IDE (no external libraries required).
  3. Select board Arduino Pro or Pro Mini, processor ATmega328P (5 V, 16 MHz).
  4. Wire the three PDSP1880 modules and scroll pot as in the pin table above.
  5. Upload and turn the pot to adjust scroll speed.

GitHub Actions compiles this sketch on every push to master (compile check only; does not upload to the board).

Original sketch comments and wiring diagram: Jim Burney, July 2013.