diff --git a/tests/driver_hd44780/Makefile b/tests/driver_hd44780/Makefile
new file mode 100644
index 0000000000000000000000000000000000000000..5df7166482564ac3f82cb9f03686a0797686a4db
--- /dev/null
+++ b/tests/driver_hd44780/Makefile
@@ -0,0 +1,14 @@
+APPLICATION = driver_hd44780
+include ../Makefile.tests_common
+
+# the stm32f4discovery does not have the arduino pinout
+BOARD_BLACKLIST := stm32f4discovery
+# currently the test provides config params for arduinos only
+FEATURES_REQUIRED += arduino
+
+USEMODULE += hd44780
+
+test:
+	tests/01-run.py
+
+include $(RIOTBASE)/Makefile.include
diff --git a/tests/driver_hd44780/README.md b/tests/driver_hd44780/README.md
new file mode 100644
index 0000000000000000000000000000000000000000..f6846de55e6a442b65b3278f5ffcf14dcebfc733
--- /dev/null
+++ b/tests/driver_hd44780/README.md
@@ -0,0 +1,27 @@
+# About
+
+This is a test application for the HD44780 LCD driver. This display comes with
+many Arduino starter kits under the name of LCM1602C, and typically has 16x2
+columns and rows.
+
+# Details
+
+This test application will initialize the HD44780 driver with the configuration
+as specified in the default `hd44780_params.h` file. To connect the display with
+your board use the following minimal pinout for the LCD (i.e., Arduino here):
+
+- Pin 1 is connected directly to GND.
+- Pin 2 is connected directly to VCC +5V.
+- Pin 3 is used to set LCD contrast, for max use +5V or a 10k potentiometer.
+- Pin 4 (RS or “register select”) is connected to pin 2 on the Arduino
+- Pin 5 (RW or “read/write”) is connected directly to GND, i.e., unused.
+  Also note: if you connect RW to your board that the LCD is driven by 5V, while
+  many boards internally run at 3.3V - so this could fry the board :/
+- Pin 6 (EN or “enable”) is connected to pin 3 on the Arduino.
+- Pins 7 – 10: Not connected.
+- Pin 11 on the LCD is connected to pin 4 on the Arduino.
+- Pin 12 on the LCD is connected to pin 5 on the Arduino.
+- Pin 13 on the LCD is connected to pin 6 on the Arduino.
+- Pin 14 on the LCD is connected to pin 7 on the Arduino.
+- Pin 15 is connected to one end of a 1k resistor, and its other end to VCC +5V.
+- Pin 16 is connected directly to GND.
diff --git a/tests/driver_hd44780/hd44780_params.h b/tests/driver_hd44780/hd44780_params.h
new file mode 100644
index 0000000000000000000000000000000000000000..6fd8c8c147ce12b5e60119c002eef5b0935950fd
--- /dev/null
+++ b/tests/driver_hd44780/hd44780_params.h
@@ -0,0 +1,54 @@
+/*
+ * Copyright (C) 2017 HAW Hamburg
+ *
+ * This file is subject to the terms and conditions of the GNU Lesser
+ * General Public License v2.1. See the file LICENSE in the top level
+ * directory for more details.
+ */
+
+/**
+ * @ingroup     drivers_hd44780
+ *
+ * @{
+ * @file
+ * @brief       Pinout config for the HD44780 display
+ *
+ * @author      Sebastian Meiling <s@mlng.net>
+ */
+#ifndef HD44780_PARAMS_H
+#define HD44780_PARAMS_H
+
+#include "board.h"
+#include "periph/gpio.h"
+
+#include "hd44780.h"
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+
+#define HD44780_PARAMS_ARDUINO {    \
+    .cols   = 16,                   \
+    .rows   = 2,                    \
+    .rs     = ARDUINO_PIN_2,        \
+    .rw     = HD44780_RW_OFF,       \
+    .enable = ARDUINO_PIN_3,        \
+    .data   = {ARDUINO_PIN_4, ARDUINO_PIN_5, ARDUINO_PIN_6, ARDUINO_PIN_7,     \
+               HD44780_RW_OFF, HD44780_RW_OFF, HD44780_RW_OFF, HD44780_RW_OFF} \
+}
+
+/**
+ * @brief   LCM1602C configuration
+ */
+static const hd44780_params_t hd44780_params[] =
+{
+    HD44780_PARAMS_ARDUINO,
+};
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* HD44780_PARAMS_H */
+/** @} */
diff --git a/tests/driver_hd44780/main.c b/tests/driver_hd44780/main.c
new file mode 100644
index 0000000000000000000000000000000000000000..693f89bfab340fe7fef8ed294436a219ce4b941f
--- /dev/null
+++ b/tests/driver_hd44780/main.c
@@ -0,0 +1,58 @@
+/*
+ * Copyright (C) 2017 HAW Hamburg
+ *
+ * This file is subject to the terms and conditions of the GNU Lesser
+ * General Public License v2.1. See the file LICENSE in the top level
+ * directory for more details.
+ */
+
+/**
+ * @ingroup     tests
+ * @{
+ *
+ * @file
+ * @brief       Test application for Arduino LCM1602C LCD
+ *
+ * @author      Sebastian Meiling <s@mlng.net>
+ *
+ * @}
+ */
+
+#include <stdio.h>
+
+#include "xtimer.h"
+#include "hd44780.h"
+#include "hd44780_params.h"
+
+int main(void)
+{
+    hd44780_t dev;
+    /* init display */
+    puts("[START]");
+    if (hd44780_init(&dev, &hd44780_params[0]) != 0) {
+        puts("[FAILED]");
+        return 1;
+    }
+    /* clear screen, reset cursor */
+    hd44780_clear(&dev);
+    hd44780_home(&dev);
+    /* write first line */
+    hd44780_print(&dev, "Hello World ...");
+    xtimer_sleep(1);
+    /* set cursor to second line and write */
+    hd44780_set_cursor(&dev, 0, 1);
+    hd44780_print(&dev, "   RIOT is here!");
+    xtimer_sleep(3);
+    /* clear screen, reset cursor */
+    hd44780_clear(&dev);
+    hd44780_home(&dev);
+    /* write first line */
+    hd44780_print(&dev, "The friendly IoT");
+    /* set cursor to second line and write */
+    hd44780_set_cursor(&dev, 0, 1);
+    hd44780_print(&dev, "Operating System");
+
+    puts("[SUCCESS]");
+
+    return 0;
+}
diff --git a/tests/driver_hd44780/tests/01-run.py b/tests/driver_hd44780/tests/01-run.py
new file mode 100644
index 0000000000000000000000000000000000000000..1e1baaae75cb0b42228a3120140102e37a3a49c0
--- /dev/null
+++ b/tests/driver_hd44780/tests/01-run.py
@@ -0,0 +1,21 @@
+#!/usr/bin/env python3
+
+# Copyright (C) 2016 Kaspar Schleiser <kaspar@schleiser.de>
+#               2017 Sebastian Meiling <s@mlng.net>
+#
+# This file is subject to the terms and conditions of the GNU Lesser
+# General Public License v2.1. See the file LICENSE in the top level
+# directory for more details.
+
+import os
+import sys
+
+sys.path.append(os.path.join(os.environ['RIOTBASE'], 'dist/tools/testrunner'))
+import testrunner
+
+def testfunc(child):
+    child.expect_exact("[START]")
+    child.expect_exact("[SUCCESS]")
+
+if __name__ == "__main__":
+    sys.exit(testrunner.run(testfunc))