Texas Instruments TM4CGH6PM SoC with ARM Cortex-M4
Adafruit USB to TTL Serial Cable - Debug / Console Cable for Raspberry Pi (Product ID 954)
Riverdi BT815 Capacitive Touch LCD Display https://www.robotshop.com/ca/en/riverdi-bt815-uxtouch-capacitive-intelligent-display-5-in.html
Mine is 3.5in
Riverdi FFC breakout board https://riverdi.com/product/break-out-board-20/
20 pin flat flexible cable https://riverdi.com/product/ffc0520150/
Matrix orbital 3.5" Touch screen LCD https://www.matrixorbital.com/News/BT815_BT816_eve_series_release
This project was mostly undertaken so that I could design how an app might be written for tm4c_os, I also wanted to use SPI on an external device, and shop for an external device and make sure it was compatible for my board. This encouraged me to improve the makefile for tm4c_os by developing a module based makefile where the main makefile searches for modules which can add their own files and libraries. This idea was inspired by a research document which describes a flaw in make projects when make calls make that causes it to build incorrectly in some circumstances. The modules based makefile was given as a solution in the paper.
Originally I had an LCD screen that I had bought from a company called Riverdi, but after discovering their poor documentation and that their github example code didn't compile, I had to buy a different board by a company called Matrix Orbital who had better resources such as a forum, multiple github repositories, and better quality data sheets. They also had a usb to spi driver for desktop that could be used to prove the board turns on and works.
I used their code as a starting point and ported it so that it could work on tm4c_os. I faced many issues before I got the matrix orbital board to turn on. The first was that the matrix orbital board does not include an external clock, so giving commands to switch to it was causing it to not turn on.
I also had SPI issues. I learned that you must send data in order to receive since the master drives the clock. When I tried to debug the SPI using my oscilloscope, I ended up causing electrical interference (which I didn't know at the time) because my lines were not the same length and/or not good enough quality to transmit the SPI with out noise.
I finally ended up being able to turn the LCD on and draw some images, but not without bugs.
I decided that I would not iron out the remaining bugs and not take the project beyond slightly modifying Matrix Orbitals github code because I felt that further development would just turn me into an expert on LCD screens which was not my goal for this project.
Once I had this working I was able to turn on the riverdi LCD. The Riverdi LCD was slightly different because it does have an external clock and to turn the screen on you must provide a backlight voltage of 5V as well as the 3v3 Vcc to turn on the board.
Writing makefiles with modules
SPI software/hardware
LCD screens