**This document is intended to help you set up the software environment(<mark>Arudino</mark>, <mark>MicroPython</mark>) for development of M5Stack. Through a simple example we would like to illustrate how to develop M5Stack boards, firmware(<mark>Arduino</mark>) or source files(<mark>MicroPython</mark>) download to M5Stack boards.**
## Introduction
**M5 stack is a modular stackable development device. The M stands for Modular and 5 stands for the the units compact 5 x 5 cm size.**
## What You Need
To develop applications for M5Stack Core you need:
* **PC** loaded with either Windows, Linux or Mac operating system
* a **Type-C** cable
Before setting development environment, the step below you need to follow:
1. Establish **serial** connection
[How to Establish serial connection](related_documents\establish_serial_connection)
!> **Notice** Make sure you have installed USB driver so that your board can establish serial connection with PC. If not, please view this article [How to Establish serial connection](related_documents\establish_serial_connection) for connection.
At the first time, you need to burn the specific firmware file(.bin) to your board following this article [How to burn firmware](related_documents\how_to_connect_wifi_using_core) befor developing it.
If you have one of ESP32 development boards listed below, click the corresponding one to start your development.