This repository has been archived on 2024-05-23. You can view files and clone it. You cannot open issues or pull requests or push a commit.
Files
PiDisplay/README.md
T
2019-04-17 11:37:53 +08:00

78 lines
2.9 KiB
Markdown

# PiDisplay
Setup and use the Pi OLED HAT by Waveshare
The **1.3" OLED Display HAT for [Raspberry Pi](https://www.raspberrypi.org/)** is a display HAT as the
same size of a [Pi Zero](https://www.raspberrypi.org/products/raspberry-pi-zero/). The information
provided by the manufacturer [Waveshare Electronics](https://www.waveshare.com/) is somewhat awkward,
I decided to document my journey here, along with the Python script I adopted to control the display.
## Hardware
The display attaches to a Pi Zero via the GPIO. It is a 128 x 64 1.3" blue OLED display with a 5-ways
joystick on one side, and 3 buttons on the other:
* Driver: SH1106
* Interface: 4-wire SPI, 3-wire SPI, I2C
* Display color: blue
* Resolution: 128 x 64
* Operating voltage: 3.3V
The display has some jumpers at the back to be soldered to enable/disable the interfaces it uses.
I decided to use the default 4-wire SPI which require no soldering at all.
## Setup
I decided to use Python to control my display. There are other options from the manufacturer but I
didn't explore them.
_**Note: The following steps are deduced from the documents from the manufacturer. I performed them
in the exact order listed below, but I'm not sure if the ordering is necessary**_
### Prepare raspbian
* `sudo apt-get update`
* `sudo apt-get install python-dev`
### Install RPi.GPIO
* Download RPi.GPIO from [https://pypi.python.org/pypi/RPi.GPIO](https://pypi.python.org/pypi/RPi.GPIO) to somewhere.
* Extract the content (`tar xvfz RPi.GPIO-x.y.z.tar.gz`)
* `cd RPi.GPIO-x.y.z`
* `sudo python setup.py install`
### Install spidev
* Download spidev from [https://pypi.python.org/pypi/spidev](https://pypi.python.org/pypi/spidev) to somewhere.
* Extract the content (`tar xvfz spidev-x.y.tar.gz`)
* `sudo apt-get install python-smbus`
* `sudo apt-get install python-serial`
* `cd spidev-x.y`
* `sudo python setup.py install`
### Install Python Imaging
* `sudo apt-get install python-imaging`
### Enable the SPI interface
* `sudo raspi-config`
* Go to '5 Interfacing Options'
* Go to 'P4 SPI'
* Choose 'Yes'
### Enable the I2C interface
I'm not sure if this is necessary, but well what the hack...
* `sudo raspi-config`
* Go to '5 Interfacing Options'
* Go to 'P5 I2C'
* Choose 'Yes'
### Install the luma.oled driver
* `sudo apt-get install python-pip libfreetype6-dev libjpeg-dev`
* `sudo -H pip install --upgrade pip`
* `sudo apt-get purge python-pip`
* `sudo -H pip install --upgrade luma.oled`
## Test
That's it, the display is ready to use.
### Sample python app
* Download the sample apps from [https://www.waveshare.com/wiki/File:1.3inch-OLED-HAT-Code.7z](https://www.waveshare.com/wiki/File:1.3inch-OLED-HAT-Code.7z) to somewhere
* Extract the content somehow, I'm too lazy to find out how to handle 7z on Linux...
* `cd` to the subfolder containing the Python samples
* `sudo python demo.py`
## Next step
The Python code in this repo are adopted by me from `demo.py` provided by the manufacturer.