Trill is a family of touch sensors that was inspired by the way we use our hands to interact with the world. Trill uses capacative touch sensing to precisely track finger movements, making high-resolution touch sensing accessible to creators who want to incorporate touch into their interactive projects.
Trill touch sensors are compatible with any system that uses I2C communication, such as Bela, Arduino, Raspberry Pi and Teensy. Trill was developed by the Bela team, and was funded on Kickstarter in Fall 2019.
There are six different types of Trill: Bar, Square, Craft, Hex, Ring and Flex. This article introduces each of the Trill sensors, their technical details, and how they are used.
Table of contents
- Types of Trill sensors
- Using Trill
Trill: Inspired by hands
Trill was inspired by the way we use our hands to interact with the world. From computer interfaces to textiles, musical instruments to interactive artworks, we experience the world by touching it. Designing touch interaction and creating objects activated by touch require precise sensors that capture human touch in all its subtlety – which is where Trill comes in.
Types of Trill sensors
There are six Trill sensor types.
Dimensions: 101mm x 22mm
Trill Bar is a multi-touch, single-axis slider. As well as perfect for controlling single parameters, Trill Bar can also sense up to five separate touch points, as well as touch size. It is fitted with a QWIIC connector for power and I2C communication.
Need a custom fit? Trill Bar can be trimmed to size to fit in a huge variety of applications.
Trill Square is a x/y touch pad that senses the position of one touch across two axes, as well as touch size - ideal for interfaces and projects that require a single touch to control two parameters. It is fitted with a QWIIC connector for power and I2C communication.
Dimensions: 69mm x 69mm
Trill Craft is a 30-channel breakout board that lets you make your own touch interfaces out of anything conductive. Trill Craft is perfect for crafting complex interfaces from conductive fabric, copper tape, metal, wire, fruit, water, and any other conductive material. Each of Trill Craft’s 30 channels of capacitive sensing offer variable readings, and multiple boards can be chained together to create interfaces with hundreds of channels of capacitive touch. Trill Craft comes with an unsoldered right angle pin header for the I2C pins so you can connect it to the board of your choice, either directly or through a breadboard.
Dimensions: 52mm x 21mm
Trill Hex is a hexagonal, 2-axis x/y sensor which also senses touch size. Its hexagonal shape makes it ideal for experimenting with tessellation and creating isomorphic keyboards. It is fitted with a QWIIC connector for power and I2C communication.
Dimensions: 46.5mm (edge to edge); 52mm (corner to corner)
Trill Ring is a one-axis circular slider that can detect up to 5 simultaneous touches as well as touch size. Trill Ring is the perfect controller for varying filters, sequencers, frequencies and more. It is fitted with a QWIIC connector for power and I2C communication.
Want to add visual feedback and a button? Trill Ring is designed to fit within a Neopixels ring, and fits an arcade button in the central hole.
Dimensions: 52mm (outer diameter); 28mm (inner diameter)
Trill Flex allows you to bring flexible sensing to your interactive projects.
There are two parts to Trill Flex: the base (where you’ll find the Trill chip and a high-density connector) and the flexible sensor (made from flex PCB). Trill Flex’s flexible sensor easily conforms to curves, bends, corners and more, giving you the freedom to create projects with touch surfaces that are virtually any shape.
The flexible sensor is detachable, meaning that you can swap it out for a flexible sensor that you created. You can find the editable plans for the Trill Flex sensor on our Github - just download and edit them. See our guide on designing your own flexible sensors for tips and tricks. When you’re ready to get them manufactured you can use the promotional code that will be emailed with your order for a $20 discount from OSH Park.
Trill Flex comes with a flexible single-axis bar sensor that detects multiple touches. Trill Flex uses a QWIIC connector to connect to your Bela system, breadboard or microcontroller. A QWIIC-to-pin cable is included, so snap the base to the sensor, plug it in, and start prototyping your new flexible project!
Sensor dimensions: 117mm; 22mm
Trill Hub is a handy breakout board that provides a single point of connection for all your Trill sensors (and other I2C devices).
Trill Hub includes 5 QWIIC-to-QWIIC cables so you can securely hook up your Trill sensors, and then connect it to your board for a reliable, hassle-free connection. We’ve also included 6 sets of open solder pads on Trill Hub so you can also connect other I2C devices in your project that don’t use QWIIC connections. Trill Hub also includes on-board pull-up resistors for the I2C lines, in case your board requires it (like some versions of Teensy), so no extra parts are needed for your setup.
To find out more about the I2C communication protocol and about using multiple Trill sensors together have a look at our all about I2C guide.
Trill and capacitive sensing
Trill comes from the creators of TouchKeys, a multi-touch system for keyboards, and uses capacitive touch technology. This means that Trill sensors detect touch by sensing changes in capacitance.
If you look closely at the sensing surface of a Trill sensor (except for Trill Craft) you’ll see zig zag or crossed lines on the sensor. On Bar and Ring each of these zig-zag sections is one channel of capacitive touch sensing, and each has 30 in total. Trill Square and Trill Hex have criss-crossed lines - 15 in one direction and 15 in the other - which are two groups of 15 channels of touch sensing overlaid into a grid. Trill Craft has its 30 channels of touch sensing broken out to pins along each side.
When you touch a Trill sensor by tapping it or dragging your finger across it, the conductive quality of your skin changes the capacitance of each channel your finger touches. Since the channels are arranged either in a grid or as interlaced zig-zag sections, this means that a single touch usually affects the capacity readings of several channels at once, to varying degrees. Trill is able to sense the position of your finger by interpreting the shape of the readings of several adjacent capacitive channels, and can estimate the size of the touch by computing the overall amount of activation.
The arrangement of the sensing channels produce different sensing results. For example, Trill Bar and Trill Ring have 30 zig-zagged channels arranged in a straight line, meaning that they’re one-axis sliders. They can also detect up to 5 different points of contact. Trill Square and Trill Hex sensors, with their 2 groups of 15 channels overlaid on one another at a straight angle, can sense the location of a touch in two dimensions (x and y). Trill Square and Hex can actually detect up to 4 distinct touches on each sensing axis, but they cannot detect unambiguously which x touch corresponds to which y touch, so the multitouch support is limited, and in most cases they are used as single-touch devices.
Can Trill sense pressure?
Something very similar. Instead of measuring a change in resistance like with a traditional pressure sensor (FSR) the Trill sensors get something more or less equivalent to a pressure reading by looking at a change in capacitance. So instead of measuring actual force on the sensor it is more the area of contact that is measured, what we call Touch Size in much of the documentation.
This equates nicely to pressure in the case of a fingertip where if you are touching lightly then only a small area of the fingertip will be making contact with the sensor. Whereas if you are touching with a lot of pressure then a larger area of the fingertip will be in contact with the sensor.
In terms of accuracy, every capacitive channel on the Trill sensors is 12-bit by default giving a range of 0-4096 with the possibility of going up to 16-bit, plenty of range for most sensing applications. The sensitivity of the sensors can also be easily tuned via various parameters which are set at setup. See our guide to adjusting the sensitivity of the Trill sensors.
There are some limitations of using touch size instead of actual pressure. For example changing the angle of the finger can change the touch size reading, and so you can’t tell the difference between someone doing this and applying more pressure, but in most sensing case touch size works as a good equivalent to sensing actual pressure.
Talking to Trill with I2C
Trill sensors use the I2C communication protocol. This means that although Trill was designed by the team that brought you Bela, these sensors can also be used with any system that supports I2C, such as Arduino, Teensy, and Raspberry Pi. The Trill library for Bela comes with the Bela core code (you may have to update your board), and we provide libraries and examples on our GitHub repositories for other embedded linux platforms, including Raspberry Pi and for Arduino-compatible microcontrollers.
To help you understand how communication with Trill works, we’ve written a whole article about Trill and I2C that you can check out for more information.
On Bela you can use Trill in projects that use C++, as well as Pure Data, and there are examples in the IDE’s Examples tab for each.
We’ve also written a Trill coding primer to get you up to speed with how this works on Bela, and ways to customise Trill’s response and behaviour in software.
Integrating Trill into your projects
Trill is designed to be a convenient way of integrating high-resolution touch sensing into your digital projects. To learn how to customise Trill to fit seamlessly into your particular interactive project, we’ve written an article describing customisation options.