# arduino-mode

> major-mode for editing Arduino code in emacs

**Wikidata**: [Q108435147](https://www.wikidata.org/wiki/Q108435147)  
**Source**: https://4ort.xyz/entity/arduino-mode

## Summary
Arduino-mode is a major-mode for editing Arduino code in GNU Emacs, distributed as a free software package. It is written in Emacs Lisp and supports multiple operating systems, including Microsoft Windows, macOS, BSD, and Unix-like systems. The project is maintained on GitHub and distributed via NonGNU ELPA, with versions 1.3.0 and 1.3.1 released in 2021 and 2024, respectively.

## Key Facts
- **Major-mode for Arduino code editing** in GNU Emacs, specifically designed for Arduino programming.
- **Written in Emacs Lisp**, the dialect of Lisp used in GNU Emacs (inception: 1985).
- **Distributed as free software**, allowing users to run, study, change, and distribute it under permissive terms.
- **Available for multiple operating systems**: Microsoft Windows (inception: 1985-11-20), macOS (inception: 2001-03-24), BSD, and Unix-like systems.
- **Version 1.3.0** released on 2021-08-29, with a stable version available via NonGNU ELPA.
- **Version 1.3.1** released on 2024-05-27, also distributed via NonGNU ELPA.
- **Primary website**: [elpa.nongnu.org/nongnu/arduino-mode.html](https://elpa.nongnu.org/nongnu/arduino-mode.html) (user-facing).
- **Alternative repositories**: GitHub ([stardiviner/arduino-mode](https://github.com/stardiviner/arduino-mode)) and [repo.or.cz/arduino-mode.git](https://repo.or.cz/arduino-mode.git).
- **Copyrighted** by Christopher Grim (point in time: 2008).
- **Different from** the official Arduino IDE and Arduino IDE 2.x.
- **Distributed by NonGNU ELPA** since 2021-08-29.
- **Package identifiers**: `emacs-arduino-mode` (Nixpkgs), `arduino-mode` (MELPA), and `emacs:arduino-mode` (Repology).

## FAQs
**What is Arduino-mode, and how does it differ from the Arduino IDE?**
Arduino-mode is a major-mode for GNU Emacs that provides specialized editing support for Arduino code, written in Emacs Lisp. Unlike the official Arduino IDE, it is distributed as free software and integrates directly into Emacs, allowing developers to edit Arduino sketches alongside other code files.

**Which operating systems does Arduino-mode support?**
Arduino-mode supports Microsoft Windows, macOS, BSD, and Unix-like operating systems, making it compatible with a wide range of development environments.

**How is Arduino-mode distributed, and where can I find it?**
Arduino-mode is distributed via NonGNU ELPA and is available on GitHub ([stardiviner/arduino-mode](https://github.com/stardiviner/arduino-mode)) and [repo.or.cz/arduino-mode.git](https://repo.or.cz/arduino-mode.git). The primary user-facing website is [elpa.nongnu.org/nongnu/arduino-mode.html](https://elpa.nongnu.org/nongnu/arduino-mode.html).

**What programming language is Arduino-mode written in?**
Arduino-mode is written in Emacs Lisp, the dialect of Lisp used in GNU Emacs, which was first developed in 1985.

**Who holds the copyright for Arduino-mode?**
The copyright for Arduino-mode is held by Christopher Grim, as of 2008.

## Why It Matters
Arduino-mode fills a niche in the Arduino development ecosystem by providing a lightweight, Emacs-native alternative to the official Arduino IDE. Its free software licensing ensures accessibility for developers who prefer open-source tools. By integrating with GNU Emacs, it allows users to manage Arduino projects alongside other codebases, streamlining workflows for those who rely on Emacs for their development environment. Its compatibility with multiple operating systems further broadens its appeal, making it a versatile choice for Arduino enthusiasts and professionals alike.

## Notable For
- **Free software distribution**, allowing users to freely run, study, change, and distribute the software.
- **Integration with GNU Emacs**, providing specialized editing support for Arduino code within the Emacs ecosystem.
- **Multi-platform support**, including Microsoft Windows, macOS, BSD, and Unix-like systems.
- **Active maintenance**, with versions 1.3.0 and 1.3.1 released in 2021 and 2024, respectively.
- **Distributed via NonGNU ELPA**, ensuring availability for Emacs users.
- **Different from the official Arduino IDE**, offering an alternative for developers who prefer Emacs-based workflows.

## Body
### Overview
Arduino-mode is a major-mode for GNU Emacs designed specifically for editing Arduino code. It is written in Emacs Lisp, the dialect of Lisp used in GNU Emacs, and is distributed as free software under permissive terms. The project is maintained on GitHub and distributed via NonGNU ELPA, with versions 1.3.0 and 1.3.1 released in 2021 and 2024, respectively.

### Operating Systems
Arduino-mode supports multiple operating systems, including Microsoft Windows, macOS, BSD, and Unix-like systems. This broad compatibility ensures that developers can use Arduino-mode regardless of their preferred platform.

### Distribution and Availability
Arduino-mode is distributed via NonGNU ELPA, with the primary user-facing website located at [elpa.nongnu.org/nongnu/arduino-mode.html](https://elpa.nongnu.org/nongnu/arduino-mode.html). The project is also available on GitHub ([stardiviner/arduino-mode](https://github.com/stardiviner/arduino-mode)) and [repo.or.cz/arduino-mode.git](https://repo.or.cz/arduino-mode.git).

### Versions and Releases
- **Version 1.3.0** was released on 2021-08-29 and is available via NonGNU ELPA.
- **Version 1.3.1** was released on 2024-05-27 and is also distributed via NonGNU ELPA.

### Copyright and Licensing
The copyright for Arduino-mode is held by Christopher Grim, as of 2008. The project is distributed as free software, allowing users to freely run, study, change, and distribute it.

### Related Projects
Arduino-mode is different from the official Arduino IDE and Arduino IDE 2.x, offering an alternative for developers who prefer Emacs-based workflows. It integrates with GNU Emacs, providing specialized editing support for Arduino code within the Emacs ecosystem.

### Package Identifiers
Arduino-mode is identified by several package identifiers, including:
- `emacs-arduino-mode` (Nixpkgs)
- `arduino-mode` (MELPA)
- `emacs:arduino-mode` (Repology)

### Programming Language
Arduino-mode is written in Emacs Lisp, the dialect of Lisp used in GNU Emacs, which was first developed in 1985. This choice ensures seamless integration with GNU Emacs and leverages the existing Emacs ecosystem for development and maintenance.

## References

1. [Arduino-Mode version 1.3.0. 2021](https://lists.gnu.org/archive/html/gnu-emacs-sources/2021-08/msg00078.html)
2. [[NonGNU ELPA] Arduino-Mode version 1.3.1. 2024](https://lists.gnu.org/archive/html/gnu-emacs-sources/2024-05/msg00065.html)