M5Stack
The m5stack is a development board based on the Espressif ESP32 a powerful chip that is used on many different board mostly because of the built-in radio that can be used for WiFi or Bluetooth wireless connections.
Interfaces
| Interface | Hardware Supported | TinyGo Support | 
|---|---|---|
| GPIO | YES | YES | 
| UART | YES | YES | 
| SPI | YES | YES | 
| I2C | YES | YES | 
| ADC | YES | YES | 
| PWM | YES | Not yet | 
| USBDevice | NO | NO | 
| WiFi | YES | Not Yet | 
| Bluetooth | YES | Not yet | 
Pins
| Pin | Hardware pin | Alternative names | 
|---|---|---|
IO0 | 
GPIO0 | 
|
IO1 | 
GPIO1 | 
UART0_TX_PIN, UART_TX_PIN | 
IO2 | 
GPIO2 | 
|
IO3 | 
GPIO3 | 
UART0_RX_PIN, UART_RX_PIN | 
IO4 | 
GPIO4 | 
SDCARD_SS_PIN | 
IO5 | 
GPIO5 | 
|
IO6 | 
GPIO6 | 
|
IO7 | 
GPIO7 | 
|
IO8 | 
GPIO8 | 
|
IO9 | 
GPIO9 | 
|
IO10 | 
GPIO10 | 
|
IO11 | 
GPIO11 | 
|
IO12 | 
GPIO12 | 
|
IO13 | 
GPIO13 | 
|
IO14 | 
GPIO14 | 
SPI0_CS0_PIN, LCD_SS_PIN | 
IO15 | 
GPIO15 | 
|
IO16 | 
GPIO16 | 
UART1_RX_PIN | 
IO17 | 
GPIO17 | 
UART1_TX_PIN | 
IO18 | 
GPIO18 | 
SPI0_SCK_PIN, LCD_SCK_PIN, SDCARD_SCK_PIN | 
IO19 | 
GPIO19 | 
SPI0_SDI_PIN, LCD_SDI_PIN, SDCARD_SDI_PIN | 
IO21 | 
GPIO21 | 
SDA0_PIN, SDA_PIN | 
IO22 | 
GPIO22 | 
SCL0_PIN, SCL_PIN | 
IO23 | 
GPIO23 | 
SPI0_SDO_PIN, LCD_SDO_PIN, SDCARD_SDO_PIN | 
IO25 | 
GPIO25 | 
SPEAKER_PIN, DAC1 | 
IO26 | 
GPIO26 | 
DAC2 | 
IO27 | 
GPIO27 | 
LCD_DC_PIN | 
IO32 | 
GPIO32 | 
LCD_BL_PIN | 
IO33 | 
GPIO33 | 
LCD_RST_PIN | 
IO34 | 
GPIO34 | 
|
IO35 | 
GPIO35 | 
ADC1 | 
IO36 | 
GPIO36 | 
ADC2 | 
IO37 | 
GPIO37 | 
BUTTON_C | 
IO38 | 
GPIO38 | 
BUTTON_B | 
IO39 | 
GPIO39 | 
BUTTON_A, BUTTON | 
Machine Package Docs
Documentation for the machine package for the M5Stack Core2
Flashing
CLI Flashing on Linux
You need to install the esptool flashing tool:
https://github.com/espressif/esptool#easy-installation
Now you should be able to flash your board as follows:
- 
Plug your ESP32 board into your computer’s USB port.
 - 
Build and flash your TinyGo code using the
tinygo flashcommand. This command flashes the ESP32 with the serial example:tinygo flash -target=m5stack -port=/dev/ttyUSB0 examples/serial - 
The ESP32 board should restart and then begin running your program.
 
CLI Flashing on macOS
You need to install the esptool flashing tool:
https://github.com/espressif/esptool#easy-installation
Now you should be able to flash your board as follows:
- 
Plug your ESP32 board into your computer’s USB port.
 - 
Build and flash your TinyGo code using the
tinygo flashcommand. This command flashes the ESP32 with the serial example:tinygo flash -target=m5stack examples/serial - 
The ESP32 board should restart and then begin running your program.
 
CLI Flashing on Windows
You need to install the esptool flashing tool:
https://github.com/espressif/esptool#easy-installation
Now you should be able to flash your board as follows:
- 
Plug your ESP32 board into your computer’s USB port.
 - 
Build and flash your TinyGo code using the
tinygo flashcommand. This command flashes the ESP32 with the serial example:tinygo flash -target=m5stack examples/serial - 
The ESP32 board should restart and then begin running your program.
 
Troubleshooting
Goes here
Notes
Goes here