f92860ef55d0d9dd71c31efc1e51d6fe5110a27b
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 <a href="https://learn.adafruit.com/adafruit-2-8-tft-touch-shield-v2?view=all">Adafruit Resistive Touch Shield V2</a>. 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.

<h3>Dial screen:</h3>
<img class="shadow" src="/phone-dial-shot.png" alt="Screen Shot." />
<h3>Write screen:</h3>
<img class="shadow" src="/phone-keyboard-shot.png" alt="Screen Shot." /> 
1
2
3
4
5
6
7
8
9
10
11
12