This is only a preview of the August 2025 issue of Silicon Chip. You can view 46 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. Articles in this series:
Articles in this series:
Items relevant to "Modules: Thin-Film Pressure Sensor":
Articles in this series:
Items relevant to "USB-C Power Monitor, Part 1":
Items relevant to "RP2350B Development Board":
Items relevant to "Mic the Mouse":
Items relevant to "Ducted Heat Transfer Controller Part 1":
Purchase a printed copy of this issue for $13.00. |
Using Electronic Modules with Tim Blythman
Thin-Film
Pressure Sensor
Being able to sense force and pressure is handy as it allows properties
like weight to be measured. While industrial-grade pressure sensors
are available at higher prices, thin-film pressure sensors use a simpler
technology and are much cheaper.
F
orce and pressure sensors are
used in industrial applications.
In addition to directly measuring pressure (such as in a gas reaction vessel),
they can measure liquid volumes and
weight.
Pressure can be related to liquid volume since the height of a liquid column and its density dictate the amount
of pressure it exerts. If you can apply
the pressure over a known area, the
applied force can also be known and
thus the weight-derived force due to
gravity can be determined.
Just about any product you can buy
by weight or volume has been precisely
measured out using a sensor such as a
strain gauge. These are among the more
common types used for this purpose
since they have the necessary accuracy.
Of course, accuracy comes at a cost,
and many projects don’t need the kind
of accuracy these devices provide.
That said, strain gauge sensors and
their interface electronics are readily
available to the hobbyist if that level
of accuracy is needed.
Thin-film sensors
So-called thin-film pressure sensors are also known as force-sensitive
resistors; simply put, they are devices
that change their resistance when force
is applied to them. This makes them
quite easy to use since a simple resistive voltage divider is sufficient to get
a reading using an ADC (analog-to-
digital converter).
The force-sensitive resistor consists
of a polymer containing conductive
particles. The polymer is applied as a
thin film (hence the name) to an array
of conductive electrodes. As pressure
is applied, the conductive particles
touch the electrodes and each other,
reducing the resistance. Fig.1 shows
the construction of a typical device.
We’ve seen similar sensors created
by sandwiching a layer of conductive
foam (such as used for packaging DIP
ICs) between two blank PCBs or similar conductive plates. As the foam is
compressed, its resistance decreases.
Thin-film pressure sensors have
hysteresis and thus poor accuracy;
error figures of around 10% or higher
are typical. Not only does the reading
vary quite a bit, but it will also depend
on the sensor’s recent history.
So they are not suitable for precise
measurements. However, they are
often used as touch sensors since touch
sensing does not require a high degree
of accuracy. As long as the touch force
can be coupled to them, they can work
behind a protective surface in harsh
conditions.
Some force-sensitive resistors are
constructed as long, thin devices with
three terminals, like a potentiometer.
A touch moving along the length of
the resistor is analogous to moving
the pot’s wiper, so the touch position
can be estimated.
Sensor modules
Fig.1: pressure applied to the sensor brings together conducting particles
within the substrate and closes the gap between the active area and
substrate, reducing the sensor’s resistance. The black region of the sensor
is a high-resistance polymer that’s embedded with carbon. The silver areas
are conductive electrodes that expand the sensor’s active area. The sensor
electrodes are connected to terminals that are soldered to a module PCB
featuring a resistor, mounting holes and a 3-way pin header.
It is possible to purchase bare
force-sensitive resistors, but they are
also available attached to a module
with a pin header, making them easy
to interface to a microcontroller board
such as an Arduino main board.
We tried the Duinotech XC3738
Arduino Compatible Thin-Film Pressure Sensor from Jaycar Electronics.
It consists of a sensor attached to a
module PCB. The PCB has a three-way
header and a single 510kW resistor,
marked as R1. There is an unpopulated
Australia's electronics magazine
siliconchip.com.au
34
Silicon Chip
Fig.2: The circuit on the Duinotech Thin-Film
Pressure Sensor module is a simple voltage
divider. As the sensor is in the upper half,
the output voltage increases as pressure is
applied. There is an empty footprint for a
capacitor, which we recommend fitting.
Fig.3: the module provides
an analog voltage related
to its supply voltage, so
its connections are simple
enough. The V (or +) pin
should be fed from a voltage
that matches the ADC
reference used to measure
the voltage from the S
pin. Our sample code uses
analog input pin A0.
Screen 1: Test Sketch
930.00
933.00
930.00
929.00
798.00
901.00
907.00
917.00
920.00
916.00
923.00
918.00
924.00
926.00
925.00
927.00
925.00
928.00
926.00
51000.00
49196.14
51000.00
51603.88
143796.99
69056.60
65226.02
58953.11
57097.83
59574.24
55254.60
58333.33
54642.86
53423.33
54032.43
52815.53
54032.43
52209.05
53423.33
The output from the test sketch shows
the raw 10-bit ADC reading and a
calculated sensor resistance based on
the module’s nominal 510kW resistor
value. Even with a steady weight,
there is some drift.
footprint for a capacitor on the module; this is marked C1. Fig.2 shows its
simple circuit.
A 5V or 3.3V supply is applied
between the V and G (alternatively
labelled + and −) pins. Since the sensor’s resistance decreases as pressure
is applied, the voltage at the S pin will
increase with more pressure.
Circuit and software
Fig.3 shows the simple circuit we
used to test the module with an Uno
R4. Since the Uno R4 has socket headers and the module has plug headers,
we made the connections using plugsocket jumper wires. We expect that
almost any Arduino board with an analog input can be substituted.
The “XC3738_test.ino” sketch uses
the ADC to read the voltage at its A0
pin and displays the raw 10-bit ADC
reading (from 0 to 1023) and the calculated force-sensitive resistor resistance
(siliconchip.com.au/Shop/6/502). This
was a simple way to get a feel for
how the module responds to being
squashed and squeezed.
When no pressure was applied, we
got a reading of 25, indicating a sensor
resistance of around 20MW. We could
get a reading over 1000 with firm pressure between our fingertips, indicating
a resistance near 10kW.
siliconchip.com.au
As you can appreciate from Fig.1,
the sensor is quite thin, and it’s not
immediately clear how it could be
used to weigh an object or vessel. We
measured the sensor tip with callipers
to be around 0.3mm thick.
The Jaycar website offers a basic
data sheet, and we found some more
detailed data sheets for similar devices
from Interlink Electronics (www.
interlinkelectronics.com). That firm
appears to be one of the pioneers of
this technology. The sensor on the
XC3738 looks quite like Interlink’s
FSR 400 sensor.
We also found an Integration Guide
on the SparkFun Electronics website
with numerous tips for this type of sensor (siliconchip.au/link/abx5). This
guide doesn’t exactly correspond to
the Duinotech sensor, but we found
it very helpful.
They state that the sensors should
not be exposed to sharp surfaces. They
are not waterproof and have an air
vent that runs parallel to the external
leads, allowing their internal pressure
to equalise.
The guide seems to focus on measuring weights and notes that a pressure measurement would require the
vent to be in contact with air at atmospheric pressure. So we will concentrate on applications that measure
weight rather than pressure.
Testing
The guide notes that the sensors are
tested by applying force via a silicone
rubber ball.
We recommend adding small rubber feet (see Fig.1) to help spread the load
on the sensor and protect it from impacts. We
also added a 100nF capacitor to the
vacant C1 footprint on
the module.
August 2025 35
Rubber is recommended in designs
where some degree of movement is
expected. It also protects the sensor
from sharp edges and impacts while
spreading the force uniformly across
the active area.
With that in mind, we found some
self-adhesive rubber feet about 5mm
in diameter, similar in size to the sensor’s active area. We attached one to
each side of the sensor’s tip.
Screen 1 shows the output of the
XC3738_test sketch with a half-full
(half-empty?) glass resting on the modified sensor. The ADC reading is moving around a bit; the sensor measures
around 50kW.
We then rigged up a container to balance on the sensor to see if it could be
used to measure weight.
The blue trace in Fig.4 shows the
results of our first experiment. The
curve indicates quite a narrow working
range, with a notable offset from zero
grams before a meaningful reading is
registered. The values near the centre
of the graph tended to drift around a
bit, even with a steady weight, sometimes by up to 100 ADC steps.
To test the hysteresis, we noted the
values as we filled and then emptied
the container, but due to the large
amount of drift, we couldn’t draw any
firm conclusions about hysteresis.
Many microcontroller ADC peripherals recommend a source impedance
of no more than 10kW. The data sheet
for the RA4M1 microcontroller on the
Uno R4 suggests 6.7kW at most.
The divider on the Thin-Film Pressure Sensor module is typically dominated by the 510kW resistor, so it
would usually have a much higher
impedance than the recommended
value.
That could lead to ADC readings
being affected by noise and even the
ADC sampling process. The typical
solution is to fit a capacitor here to
provide a low-impedance voltage
source; we generally use a 100nF part
for this role.
Such a value results in a time constant of around 50ms, which we figure should not affect any weight-
measuring applications. It might be a
bit high if you are using the module as
a touch sensor to detect brief touches,
though.
So we fitted a 100nF M3216 (1206
imperial) SMD capacitor to the C1
footprint on the module, visible in our
photo. We then repeated the weight
experiment and recorded the red curve
in Fig.4.
We still noted quite a bit of drift
around the middle of the graph. Overall, the response is similar, although
the values span a wider range; the
capacitor clearly makes a positive difference. The useful working range in
either case is approximately 150-300g.
There is some response to changing
weights above this range, but it is not
as distinct. We wonder if replacing
the resistor with a lower value might
provide better resolution at higher
weights at the cost of losing resolution
at lower weights.
In use
The narrow working range sounds
quite limiting, but it could be expanded
with the appropriate arrangement of
levers and pivot points. With the sensors being relatively cheap, a second
Fig.4: the blue curve
shows the raw 10-bit
ADC readings from the
sensor with different
weights applied. The red
curve shows the effect of
fitting a 100nF capacitor
to the module on the
readings. As you can see,
the module has a useful
response between about
150g and 300g when fitted
with rubber feet.
36
Silicon Chip
Australia's electronics magazine
or third sensor could be added to
share the load and thus the measured
weight.
Many electronic scales use an array
of four strain gauges to ensure the
weights are measured consistently,
even if they are unevenly distributed.
The thin film pressure sensors do
not produce a change in reading near
zero, which is not ideal. Adding an
extra weight could help offset the
reading, allowing it to measure lower
weights.
That said, the accuracy is not great,
and we suspect that the sensors will
be more useful in indicating a full or
empty state (with perhaps a handful
of steps in between) than a precise
weight.
The integration guide noted earlier
also suggests that calibration is necessary if precision is needed. This section of the guide also states that temperature compensation may also be
included in the calibration, with an
expected resistance change of up to
10% with temperature.
The guide mentions that humid conditions (95% RH) can change the sensor’s resistance, so this should also be
considered if the sensor is used in a
moist or humid environment.
Conclusion
Thin-film pressure sensor modules
such as the Duinotech XC3738 are
handy for detecting changes in weight
or pressure, but they are not wellsuited to precision applications. They
are more realistically useful when you
want to detect the presence or absence
of weight.
We recommend adding a capacitor and rubber feet to the sensor to
help in weight-measuring applications. Without the rubber feet, we’re
not sure how it would be possible to
apply a meaningful force to the sensor. The capacitor helps ensure it has
the correct source impedance to suit
a typical ADC.
The module’s response is expected
to vary under different conditions
and between different units. Individual calibration is probably the best
way to counteract any of those sorts
of variations. So, these devices are
better suited to one-off projects than
production devices.
The XC3738 Arduino Compatible
Thin-Film Pressure Sensor is available
from Jaycar Electronics; see:
www.jaycar.com.au/p/XC3738 SC
siliconchip.com.au
|