Go to file
Christian Kroll e170453f65 animated GIF ftw! 2014-03-10 04:22:13 +01:00
animations seasonal animation removed 2013-03-18 14:58:59 +01:00
borg_hw the MCLR pins of the 74HCT164 chips are not connected on Borg 16 2013-04-07 01:16:10 +02:00
can resolved some signedness issues, still many to go (btw: 78 bytes eliminated in the process) 2012-09-08 01:35:32 +00:00
compat weitergem8 2008-12-28 21:49:28 +00:00
doc/img animated GIF ftw! 2014-03-10 04:22:13 +01:00
games corrected some doxygen tag errors 2013-02-02 16:48:44 +01:00
joystick incorporated borg drivers from "Hackerspace FFM" - thx guys! 2012-09-13 01:19:33 +00:00
mcuf renamed project because it is to cool for stupid name 2008-12-03 05:40:16 +00:00
menu dealt with compiler warning about discarded qualifiers 2011-09-13 00:25:14 +00:00
profiles seasonal animation removed 2013-03-18 14:58:59 +01:00
random saved 162 bytes 2011-03-01 16:17:58 +00:00
rfm12 there was a problem with initing the rfm12. I have corrected it. 2012-03-02 00:01:47 +00:00
scripts Cleanup in menuconfig 2013-09-22 16:34:27 +02:00
scrolltext progmem const error 2012-11-03 21:34:09 +00:00
simulator Merge branch 'master' of das-labor.org:users/chris/borgware-2d 2014-03-07 00:45:20 +01:00
smallani added additional configparameters for small animations 2011-05-14 18:09:40 +00:00
uart replaced deprecated SIGNAL() and SIG_* macros to be compatible with avr-libc 1.8.0 and gcc 4.7.0 2012-03-23 01:27:59 +00:00
.gitignore .gitignore finetuning 2013-02-07 20:44:39 +01:00
.travis.yml Add .travis.yml or continuous integration 2014-03-06 19:15:09 +01:00
Doxyfile made some parameters like plasma frame delays configurable 2012-05-09 17:57:51 +00:00
Makefile make menuconfig sollte nciht zweimal durchlaufen 2013-09-22 16:25:43 +02:00
README.md animated GIF ftw! 2014-03-10 04:22:13 +01:00
avr5.x Game and menu support added. Dependencies fixed. Compiles fine for AVR and Windows. Linux simulator is still missing a linker script. 2009-01-02 02:18:20 +00:00
config.h fixed a lot of config options 2011-10-28 21:52:17 +00:00
config.in incorporated borg drivers from "Hackerspace FFM" - thx guys! 2012-09-13 01:19:33 +00:00
defaults.mk support for Cygwin64 added 2014-03-01 09:09:21 +01:00
depend.mk adding menu and game support 2009-01-01 17:06:38 +00:00
display_loop.c seasonal animation removed 2013-03-18 14:58:59 +01:00
display_loop.h integrating simulator 2008-12-04 03:34:55 +00:00
eeprom_reserve.c renamed project because it is to cool for stupid name 2008-12-03 05:40:16 +00:00
ioport.h gigaborg support :-) 2011-05-08 20:58:56 +00:00
main.c there was a problem with initing the rfm12. I have corrected it. 2012-03-02 00:01:47 +00:00
makros.h 2009-07-11 16:50:11 +00:00
pixel.c put Martin Herwegs source code into separate files 2011-02-24 23:13:01 +00:00
pixel.h resolved some signedness issues, still many to go (btw: 78 bytes eliminated in the process) 2012-09-08 01:35:32 +00:00
rules.mk experimental FreeBSD support 2012-12-27 16:55:13 +00:00
util.c incorporated borg drivers from "Hackerspace FFM" - thx guys! 2012-09-13 01:19:33 +00:00
util.h integrating simulator 2008-12-04 03:34:55 +00:00

README.md

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

Animated GIF (3.5 MB)

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
  • Breakout
  • 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:

Linux / FreeBSD

Package names are based on 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

Windows

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

Configure

Open a (Cygwin) terminal, change to your checkout directory and type:

make menuconfig

This starts a curses based text interface for configuring certain aspects of your target platform. Be careful if you use an IDE like Eclipse to manage the build, as integrated terminal emulators tend to choke on curses generated shell output. Make sure 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

In case you build on FreeBSD, just use 'gmake' instead of 'make'.

You can start the simulator by typing ./borgsim(.exe)

Simulator Handling

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

Joystick directions are simulated by the WASD keys and SPACE acts as the fire button. The OpenGL based simulator (Linux/FreeBSD) enables you to adjust the viewing angle of the LED matrix via the arrow keys (not available on Windows).