Waveshare Zero Multi Display PCB Build Guide

Here are the build notes for my Waveshare Zero Multi Display PCB.

Also see the Waveshare Zero Multi Display PCB – Expander Board.

Warning! I strongly recommend using old or second hand equipment for your experiments.  I am not responsible for any damage to expensive instruments!

If you are new to electronics and microcontrollers, see the Getting Started pages.

Bill of Materials

  • Waveshare Zero Multi Display PCB (GitHub link below)
  • Waveshare Zero format board – e.g. ESP32S3 or RP2040
  • 1x H11L1 optoisolator
  • 1x 1N4148 or 1N914 signal diode
  • 4x SPI 0.96″ 80×160 (RGB) IPS TFT displays
  • Resistors: 1×10Ω; 1x 33Ω; 1x 220Ω; 1x 470Ω
  • Capactitors: 3x 100nF ceramic; 1x 100uF electrolytic
  • 2x 3.5mm stereo TRS sockets (see photos and PCB for footprint)
  • 1x 2.1mm barrel jack socket (see photos and PCB for footprint)
  • 2x 9-way pin header sockets
  • Optional: 4x 8-way pin header sockets – strongly recommended. PH5.0 “short” headers are best.
  • Optional: 1x 6-way DIP socket – recommended
  • Pin headers/jumpers
  • Optional: 1x DPDT slider switch with 2.54mm pin footprint
  • Optional: 1x SPDT slider switch with 2.54mm pin footprint

Build Steps

Taking a typical “low to high” soldering approach, this is the suggested order of assembly:

  • Diode then resistors.
  • DIP socket (if used) and TRS sockets.
  • Disc capacitors.
  • Slider switches (if used).
  • 9-way pin header sockets for Waveshare Zero.
  • Electrolytic capacitor.
  • Barrel jack sockets.
  • On rear: 8-way pin header sockets (if used) or displays.

Note: all the components apart from the displays (and their sockets if used) are on one side and the displays are on the other. The silkscreen reflects the side of the components.

Here are some build photos.

If slider switches are used for MIDI, then as shown above they can be added a this stage too. If pin headers and jumpers are used, then it might be worth waiting until the other header sockets are added. If the ability to disable MIDI isn’t required, then wire jumpers can be soldered on instead to make a permanent connection.

There are a few options around power:

  • Use a barrel jack or pin jumper headers. These are both 5V only however as there is no power regulation in this version (it is an option in the schematic, but not the actual PCB).
  • An optional on/off switch can be used as long as it has 2.54mm pitch pin connections.
  • Note: the solder bridge jumper can be ignored. It is not relevant on a PCB with no regulator.

It is strongly recommended that 8-way pin header sockets are used for the displays too. I used PH5.0 height headers, which are shorter than the usual ones.

If the displays are to be soldered directly, then it is strongly recommended that they are tested in isolation first, as there are a number of different types and in my experience cheap ones might not always work on arrival.

The orientation of the Waveshare Zero and displays is shown below.

It is possible to use M2 spacers to support the displays. For my PH5.0 sized headers, I found that a 6mm spacer, 6mm screw and two nuts gave me the right height to level out each display when plugged in.

Testing

Even before the build is started, it is worth testing the displays to be used. When I first assembled and tested my first board, I had the following:

One of the displays was inverted compared to the others, and one had arrived with the screen cracked. At this point I was pleased I’d chosen to use pin header sockets for the displays…

Once built I recommend performing the general tests described here: PCBs.

The using the sample applications mentioned below it should be possible to test the following in turn:

  • MIDI IN and OUT.
  • Four display.

PCB Errata

There are the following issues with this PCB:

  •  None at present.

Enhancements:

  • I avoided added holes to mount the displays at the time, but now I’m thinking adding the holes on the non-pin header side of the displays would have been really useful.
  • Having now seen the completed PCBs, I could probably have left space for a regulator, especially one of those DC-DC converter regulator replacements that doesn’t require a heatsink.
  • I should consider adding a 3V3 regulator too rather than driving all the displays through the Waveshare Zero’s onboard 3V3 regulator.

Find it on GitHub here.

Sample Applications

The GPIO layout for the PCB with various Waveshare Zero boards is given below.

FunctionWSZ PinRP2040ESP32-C3ESP32-S3
VCCPowerH1 P33V33V33V3
GNDGroundH1 P2GNDGNDGND
RXMIDI INH2 P2GP1 (U0/RX)GP20 (U0/RX)GP44 (U0/RX)
TXMIDI OUTH2 P1GP0 (U0/TX)GP21 (U0/TX)GP43 (U0/TX)
DCData/CommandH2 P5GP4GP10GP11
RESResetH2 P9GP8GP6GP7
SDAData (MOSI)H2 P8GP7GP7GP8
SCLClock (SCLK)H2 P7GP6GP8GP9
CS1CS Display 1H2 P6GP5GP9GP10
CS2CS Display 2H1 P9GP14GP5GP6
CS3CS Display 3H1 P8GP15GP4GP5
CS4CS Display 4H1 P7GP26GP3GP4
CS5CS Ext Display 5H1 P6GP27GP2GP3
CS6CS Ext Display 6H1 P5GP28GP1GP2
CS7CS Ext Display 7H1 P4GP29GP0GP1
CS8CS Ext Display 8H2 P4GP3GP18GP12

The application described here can be used to test the displays: Arduino with Multiple Displays – Part 2.

A more complete application for up to four (expandable to eight) displays can be found here: Arduino with Multiple Displays – Part 3.

Using a Waveshare Zero ESP32-S3, the following will test the MIDI IN and OUT:

#include <MIDI.h>

MIDI_CREATE_DEFAULT_INSTANCE();

void setup() {
MIDI.begin(MIDI_CHANNEL_OMNI);
pinMode (LED_BUILTIN, OUTPUT);
}

void loop() {
if (MIDI.read()) {
midi::MidiType type = MIDI.getType();

if (MIDI.isChannelMessage(type)) {
midi::Channel ch = MIDI.getChannel();
midi::DataByte d1 = MIDI.getData1();
midi::DataByte d2 = MIDI.getData2();
switch(type) {
case midi::NoteOff:
digitalWrite (LED_BUILTIN, LOW);
break;

case midi::NoteOn:
digitalWrite (LED_BUILTIN, HIGH);
break;

default:
break;
}
}
}
}

Closing Thoughts

This seems to work pretty well. I’ve not really put it through its paces yet, but driving the displays is working and so is MIDI.

I have a specific application in mind, but first I need to see if it is possible to link these boards together to get more displays running. That is explored here Waveshare Zero Multi Display PCB – Expander Board.

Kevin

Leave a comment