borgware-2d/README.md

103 lines
3.0 KiB
Markdown

Borgware-2D
===========
Firmware for AVR based two-dimensional LED matrices, especially the
[Blinken Borgs](http://www.das-labor.org/wiki/Blinken_Borgs) from
[Das LABOR](http://das-labor.org/index.en.php).
Main platform is the [Borg16](http://www.das-labor.org/wiki/Borg16) construction
kit. Other supported platforms are the
[LED Brett](http://www.hackerspace-ffm.de/wiki/index.php?title=LedBrett)
projector from [Hackerspace FFM](http://www.hackerspace-ffm.de) or the
[ELO Ping-Pong Board](http://www.elo-web.de/elo/mikrocontroller-und-programmierung/ping-pong/das-franzis-pingpong).
![Small Borg16](/doc/img/Borg16-small.jpg)
![Glow Lamp Borg](/doc/img/Glow_Lamp_Borg.jpg)
Animations
----------
![Matrix](/doc/img/anim-matrix.png)
![Fire](/doc/img/anim-feuer.png)
![Scrolling Text](/doc/img/anim-scroll.png)
Games
-----
![Snake](/doc/img/game-snake.png)
![Tetris](/doc/img/game-tetris.png)
* 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](http://winavr.sourceforge.net) (includes avr-gcc and avrdude)
* [Cygwin(64)](http://www.cygwin.com/)
* make
* gcc-core
* libncurses-devel (Cygwin)
* libncursesw-devel (Cygwin64)
* [libusb-win32](http://sourceforge.net/apps/trac/libusb-win32/wiki) 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 application, you can use
the simulator:
> make simulator
Then you can start the simulator by typing ./borgsim(.exe)
Please keep in mind that the simulator is NOT an emulator. All it does is to
compile the source code 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.