Metaboard

aus Metalab, dem offenen Zentrum für meta-disziplinäre Magier und technisch-kreative Enthusiasten.
Wechseln zu: Navigation, Suche

What is Metaboard?

Metaboard

Metaboard is a USB based prototyping board for Atmel's AVR microcontrollers. It is designed to be (mostly) compatible with Arduino. Its entire design (hardware and firmware) is Open Source.

Design Goals

  • Low complexity and thus extremely low price.
  • Single sided PCB so that the board can be manufactured at home. If professionally manufactured, a single sided board is still cheaper.
  • No SMD components. Easy to assemble at home.
  • (Mostly) compatible with Arduino in board dimension and connector layout. Can also be programmed by Arduino's development environment via USB.
  • No upfront investment for development environment or programmer hardware.
  • Breadboard area on board.
  • Completely Open Source.

Hardware

Since USB is implemented in firmware, no special USB driver chip is needed. Circuit diagram: Metaboard circuit diagram

The most recent version of Metaboard can always be obtained via SVN from https://whatever.metalab.at/user/cs/metaboard/trunk.

A read-made package with PNG images for board schematics, layout and component side can be downloaded here.

Download: metaboard-1.0.zip

Firmware

Metaboard is best used with USBaspLoader. This is a boot loader which emulates USBasp, a USB based AVR programmer. The main firmware loaded with this boot loader is your business, of course.

Development Resources

Metaboard can either be used with the free GCC tool chain or with Arduino's free Integrated Development Environment. Arduino offers a set of example projects, documentation and a user community which is especially helpful for the beginner. Since Metaboard is not entirely equivalent to the Arduino board, not all example projects can be used out of the box. We plan to offer example projects made especially for Metaboard.

The GCC toolchain can be dowloaded from:

Example projects based on GCC can be found at http://www.obdev.at/avrusb/. Since these examples have not been developed for Metaboard, they must be modified with Metaboard's pin assignments and clock rate.

All resources related to Arduino can be found at http://www.arduino.cc/. If you want to use the USB port from within the Arduino development environment, see the following project log: http://code.rancidbacon.com/ProjectLogArduinoUSB.

Metaboard for Arduino Users

Metaboard has been designed to be mostly compatible with Arduino, but there are relevant differences:

  • Connector position: All connectors are on 2.54 mm grid positions so that extension circuits can be easily built on breadboard.
  • Upload procedure: A jumper is used to select bootloader mode and the reset key must be pressed to activate the boot loader.
  • Upload protocol: Metaboard emulates USBasp, not STK500.
  • AVR's UART lines are not used for USB. This means that they can be used for other purposes, but also that debug output written to the UART cannot be directly received via USB.

In order to upload firmware from Arduino's IDE, the file hardware/boards.txt in Arduino's main folder must be changed. Add the following lines at the end of the file:

##############################################################

metaboard.name=Metaboard

metaboard.upload.protocol=usbasp
metaboard.upload.maximum_size=14336
metaboard.upload.speed=19200

metaboard.build.mcu=atmega168
metaboard.build.f_cpu=16000000L
metaboard.build.core=arduino

metaboard.upload.disable_flushing=true

##############################################################

Since Arduino insists on having a serial line to upload the firmware (although none is needed for usbasp), you may have to edit Arduino's preferences.txt file manually and set the variable serial.port to an existing device. Preferences.txt is in ~/Library/Arduino on the Mac. Updated feb. 2010: Should now work without any problems, with the disable_flushing-option

Projects based on Metaboard

AVRProg
AVRProg is an In System Programmer (ISP) for AVR microcontrollers. It includes programming sockets for 8, 20 and 28 pin devices.

Metaboard/2010 activities is centered around extending the metaboard for home automation tasks.