-# Contributions Guide
+Contributions Guide
+===================
We welcome contributions to the esp-idf project!
-## How to Contribute
+How to Contribute
+-----------------
Contributions to esp-idf - fixing bugs, adding features, adding documentation - are welcome. We accept contributions via [Github Pull Requests](https://help.github.com/articles/about-pull-requests/).
-## Before Contributing
+Before Contributing
+-------------------
Before sending us a Pull Request, please consider this list of points:
* If you're unsure about any of these points, please open the Pull Request anyhow and then ask us for feedback.
-## Pull Request Process
+Pull Request Process
+--------------------
After you open the Pull Request, there will probably be some discussion in the comments field of the request itself.
If this process passes, it will be merged onto the public github repository.
-## Legal Part
+Legal Part
+----------
Before a contribution can be accepted, you will need to sign our [Contributor Agreement](docs/contributor-agreement.rst). You will be prompted for this automatically as part of the Pull Request process.
-# Using Espressif IoT Development Framework with the ESP32
+Using Espressif IoT Development Framework with the ESP32
+========================================================
-# Setting Up ESP-IDF
+|docs|
+
+Setting Up ESP-IDF
+------------------
In the [docs](docs) directory you will find per-platform setup guides:
* [Mac OS Setup Guide](docs/macos-setup.rst)
* [Linux Setup Guide](docs/linux-setup.rst)
-# Finding A Project
+Finding A Project
+-----------------
As well as the [esp-idf-template](https://github.com/espressif/esp-idf-template) project mentioned in the setup guide, esp-idf comes with some example projects in the [examples](examples) directory.
Once you've found the project you want to work with, change to its directory and you can configure and build it:
-# Configuring your project
+Configuring your project
+------------------------
`make menuconfig`
-# Compiling your project
+Compiling your project
+----------------------
`make all`
... will compile app, bootloader and generate a partition table based on the config.
-# Flashing your project
+Flashing your project
+---------------------
When `make all` finishes, it will print a command line to use esptool.py to flash the chip. However you can also do this from make by running:
You don't need to run `make all` before running `make flash`, `make flash` will automatically rebuild anything which needs it.
-# Compiling & Flashing Just the App
+Compiling & Flashing Just the App
+---------------------------------
After the initial flash, you may just want to build and flash just your app, not the bootloader and partition table:
(There's no downside to reflashing the bootloader and partition table each time, if they haven't changed.)
-# The Partition Table
+The Partition Table
+-------------------
Once you've compiled your project, the "build" directory will contain a binary file with a name like "my_app.bin". This is an ESP32 image binary that can be loaded by the bootloader.
For more details about partition tables and how to create custom variations, view the `docs/partition_tables.rst` file.
-# Resources
+Resources
+---------
* The [docs directory of the esp-idf repository](docs) contains esp-idf documentation.