This is a tool to generate and publish online documentation for Arduino libraries. It uses Sphinx, Doxygen and Breathe to build documentation from the source code of your Arduino library and publish it online on ReadTheDocs.

Online Documentation

To add online documentation to your library on ReadTheDocs, you just need to follow these steps:

  1. Install Python
  2. Add documentation to your Arduino library using the Doxygen standard
  3. Add a README.rst and make sure to add a ---- transition somewhere. The README text will be included in the documentation up to that point.
  4. Copy to the root directory of your library and run it
  5. Push your library code to GitHub
  6. Publish it to ReadTheDocs
    1. Click “Import a Project”
    2. Connect to your GitHub account if you haven’t done it yet
    3. Click “Import from GitHub”
    4. Select you project and click “Create”
    5. Enter the project page in ReadTheDocs, click on Admin > Advanced Settings and use extras/docs/requirements.txt as the requirements file
  7. Wait for your online documentation to build automatically. Enjoy!

Every time you push changes to your Github repository, the documentation will be automatically rebuilt by ReadTheDocs.

This repository itself has been set up as an Arduino library called ArduinoDocs (see ArduinoDocs.h and ArduinoDocs.cpp). You can look at those files to see how to document your library code, and see how the auto-generated documentation looks in

Local Build

If you want to build the documentation locally, you need to:

  1. Install Sphinx: pip install Sphinx
  2. Install Breathe: pip install breathe
  3. Download and install Doxygen
  4. Follow the steps in the Online Documentation section up to the point where is run
  5. cd to the docs directory
  6. Run doxygen to extract the documentation from your source code
  7. Run sphinx-build -b html . _build/html to generate the HTML documentation
  8. Check documentation generated in _build/html

Class Documentation

class ArduinoDocs

Brief description of the ArduinoDocs class.

Detailed description of the ArduinoDocs class.

Public Functions



Detailed constructor description.

void method1()

Brief documentation for method1().

Detailed documentation for method1().

int method2(int p1, int p2)

Brief documentation for method2().

Detailed documentation for method2().

return value for method2().

This documentation was built using ArduinoDocs.