# Building and Running MicroPython on the ESP8266 ## Overview Danger: Primary: Info: ![](https://cdn-learn.adafruit.com/assets/assets/000/025/445/medium800/microcontrollers_esp8266_python.jpg?1431460774) [MicroPython](https://micropython.org/) is an awesome little Python interpretor that can run on embedded platforms.  Using the familiar [Python programming language](https://www.python.org/) you can talk to hardware and control it, much like controlling hardware with an Arduino or other embedded board.  The [MicroPython board](https://www.adafruit.com/products/2390) makes it easy to get started using MicroPython, but did you know you can use MicroPython on other platforms like the nifty [ESP8266 WiFi module](https://www.adafruit.com/product/2471)?  Thanks to recent contributions to MicroPython you can turn an ESP8266 into a MicroPython device, and this guide will show you how to get started by compiling and installing MicroPython firmware for the ESP8266! Before you get started one thing to note is that MicroPython's support for the ESP8266 is still in **very early stages of development** **and not all MicroPython board functionality is available**.  Currently you can access GPIO pins, connect to a WiFi network, and talk to the internet using a low-level socket-like interface with MicroPython on the ESP8266.  Access to I2C, SPI, or other parts of hardware are not yet supported-- **consider MicroPython on the ESP8266 just for advanced users right now!** **Update August 2016: Since this guide was published MicroPython on the ESP8266 has evolved significantly!  Support for the ESP8266 is now quite good and worth checking out even for casual users.  See these later guides that explain what is MicroPython and how to more easily load firmware on the board:** - **[MicroPython Basics: What is MicroPython?](../../../../micropython-basics-what-is-micropython/overview)** - **[MicroPython Basics: How to load MicroPython on a Board](../../../../micropython-basics-how-to-load-micropython-on-a-board)** However if you're interested in hacking on and even contributing to MicroPython for the ESP8266 this guide will show you how to setup a toolchain for building the MicroPython ESP8266 firmware.  You can even use the toolchain built from this guide to create other ESP8266 projects! Also many thanks to the contributors of the [MicroPython](https://micropython.org/), [ESP open SDK](https://github.com/pfalcon/esp-open-sdk), and [esptool](https://github.com/themadinventor/esptool) projects.  These excellent open source projects make possible this and other awesome MicroPython & ESP8266 projects--thanks! - [Next Page](https://learn.adafruit.com/building-and-running-micropython-on-the-esp8266/build-firmware.md) ## Featured Products ### Adafruit HUZZAH ESP8266 Breakout [Adafruit HUZZAH ESP8266 Breakout](https://www.adafruit.com/product/2471) Add Internet to your next project with an adorable, bite-sized WiFi microcontroller, at a price you like! The ESP8266 processor from Espressif is an 80 MHz microcontroller with a full WiFi front-end (both as client and access point) and TCP/IP stack with DNS support as well. While this chip... In Stock [Buy Now](https://www.adafruit.com/product/2471) [Related Guides to the Product](https://learn.adafruit.com/products/2471/guides) ### ESP8266 WiFi Module [ESP8266 WiFi Module](https://www.adafruit.com/product/2282) This interesting module is a lot of fun for hobbyists and students who are interested in experimenting with the ESP8266 WiFi chipset. We bought a bunch of these modules, updated the firmware to the much-easier-to-use v0.924 and wrote some Arduino code to grab a webpage. We do not... No Longer Stocked [Buy Now](https://www.adafruit.com/product/2282) [Related Guides to the Product](https://learn.adafruit.com/products/2282/guides) ### ESP8266 SMT Module [ESP8266 SMT Module](https://www.adafruit.com/product/2491) Add Internet to your next project with an adorable, bite-sized WiFi microcontroller, at a price you like! The ESP8266 processor from Espressif is an 80 MHz microcontroller with a full WiFi front-end (both as client and access point) and TCP/IP stack with DNS support as well. ** ...** In Stock [Buy Now](https://www.adafruit.com/product/2491) [Related Guides to the Product](https://learn.adafruit.com/products/2491/guides) ### MicroPython pyboard [MicroPython pyboard](https://www.adafruit.com/product/2390) The **pyboard** is a compact and powerful electronics development board that runs MicroPython. It connects to your PC over USB, giving you a USB flash drive to save your Python scripts, and a serial Python prompt (a REPL) for instant programming. Requires a micro USB cable, and... In Stock [Buy Now](https://www.adafruit.com/product/2390) [Related Guides to the Product](https://learn.adafruit.com/products/2390/guides) ### FTDI Serial TTL-232 USB Cable [FTDI Serial TTL-232 USB Cable](https://www.adafruit.com/product/70) Just about all electronics use TTL serial for debugging, bootloading, programming, serial output, etc. But it's rare for a computer to have a serial port anymore. This is a USB to TTL serial cable, with a FTDI FT232RL usb/serial chip embedded in the head. It has a 6-pin socket at the end... In Stock [Buy Now](https://www.adafruit.com/product/70) [Related Guides to the Product](https://learn.adafruit.com/products/70/guides) ### FTDI Friend with Micro USB Port + extras [FTDI Friend with Micro USB Port + extras](https://www.adafruit.com/product/284) Long gone are the days of parallel ports and serial ports. Now the USB port reigns supreme! But USB is hard, and you just want to transfer your every-day serial data from a microcontroller to computer. What now? Enter the FTDI Friend! The FTDI Friend is a tweaked out FTDI FT232RL chip... In Stock [Buy Now](https://www.adafruit.com/product/284) [Related Guides to the Product](https://learn.adafruit.com/products/284/guides) ## Related Guides - [Bootloading Basics](https://learn.adafruit.com/bootloader-basics.md) - [Adding Third Party Boards to the Arduino v1.6.4+ IDE](https://learn.adafruit.com/add-boards-arduino-v164.md) - [XBee Radios](https://learn.adafruit.com/xbee-radios.md) - [MicroPython Basics: How to Load MicroPython on a Board](https://learn.adafruit.com/micropython-basics-how-to-load-micropython-on-a-board.md) - [FTDI Friend](https://learn.adafruit.com/ftdi-friend.md) - [Internet of Things Printer](https://learn.adafruit.com/internet-of-things-printer.md) - [Adafruit HUZZAH ESP8266 breakout](https://learn.adafruit.com/adafruit-huzzah-esp8266-breakout.md) - [CircuitPython Hardware: MPR121 Capacitive Touch Breakout](https://learn.adafruit.com/circuitpython-hardware-mpr121-capacitive-touch-breakout.md) - [Introducing Bluefruit EZ-Key](https://learn.adafruit.com/introducing-bluefruit-ez-key-diy-bluetooth-hid-keyboard.md) - [Remote controlled door lock using a fingerprint sensor & Adafruit IO](https://learn.adafruit.com/remote-controlled-door-lock-using-a-fingerprint-sensor-and-adafruit-io.md) - [MicroPython Smart Holiday Lights](https://learn.adafruit.com/micropython-smart-holiday-lights.md) - [All the Internet of Things - Episode Two: Protocols](https://learn.adafruit.com/alltheiot-protocols.md) - [Using IFTTT with Adafruit IO to Make an IoT Door Detector](https://learn.adafruit.com/using-ifttt-with-adafruit-io.md) - [Smart Toilet Light](https://learn.adafruit.com/smart-toilet-light.md) - [Trinket / Gemma IR Control](https://learn.adafruit.com/trinket-gemma-ir-remote-control.md)