Skip to content

Repository files navigation

LedBadge

This project is a custom firmware and library for displaying imagery on a small pixel led name badge.

I am interested in using this as a small notification display attached to a computer and have decided to sacrifice the ability to preload a set of messages to scroll in favor of more robust display support. It needs to be tethered to a computer with this firmware.

Some notable features include:
  • 4 level gray scale
  • 60 Hz frame refresh rate
  • 256 levels of brightness in addition to the gray scale (really, a few steps less than that since it has a gamma curve to appear perceptually linear)
  • Query button states
  • Requesting acknowledgement of commands (setting text on the stock firmware programatically was unreliable)
  • Resynchronizing handshake if the command stream is corrupted or overruns
  • It can still store a single frame image that will display at start up, even if not tethered

Samples

The Hardware

This particular badge is pretty generic and is easy to find under a few different brandings. Different variation in the components and layout exist and a couple are supported by this project.

B1248 Variant

The hardware is identifiable by two buttons on the back (in a horazontal configuration), a mini usb port that is used for data as well as power, and the 48x12 array of SMD leds are packed at a 45 degree angle on the front. I have seen a seller on one popular online retailer even include pictures of the board inside as part of the listing.

Note: I have run across another variant of this 48x12 screen that is totally different inside. I have no idea if it is compatible with this firmware.

Notable components:
  • 48x12 array of leds

  • Atmel ATMega88PA @12MHz (8 kb program, 1 kb sram, 512 byte internal eeprom)

  • Prolific PL2303 USB to serial interface

  • 12 MHz crystal oscillator (wired to the ATMega88PA)

  • 2 tact switches

  • 6 74hc595 8-bit shift registers that drive the leds (physically in a 24x24 configuration)

  • 16kb AT24C128C Atmel serial eeprom

  • ISP header right below the microcontroller

  • ~186 Hz display update rate with this firmware

BadgeBadge BackBadge Front

I was lucky and got a nice bodge wire hanging out there.

Wiring:
PinNameSignalComponent
1PD3
2PD4
3GND
4VCC
5GND
6VCC
7PB6RES (A)Oscillator
8PB7RES (B)Oscillator
9PD5~OE74HC595
10PD6STCP74HC595
11PD7DS (A)74HC595
12PB0SHCP74HC595
13PB1DS (B)74HC595
14PB2
15PB3MOSIISP Header
16PB4MISOISP Header
17PB5SCKISP Header
18AVCC
19ADC6
20AREF
21GND
22ADC7
23PC0
24PC1
25PC2Button 1
26PC3Button 0
27PC4SDAEEPROM
28PC5SCLEEPROM
29PC6RSTISP Header
30PD0TXDUSB Serial
31PD1RXDUSB Serial
32PD2

B1236 Variant

Another supported variant of the badge is slightly smaller (36x12 pixels), the two buttons on the back are in a vertical configuration. The leds are still 45 degrees, but appear to be bonded to the board directly rather than SMD components. It uses a similar (but older) Atmel microcontroller. This variant also uses an older PL2303 as well that requires an external oscillator. Instead of serial shift registers, it uses parallel flip-flops to drive the leds. Because the xtal pins are used up on parallel output (and the usb serial controler is using the crystal anyway), this variant runs at 8 MHz instead of 12 MHz.

Notable components:
  • 36x12 array of leds

  • Atmel ATMega8A @8MHz (8 kb program, 1 kb sram, 512 byte internal eeprom)

  • Prolific PL2303 USB to serial interface

  • 12 MHz crystal oscillator (wired to the PL2303)

  • 2 tact switches

  • 6 LT574 8-bit flip-flops that drive the leds (physically in a 36x12 configuration)

  • 16kb AT24C128C Atmel serial eeprom

  • ISP header right below the battery

  • ~188 Hz display update rate with this firmware

Badge Variant BackBadge Variant Front

Wiring:
PinNameSignalComponent
1PD3CP (1)LT574
2PD4CP (0)LT574
3GND
4VCC
5GND
6VCC
7PB6D0LT574
8PB7D1LT574
9PD5D2LT574
10PD6D3LT574
11PD7D6LT574
12PB0D5LT574
13PB1D7LT574
14PB2D4LT574
15PB3MOSI + Button 0ISP Header
16PB4MISOISP Header
17PB5SCK + ~OEISP Header + LT574
18AVCC
19ADC6
20AREF
21GND
22ADC7
23PC0CP (5)LT574
24PC1CP (4)LT574
25PC2CP (2)LT574
26PC3CP (3)LT574
27PC4SDAEEPROM
28PC5SCLEEPROM
29PC6RSTISP Header
30PD0TXDUSB Serial
31PD1RXDUSB Serial
32PD2Button 1

Installing

Driver software:

Installation of the Prolific PL2303 serial over usb driver is going to be the same as with the stock setup.

I was unfortunate to get a board with a counterfit PL2303 on it and the newer drivers refuse to initialize it - even the version on the disc that came with the badge. I had to roll way back to a Windows Vista version of the driver to get it to work.

Firmware:

You will need an external ISP programmer to update the firmware on the badge. An AVR Dragon works nicely. Be mindful of the ISP header pinout since it may vary between board revisions.

ISP Pinout:
VCCGNDRSTSCKMISOMOSI

Libraries

...

Close

About

Custom firmware and library for displaying imagery on a small led name badge

Resources

Stars

31 stars

Watchers

4 watching

Forks

Releases

Packages

Used by

Contributors

Languages