Seeed Wio Terminal

The Seeed Wio Terminal is a tiny ARM development board based on the Atmel ATSAMD51P20 family of SoC.

Interfaces

InterfaceHardware SupportedTinyGo Support
GPIOYESYES
UARTYESYES
SPIYESYES
I2CYESYES
ADCYESYES
PWMYESYES
USBDeviceYESYES

Pins

PinHardware pinAlternative namesPWM
ADC0PB08D0, A0, BCM27, RPI_A0
ADC1PB09D1, A1, BCM22, RPI_A1
ADC2PA07D2, A2, BCM23, RPI_A2
ADC3PB04D3, A3, BCM24, RPI_A3
ADC4PB05D4, A4, BCM25, RPI_A4
ADC5PB06D5, A5, BCM12, RPI_A5
ADC6PA04D6, A6, BCM13, RPI_A6
ADC7PB07D7, A7, BCM16, RPI_A7
ADC8PA06D8, A8, BCM26, RPI_A8
LEDPA15PIN_LED_13, PIN_LED_RXL, PIN_LED_TXL, PIN_LED, PIN_LED2, PIN_LED3, LED_BUILTIN, PIN_NEOPIXELTCC2 (channel 1), TCC1 (channel 3)
BUTTONPC26BUTTON_1, WIO_KEY_A
BCM0PA13PIN_WIRE1_SDA, SDA1, PIN_GYROSCOPE_WIRE_SDA, WIO_LIS3DH_SDA, SDA0_PINTCC0 (channel 7), TCC1 (channel 3)
BCM1PA12PIN_WIRE1_SCL, SCL1, PIN_GYROSCOPE_WIRE_SCL, WIO_LIS3DH_SCL, SCL0_PINTCC0 (channel 6), TCC1 (channel 2)
BCM2PA17PIN_WIRE_SDA, SDA, SDA1_PIN, SDA_PINTCC1 (channel 1), TCC0 (channel 5)
BCM3PA16PIN_WIRE_SCL, SCL, SCL1_PIN, SCL_PINTCC1 (channel 0), TCC0 (channel 4)
BCM4PB14GCLK0TCC4 (channel 0), TCC0 (channel 2)
BCM5PB12GCLK1TCC3 (channel 0), TCC0 (channel 0)
BCM6PB13GCLK2TCC3 (channel 1), TCC0 (channel 1)
BCM7PA05PIN_DAC1
BCM8PB01PIN_SPI_SS, SS
BCM9PB00PIN_SPI_SDI, SDI, SPI0_SDI_PIN
BCM10PB02PIN_SPI_SDO, SDO, SPI0_SDO_PINTCC2 (channel 2)
BCM11PB03PIN_SPI_SCK, SCK, SPI0_SCK_PINTCC2 (channel 3)
BCM14PB27PIN_SERIAL1_RX, UART_RX_PINTCC1 (channel 3)
BCM15PB26PIN_SERIAL1_TX, UART_TX_PINTCC1 (channel 2)
BCM17PA02PIN_DAC0
BCM18PB28FPC1, I2S_SCK_PINTCC1 (channel 4)
BCM19PA20PIN_I2S_FS, I2S_LRCLK, I2S_WS_PINTCC1 (channel 4), TCC0 (channel 0)
BCM20PA21PIN_I2S_SDI, I2S_SDIN, I2S_SDI_PINTCC1 (channel 5), TCC0 (channel 1)
BCM21PA22PIN_I2S_SDO, I2S_SDOUT, I2S_SDO_PINTCC1 (channel 6), TCC0 (channel 2)
FPC2PB17TCC3 (channel 1), TCC0 (channel 5)
FPC3PB29TCC1 (channel 5)
FPC4PA14TCC2 (channel 0), TCC1 (channel 2)
FPC5PC01
FPC6PC02
FPC7PC03
FPC8PC04TCC0 (channel 0)
FPC9PC31
FPC10PD00
PIN_USB_DMPA24USBCDC_DM_PINTCC2 (channel 2)
PIN_USB_DPPA25USBCDC_DP_PINTCC2 (channel 3)
PIN_USB_HOST_ENABLEPA27
BUTTON_2PC27WIO_KEY_B
BUTTON_3PC28WIO_KEY_C
SWITCH_XPD20WIO_5S_UPTCC1 (channel 0)
SWITCH_YPD12WIO_5S_LEFTTCC0 (channel 5)
SWITCH_ZPD09WIO_5S_RIGHTTCC0 (channel 2)
SWITCH_BPD08WIO_5S_DOWNTCC0 (channel 1)
SWITCH_UPD10WIO_5S_PRESSTCC0 (channel 3)
IRQ0PC20TCC0 (channel 4)
BUZZER_CTRPD11WIO_BUZZERTCC0 (channel 4)
MIC_INPUTPC30WIO_MIC
PIN_SERIAL2_RXPC23UART2_RX_PINTCC0 (channel 7)
PIN_SERIAL2_TXPC22UART2_TX_PINTCC0 (channel 6)
GYROSCOPE_INT1PC21WIO_LIS3DH_INTTCC0 (channel 5)
PIN_SPI1_SDIPC24SDI1, RTL8720D_SDI_PIN, SPI1_SDI_PIN
PIN_SPI1_SDOPB24SDO1, RTL8720D_SDO_PIN, SPI1_SDO_PIN
PIN_SPI1_SCKPB25SCK1, RTL8720D_SCK_PIN, SPI1_SCK_PIN
PIN_SPI1_SSPC25SS1, RTL8720D_SS_PIN
PIN_SPI2_SDIPC18SDI2, SDCARD_SDI_PIN, SPI2_SDI_PINTCC0 (channel 2)
PIN_SPI2_SDOPC16SDO2, SDCARD_SDO_PIN, SPI2_SDO_PINTCC0 (channel 0)
PIN_SPI2_SCKPC17SCK2, SDCARD_SCK_PIN, SPI2_SCK_PINTCC0 (channel 1)
PIN_SPI2_SSPC19SS2, SDCARD_SS_PINTCC0 (channel 3)
PIN_SPI3_SDIPB18SDI3, LCD_SDI_PIN, SPI3_SDI_PINTCC1 (channel 0)
PIN_SPI3_SDOPB19SDO3, LCD_SDO_PIN, SPI3_SDO_PINTCC1 (channel 1)
PIN_SPI3_SCKPB20SCK3, LCD_SCK_PIN, SPI3_SCK_PINTCC1 (channel 2)
PIN_SPI3_SSPB21SS3, LCD_SS_PINTCC1 (channel 3)
SDCARD_DET_PINPD21TCC1 (channel 1)
LCD_DCPC06
LCD_RESETPC07
LCD_BACKLIGHTPC05TCC0 (channel 1)
LCD_XLPC10TCC0 (channel 0), TCC1 (channel 4)
LCD_YUPC11TCC0 (channel 1), TCC1 (channel 5)
LCD_XRPC12TCC0 (channel 2), TCC1 (channel 6)
LCD_YDPC13TCC0 (channel 3), TCC1 (channel 7)
PIN_QSPI_IO0PA08QSPI_DATA0TCC0 (channel 0), TCC1 (channel 4)
PIN_QSPI_IO1PA09QSPI_DATA1TCC0 (channel 1), TCC1 (channel 5)
PIN_QSPI_IO2PA10QSPI_DATA2TCC0 (channel 2), TCC1 (channel 6)
PIN_QSPI_IO3PA11QSPI_DATA3TCC0 (channel 3), TCC1 (channel 7)
PIN_QSPI_SCKPB10QSPI_SCKTCC0 (channel 4), TCC1 (channel 0)
PIN_QSPI_CSPB11QSPI_CSTCC0 (channel 5), TCC1 (channel 1)
PIN_I2S_SCKPB16I2S_BLCKTCC3 (channel 0), TCC0 (channel 4)
RTL8720D_CHIP_PUPA18TCC1 (channel 2), TCC0 (channel 6)
RTL8720D_GPIO0PA19TCC1 (channel 3), TCC0 (channel 7)
SWDCLKPA30TCC2 (channel 0)
SWDIOPA31TCC2 (channel 1)
SWOPB30TCC4 (channel 0), TCC0 (channel 6)
WIO_LIGHTPD01
WIO_IRPB31TCC4 (channel 1), TCC0 (channel 7)
OUTPUT_CTR_5VPC14TCC0 (channel 4), TCC1 (channel 0)
OUTPUT_CTR_3V3PC15TCC0 (channel 5), TCC1 (channel 1)

Machine Package Docs

Documentation for the machine package for the Seeed Wio Terminal

Flashing

UF2

The Wio Terminal comes with the UF2 bootloader already installed.

CLI Flashing

  • Plug your Wio Terminal into your computer’s USB port.

  • Flash your TinyGo program to the board using this command:

    tinygo flash -target=wioterminal [PATH TO YOUR PROGRAM]
    
  • The Wio Terminal board should restart and then begin running your program.

Troubleshooting

If you have troubles getting your Wio Terminal board to receive code, try this:

tinygo flash -target=wioterminal [PATH TO YOUR PROGRAM]

Once you have updated your Wio Terminal board the first time, after that you should be able to flash it entirely from the command line.

Notes

If your Linux Distro doesnt auto mount devices you have to manually mount it to /media/Arduino for the command above to work. You can use the USB port to the Wio Terminal as a serial port. UART0 refers to this connection.