diff --git a/src/lcd/lcd.h b/src/lcd/lcd.h
new file mode 100644
index 0000000000000000000000000000000000000000..c5ea7cd32e95ee7e075426ea4bb56c8ab1917085
--- /dev/null
+++ b/src/lcd/lcd.h
@@ -0,0 +1,58 @@
+/*  Author: Steve Gunn
+ * Licence: This work is licensed under the Creative Commons Attribution License.
+ *           View this license at http://creativecommons.org/about/licenses/
+ */
+
+#ifndef _LCD_H
+#define _LCD_H
+#include <avr/io.h>
+#include <stdint.h>
+#include <avr/pgmspace.h>
+#include "ili934x.h"
+
+
+#define LCDWIDTH	240
+#define LCDHEIGHT	320
+
+/* Colour definitions RGB565 */
+#define WHITE       0xFFFF
+#define BLACK       0x0000
+#define BLUE        0x001F      
+#define GREEN       0x07E0      
+#define CYAN        0x07FF      
+#define RED         0xF800      
+#define MAGENTA     0xF81F      
+#define YELLOW      0xFFE0      
+
+typedef enum {North, West, South, East} orientation;
+
+typedef struct {
+	uint16_t width, height;
+	orientation orient;
+	uint16_t x, y;
+	uint16_t foreground, background;
+} lcd;
+
+extern lcd display;
+
+typedef struct {
+	uint16_t left, right, top, bottom;
+} rectangle;	
+
+void init_lcd();
+void lcd_brightness(uint8_t i);
+void set_orientation(orientation o);
+void set_frame_rate_hz(uint8_t f);
+void clear_screen();
+void fill_rectangle(rectangle r, uint16_t col);
+void fill_rectangle_indexed(rectangle r, uint16_t* col);
+void fill_rectangle_indexed_MEM(rectangle r, PGM_P imgdata);
+void compositeTest(rectangle r, uint16_t* copyReg);
+void display_char(char c);
+void display_string(char *str);
+void display_string_xy(char *str, uint16_t x, uint16_t y);
+
+void rectangleInRegion(rectangle* r);
+void setupDraw(rectangle r);
+
+#endif //_LCD_H
\ No newline at end of file