5419440848fdd2dfcd8bb3f213472c501ab47b7f
Phone / README.md
Arduino Uno and Adafruit Touch Shield V2 Phone UI in C
======================================================

This is part of a broader project of building my own mobile phone, namely the user interface. The code is uploaded to an Arduino Uno (or ATMEGA328P AVR micro-controller), connected to an [Adafruit Resistive Touch Shield V2](https://learn.adafruit.com/adafruit-2-8-tft-touch-shield-v2?view=all). The Touch Shield integrates an ILI9341 TFT controller for the screen and an STMPE610 controller for the touch input, both via SPI. This is a slow interface for rendering, so the graphics are kept very simple. It is also written in c, which is arguably the preferred language for micro-controllers. The code is written more for speed than readability.

This UI features a nice and simple numerical layout for number dialing and a slick and compact keyboard layout for writing text, covering the non-extended ASCII set. These are accessed via a simple menu and exited via the remaining touch input area just beneath the screen. This covers the most complex UI needs of basic phone communication, ready for use with a phone module.

Dial screen:
------------

![Screen Shot.](/phone-dial-shot.png)

Write screen:
-------------

![Screen Shot.](/phone-keyboard-shot.png) 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17