diff --git a/.travis.yml b/.travis.yml
index 98f1e8857dae0348599ce638b641e88908c0b574..988ea321788bb3a497d9895bc3de242c41643456 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -22,6 +22,7 @@ install:
     - sudo apt-get install pcregrep libpcre3
     - sudo apt-get install qemu-system-x86 python3
     - sudo apt-get install g++-multilib
+    - sudo apt-get install gcc-avr binutils-avr avr-libc
     - git config --global user.email "travis@example.com"
     - git config --global user.name "Travis CI"
 
diff --git a/examples/ccn-lite-client/Makefile b/examples/ccn-lite-client/Makefile
index 9c0a82bfe3630636934178a14ee33575114c76ab..38b24eb8731e41d8668796b16c520aed3898bbc5 100644
--- a/examples/ccn-lite-client/Makefile
+++ b/examples/ccn-lite-client/Makefile
@@ -29,7 +29,7 @@ QUIET ?= 1
 
 BOARD_INSUFFICIENT_RAM := chronos msb-430h telosb wsn430-v1_3b wsn430-v1_4 z1 redbee-econotag
 BOARD_BLACKLIST := arduino-due mbed_lpc1768 msb-430 pttu udoo qemu-i386 \
-                   stm32f0discovery stm32f3discovery stm32f4discovery pca10000 pca10005
+                   stm32f0discovery stm32f3discovery stm32f4discovery pca10000 pca10005 arduino-mega2560
 # mbed_lpc1768:     see https://github.com/RIOT-OS/RIOT/issues/675
 # msb-430:          see https://github.com/RIOT-OS/RIOT/issues/658
 # pttu:             see https://github.com/RIOT-OS/RIOT/issues/659
@@ -39,6 +39,7 @@ BOARD_BLACKLIST := arduino-due mbed_lpc1768 msb-430 pttu udoo qemu-i386 \
 # stm32f4discovery: no transceiver, yet
 # pca10000:         no transceiver, yet
 # pca10005:         no transceiver, yet
+# arduino-mega2560: no transceiver, yet
 
 # Modules to include:
 
diff --git a/examples/ccn-lite-relay/Makefile b/examples/ccn-lite-relay/Makefile
index 6e08fb232f8d209ca3af8953e00c8a37a1c42185..c60bc1b743ed698d97fc9b32e9ebf73053027ec3 100644
--- a/examples/ccn-lite-relay/Makefile
+++ b/examples/ccn-lite-relay/Makefile
@@ -30,7 +30,7 @@ QUIET ?= 1
 BOARD_INSUFFICIENT_RAM := chronos msb-430h telosb wsn430-v1_3b wsn430-v1_4 z1 redbee-econotag
 BOARD_BLACKLIST := arduino-due mbed_lpc1768 msb-430 pttu udoo qemu-i386 \
                    stm32f0discovery stm32f3discovery stm32f4discovery \
-                   pca10000 pca10005
+                   pca10000 pca10005 arduino-mega2560
 # mbed_lpc1768:     see https://github.com/RIOT-OS/RIOT/issues/675
 # msb-430:          see https://github.com/RIOT-OS/RIOT/issues/658
 # pttu:             see https://github.com/RIOT-OS/RIOT/issues/659
@@ -39,6 +39,8 @@ BOARD_BLACKLIST := arduino-due mbed_lpc1768 msb-430 pttu udoo qemu-i386 \
 # stm32f3discovery: no transceiver, yet
 # stm32f4discovery: no transceiver, yet
 # pca10000/5:       no transceiver, yet
+# arduino-mega2560: no transceiver, yet
+
 # Modules to include:
 
 USEMODULE += posix
diff --git a/examples/riot_and_cpp/Makefile b/examples/riot_and_cpp/Makefile
index 73e1e49476c32a9eff831341d0b65d660609be96..7653f9ac9662a7f7af10f1ba3c9bcefa2efd9fb6 100644
--- a/examples/riot_and_cpp/Makefile
+++ b/examples/riot_and_cpp/Makefile
@@ -30,7 +30,7 @@ QUIET ?= 1
 # Blacklist boards
 BOARD_BLACKLIST := arduino-due avsextrem chronos mbed_lpc1768 msb-430h msba2 redbee-econotag \
                    telosb wsn430-v1_3b wsn430-v1_4 msb-430 pttu udoo qemu-i386 z1 stm32f0discovery \
-                   stm32f3discovery stm32f4discovery pca10000 pca10005 iot-lab_M3
+                   stm32f3discovery stm32f4discovery pca10000 pca10005 iot-lab_M3 arduino-mega2560
 
 # This example only works with native for now.
 # msb430-based boards: msp430-g++ is not provided in mspgcc.
@@ -42,6 +42,7 @@ BOARD_BLACKLIST := arduino-due avsextrem chronos mbed_lpc1768 msb-430h msba2 red
 # pca10000:         g++ does not support some used flags (e.g. -mthumb...)
 # pca10005:         g++ does not support some used flags (e.g. -mthumb...)
 # iot-lab_M3: g++ does not support some used flags (e.g. -mthumb...)
+# arduino-mega2560: cstdio header missing from avr-libc
 # others: untested.
 
 # If you want to add some extra flags when compile c++ files, add these flags
diff --git a/examples/rpl_udp/Makefile b/examples/rpl_udp/Makefile
index 5e7748ba387399a17a0955c86af4157f001fc447..2ced43fe78ed77c17950573a2ece999fbbaac699 100644
--- a/examples/rpl_udp/Makefile
+++ b/examples/rpl_udp/Makefile
@@ -36,7 +36,7 @@ endif
 
 BOARD_INSUFFICIENT_RAM := chronos msb-430h redbee-econotag telosb wsn430-v1_3b wsn430-v1_4 z1
 BOARD_BLACKLIST := arduino-due mbed_lpc1768 msb-430 pttu udoo qemu-i386 stm32f0discovery \
-                   stm32f3discovery stm32f4discovery pca10000 pca10005
+                   stm32f3discovery stm32f4discovery pca10000 pca10005 arduino-mega2560
 # mbed_lpc1768:     see https://github.com/RIOT-OS/RIOT/issues/675
 # msb-430:          see https://github.com/RIOT-OS/RIOT/issues/658
 # pttu:             see https://github.com/RIOT-OS/RIOT/issues/659
@@ -46,6 +46,7 @@ BOARD_BLACKLIST := arduino-due mbed_lpc1768 msb-430 pttu udoo qemu-i386 stm32f0d
 # stm32f4discovery: no transceiver, yet
 # pca10000:         no transceiver, yet
 # pca10005:         no transceiver, yet
+# arduino-mega2560: time.h missing from avr-libc
 
 # Modules to include:
 
diff --git a/sys/pipe/pipe_dynamic.c b/sys/pipe/pipe_dynamic.c
index 1cb098382b24d9b6cc00c533617bebedfb7fd0f4..42152c442b3ad663992ff2c03a871d400a294c9a 100644
--- a/sys/pipe/pipe_dynamic.c
+++ b/sys/pipe/pipe_dynamic.c
@@ -25,7 +25,11 @@
  * @}
  */
 
+#if defined(MCU_ATMEGA2560)
+#include <stdlib.h>
+#else
 #include <malloc.h>
+#endif
 
 #include "pipe.h"
 
diff --git a/tests/bloom/Makefile b/tests/bloom/Makefile
index 778afff9cf3baf4aa29e161f82ce1f6289758450..f4171d577138ee661092818ce0852c9911f5e446 100644
--- a/tests/bloom/Makefile
+++ b/tests/bloom/Makefile
@@ -5,6 +5,10 @@ BOARD_INSUFFICIENT_RAM := chronos mbed_lpc1768 msb-430 msb-430h redbee-econotag
                           telosb wsn430-v1_3b wsn430-v1_4 z1 stm32f0discovery \
                           stm32f3discovery pca10000 pca10005
 
+BOARD_BLACKLIST := arduino-mega2560
+# arduino-mega2560: Errors in assembly, e.g:
+#                   Error: value of 105617 too large for field of 2 bytes at 20018
+
 USEMODULE += hashes
 USEMODULE += bloom
 
diff --git a/tests/coap/Makefile b/tests/coap/Makefile
index 2a9db4eefa8257227fdce2f1178c1faf77c3d8bf..1c802eb3fe17ac78619070ea1c0e766e8c87d143 100644
--- a/tests/coap/Makefile
+++ b/tests/coap/Makefile
@@ -3,7 +3,9 @@ include ../Makefile.tests_common
 
 BOARD_BLACKLIST := arduino-due chronos mbed_lpc1768 msb-430 msb-430h qemu-i386 stm32f0discovery \
                    stm32f3discovery stm32f4discovery telosb wsn430-v1_3b wsn430-v1_4 udoo z1 \
-                   pca10000 pca10005
+                   pca10000 pca10005 arduino-mega2560
+#arduino-mega2560: missing header sys/types.h
+
 BOARD_INSUFFICIENT_RAM := redbee-econotag
 #MSP boards: no assert.h
 #rest: no radio
diff --git a/tests/libfixmath_unittests/Makefile b/tests/libfixmath_unittests/Makefile
index 162d11afa10daeef54a27bf14a310d79030b14e5..0036aa796a4b910dcd90976bbc3e27427905769c 100644
--- a/tests/libfixmath_unittests/Makefile
+++ b/tests/libfixmath_unittests/Makefile
@@ -1,6 +1,10 @@
 APPLICATION = libfixmath_unittests
 include ../Makefile.tests_common
 
+BOARD_BLACKLIST := arduino-mega2560
+# arduino-mega2560: builds locally but breaks travis (possibly because of
+# differences in the toolchain)
+
 # The MSP boards don't feature round(), exp(), and log(), which are used in the unittests
 BOARD_INSUFFICIENT_RAM := chronos msb-430 msb-430h telosb wsn430-v1_3b wsn430-v1_4 z1
 
diff --git a/tests/net_if/Makefile b/tests/net_if/Makefile
index a8f08913f804c05320d93bc66ca941829de3c4f1..9c2ba2f042e0356abadc3d12c47c52978a119a70 100644
--- a/tests/net_if/Makefile
+++ b/tests/net_if/Makefile
@@ -1,8 +1,7 @@
 APPLICATION = net_if
 
 BOARD_BLACKLIST = mbed_lpc1768 arduino-due udoo qemu-i386 stm32f0discovery stm32f3discovery \
-                  stm32f4discovery pca10000 pca10005
-                  
+                  stm32f4discovery pca10000 pca10005 arduino-mega2560
 # qemu-i386:        no transceiver, yet
 # stm32f0discovery: no transceiver, yet
 # stm32f3discovery: no transceiver, yet
diff --git a/tests/pnet/Makefile b/tests/pnet/Makefile
index c05f9af6a6172c79bbabae651fadc81ec610a91d..939f738844f316ce0d698b78910ba896b44731c5 100644
--- a/tests/pnet/Makefile
+++ b/tests/pnet/Makefile
@@ -3,7 +3,7 @@ include ../Makefile.tests_common
 
 BOARD_INSUFFICIENT_RAM := chronos msb-430h redbee-econotag telosb wsn430-v1_3b wsn430-v1_4 z1
 BOARD_BLACKLIST := arduino-due mbed_lpc1768 msb-430 udoo qemu-i386 stm32f0discovery \
-                   stm32f3discovery stm32f4discovery pca10000 pca10005
+                   stm32f3discovery stm32f4discovery pca10000 pca10005 arduino-mega2560
 # mbed_lpc1768:     see https://github.com/RIOT-OS/RIOT/issues/675
 # msb-430:          see https://github.com/RIOT-OS/RIOT/issues/658
 # qemu-i386:        no transceiver, yet
@@ -12,6 +12,7 @@ BOARD_BLACKLIST := arduino-due mbed_lpc1768 msb-430 udoo qemu-i386 stm32f0discov
 # stm32f4discovery: no transceiver, yet
 # pca10000:         no transceiver, yet
 # pca10005:         no transceiver, yet
+# arduino-mega2560:  unknown type name ‘radio_packet_length_t’
 
 USEMODULE += posix
 USEMODULE += pnet
diff --git a/tests/posix_sleep/Makefile b/tests/posix_sleep/Makefile
index 24f6fe6320a67adc82d547e80158441282b5dbdb..32fefc14e52d4a81d848dc15331ce2e9bf2bf325 100644
--- a/tests/posix_sleep/Makefile
+++ b/tests/posix_sleep/Makefile
@@ -1,6 +1,10 @@
 APPLICATION = posix_sleep
 include ../Makefile.tests_common
 
+BOARD_BLACKLIST := arduino-mega2560
+# arduino-mega2560: warning: iteration 2u invokes undefined behavior
+# [-Waggressive-loop-optimizations]
+
 USEMODULE += posix
 
 DISABLE_MODULE += auto_init
diff --git a/tests/pthread/Makefile b/tests/pthread/Makefile
index e6252668c74899abf859254f5d4ff7a713715b45..f94b94daf7a3b70ab278b66f70b71b96958b81e4 100644
--- a/tests/pthread/Makefile
+++ b/tests/pthread/Makefile
@@ -1,6 +1,9 @@
 APPLICATION = pthread
 include ../Makefile.tests_common
 
+BOARD_BLACKLIST := arduino-mega2560
+# arduino-mega2560: unknown type name: clockid_t
+
 USEMODULE += posix
 USEMODULE += pthread
 
diff --git a/tests/pthread_barrier/Makefile b/tests/pthread_barrier/Makefile
index e07891520c12b40336a0225c81e249dce78101c7..e92aeba2a9512c298cefccb46abb56a3eacb3d2f 100644
--- a/tests/pthread_barrier/Makefile
+++ b/tests/pthread_barrier/Makefile
@@ -2,6 +2,9 @@
 APPLICATION = pthread_barrier
 include ../Makefile.tests_common
 
+BOARD_BLACKLIST := arduino-mega2560
+# arduino-mega2560: unknown type name: clockid_t
+
 # exclude boards with insufficient RAM
 BOARD_INSUFFICIENT_RAM :=  stm32f0discovery
 
diff --git a/tests/pthread_cleanup/Makefile b/tests/pthread_cleanup/Makefile
index bbd94385d05b299191267f45b7dc42012b61a421..01a07da0efc7cc606bc5c839a04c4132dc422a2c 100644
--- a/tests/pthread_cleanup/Makefile
+++ b/tests/pthread_cleanup/Makefile
@@ -1,6 +1,9 @@
 APPLICATION = pthread_cleanup
 include ../Makefile.tests_common
 
+BOARD_BLACKLIST := arduino-mega2560
+# arduino-mega2560: unknown type name: clockid_t
+
 USEMODULE += pthread
 
 include $(RIOTBASE)/Makefile.include
diff --git a/tests/pthread_condition_variable/Makefile b/tests/pthread_condition_variable/Makefile
index 6e53949643b334e42b196c456f7254f29fc529be..0629990c579ceaccf0ef5b8c0b4ff98843ce937e 100644
--- a/tests/pthread_condition_variable/Makefile
+++ b/tests/pthread_condition_variable/Makefile
@@ -1,6 +1,9 @@
 APPLICATION = condition_variable
 include ../Makefile.tests_common
 
+BOARD_BLACKLIST := arduino-mega2560
+# arduino-mega2560: unknown type name: clockid_t
+
 BOARD_INSUFFICIENT_RAM := stm32f0discovery
 
 USEMODULE += posix
diff --git a/tests/pthread_cooperation/Makefile b/tests/pthread_cooperation/Makefile
index 75665e6a48a9a804650c67de52bf9a05132408eb..996c3fa30e6f1b54df69574c9c824baf33f0e8e5 100644
--- a/tests/pthread_cooperation/Makefile
+++ b/tests/pthread_cooperation/Makefile
@@ -1,6 +1,9 @@
 APPLICATION = pthread_cooperation
 include ../Makefile.tests_common
 
+BOARD_BLACKLIST := arduino-mega2560
+# arduino-mega2560: unknown type name: clockid_t
+
 USEMODULE += posix
 USEMODULE += pthread
 
diff --git a/tests/pthread_rwlock/Makefile b/tests/pthread_rwlock/Makefile
index e5f503a06223f4d1996640fa34f343e1928df7d3..2d4a2b678a3ed892bd96dd417f3731bb12612ce1 100644
--- a/tests/pthread_rwlock/Makefile
+++ b/tests/pthread_rwlock/Makefile
@@ -1,6 +1,9 @@
 APPLICATION = pthread_rwlock
 include ../Makefile.tests_common
 
+BOARD_BLACKLIST := arduino-mega2560
+# arduino-mega2560: unknown type name: clockid_t
+
 USEMODULE += pthread
 USEMODULE += vtimer
 USEMODULE += random
diff --git a/tests/vtimer_msg_diff/Makefile b/tests/vtimer_msg_diff/Makefile
index 8df2c2e5c63a6ff5d5d54e4b21cb815c64cd4235..fbdae6b8912b4887b47c33d0996151116a8b5d95 100644
--- a/tests/vtimer_msg_diff/Makefile
+++ b/tests/vtimer_msg_diff/Makefile
@@ -1,6 +1,10 @@
 APPLICATION = vtimer_msg_diff
 include ../Makefile.tests_common
 
+BOARD_BLACKLIST := arduino-mega2560
+# arduino-mega2560: missing define for PRId64, avr-libc's printf function
+# possibly not compatible at all
+
 BOARD_INSUFFICIENT_RAM := mbed_lpc1768 stm32f0discovery pca10000 pca10005
 
 USEMODULE += vtimer