Skip to content

Commit 56316ea

Browse files
committed
Updated Firmata to version 2.3.6
Merge branch 'soundanalogous-firmata-2-3-6' into ide-1.5.x
2 parents a78761c + cf89c83 commit 56316ea

File tree

6 files changed

+84
-8
lines changed

6 files changed

+84
-8
lines changed

build/shared/revisions.txt

+1
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@ ARDUINO 1.5.3 BETA
3131
* sam: Bugfix SPI library: begin() after end() now works (stimmer)
3232
* sam: Bugfix SPI library: incorrent pin configuration in non-extended mode.
3333
* Ported all libraries to new 1.5 format
34+
* Updated Firmata to version 2.3.6 (Jeff Hoefs)
3435

3536
[firmwares]
3637
* Arduino Due: fixed USB2Serial garbage at startup (https://github.com/arduino/Arduino/pull/1267)

libraries/Firmata/extras/LICENSE.txt

100755100644
File mode changed.

libraries/Firmata/extras/readme.md

+71
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,71 @@
1+
#Firmata
2+
3+
Firmata is a protocol for communicating with microcontrollers from software on a host computer. The [protocol](http://firmata.org/wiki/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. See the [firmata wiki](http://firmata.org/wiki/Main_Page) for additional informataion. If you would like to contribute to Firmata, please see the [Contributing](#contributing) section below.
4+
5+
##Usage
6+
7+
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.
8+
9+
The second and more common model is to load a general purpose sketch called StandardFirmata 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.
10+
11+
##Firmata Client Libraries
12+
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:
13+
14+
* procesing
15+
* [https://github.com/firmata/processing]
16+
* [http://funnel.cc]
17+
* python
18+
* [https://github.com/firmata/pyduino]
19+
* [https://github.com/lupeke/python-firmata]
20+
* [https://github.com/tino/pyFirmata]
21+
* perl
22+
* [https://github.com/ntruchsess/perl-firmata]
23+
* [https://github.com/rcaputo/rx-firmata]
24+
* ruby
25+
* [https://github.com/hardbap/firmata]
26+
* [https://github.com/PlasticLizard/rufinol]
27+
* [http://funnel.cc]
28+
* clojure
29+
* [https://github.com/nakkaya/clodiuno]
30+
* javascript
31+
* [https://github.com/jgautier/firmata]
32+
* [http://breakoutjs.com]
33+
* [https://github.com/rwldrn/johnny-five]
34+
* java
35+
* [https://github.com/4ntoine/Firmata]
36+
* [https://github.com/shigeodayo/Javarduino]
37+
* .NET
38+
* [http://www.imagitronics.org/projects/firmatanet/]
39+
* Flash/AS3
40+
* [http://funnel.cc]
41+
* [http://code.google.com/p/as3glue/]
42+
* PHP
43+
* [https://bitbucket.org/ThomasWeinert/carica-firmata]
44+
45+
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.
46+
47+
48+
<a name="contributing" />
49+
##Contributing
50+
51+
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).
52+
53+
To contribute, fork this respository and create a new topic branch for the bug, feature or other existing issue you are addressing. Submit the pull request against the *dev* branch.
54+
55+
If you would like to contribute but don't have a specific bugfix or new feature to contribute, you can take on an existing issue, see issues labeled "pull-request-encouraged". Add a comment to the issue to express your intent to begin work and/or to get any additional information about the issue.
56+
57+
You must thorougly test your contributed code. In your pull request, describe tests performed to ensure that no existing code is broken and that any changes maintain backwards compatibility with the existing api. Test on multiple Arduino board variants if possible. We hope to enable some form of automated (or at least semi-automated) testing in the future, but for now any tests will need to be executed manually by the contributor and reviewsers.
58+
59+
Maintain the existing code style:
60+
61+
- Indentation is 2 spaces
62+
- Use spaces instead of tabs
63+
- Use camel case for both private and public properties and methods
64+
- Document functions (specific doc style is TBD... for now just be sure to document)
65+
- Insert first block bracket on line following the function definition:
66+
67+
<pre>void someFunction()
68+
{
69+
// do something
70+
}
71+
</pre>

libraries/Firmata/library.properties

+5-5
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
name=Firmata
2-
author=
3-
email=
2+
author=Firmata Developers
3+
email=firmata-devel@lists.sourceforge.net
44
sentence=This library implements the Firmata protocol and allows you to control the Arduino board from the an application on the computer.
55
paragraph=The Firmata library implements the Firmata protocol for communicating with software on the host computer. This allows you to write custom firmware without having to create your own protocol and objects for the programming environment that you are using.
6-
url=
6+
url=http://firmata.org
77
architectures=*
8-
version=1.0
9-
dependencies=SoftwareSerial
8+
version=2.3.6
9+
dependencies=
1010
core-dependencies=arduino (>=1.5.0)

libraries/Firmata/src/Firmata.cpp

+6-2
Original file line numberDiff line numberDiff line change
@@ -67,14 +67,18 @@ void FirmataClass::begin(void)
6767
void FirmataClass::begin(long speed)
6868
{
6969
Serial.begin(speed);
70-
begin(Serial);
71-
blinkVersion();
70+
FirmataSerial = &Serial;
71+
blinkVersion();
72+
printVersion();
73+
printFirmwareVersion();
7274
}
7375

7476
/* begin method for overriding default stream */
7577
void FirmataClass::begin(Stream &s)
7678
{
7779
FirmataSerial = &s;
80+
// do not call blinkVersion() here because some hardware such as the
81+
// Ethernet shield use pin 13
7882
printVersion();
7983
printFirmwareVersion();
8084
}

libraries/Firmata/src/Firmata.h

+1-1
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@
2121
* installed firmware. */
2222
#define FIRMATA_MAJOR_VERSION 2 // for non-compatible changes
2323
#define FIRMATA_MINOR_VERSION 3 // for backwards compatible changes
24-
#define FIRMATA_BUGFIX_VERSION 5 // for bugfix releases
24+
#define FIRMATA_BUGFIX_VERSION 6 // for bugfix releases
2525

2626
#define MAX_DATA_BYTES 32 // max number of data bytes in non-Sysex messages
2727

0 commit comments

Comments
 (0)