This guide explores how to load files and run code on a MicroPython board. In the earlier introductions to MicroPython you manually typed all the code you wanted to run into the board's serial REPL. This process is great for learning and experimenting, but not great for developing and running complex programs because you have to type in the program every time you want it to run. However MicroPython has an internal filesystem which can store code that's run whenever the board powers up, just like an Arduino runs an Arduino sketch. Using a simple tool you can learn how to load code and other files into MicroPython's filesystem and enable an 'Arduino-like' workflow for developing code on your computer that runs on a MicroPython board.
Before you get started be sure to check your board's documentation for more details on its filesystem. Some MicroPython boards like the pyboard have a microSD card which can store large amounts of data in its filesystem. Other boards like the ESP8266 reserve just a small part of their internal flash memory for the filesystem. Each board is slightly different in how it creates and uses its filesystem so check your board's documentation for more details.
For this guide we'll use the Adafruit MicroPython tool (ampy) to load files and run code on a MicroPython board. If you're curious ampy is not the only tool for manipulating files and more on a MicroPython board, there are several other tools such as:
- ESP8266 web REPL - For ESP8266-based boards the web REPL provides a basic web interface for uploading files to the board. This is handy for dropping a file on a board, but it requires being connected to the web REPL which might not always be convenient.
- rshell - rshell is a remote MicroPython shell tool which allows you to access the files and more from a MicroPython board connected over its serial/USB connection. Check out the rshell forum post for more details on its usage.
- mpfshell - mpfshell is similar to rshell and provides file and REPL access in a MicroPython-specific shell. However mpfshell is made specifically to support ESP8266-based boards and the WiPy board. Check out the mpfshell forum post for more details on its usage.
This guide uses
ampy because it is a simple cross-platform command line tool that provides just enough functionality to access MicroPython's filesystem without being too complex. Feel free to explore other tools and options once you learn about MicroPython's filesystem.
Also be aware
ampy does not support talking to boards without a serial/USB REPL connection. In particular the WiPy board requires accessing the REPL over telnet and won't currently work with ampy. Consider using the mpfshell tool mentioned above, or even PyCom's editors and tools.
Before continuing make sure you have a MicroPython board and can access its serial REPL. If you're new to MicroPython start by reading these guides that explain what it is and how to get started: