Projects/LED-Banner

From Hackerspace Amersfoort
Revision as of 21:20, 9 September 2017 by Polyfloyd (talk | contribs)
Jump to navigation Jump to search


Project BitBanner (LED-banner)
Name BitBanner (LED-banner)
Start 2015/03/13
End
Contact Bobo1on1, Mro, Rogue, X6m, Polyfloyd, Juerd, Stijn
Website
Information A giant LED-banner consisting of 16 5-meter long 30 LEDs/meter strips.
Status Production


Bitlair's new incarnation of blinkenlights: the BitBanner. The BitBanner will consist of 16 5-meter long RGB LED-strips, with 30 pixels per meter totaling 2400 LEDs. They'll need 5v at about 120 Amps. To provide power 12v power supplies will be used along with 32 step down converters (4 per PCB, designed and created by Bobo1on1).

TODO

  • Connect power supplies to led-strips wip
    • Buy waterproof 3-pin connectors for the stips done
  • Weatherproof power supplies
  • Create a controller done
  • Buy bold / nut 100 * 3mm 15mm + rings 200 done
  • Buy wire for connecting led strips (1 mm2 red/black 32*1m?)
  • Buy wire for supplying power to PCB's (2.5 mm2 red/black 12m)
  • Buy steel wire and accessories for suspension

Controller and Firmware

All 16 strips are simultaneously being driven by Brainsmoke's HexWS2811 board which exposes a neat TTY interface to which frames can be written to. It also supports temporal dithering.

The firmware has been slightly modified by removing one frame buffer because the MCU did not have enough RAM for triple buffering. Additionally, some defines were updated to match the specs and dimensions of the LED-Banner:

#define LED_VALUES 3
#define N_LEDS_PER_STRIP 150
#define N_STRIPS 16

HexWS2811 resources and firmware: https://github.com/brainsmoke/hex2811-penta

Flashing

A BluePil with BusPirate firmware was used in conjunction with OpenOCD to flash our modified firmware to the MCU of the controller. The bottom of the board exposes both SWD and JTAG interfaces.

The OpenOCD config used:

interface buspirate
buspirate_port /dev/ttyACM4
buspirate_speed normal

source [find target/k40.cfg]

adapter_khz 1000
reset_config srst_only

# Scratch RAM for verify
k40.cpu configure -work-area-phys 0x1FFFE000 -work-area-size 16384

# One 128K flash bank
flash bank pflash.0 kinetis 0x00000000 0x40000 0 4 $_TARGETNAME 

Flashing:

openocd -f openocd.cfg -c 'init;halt;program '"$1"' verify'

POIDH