This page serves as documentation for the Trill.

The Trill is a complete GSM/3G mobile phone based on the ioNode.


The display is a 128x64 OLED using the very common SSD1306 driver.
These displays communicate via I2C.

A library is provided to control the display: ssd1306.
A tutorial is also available: Using an I2C OLED display

Two LEDs are also available through PWM Channels 0 & 1.

For the input, 16+5 buttons are available:
  • 12-button keypad (0-9, *, #)
  • 4 generic buttons
  • 5-way tactile switch (mini-joystick)

Inputs are wired to three MCP23008 I2C I/O expanders from Microchip.
The address bits are wired as 0x04, 0x05 and 0x06.

Vibration motor

A tiny vibration motor is included for notifications / feedback.
It is controlled using a single PWM output: PWM Channel 4 (see our PWM Tutorial).


GSM/3G connectivity is provided through the SIM5300EA module from SIMCOM.

A library is provided to control the module: sim5300.

MP3 Subsystem

A complete MP3 subsystem (exactly equivalent to the Aecho) is included.
The sta013 library is provided to control the MP3 decoder (STA013), while the lm4811 library is provided to control the headphone amplifier (LM4811).


A MicroSD slot is also included. We provide a library for (micro-)SD cards: sdcard.

Another library is also provided to access FAT filesystems on such cards: fatfs.

Power supply

The Trill board features a very simple "+ / -" breakout which can accept anywhere from 3.5V to 4.5V.
The power supply should be able to provide at least 300mA (peak).


The Dooba SDK includes a library to facilitate development using the Trill: trill.