Devices

Sensors and displays that are supported by TinyGo.

TinyGo has support for many different devices and sensors such as digital accelerometers, OLED displays, WiFi adaptors, and more.

Drivers are packages designed to make it easier to use these devices from your own TinyGo programs.

All of these drivers can be found in the TinyGo Drivers repository located at https://github.com/tinygo-org/drivers/

The following devices are supported, grouped by category.

Displays

Driver Device Name Datasheet Interface Type
adafruit4650 Adafruit FeatherWing OLED - 128x64 OLED display docs I2C
gc9a01 Waveshare GC9A01 TFT round display datasheet SPI
hd44780 HD44780 LCD controller datasheet GPIO
hd44780i2c HD44780 LCD controller with I2C interface datasheet I2C
ili9325 ILI9325 TFT color display datasheet GPIO
ili9341 ILI9341 TFT color display datasheet SPI
pcd8544 PCD8544 display datasheet SPI
sh1106 SH1106 OLED display datasheet I2C / SPI
sharpmem Sharp Memory Displays docs SPI
ssd1289 SSD1289 TFT color display datasheet GPIO
ssd1306 SSD1306 OLED display datasheet I2C / SPI
ssd1331 SSD1331 TFT color display datasheet SPI
ssd1351 SSD1351 OLED display datasheet SPI
st7036 ST7036 character LCD datasheet SPI
st7735 ST7735 TFT color display datasheet SPI
st7789 ST7789 TFT color display datasheet SPI

E-paper displays

Driver Device Name Datasheet Interface Type
gdew0154m09 Good Display GDEW0154M09 1.54" e-paper display docs SPI
uc8151 UC8151 All-in-one driver IC for ESL datasheet SPI
waveshare-epd/epd1in54 Waveshare 1.54" black and white e-paper device datasheet SPI
waveshare-epd/epd2in13 Waveshare 2.13" e-paper display datasheet SPI
waveshare-epd/epd2in13x Waveshare 2.13" (B & C) e-paper display datasheet SPI
waveshare-epd/epd2in66b Waveshare 2.66" e-Paper display datasheet SPI
waveshare-epd/epd2in7 Waveshare 2.7" e-paper display (V1) datasheet SPI
waveshare-epd/epd2in7gray Waveshare 2.7" e-paper display (V1) with 4 grayscale levels datasheet SPI
waveshare-epd/epd2in9 Waveshare 2.9" e-paper display (V1) datasheet SPI
waveshare-epd/epd2in9v2 Waveshare 2.9" e-paper display (V2) datasheet SPI
waveshare-epd/epd4in2 Waveshare 4.2" e-paper B/W display datasheet SPI

LEDs and LED matrices

Driver Device Name Datasheet Interface Type
apa102 APA102 RGB LED datasheet SPI
blinkm BlinkM RGB LED datasheet I2C
hub75 HUB75 RGB led matrix datasheet SPI
is31fl3731 IS31FL3731 matrix LED driver datasheet I2C
max72xx MAX7219 & MAX7221 display driver datasheet SPI
microbitmatrix BBC micro:bit LED matrix datasheet GPIO
sn3218 SN3218 18 channel LED driver datasheet I2C
tm1637 TM1637 7-segment LED display datasheet GPIO
unoqmatrix Arduino UNO Q LED matrix docs GPIO
ws2812 WS2812 RGB LED datasheet GPIO

Motion sensors

Driver Device Name Datasheet Interface Type
adxl345 ADXL345 accelerometer datasheet I2C
bma42x BMA42X triaxial acceleration sensor datasheet I2C
bmi160 BMI160 accelerometer/gyroscope datasheet SPI
bmi270 BMI270 accelerometer/gyroscope datasheet I2C / SPI
bmm150 BMM150 magnetometer datasheet I2C
bno08x BNO08x 9-DOF IMUsensor datasheet I2C
l3gd20 L3GD20 3-axis angular rate sensor datasheet I2C
lis2mdl LIS2MDL magnetometer datasheet I2C
lis3dh LIS3DH accelerometer datasheet I2C
lsm303agr LSM303AGR accelerometer datasheet I2C
lsm303dlhc LSM303DLHC accelerometer/magnetometer datasheet I2C
lsm6ds3 LSM6DS3 accelerometer datasheet I2C
lsm6ds3tr LSM6DS3TR accelerometer datasheet I2C
lsm6dsox LSM6DSOX accelerometer datasheet I2C
lsm9ds1 LSM9DS1 accelerometer datasheet I2C
mag3110 MAG3110 magnetometer datasheet I2C
mma8653 MMA8653 accelerometer datasheet I2C
mpu6050 MPU6050 accelerometer/gyroscope datasheet I2C
mpu6886 MPU6886 accelerometer/gyroscope datasheet I2C
mpu9150 MPU9150 accelerometer/gyroscope datasheet I2C
qmi8658c QMI8658C accelerometer/gyroscope datasheet I2C

Environmental sensors

Driver Device Name Datasheet Interface Type
adt7410 ADT7410 I2C Temperature Sensor datasheet I2C
aht20 AHT20 I2C Temperature and Humidity Sensor datasheet I2C
bme280 BME280 humidity/pressure sensor datasheet I2C
bmp180 BMP180 barometer datasheet I2C
bmp280 BMP280 temperature/barometer datasheet I2C
bmp388 BMP388 pressure sensor datasheet I2C
dht DHTXX thermometer and humidity sensor datasheet GPIO
ds18b20 DS18B20 digital thermometer datasheet 1-wire
ens160 ScioSense ENS160 digital gas sensor datasheet I2C
honeyhsc TruStability® pressure sensor datasheet I2C/SPI
hts221 HTS221 digital humidity and temperature sensor datasheet I2C
lps22hb LPS22HB MEMS nano pressure sensor datasheet I2C
max6675 MAX6675 thermocouple-to-digital converter datasheet SPI
mcp9808 MCP9808 High Accuracy I2C Temperature Sensor datasheet I2C
ndir NDIR CO2 Sensor datasheet I2C
scd30 SCD30 CO2, temperature and humidity sensor datasheet I2C
scd4x SCD4x CO2 Sensor datasheet I2C
sgp30 SGP30 VOC sensor datasheet I2C
sht3x SHT3x Digital Humidity Sensor datasheet I2C
sht4x SHT4x Digital Humidity Sensor datasheet I2C
shtc3 SHTC3 Digital Humidity Sensor (RH/T) datasheet I2C
thermistor Thermistor datasheet ADC
tmp102 TMP102 I2C Temperature Sensor datasheet I2C

Light, distance, and position sensors

Driver Device Name Datasheet Interface Type
amg88xx AMG88xx 8x8 Thermal camera sensor datasheet I2C
apds9960 APDS9960 Digital proximity, ambient light, RGB and gesture sensor datasheet I2C
as560x AS5600 / AS5601 (on-axis magnetic rotary position sensors) datasheet I2C
bh1750 BH1750 ambient light sensor datasheet I2C
gps GPS module datasheet I2C/UART
hcsr04 HC-SR04 Ultrasonic distance sensor datasheet GPIO
pmw3901 PMW3901 optical flow sensor datasheet SPI
veml6070 VEML6070 UV light sensor datasheet I2C
vl53l1x VL53L1X time-of-flight distance sensor datasheet I2C
vl53l3cx VL53L3CX time-of-flight distance sensor datasheet I2C
vl6180x VL6180X time-of-flight distance sensor datasheet I2C

Input and touch

Driver Device Name Datasheet Interface Type
cap1166 CAP1166 capacitive touch sensor and LED driver datasheet I2C
encoders Rotary Encoder datasheet GPIO
ft6336 FT6336 touch controller datasheet I2C
irremote Infrared remote control datasheet GPIO
keypad4x4 4x4 Membrane Keypad datasheet GPIO
makeybutton Makey Button datasheet GPIO
touch/capacitive Capacitive touch sensing with GPIO pins docs GPIO
touch/resistive Resistive Touchscreen (4-wire) datasheet GPIO
ttp229 TTP229 (BSF version) 16 keys or 8 keys touch pad detector datasheet GPIO
xpt2046 XPT2046 touch controller datasheet GPIO

Audio

Driver Device Name Datasheet Interface Type
buzzer Buzzer datasheet GPIO
microphone Microphone - PDM datasheet I2S/PDM
tone Tone generator for piezo speakers docs PWM

Motors and actuators

Driver Device Name Datasheet Interface Type
easystepper Stepper motor “Easystepper” controller datasheet GPIO
l293x L293x motor driver datasheet GPIO/PWM
l9110x L9110x motor driver datasheet GPIO/PWM
pca9685 PCA9685 16-channel, 12-bit PWM controller datasheet I2C
servo Servo datasheet PWM
tmc2209 TMC2209 stepper motor datasheet UART
tmc5160 TMC5160 stepper motor datasheet UART

Power

Driver Device Name Datasheet Interface Type
axp192 AXP192 single Cell Li-Battery and Power System Management datasheet I2C
ina219 INA219 current and power monitor datasheet I2C
ina260 INA260 Volt/Amp/Power meter datasheet I2C
ina3221 INA3221 three channel current and voltage monitor datasheet I2C

Wireless and networking

Driver Device Name Datasheet Interface Type
comboat Aithinker-Combo-AT WiFi docs UART
espat ESP8266/ESP32 AT Command set for WiFi/TCP/UDP datasheet UART
mcp2515 MCP2515 Stand-Alone CAN Controller with SPI Interface datasheet SPI
rtl8720dn RTL8720DN 2.4G/5G Dual Bands Wireless and BLE5.0 datasheet UART
sx126x Semtech SX126x Lora datasheet SPI
sx127x Semtech SX127x Lora datasheet SPI
sx128x Semtech SX128x 2.4 GHz Lora datasheet SPI
w5500 W5500 Ethernet controller datasheet SPI
wifinina ESP32 as WiFi Coprocessor with Arduino nina-fw datasheet SPI

Storage

Driver Device Name Datasheet Interface Type
at24cx AT24CX 2-wire serial EEPROM datasheet I2C
flash SPI NOR Flash Memory datasheet SPI/QSPI
sd SD card docs SPI
sdcard SPI SDCARD/MMC datasheet SPI

Clocks and timing

Driver Device Name Datasheet Interface Type
ds1307 DS1307 real time clock datasheet I2C
ds3231 DS3231 real time clock datasheet I2C
pcf8523 PCF8523 real time clock datasheet I2C
pcf8563 PCF8563 real time clock datasheet I2C
si5351 SI5351 clock generator datasheet I2C

I/O expanders and converters

Driver Device Name Datasheet Interface Type
mcp23017 MCP23017 port expander datasheet I2C
mcp3008 MCP3008 analog to digital converter (ADC) datasheet SPI
p1am P1AM-100 base controller docs SPI
pcf8591 PCF8591 Analog to Digital/Digital to Analog Converter datasheet I2C
seesaw Adafruit Seesaw docs I2C
shifter 8bit shift registers (74HC165, 74165, etc) GPIO
shiftregister Shift register (PISO) datasheet GPIO

Bus and debugging

Driver Device Name Datasheet Interface Type
i2csoft software I2C driver datasheet GPIO
onewire One Wire bus system datasheet 1-wire
semihosting Semihosting datasheet Debug

We also give you the ability to add new drivers. If your device isn’t listed here, please raise an issue in the issue tracker.

If you want to know more about how drivers are implemented please see the Drivers page under “Concepts”.