Skip to content

Commit b112c41

Browse files
Merge pull request #368 from frederic34/markdown
Markdown epidemic
2 parents f13a61b + 4cfb2bc commit b112c41

File tree

1 file changed

+62
-49
lines changed

1 file changed

+62
-49
lines changed

readme.md

Lines changed: 62 additions & 49 deletions
Original file line numberDiff line numberDiff line change
@@ -1,78 +1,91 @@
1-
#Firmata
1+
# Firmata
22

3-
[![Gitter](https://badges.gitter.im/Join Chat.svg)](https://gitter.im/firmata/arduino?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
3+
[![Gitter](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/firmata/arduino?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
44

55
Firmata is a protocol for communicating with microcontrollers from software on a host computer. The [protocol](https://github.com/firmata/protocol) can be implemented in firmware on any microcontroller architecture as well as software on any host computer software package. The Arduino repository described here is a Firmata library for Arduino and Arduino-compatible devices. If you would like to contribute to Firmata, please see the [Contributing](#contributing) section below.
66

7-
##Usage
7+
# Contents
8+
9+
- [Usage](#usage)
10+
- [Firmata Client Libraries](#firmata-client-libraries)
11+
- [Updating Firmata in the Arduino IDE - Arduino 1.6.4 and higher](#updating-firmata-in-the-arduino-ide---arduino-164-and-higher)
12+
- [Cloning Firmata](#cloning-firmata)
13+
- [Updating Firmata in the Arduino IDE - older versions (<= 1.6.3 or 1.0.x)](#updating-firmata-in-the-arduino-ide---older-versions--163-or-10x)
14+
- [Mac OSX:](#mac-osx)
15+
- [Windows](#windows)
16+
- [Linux](#linux)
17+
- [Using the Source code rather than release archive (only for versions older than Arduino 1.6.3)](#using-the-source-code-rather-than-release-archive-only-for-versions-older-than-arduino-163)
18+
- [Contributing](#contributing)
19+
20+
## Usage
821

922
There are two main models of usage of Firmata. In one model, the author of the Arduino sketch uses the various methods provided by the Firmata library to selectively send and receive data between the Arduino device and the software running on the host computer. For example, a user can send analog data to the host using ``` Firmata.sendAnalog(analogPin, analogRead(analogPin)) ``` or send data packed in a string using ``` Firmata.sendString(stringToSend) ```. See File -> Examples -> Firmata -> AnalogFirmata & EchoString respectively for examples.
1023

1124
The second and more common model is to load a general purpose sketch called StandardFirmata (or one of the variants such as StandardFirmataPlus or StandardFirmataEthernet depending on your needs) on the Arduino board and then use the host computer exclusively to interact with the Arduino board. StandardFirmata is located in the Arduino IDE in File -> Examples -> Firmata.
1225

13-
##Firmata Client Libraries
26+
## Firmata Client Libraries
1427
Most of the time you will be interacting with Arduino with a client library on the host computers. Several Firmata client libraries have been implemented in a variety of popular programming languages:
1528

1629
* processing
17-
* [https://github.com/firmata/processing]
18-
* [http://funnel.cc]
30+
* [https://github.com/firmata/processing](https://github.com/firmata/processing)
31+
* [http://funnel.cc](http://funnel.cc)
1932
* python
20-
* [https://github.com/MrYsLab/pymata-aio]
21-
* [https://github.com/MrYsLab/PyMata]
22-
* [https://github.com/tino/pyFirmata]
23-
* [https://github.com/lupeke/python-firmata]
24-
* [https://github.com/firmata/pyduino]
33+
* [https://github.com/MrYsLab/pymata-aio](https://github.com/MrYsLab/pymata-aio)
34+
* [https://github.com/MrYsLab/PyMata]([https://github.com/MrYsLab/PyMata)
35+
* [https://github.com/tino/pyFirmata](https://github.com/tino/pyFirmata)
36+
* [https://github.com/lupeke/python-firmata](https://github.com/lupeke/python-firmata)
37+
* [https://github.com/firmata/pyduino](https://github.com/firmata/pyduino)
2538
* perl
26-
* [https://github.com/ntruchsess/perl-firmata]
27-
* [https://github.com/rcaputo/rx-firmata]
39+
* [https://github.com/ntruchsess/perl-firmata](https://github.com/ntruchsess/perl-firmata)
40+
* [https://github.com/rcaputo/rx-firmata](https://github.com/rcaputo/rx-firmata)
2841
* ruby
29-
* [https://github.com/hardbap/firmata]
30-
* [https://github.com/PlasticLizard/rufinol]
31-
* [http://funnel.cc]
42+
* [https://github.com/hardbap/firmata](https://github.com/hardbap/firmata)
43+
* [https://github.com/PlasticLizard/rufinol](https://github.com/PlasticLizard/rufinol)
44+
* [http://funnel.cc](http://funnel.cc)
3245
* clojure
33-
* [https://github.com/nakkaya/clodiuno]
34-
* [https://github.com/peterschwarz/clj-firmata]
46+
* [https://github.com/nakkaya/clodiuno](https://github.com/nakkaya/clodiuno)
47+
* [https://github.com/peterschwarz/clj-firmata](https://github.com/peterschwarz/clj-firmata)
3548
* javascript
36-
* [https://github.com/jgautier/firmata]
37-
* [https://github.com/rwldrn/johnny-five]
38-
* [http://breakoutjs.com]
49+
* [https://github.com/jgautier/firmata](https://github.com/jgautier/firmata)
50+
* [https://github.com/rwldrn/johnny-five](https://github.com/rwldrn/johnny-five)
51+
* [http://breakoutjs.com](http://breakoutjs.com)
3952
* java
40-
* [https://github.com/kurbatov/firmata4j]
41-
* [https://github.com/4ntoine/Firmata]
42-
* [https://github.com/reapzor/FiloFirmata]
53+
* [https://github.com/kurbatov/firmata4j](https://github.com/kurbatov/firmata4j)
54+
* [https://github.com/4ntoine/Firmata](https://github.com/4ntoine/Firmata)
55+
* [https://github.com/reapzor/FiloFirmata](https://github.com/reapzor/FiloFirmata)
4356
* .NET
44-
* [https://github.com/SolidSoils/Arduino]
45-
* [http://www.acraigie.com/programming/firmatavb/default.html]
57+
* [https://github.com/SolidSoils/Arduino](https://github.com/SolidSoils/Arduino)
58+
* [http://www.acraigie.com/programming/firmatavb/default.html](http://www.acraigie.com/programming/firmatavb/default.html)
4659
* Flash/AS3
47-
* [http://funnel.cc]
48-
* [http://code.google.com/p/as3glue/]
60+
* [http://funnel.cc](http://funnel.cc)
61+
* [http://code.google.com/p/as3glue/](http://code.google.com/p/as3glue/)
4962
* PHP
50-
* [https://github.com/ThomasWeinert/carica-firmata]
51-
* [https://github.com/oasynnoum/phpmake_firmata]
63+
* [https://github.com/ThomasWeinert/carica-firmata]()
64+
* [https://github.com/oasynnoum/phpmake_firmata](https://github.com/oasynnoum/phpmake_firmata)
5265
* Haskell
53-
* [http://hackage.haskell.org/package/hArduino]
66+
* [http://hackage.haskell.org/package/hArduino](http://hackage.haskell.org/package/hArduino)
5467
* iOS
55-
* [https://github.com/jacobrosenthal/iosfirmata]
68+
* [https://github.com/jacobrosenthal/iosfirmata](https://github.com/jacobrosenthal/iosfirmata)
5669
* Dart
57-
* [https://github.com/nfrancois/firmata]
70+
* [https://github.com/nfrancois/firmata](https://github.com/nfrancois/firmata)
5871
* Max/MSP
59-
* [http://www.maxuino.org/]
72+
* [http://www.maxuino.org/](http://www.maxuino.org/)
6073
* Elixir
61-
* [https://github.com/kfatehi/firmata]
74+
* [https://github.com/kfatehi/firmata](https://github.com/kfatehi/firmata)
6275
* Modelica
63-
* [https://www.wolfram.com/system-modeler/libraries/model-plug/]
76+
* [https://www.wolfram.com/system-modeler/libraries/model-plug/](https://www.wolfram.com/system-modeler/libraries/model-plug/)
6477
* Go
65-
* [https://github.com/kraman/go-firmata]
78+
* [https://github.com/kraman/go-firmata](https://github.com/kraman/go-firmata)
6679
* vvvv
67-
* [https://vvvv.org/blog/arduino-second-service]
80+
* [https://vvvv.org/blog/arduino-second-service](https://vvvv.org/blog/arduino-second-service)
6881
* openFrameworks
69-
* [http://openframeworks.cc/documentation/communication/ofArduino/]
82+
* [http://openframeworks.cc/documentation/communication/ofArduino/](http://openframeworks.cc/documentation/communication/ofArduino/)
7083
* Rust
71-
* [https://github.com/zankich/rust-firmata]
84+
* [https://github.com/zankich/rust-firmata](https://github.com/zankich/rust-firmata)
7285

7386
Note: The above libraries may support various versions of the Firmata protocol and therefore may not support all features of the latest Firmata spec nor all Arduino and Arduino-compatible boards. Refer to the respective projects for details.
7487

75-
##Updating Firmata in the Arduino IDE - Arduino 1.6.4 and higher
88+
## Updating Firmata in the Arduino IDE - Arduino 1.6.4 and higher
7689

7790
If you want to update to the latest stable version:
7891

@@ -81,7 +94,7 @@ If you want to update to the latest stable version:
8194
3. Click the `Select version` dropdown and select the most recent version (note you can also install previous versions)
8295
4. Click `Install`.
8396

84-
###Cloning Firmata
97+
### Cloning Firmata
8598

8699
If you are contributing to Firmata or otherwise need a version newer than the latest tagged release, you can clone Firmata directly to your Arduino/libraries/ directory (where 3rd party libraries are installed). This only works for Arduino 1.6.4 and higher, for older versions you need to clone into the Arduino application directory (see section below titled "Using the Source code rather than release archive"). Be sure to change the name to Firmata as follows:
87100

@@ -92,13 +105,13 @@ $ git clone [email protected]:firmata/arduino.git ~/Documents/Arduino/libraries/Fir
92105
*Update path above if you're using Windows or Linux or changed the default Arduino directory on OS X*
93106

94107

95-
##Updating Firmata in the Arduino IDE - older versions (<= 1.6.3 or 1.0.x)
108+
## Updating Firmata in the Arduino IDE - older versions (<= 1.6.3 or 1.0.x)
96109

97110
Download the latest [release](https://github.com/firmata/arduino/releases/tag/2.5.6) (for Arduino 1.0.x or Arduino 1.5.6 or higher) and replace the existing Firmata folder in your Arduino application. See the instructions below for your platform.
98111

99112
*Note that Arduino 1.5.0 - 1.5.5 are not supported. Please use Arduino 1.5.6 or higher (or Arduino 1.0.5 or 1.0.6).*
100113

101-
###Mac OSX:
114+
### Mac OSX:
102115

103116
The Firmata library is contained within the Arduino package.
104117

@@ -112,7 +125,7 @@ for Arduino 1.0.x vs 1.6.x)
112125
*If you are using the Java 7 version of Arduino 1.5.7 or higher, the file path
113126
will differ slightly: `Contents/Java/libraries/Firmata` (no Resources directory).*
114127

115-
###Windows:
128+
### Windows:
116129

117130
1. Navigate to `c:/Program\ Files/arduino-1.x/libraries/` and replace the existing
118131
`Firmata` folder with the latest [Firmata release](https://github.com/firmata/arduino/releases/tag/2.5.6) (note there is a different download
@@ -121,7 +134,7 @@ for Arduino 1.0.x vs 1.6.x).
121134

122135
*Update the path and Arduino version as necessary*
123136

124-
###Linux:
137+
### Linux:
125138

126139
1. Navigate to `~/arduino-1.x/libraries/` and replace the existing
127140
`Firmata` folder with the latest [Firmata release](https://github.com/firmata/arduino/releases/tag/2.5.6) (note there is a different download
@@ -130,7 +143,7 @@ for Arduino 1.0.x vs 1.6.x).
130143

131144
*Update the path and Arduino version as necessary*
132145

133-
###Using the Source code rather than release archive (only for versions older than Arduino 1.6.3)
146+
### Using the Source code rather than release archive (only for versions older than Arduino 1.6.3)
134147

135148
*It is recommended you update to Arduino 1.6.4 or higher if possible, that way you can clone directly into the external Arduino/libraries/ directory which persists between Arduino application updates. Otherwise you will need to move your clone each time you update to a newer version of the Arduino IDE.*
136149

@@ -155,8 +168,8 @@ To generate properly formatted versions of Firmata (for Arduino 1.0.x and Arduin
155168
`release.sh` script.
156169

157170

158-
<a name="contributing" />
159-
##Contributing
171+
172+
## Contributing
160173

161174
If you discover a bug or would like to propose a new feature, please open a new [issue](https://github.com/firmata/arduino/issues?sort=created&state=open). Due to the limited memory of standard Arduino boards we cannot add every requested feature to StandardFirmata. Requests to add new features to StandardFirmata will be evaluated by the Firmata developers. However it is still possible to add new features to other Firmata implementations (Firmata is a protocol whereas StandardFirmata is just one of many possible implementations).
162175

0 commit comments

Comments
 (0)