Dno (0.8.2) User Guide

The dno command-line build system for Arduino software

July 2025


Table of Contents

Introduction to Dno
1. Installation
1.1. Compatibility
1.2. Dependencies
1.3. Installing From A Tarball
1.4. Installing By Cloning From Github
2. Installing And Updating Arduino Toolsets
2.1. Install The Standard Old Arduino IDE
2.2. Ensure dno Sees The New Files
2.3. Update Installed Boards
3. Getting Started
3.1. Creating The Project Directory
3.2. Create An Initial Sketch
3.3. Select Our Board
3.4. Compiling/Building
3.5. Uploading To A Board
3.6. In Summary
4. A Little Exploration
4.1. On Being Based On make
4.2. The Project Directory
4.3. The BOARD_TYPE File, And Board Types
4.4. Cleaning
4.5. The BOARD_INFO file
4.6. The BOARD_OPTIONS file
4.7. Connecting to Physical Arduino Boards
4.8. Performance
5. The Dno Directory System
5.1. The Project/Root Directory
5.2. Board Subdirectories
5.3. Library Subdirectories
5.4. The docs Subdirectory
6. Libraries
6.1. Developing With Libraries - A Walkthrough
6.2. Unit Testing
7. Documentation with Doxygen
7.1. Doxygen Configuration
7.2. Documenting Libraries
7.3. Building Documentation
8. Other Features and Capabilities
8.1. Revision Control
8.2. Configuration Options
8.3. .ino files
8.4. Tags
8.5. Serial Communication
8.6. EEPROMs
9. Developing and Debugging Dno
9.1. On clones/forks, autotools and configure
10. Why?
10.1. And How?
A. man page for dno(1)
B. man page for dno_bpp(1)
C. man page for dno_checksize(1)
D. man page for dno_commands_for(1)
E. man page for dno_dirinfo(1)
F. man page for dno_requote(1)
G. man page for BOARD_INFO(5)
H. man page for BOARD_OPTIONS(5)
I. man page for BOARD_TYPE(5)
J. GNU General Public License version 3