siliconchip.com.au Australia’s electronics magazine May 2019 91
large images, graphics or icons to be
stored on an SD card instead of taking
up valuable flash memory in the mi-
crocontroller.
Once again, we tested it with the
“listfiles” example from Files -> Ex-
amples -> SD.
Although the pin map on the dia-
gram does not have the pins numbered,
we were able to ascertain that the SD
card’s CS-bar pin is connected to pin
53 on the Mega.
Thus we needed to change the line
if (!SD.begin(4)) {
to read
if (!SD.begin(53)) {
before compiling and uploading the
sketch. It then worked, showing a list-
ing of all the files on an inserted SD
card, so the SD card slot on this board
works as expected.
The unpopulated footprint noted
earlier is designed to be fitted with a
flash memory IC.
It too uses the SPI bus, and accord-
ing to the specification sheet, uses
the Mega’s pin 45 as its CS (chip se-
lect) line.
There is no further information on
how this should be used, although we
would not be surprised if the footprint
matches many of the commonly avail-
able flash memory ICs.
In summary, this display is easy to
get, looks good and works well with
the provided libraries.
The lack of a touch panel limits its
utility somewhat, as does the awk-
ward placement of the SD card slot.
Being slightly smaller than the other
two screens but with a similar pixel
count, it does offer a slightly higher
pixel density.
Contestant number three: 3.5
inch with Arduino pinout
The final display we tried is a 3.5in
touchscreen with a standard Arduino
shield pinout, and it gives a very tidy
result when plugged into an Arduino
Uno (see above).
The display’s PCB sits flush with the
USB socket on the Arduino board, and
the microSD card slot fits neatly next
to that USB socket.
On the back of the PCB, along with
the microSD card slot, there are two
SSOP ICs (presumably for level con-
version) and an unpopulated SOIC
footprint.
The SD card and SOIC-8 footprint
appear to be connected directly to the
board’s I/O pins and not via the level
converter ICs.
The PCB itself is only marginally
wider and longer than the display. So
when combined with an Arduino Uno,
it’s quite compact.
But because this display uses an
8-bit parallel interface, it uses up many
of the available pins.
With the Uno, only a single analog
pin and the serial communication pins
are left free. That rather limits the util-
ity of the combination!
So you would need to use it with a
Mega in practical applications, which
rather negates its compactness ad-
vantage, and also would require sig-
nificant software changes that would
slow it down.
The board is marked with ‘mcu-
friend’ branding, and this hint led us
to find some helpful tools to work with
the module.
We tried code designed to interface
to the ILI9488 controller in parallel
mode (which it supposedly used), but
that didn’t work.
Since the seller advised that the dis-
play could have one of a few different
controller ICs, we decided to figure out
which one it actually had.
There is an excellent resource at
siliconchip.com.au/link/aans – this
is a tool designed to help identify and
operate these shield-type displays.
At the time of writing, the most re-
cent update to this tool/library was
only four days prior, so it appears that
it is continually being updated. It also
requires the “Adafruit_GFX” library,
and it can identify and control a large
number of different displays.
Both the “Adafruit_GFX” and
“MCUFRIEND_kbv” libraries can be
found and installed from the Arduino
IDE’s library manager. Screen2 shows
how you can find and install these li-
brary dependencies using the Arduino
Library Manager.
We then opened and ran the “graph-
Contestant number three: while this display module does have a touch
panel, the lack of available spare pins when paired with an Uno means
that it may not be very useful, as the Arduino can then not easily be
connected to any other device.