Embedded Computing
  • About
  • Blog
  • Hardware
    • Which Platform?
    • Controller Platforms >
      • Adafruit Platform
      • Arduino Plaform
      • BBC micro:bit
      • Espressif Platform
      • LaunchPad Plaform
      • Microsoft Azure IoT DevKit
      • Seeeduino Platform
      • Teensy Plaform
    • Computer Platforms >
      • BeagleBone Platform
      • Mediatek Platform
      • UDOO Platform
    • Legacy Platforms >
      • chipKIT Plaform >
        • chipKIT Uno32 and uC32
        • chipKIT WF32 and WiFire
        • Compatibility
        • chipKIT PGM Programmer-Debugger
        • 4D Systems PICadillo-35T
        • Shields for chipKIT Uno32
        • 4D Systems Platform >
          • 4D Systems PICadillo-35T
          • 4D Systems gen4-IoD-28T
      • Cosa, an Alternative Framework for AVR Boards
      • DFRobot Platform >
        • DFRobot BLuno
        • DFRobot Wido
      • Digistump Platform >
        • Digispark
        • Oak
      • Intel Platform >
        • Intel Curie with Neural Network
        • Intel Edison
      • LightBlue Bean
      • Little Robot Friends
      • Maple Plaform >
        • LeafLabs Maple
      • Microduino Plaform >
        • Microduino
      • Particle Platform >
        • Particle Core
        • Particle Photon
        • Particle Tools
      • Protostack Platform >
        • Protostack Boards
      • RedBear Platform >
        • RedBearLab CC3200
        • RedBearLab WiFi Mini
        • RedBear Duo
      • Wiring Plaform >
        • Wiring S
        • Wiring Play Shield
    • Boards and Plugs
    • I²C Logic Level Converter
    • Peripherals >
      • BoosterPacks for LaunchPads
      • Shields
      • Grove System
      • Ten Years with the Grove System
      • Sensors
      • Actuators
    • Displays >
      • Pervasive Displays e-Paper Screens
      • FRAM-based E-Paper Screen Controller
      • The 2.8" HY28A LCD Screen
      • High-Definition 480x320 3.5" Screen With Touch and Fonts
      • Kentec 3.5" LCD SPI with Touch BoosterPack
      • 4D Systems Intelligent Screens
      • East Rising 5" LCD with RA8875, Touch, Fonts, Flash and SD-card
      • East Rising 5" LCD with SSD1963, Touch, Flash and SD-card
  • Software
    • The IDE Question >
      • The Battle of IDEs
      • More IDE Options
      • Looking for a Better IDE
      • Assessing the Next Generation of IDEs
    • Exploring RTOS with Galaxia >
      • Event Library
      • Semaphore Library
      • Mailbox Library
      • Timer Library
      • Clock Library
      • SWI Library
      • Task Library
    • Ultra-Low Power with EnergyTrace >
      • Ultra-Low Power with MSP430
      • Ultra-Low Power with Energia MT and Galaxia
    • Using Integers Instead of Reals
  • IoT
    • IoT Platforms: Which Hardware?
    • IoT Services: Which Solution? >
      • Recommended IoT Solutions
      • Platform-Specific IoT Solutions
      • Other IoT Solutions
      • Not tested IoT Solutions
      • Notification Solutions
    • Get Date and Time from Internet with NTP
    • Fast and Easy WiFi Connection with QR-Code
  • Tools
    • How to Start?
    • Reference >
      • Asking for Help
      • LaunchPad and BoosterPack Boards Pins Maps
      • Ruler
      • Standards for Connectors
    • Training >
      • Texas Instruments Workshops
      • Embedded Systems: Shape The World — MOOC edX UTAustinX UT.6.02x
      • Embedded Systems - Shape The World: Microcontroller Input/Output — MOOC edX UTAustinX UT.6.10x
      • Embedded Systems - Shape The World: Multi-Threaded Interfacing — MOOC edX UTAustinX UT.6.20x
      • Real-Time Bluetooth Networks: Shape the World — MOOC edX UTAustinX UT.RTBN.12.01x
      • Systems Thinking with Texas Instruments Robotics System Learning Kit
    • Books >
      • Getting Started with the MSP430 LaunchPad
      • Getting Started with Arduino
      • Arduino Cookbook
    • IDEs >
      • Texas Instruments Code Composer Studio 6
      • Texas Instruments Code Composer Studio Cloud
      • Energia
      • Tools for Documentation
    • Equipment >
      • Saleae Logic Analyser
      • Rigol DS1102E Oscilloscope
      • XDS110 Debug Probe with EnergyTrace​
      • Segger J-Link Programmer-Debugger
  • Projects
    • Libraries >
      • Master I²C Software Library
      • Date and Time Library
      • highView Library Suite
      • LCD_screen Library Suite
      • Others Libraries
    • smartDevices >
      • I²C smartColours Smart Sensor
      • I²C smartRFID Smart Sensor
      • I²C smartLED Display
      • I²C smartControls Smart Device
      • I²C smartWiFi Smart Device
      • I²C smartBLE Smart Device
      • I²C smartNode Smart Device
    • IoT Projects >
      • Remote e-Paper Messages Panel
      • Industrial IoT Project
      • Remote Contactless Temperature Monitor
      • Using Node-RED for IIoT
      • Low Power Home Network Weather Monitoring
      • Updated Low Power Home Network Weather Monitoring
      • Weather and Security Station with Blynk
      • SensorTag to Blynk Using Node-RED
      • Pervasive Reporting
    • AI Projects >
      • Colour Recognition with Neural Network
    • Other Projects >
      • Portable Particulate​ Matter Monitor
      • FRAM-based E-Paper Screen Controller
      • General Purpose 3.5" Screen
      • Colour Recognition with Neural Network
      • A Low Power Weather Station
      • Digital Volt-Amp-Watt Meter
      • Mobile Measurement with LCD Display
      • Screen with SRAM for GUI
      • Volt-Amp-Watt-Meter for Grove
      • Multi-Touch Project with CapTIvate

General Purpose 3.5" Screen

Current offer on general purpose screens for the LaunchPad eco-system is rather limited. Most of the screens available are highly specialised.
  • The Kentec 3.5" SPI screen doesn't include a touch controller, and is thus incompatible with the CC3200 LaunchPad.
  • The Sharp Memory Display only offers monochrome 128x128 pixels and contrast is rather hard to read.
  • The Pervasive Displays e-paper screens are perfect for ultra-low power applications, offer monochrome and Black-White-Red variants, but require almost all the pins available.
So I decided to build my own general purpose screen.
Picture

Requirements and Specifications

I set the following requirements...
  • Good quality 3.5" screen
  • Touch
  • As few used pins and as many shared buses​ as possible
  • Total target cost < USD30
  • Compatible with existing libraries.
...which translate into the following specifications:
  • 320 x 480 pixels x 16-bit colours
  • Capacitive touch with haptic feed-back
  • Connection with shared SPI and I²C buses
  • Off-the-shelf components
  • Support of the LCD_screen Library Suite

Hardware

The screen module comes from East Rising and includes the capacitive touch with its I²C controller, a micro-SD slot and provisions for two Flash memories.


Picture

Screen Controller

The controller of the screen is the ILI9488 from Ilitek, connected through SPI. 

​The ILI9488 was rather strange to deal with: some parameters for the interface are defined with hardware shunts, while other parameters are set through software commands.


​As always, the Saleae logic analyser was of great help in debugging the communication.
​
Picture

Touch Controller

The capacitive touch controller by FocalTech is embedded into the flat cable of the screen. It is connected through I²C.

I faced no special issues while developing the library. However, the data-sheet mentions features I was unable to implement, like pressure measurement and gesture recognition.
Picture
A second SPI port connects the micro-SD card, and the two EEPROMs.

The board provisions pads for the recommended Flash Winbond W25Q128FV with 128 Mb or 16 MB in SOIC package. The Flash U2 chip exposes write-protect and hold signals, contrary to the Font U1 chip.

I faced an unexpected issue while integrating the screen, the micro-SD card and the W25Q128FV Flash on the same SPI bus.

While each component worked as expected separately, that was no longer the case when combining them. The MISO output of the ILI9488 wasn't floating (hi-z) and was thus interfering with the MISO signal from the micro-SD card and the W25Q128FV Flash.
Picture
In order to solve the conflict on the MISO signals, I used an analog switch to select between the two lines. This seems to be a common issue with SPI, as mentioned at Better SPI Bus Design in 3 Steps.

Haptic Controller

Please refer to the I²C Haptic Controller page.


Right: The DRV2605L tested with an linear resonant actuator (LRA).
​
Picture

Software

I faced no major issues adding support for this screen to the LCD_screen Library Suite, despite the rather confusing data-sheets for the screen controller and the touch controller.

Adding haptic feed-back to the LCD_GUI library was very easy. The DRV2605L includes a library of 123 different effects, with 5 variants for ERM and one variant for LRA.

​I tested three haptic motors: one ERM and two LRA, of which one branded as a genuine replacement 
Taptic Engine for iPhone 6s, as detailed at the I²C Haptic Controller page.

​
Right: The DRV2605L tested with an eccentric rotating motor (ERM).
Picture
The tests use the standard panel with one slider, an on-off button, a bar-graph, a label and an exit button.

The haptic feed-back works as follow:
  • A short tick acknowledges the touch on all elements,
  • A strong click confirms the change of the on-off button after 100 ms, 
  • A buzz varies in intensity according to the position of the slider. 

​
Right: A hard copy of the screen used for tests and validation.
Picture
Total consumption remains under 100 mA.

​This validates the use of a 3.3 V regulator on the screen and the connection to the 5 V power rail provided on pin 21, as some LaunchPad boards can't provide such power on 3.3 V.
Picture

​Finalised and Working Screen

For an unknown reason, the DRV2605L stopped working when soldered on the final board. Removing a soldered component is always a tricky operation. I replaced it for a new one, which worked as expected.

The targeted board was the MSP432 LaunchPad. Unfortunately, the SPI is facing many bugs, even after implementing the suggested solution for the mismatched modes. Luckily, the screen works fine on the Tiva C LaunchPad. 

Picture

Links

  • Buy Display - East Rising website
  • FocalTech website
  • ​Ilitek website
  • Texas Instruments DRV2605L haptic controller​ product page
Picture
Picture
Picture
Picture
Posted: March 20, 2018
​Updated: 
March 23, 2018; April 20, 2018; June 04, 2018; August 4, 2018
Powered by Create your own unique website with customizable templates.