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
- E-paper displays
- LEDs and LED matrices
- Motion sensors
- Environmental sensors
- Light, distance, and position sensors
- Input and touch
- Audio
- Motors and actuators
- Power
- Wireless and networking
- Storage
- Clocks and timing
- I/O expanders and converters
- Bus and debugging
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
Environmental sensors
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”.