This is only a preview of the November 2025 issue of Silicon Chip. You can view 37 of the 104 pages in the full issue, including the advertisments. For full access, purchase the issue for $10.00 or subscribe for access to the latest issues. Items relevant to "RP2350B Computer":
Items relevant to "Power Rail Probe":
Items relevant to "Modules: Large OLED Panels":
Items relevant to "Digital Preamp & Crossover, Pt2":
Purchase a printed copy of this issue for $14.00. |
Using Electronic Modules with Tim Blythman
Large OLED Panels
The displays that we describe in
this article are similar to other OLED
screens we have reviewed and used
previously, although they are larger.
Since bigger is usually better, we
thought we ought to try them out.
O
ften we have used this style of
OLED panel in projects because
they are compact, use little power and
allow both text and graphics to be
displayed. They also have very high
contrast. The 0.49in OLED module
that graced the Audio DDS Oscillator exemplifies this (September 2020;
siliconchip.au/Article/14563).
The Oscillator generates an audio
signal and shows its frequency on
the OLED screen, while running from
a pair of AAA cells, all in a unit less
than 75mm long. Since then, we have
produced numerous projects using
OLED displays, including several
Tweezers-style test instruments.
Jim Rowe previously looked at different OLED variants in the October
2023 (siliconchip.au/Article/15980)
and November 2024 (siliconchip.au/
Article/17027) issues.
These modules often integrate a Solomon Systech SSD1306 or Sino Wealth
SH1106 controller IC. They take control inputs over an I2C bus and drive
the display matrix accordingly.
Some readers would like to use
larger versions of these display modules in our projects to provide a larger
and more legible display. However, we
know that the larger displays use a different controller IC, so they are unfortunately not a direct replacement.
So, this article will investigate these
displays and their differences from
similar, smaller displays. We’ll also
look at how easy it is to substitute them
for the smaller displays, and what software changes are needed.
The SSD1309 IC
The larger units we tested all use
the Solomon Systech SSD1309 controller IC. We have seen comments
to the effect that the registers in the
SSD1309 match those of the SSD1306,
so it sounded quite possible that using
these modules would be straightforward.
Some of these large displays using
the SSD1309 have a seven-pin header
and are configured to use an SPI interface. With these modules being bigger, there is more space for the longer header.
However, we’ve stuck to those that
include an I2C interface, similar to the
smaller units, and those we purchased
specify a display size between 1.54in
and 2.42in, equivalent to 39mm and
61mm. The previous, smaller displays
vary from 0.91in to 1.3in (23-33mm).
Table 1 summarises the modules
we purchased and tested. Like TVs
and mobile phones, the display size is
measured diagonally, from lower left
to top right. We’ve included sources
Module name Display size
OLED_M154_4P (Photos 1 & 2) 1.54in (36mm)
(some local), but in most cases, searching for the controller name “SSD1309”
is the easiest way to find similar products on websites like eBay and AliExpress.
We have previously used a version
of the 2.42in display in the Hot Water
System Solar Diverter project from the
June & July 2025 issues (siliconchip.
au/Series/440).
We found a comparison of some
Solomon Systech OLED driver ICs
(siliconchip.au/link/ac7s) and noted
a handful of differences between the
SSD1306 and SSD1309. They both
offer control of a monochrome 128×64
pixel panel with 256 steps of contrast
control. For a monochrome OLED
panel, contrast is effectively the same
as brightness.
The SSD1309 can sink more common (ie, row) drive current from the
display (40mA maximum vs 15mA
for the SSD1306). The SSD1309 can
also operate with a higher voltage, but
does not incorporate an internal charge
pump like the SSD1306. OLEDs typically require a higher voltage to work
than conventional LEDs, hence the
need for such circuitry.
Circuit details
Let’s look at the circuit of one of
the modules, the Waveshare 2.42inch
Module size
Source
Current draw all pixels
off/on (full brightness)
43 × 38mm
eBay 156327080574
2mA/285mA
Core Electronics CE09964
2mA/237mA
2.42OLED-IIC (Photos 3 & 4) 2.42in (61.5mm) 70 × 48mm
Waveshare 2.42inch OLED
2.42in (61.5mm) 62 × 40mm
module (Photos 5 & 6)
Core Electronics WS-25742 8mA/290mA
Table 1 – Modules tested (names are as printed on the modules)
62
Silicon Chip
Australia's electronics magazine
siliconchip.com.au
OLED Display Module, shown in Fig.1.
The other modules differ in their exact
circuitry, but this example is representative of the features that are present in all. This is the module that was
used in the Hot Water System Solar
Diverter project.
The driver IC is present in a
so-called COG (chip on glass) package
that is bonded to a thin sheet of glass
along with the actual OLED matrix.
The connections between the driver
IC and the OLED matrix are made on
the glass using traces of ITO (indium
tin oxide), a conductive material that
is also transparent.
The connections between the
module PCB and driver IC are via a
26-way flat flexible cable, which is
also attached to the glass. The 26-way
connector is labelled OLED1 in the circuit diagram.
U1 is an RT9193 3.3V low dropout
(LDO) regulator that provides the 3.3V
rail needed by the controller. This part
can work with up to 5.5V on its input,
so this circuitry allows the module to
work with 5V microcontrollers.
U2 is an AP3012 1.5MHz switching
boost regulator with an external diode
for asynchronous rectification. Its output divider sets its output to 12.5V,
based on a 1.25V reference voltage at
the FB pin.
This circuitry replaces the integrated charge pump circuit used by
modules based on the SSD1306. The
data sheet for the SSD1306 indicates
that the charge pump circuit can only
generate up to 7.5V, so an external circuit is needed to generate the higher
voltage needed for the larger panel.
U3 is a TXB0108 automatic bi-
directional level converter IC that
interfaces between different logic levels. It too can work at up to 5.5V on
its ‘B’ side, so it is also suitable for 5V
microcontrollers.
The other modules do not include
a level-converter IC, but are permanently configured to use I2C communications. Since I2C is an open-drain
bus, a 5V microcontroller will usually have no problem communicating
with a 3.3V driver IC, as long as a 3.3V
supply is present. Thus, the level converter is primarily needed to allow the
module to use the SPI bus.
The two 4.7kW resistors provide the
pullups needed for an I2C bus. They
are also connected in SPI mode, but
will simply be overridden by the external microcontroller actively driving
siliconchip.com.au
Fig.1: the regulator and boost circuitry (U1 and U2) in this circuit diagram for the
Waveshare 2.42in module is common to the units we tested, although the others
lack the level conversion (U3) chip, so are set up for I2C comms by default.
those pins. The 910kW resistor shown
connected to the Iref pin sets the display drive current.
The driver IC has pins BS0, BS1 and
BS2 to set its communication mode.
BS0 is pulled low by a connection
internal to the COG assembly, while
BS2 is pulled low on the module PCB.
By default, BS1 is also pulled low and
thus the module is configured for operation with a 4-wire SPI bus. J1 and J2
are 0W resistor links that can be moved
to change how they are set.
Both the SSD1306 and SSD1309
controllers can be set for I2C, 3-wire
SPI and 4-wire SPI, as well as two
parallel bus types, although not all
module types will make the necessary pins available. Most of the monochrome OLED modules we have seen
are fixed to I2C mode, with the exception of this Waveshare unit.
JP1 is changed to set BS1 high and
enable I2C mode, while J2 bridges
two pins together in I2C mode; these
need to be separate in SPI mode but
connected in I2C mode. A copy of the
SSD1309 data sheet can be downloaded from www.hpinfotech.ro/
SSD1309.pdf
Variants
Here is a brief overview of the different modules. For consistency, we
Photos 1 & 2: the fivepin header seen here
seems to be common
to 1.54in variants of
this module. It’s not
much bigger than the
1.3in modules, but it
can draw more current
and is bright. Source:
www.ebay.com.au/
itm/156327080574
Australia's electronics magazine
November 2025 63
Photos 3 & 4: the generic 2.42in version of this module
has a four-pin header that matches the smaller modules,
while the blackened bezel improves the appearance
and robustness of the unit. The locations marked D1
and D2 are fitted with 0W resistors, as required for
correct I2C operation. Source: https://core-electronics.
com.au/large-oled-i2c-display-ssd1309.html
tested those mainly with a white light
output, although we did try some other
colours.
Some have options for blue, green
and yellow. The first is the 1.54in variant, as seen in Photos 1 & 2. It is the
most similar to the 0.96in and 1.3in
modules, and comes closest to being
a ‘drop-in’ replacement.
It has a five-pin header instead of a
four-pin type, but the four GND, Vcc,
SCL and SDA pins are centred at the
top of the module in the same fashion as the smaller modules. The fifth
pin is marked as RES (reset), and was
not fitted with a pin in the samples
we received.
There is a jumper resistor on the
rear of the PCB that can be used to set
the I2C slave address. The default is
0x78, with the other option marked
as 0x7A. These are 8-bit addresses
that correspond to 7-bit addresses of
0x3C or 0x3D, respectively. All units
we tried were set to the 0x78 address
that we typically use.
The units that we purchased were
supplied with plug-socket jumper
wires, which would be well-suited to
experimenting with an Arduino board
fitted with header sockets, such as
an Arduino Uno or similar full-sized
board.
2.42in module
The generic 2.42in module (Photos
3 & 4) also has the familiar four-pin
header at the top of the display, as
well as on the left hand-side, which
gives some flexibility for wiring. Using
the top headers, it too can be simply
plugged into the place of one of the
smaller modules and has a jumper
resistor that can be used to set the I2C
slave address.
There is a broad border with plated
mounting holes. This unit also has a
metal bezel covering the OLED glass
assembly. As well as giving the unit a
more finished appearance, it has the
benefit of protecting the fragile glass.
With any of these OLED modules,
including the smaller types previously reviewed, when we have seen
the glass cracked or damaged, it has
usually resulted in the display failing,
with pixels not illuminating, so this is
a handy addition.
We also tested a few variants of this
display, since we found some available in different colours (see Photo
7). These behaved much the same as
Photo 7: the green version of the
generic 2.42in module is a striking
colour that brings back memories
of monochrome computer terminals
from many years ago. It is a
comfortable fit for the existing GPS
Speedometer PCB.
the display listed in Table 1, although
they did need to have their D1 and D2
diodes replaced by 0W resistors, as
seen in Photo 4. It appears that these
diodes are provided to protect the display controller from incorrect voltages
on the SDA and SCL lines.
This should not be a concern if the
correct (as required for I2C) open-drain
outputs are used, even if the connected
microcontroller operates at a different
logic level.
Without replacing at least diode D2
(on SDA), the display may not work,
since the diode blocks the display
controller’s acknowledgement of the
microcontroller’s commands.
Waveshare module
The Waveshare module (Photos 5 &
6) has the same display dimensions as
the generic part, but is more compact.
The underlying PCB is barely larger
than the glass assembly, and the unit
is fitted with M2.5 standoffs soldered
to the rear of the PCB instead of having plated holes.
As noted earlier, this module can
be set to work with either I2C or SPI.
As well as a 0.1in (2.54mm) pitch
header, there is a JST header on the
board, and the module is supplied
with a seven-way JST-to-socket
jumper wire (‘DuPont connector’)
breakout cable.
The 0.1in header is mounted parallel to the PCB, unlike the other
modules. Thus, this module is not
really a drop-in replacement for the
smaller OLED modules. There is no
jumper resistor to set the I2C slave
address, but it can be set with one of
the other pins.
The SSD1309 data sheet indicates
that the DC pin is used to set the
optional bit of the slave address, so it
is simply necessary to tie this to either
Vcc or ground. For our tests, we configured the module to use I2C mode
and connected DC to ground, resulting
in this module responding to address
0x78 as expected.
Testing
We started testing the generic 2.42in
module, since we are accustomed to
using these modules with an I2C bus.
To test the claim that the registers
in the SSD1309 match those of the
Photos 5 & 6: the Waveshare 2.42in module has an SPI interface
by default, but can be configured for I2C by moving two resistors.
It is compact, but does not have a header that matches those
commonly found on the smaller displays. Source: https://coreelectronics.com.au/242inch-oled-display-module-128x64px.html
64
Silicon Chip
Australia's electronics magazine
siliconchip.com.au
SSD1306, we plugged one of the larger
modules into the four-way header on
one of our Coin Cell Emulator prototypes.
Fortunately, all these modules use
the same GND, Vcc, SCL, SDA pin
order, although we have seen a handful that swap GND and Vcc!
In a pleasant surprise, the display
powered up and showed the expected
display for the Coin Cell Emulator.
This also means that the default I2C
address is the same as for the smaller
modules.
A thorough inspection of the respective data sheets revealed a few registers that do behave differently, but it
appears that the registers that we have
used for much of our software are in
fact identical, with the exception of
the charge pump register, which is not
present on the SSD1309.
The data sheet notes that registers
that are not present should not be
written to, so the software does not
strictly follow the constraints of the
data sheet. However, the same code
seems to work fine.
It would not be difficult to make
the necessary changes to fully comply
with the data sheet. In all of our tests,
we did not note any problems using
software written for the SSD1306 with
the SSD1309 controller.
We also had an enquiry about fitting
a larger display to the GPS FineSaver
project from June 2019 (siliconchip.
au/Article/11673).
We had produced a simplified version of this in the July 2025 Circuit
Notebook column as the GPS Speedometer (siliconchip.au/Article/18523).
This version used a larger font to
slightly increase the size of the displayed figures.
So we also tried plugging these
modules into the simplified PCB
for the GPS Speedometer and found
that both the 1.54in and 2.42in versions worked without changes to the
software. Although we haven’t performed any long-term testing with
this arrangement, we think this might
be worth trying if you need a larger
display for your GPS Speedometer.
Photo 7 shows it with a 2.42in display fitted.
Comments
Versatile
One thing that we noticed with
the generic 2.42in module was that
the switch-mode circuitry gave off
an audible squeal, which became
louder as more pixels were lit up
and the load increased. It was clearly
audible when all pixels were at full
brightness, but was not as noticeable
during more typical displays such
as text, where a lesser fraction of the
pixels were lit.
This display also showed some artefacts, which appeared to be related
to matrix scanning. For example, if a
row of pixels was lit up, they appeared
dimmer than adjacent pixels in rows
that were not fully lit.
In other words, the drive current
seemed to be inconsistent; perhaps
another shortcoming of the switchmode circuitry. We didn’t notice those
sorts of effects with the other two displays.
The current draw values shown
in Table 1 tend to back this up and,
not surprisingly, the 1.54in module
looks more intense, since it draws
similar current but has a smaller display area. The lower current draw of
the generic 2.42in module suggests
its output is sagging under load, and
Battery
Checker
This tool lets you check the condition of most
common batteries, such as Li-ion, LiPo, SLA, 9V batteries, AA, AAA, C
& D cells; the list goes on. It’s simple to use – just connect the battery to the terminals
and its details will be displayed on the OLED readout.
Versatile Battery Checker Complete Kit (SC7465, $65+post)
Includes all parts and the case required to build the Versatile Battery Checker, except the optional
programming header, batteries and glue
See the article in the May 2025 issue for more details: siliconchip.au/Article/18121
siliconchip.com.au
Australia's electronics magazine
November 2025 65
it does look distinctly dimmer when
all pixels are lit.
Photo 7 shows a green variant fitted to the GPS Speedometer PCB.
The pixel dimming effect is most
pronounced in views like this, where
there are distinct horizontal elements.
It is barely noticeable when the usual
numeric display is showing.
You might recall that some of our
other projects using smaller OLED
modules have a current draw of
around 5-10mA, which is low enough
to run from a coin cell. While the
values given in Table 1 are with all
pixels lit, we don’t think these large
displays will be suitable for use with
coin cells.
The displays are at a size where the
pixels are quite noticeable, around
0.3mm to 0.4mm across. Indeed, even
the black borders between the pixels
are apparent from a normal reading
distance.
It’s perhaps reminiscent of a vacuum
fluorescent display (VFD), so might
be handy if you are looking to create
a retro appearance.
Code examples
We took the opportunity to write
some code to test the modules. The
latest versions of the Picomite BASIC
software natively support I2C OLED
panels, so it was easy to use a Pico
for our tests.
The Pico can also be programmed
using the Arduino IDE. All of our
examples (both Picomite BASIC and
Arduino) use the same wiring diagram
shown in Fig.2.
We used the PicoMiteRP2040V6.00.03.UF2 variant of the firmware,
although it should work with any version that supports an external display
panel (ie, all but the HDMI or VGA
capable versions). These two OPTIONs
set up the display panel:
OPTION SYSTEM I2C GP0,GP1
OPTION LCDPANEL
SSD1306I2C,LANDSCAPE
The OLED_DEMO.BAS file runs
through a few demonstrations, including text in a variety of fonts and some
shapes. It also shows a spinning cube,
making use of the 3D engine that is
included with Picomite BASIC.
You can also try loading the OLED_
DEMO.uf2 directly onto a Pico. We
were able to test the current draw by
using the CLS 0 and CLS 1 commands
to turn all pixels off or on once the display was configured.
Arduino
For the Arduino IDE, we used version 2.35.30 of the u8g2 library (https://
Fig.2: this wiring diagram
can be used for either a Pico
or Pico 2 microcontroller,
although we only tested
a Pico with our code
examples. Other boards
based on RP2xxx processors
should also work when GP0
is connected to SDA and
GP1 to SCL.
66
Silicon Chip
Australia's electronics magazine
github.com/olikraus/u8g2). It can also
be installed by searching for “u8g2” in
the Library Manager. The sketch we
have written is based on the GraphicsTest.ino demo example from the
u8g2 library. It shows a different set
of animations.
We have included the requisite
constructor for an SSD1309 controller connected to I2C0 on pins 0 and
1, using the same wiring as the Pico
mite example.
The demo code shows several different drawing, text and animation examples. The sketch, library and a compiled UF2 file can be found in the Arduino folder of the software downloads
(siliconchip.com.au/Shop/6/3563).
Summary
While there is a lot of similarity with
smaller OLED modules, these larger
parts have a few subtle differences
from the smaller OLED modules that
mean that they may not be a drop-in
replacement. Their larger size means
a higher current draw, so they will not
be suitable for many battery-powered
applications.
In cases where power is not an issue,
they could work well. The GPS FineSaver is a good example, where the
car’s accessory socket can provide
ample power and the larger display
will be useful, although the higher
current draw might be troublesome
for the linear regulator on that project.
Thus, we suggest using the 5V USB
power input.
Their larger size may make them
more delicate and susceptible to damage. It is a pity that the generic 2.42in
module seems to have inferior power
circuitry, since the metal bezel protecting the glass looks to be a useful
and elegant addition. Some models
may need minor modifications to work
correctly.
The 2.42in versions of the OLED
are almost as large as some LCD touch
panel modules; we have used 2.8in
versions of these LCD panels in numerous projects. The LCD panels typically
have a touch sensor and 16-bit colour,
so are quite a bit more versatile.
Searching for the controller name
(SSD1309) at online sellers seems to be
the best way to find these and similar
modules; the sources of the modules
we tested can also be found in Table
1. Note that there are also some SPI
versions of SSD1309-based display
SC
modules available.
siliconchip.com.au
|