Displays

The RFzero library supports a number of displays and protocols. If you want to use a different display or protocol, you will have to integrate this yourself. If you can find others who have done it before for an Arduino or even better for the Arduino Zero, you will have a good start.

The supported displays and display modes.

DisplayModeProtocolWiresExtra hardwareTypeResolution
None0
HD44780 16x2 14 bits parallel12Character 16 characters x 2 lines
HD44780 20x424 bits parallel12Character20 characters x 4 lines
HD44780 16x23I2C4PCF8574 moduleCharacter16 characters x 2 lines
HD44780 20x44I2C4PCF8574 moduleCharacter20 characters x 4 lines
ILI93415SPI (no parallel)8Graphic320 pixels x 240 pixels (4:3)
ILI94886SPI (no parallel)8Graphic480 pixels x 320 pixels (3:2)

Please remember that if you use display mode 3 or 4, and don’t have the necessary pull-up resistors in place your RFzero is likely to freeze. This is not an RFzero thing but a general issue with Arduino. If it does happen please see the troubleshooting guide. You also need to set the I2C address of the PCF8574,  PCF8574A or PCF8574T in the configuration. Furthermore, does the adaptor board control the contrast and backlight levels not the RFzero.

Display mode 1 and 2

Display mode 1 and 2 connections.

SignalRFzeroPinDisplayPin
GNDGNDJP12-1VSS1
3V3/VI3V3/VIJP12-2VCC2
ContrastContrastJP12-3V03
Select registersD14JP12-4RS4
Read/WriteWrite (GND)JP12-5R/W5
EnableD15JP12-6Enable6
Data 4D10JP12-7DB4 or D411
Data 5D11JP12-8DB5 or D512
Data 6D12JP12-9DB6 or D613
Data 7D13JP12-10DB7 or D714
Backlight positiveBacklight positiveJP12-11Anode15
Backlight GNDGNDJP12-12Cathode16

PCB layout of a typical parallel HD44780 LCD.

LCD voltage jumper

Before you connect any LCD to the LCD header please make sure you have set the correct drive voltage for the LCD on the LCD voltage select header – JP13. Alternatively, if you know that you will always be using one of the voltages you could short the relevant jumper position with a small piece of wire that is soldered in place.

The LCD voltage header JP13.

The LCD voltage set to use VI

Please note that if you run the LCD on the VI level the contrast and backlight will change if the VI is changed.

The LCD voltage set to use 3,3 V (3V3).

Display mode 2 and 4

Display mode 3 and 4 connections.

SignalRFzeroPinPCF8574DisplayPin
GNDGNDJP11-1VSSVSS1
3V33V3JP11-2VDDVDD2
SDAD8JP11-3SDA
SCLD9JP11-4SCL
ContrastVO3
Register selectP4RS4
Read/writeP5R/W5
EnableP6Enable6
Data 4P0DB411
Data 5P1DB512
Data 6P2DB613
Data 7P3DB714
Backlight positiveAnode15
Backlight GNDCathode16

I2C addresses for the PCF8574 variants.

A2A1A0PCF8574PCF8574APCF8574T
GNDGNDGND0x200x380x20
GNDGND3V30x210x390x21
GND3V3GND0x220x3A0x22
GND3V33V30x230x3B0x23
3V3GNDGND0x240x3C0x24
3V3GND3V30x250x3D0x25
3V33V3GND0x260x3E0x26
3V33V33V30x270x3F0x27

Example of a PCF8574T module.

Display mode 5 and 6

Display mode 5 and 6 connections.

SignalRFzeroPinDisplayPin
3V33V33V3VCC1
GNDGNDGNDGND2
Chip selectD10JP11-5CS3
ResetD11JP11-6RESET4
Register/data selectionD12JP11-7DC or DC/RS5
MOSID18JP10-5SDI, MOSI or SDI (MOSI)6
SCKD19JP10-6SCK7
Backlight3V33V3LED8
MISO (currently not used)D16JP10-3SDO (MISO)9

Example of an ILI9341 TFT display.