borgware-2d/README.md

3.0 KiB

Borgware-2D

Firmware for AVR based two-dimensional LED matrices, especially the Blinken Borgs from Das LABOR. Main platform is the Borg16 construction kit. Other supported platforms are the LED Brett projector from Hackerspace FFM or the ELO Ping-Pong Board.

Small Borg16   Glow Lamp Borg

Animations

Matrix   Fire Scrolling Text

Games

Snake   Tetris

Tetris

  • Classic: Standard Tetris Clone
  • First Person Tetris: Rotate the bucket instead of the Tetromino.
  • Bastet: Dices the worst the possible Tetromino the whole time.

Snake

Pong

Space Invaders

Build

Supported build platforms are Linux, FreeBSD and Windows (via Cygwin). Due to customized linker scripts, simulator support is currently limited to x86 and x86_64 archs. Following dependencies have to be met:

Dependencies Linux / FreeBSD

Package names are based on those packages found in the Debian/Ubuntu repositories. Please adapt the names according to your Linux distribution (or FreeBSD for that matter).

  • build-essential (pulls in an ordinary gcc build tool chain for the host)
  • make (gmake on FreeBSD)
  • libncurses5-dev
  • gcc-avr
  • avr-libc
  • binutils-avr
  • avrdude
  • freeglut3-dev

Dependencies Windows

  • WinAVR (includes avr-gcc and avrdude)
  • Cygwin(64) ..* make ..* gcc-core ..* libncurses-devel (Cygwin) ..* libwcurses-devel (Cygwin64)
  • libusb-win32 if you want to use your USBasp programmer device with avrdude on Windows

Configure

Open a terminal and type:

make menuconfig

This brings up a curses based text interface for configuring certain aspects of your target platform. Be careful if you use a full-fledged IDE like Eclipse to manage the build, as integrated terminal emulators tend to choke on curses generated shell output. Just ensure that 'make menuconfig' has been run at least once in an ordinary terminal emulator after a fresh checkout or after issuing 'make mrproper'.

Compile

To build for the actual target platform, just type:

make

If you want to test and debug your code within a GUI applications, you can use the simulator:

make simulator

Please keep in mind that the simulator is NOT an emulator. All it does is to compile the Borgware 2D to an ordinary host application so you can step through your C-Code. The GUI application scans the simulated frame buffer every 40ms and draws its contents.