1 FIRMATA 2.5.7 - Aug 19, 2017
4 * Added support for Adafruit nrf52 boards (hathach)
5 * Added TCP server option to StandardFirmataEthernet (MJPees)
6 * Added support for STM32-based boards (fpistm)
7 * Added support for MKRFox1200 (sandeepmistry)
9 [StandardFirmata & variants]
10 * Fixed I2C config parameter interpretation (zfields)
11 * Improve debug output in StandardFirmataEthernet
13 FIRMATA 2.5.6 - Mar 18, 2017
16 * Fixed string encoder/decoder bug that also affected I2C (Zak Fields)
17 * Added support for Arduino Primo (chiararuggeri)
18 * Added unit tests for Firmata string message encoding/decoding
20 FIRMATA 2.5.5 - Mar 6, 2017
23 * Updated BLEStream for compatibility with CurieBLE v2 (Sandeep Mistry)
24 * Added support for MKRZero (Sandeep Mistry)
26 This update also includes a number of changes from an ongoing refactor by
27 Zak Fields of the Firmata core. These changes don't impact user facing sketches,
28 they are all internal only. Changes include:
30 * Split out parser logic into new lib free of Arduino-specific dependencies.
31 * Add new class to support cross platform marshalling of Firmata procedure calls.
32 * Split out core constants to separate file.
33 * Split out core defines to separate file.
34 * Added firmata namespace to core library classes.
36 FIRMATA 2.5.4 - Oct 23, 2016
39 * Added Teensy 3.5 and 3.6 to Boards.h
40 * Assign blinkVersionDisabled in constructor to fix compiler issue in Arduino 1.0.6
42 [StandardFirmata & variants]
43 * Only disable PWM when setting pinMode to OUTPUT if pinMode was previously PWM
44 * Forward declare some functions to fix compiler issues with older IDE versions
46 FIRMATA 2.5.3 - Jun 18, 2016
49 * Added ESP8266 support (Jens B. & Jacob Rosenthal)
50 * Added host connection callback (Jens B.)
51 * Added Wi-Fi TCP client (Jens B.)
52 * Added BLE transport (BLEStream based on BLESerial by Volta Molda)
53 * Fixed Arduino Galileo and Edison compile issues
55 [StandardFirmata & variants]
56 * Added StandardFirmataBLE (for use with Arduino 101)
57 * Added ability to choose between Wi-Fi TCP client or server (Jens B.)
58 * Various updates to StandardFirmataWiFi (Jens B.)
59 * Increased I2C RX data buffer from 32 to 64 bytes (Rick Waldron)
60 * Removed StandardFirmataEthernetPlus
61 * Made StandardFirmataEtherent configurable (to optionally add Plus functionality)
62 * Improved configuration instructions for StandardFirmataEthernet and StandardFirmataWiFi
64 FIRMATA 2.5.2 - Feb 15, 2016
67 * Added Wi-Fi transport (Jesse Frush)
68 * Added support for Arduino MKR1000 (Jesse Frush)
69 * Moved Serial feature to own class SerialFirmata
70 * Moved pin config and pin state handling to Firmata.cpp
71 * Added new method disableBlinkVersion to provide a way to optionally bypass startup blink sequence
73 [StandardFirmata & variants]
74 * Added StandardFirmataWiFi (Jesse Frush)
75 * Added ethernetConfig.h for StandardFirmataEthernet and StandardFirmtaEthernetPlus
76 * Removed serialUtils.h and using SerialFirmata class instead for Serial feature
78 FIRMATA 2.5.1 - Dec 26, 2015
81 * Added support for Arduino 101
82 * Make VERSION_BLINK_PIN optional
83 * Separate protocol version from firmware version.
84 Use FIRMATA_PROTOCOL_VERSION_[MAJOR/MINOR/BUGFIX] for protocol and use
85 FIRMATA_FIRMWARE_VERSION_[MAJOR/MINOR/BUGFIX] for firmware (library version).
87 [StandardFirmata & variants]
88 * Added ability to auto-restart I2C transmission by setting bit 6 of byte 3
89 of the I2C_REQUEST message.
91 FIRMATA 2.5.0 - Nov 7, 2015
94 * Added Serial feature for interfacing with serial devices via hardware
95 or software serial. See github.com/firmata/protocol/serial.md for details
96 * Added ability to set the value of a pin by sending a single value instead
97 of a port value. See 'set digital pin value' in github.com/firmata/protocol/protocol.md
99 * Added support for Arduino Zero board
100 * Added support for Teensy LC board (copied from Teensy Firmata lib)
101 * Added support for Pinoccio Scout board (Pawel Szymczykowski)
102 * Lowered minimun sampling interval from 10 to 1 millisecond
103 * Added new pin mode (PIN_MODE_PULLUP) for setting the INPUT_PULLUP pin mode
104 * Changed pin mode defines to safer names (old names still included but
105 deprecated) - see Firmata.h
107 [StandardFirmata & variants]
108 * Created new StandardFirmataPlus that implements the Serial feature
109 Note: The new Serial features is only implemented in the "Plus" versions of
111 * Created new StandardFirmataEthernetPlus that implements the Serial feature
112 * Fixed issue where StandardFirmata was not compiling for Intel Galileo boards
113 * Moved StandardFirmataYun to its own repo (github.com/firmata/StandardFirmataYun)
115 FIRMATA 2.4.4 - Aug 9, 2015
118 * Added support for chipKIT boards (Brian Schmalz, Rick Anderson and Keith Vogel)
119 * Added support for ATmega328 boards (previously only ATmega328p was supported)
122 * Added StandardFirmataChipKIT for ChipKIT boards (Brian Schmalz, Rick Anderson and Keith Vogel)
123 * Ensure Serial is ready on Leonardo and other ATMega32u4-based boards
125 FIRMATA 2.4.3 - Apr 11, 2015
128 * Added debug macros (utility/firmataDebug.h)
129 * Added Norbert Truchsess' EthernetClientStream lib from the configurable branch
132 * Added StandardFirmataEthernet to enable Firmata over Ethernet
133 * Minor updates to StandardFirmata and StandardFirmataYun
135 FIRMATA 2.4.2 - Mar 16, 2015
138 * Add support for Teesy 3.1 (Olivier Louvignes)
140 FIRMATA 2.4.1 - Feb 7, 2015
143 * Fixed off-by-one bug in setFirmwareNameAndVersion (Brian Schmalz)
146 * Prevent analog values from being reported during system reset
148 FIRMATA 2.4.0 - Dec 21, 2014
150 Changes from 2.3.6 to 2.4 that may impact existing Firmata client implementations:
152 * When sending a string from the client application to the board (STRING_DATA) a
153 static buffer is now used for the incoming string in place of a dynamically allocated
154 block of memory (see Firmata.cpp lines 181 - 205). In Firmata 2.3.6 and older,
155 the dynamically allocated block was never freed, causing a memory leak. If your
156 client library had freed this memory in the string callback method, that code
157 will break in Firmata 2.4. If the string data needs to persist beyond the string
158 callback, it should be copied within the string callback.
160 * As of Firmata 2.4, when digital port reporting or analog pin reporting is enabled,
161 the value of the port (digital) or pin (analog) is immediately sent back to the client
162 application. This will likely not have a negative impact on existing client
163 implementations, but may be unexpected. This feature was added to better support
164 non-serial streams (such as Ethernet, Wi-Fi, Bluetooth, etc) that may lose
165 connectivity and need a quick way to get the current state of the pins upon
166 reestablishing a connection.
169 * Changed sendValueAsTwo7bitBytes, startSysex and endSysex from private to
171 * Added Intel Galileo to Boards.h
172 * Renamed FirmataSerial to FirmataStream
173 * Updated to latest Arduino library format
174 * writePort function in Boards.h now returns 1 (to suppress compiler warning)
175 * Updated syntax highlighting (keywords.txt)
176 * Fixed IS_PIN_SPI ifndef condition in boards.h
177 * Added constants to Firmata.h to reserve configurable firmata features
178 * Fixed issue where firmwareName was not reported correctly in Windows
179 * Ensure incoming String via STRING_DATA command is null-terminated
180 * Fixed memory leak when receiving String via STRING_DATA command
181 (note this change may break existing code if you were manually deallocating
182 the incoming string in your string callback function. See code for details)
183 * Added ability for user to specify a filename when calling setFirmwareNameAndVersion
184 * Increased input data buffer size from 32 to 64 bytes
187 * Updated I2C_READ_CONTINUOUSLY to work with or without slaveRegister (Rick Waldron)
188 * Added Yun variant of StandardFirmata
189 * When a digital port is enabled, its value is now immediately sent to the client
190 * When an analog pin is enabled, its value is now immediately sent to the client
191 * Changed the way servo pins are mapped to enable use of servos on
192 a wider range of pins, including analog pins.
193 * Fixed management of unexpected sized I2C replies (Nahuel Greco)
194 * Fixed a bug when removing a monitored device with I2C_STOP_Reading (Nahuel Greco)
195 * Fixed conditional expression in I2C_STOP_READING case
196 * Changed samplingInterval from type int to type unsigned int
197 * Shortened error message strings to save a few bytes
200 * Updated FirmataServo example to use new pin mapping technique
201 * Removed makefiles from examples (because they were not being updated)
202 * Updated all examples to set current firmware version
204 FIRMATA 2.3.6 - Jun 18, 2013 (Version included with Arduino core libraries)
207 * Fixed bug introduced in 2.3.5 that broke ability to use Ethernet.
209 FIRMATA 2.3.5 - May 21, 2013
212 * Added Arduino Due to Boards.h
213 * Added Teensy 3.0 to Boards.h
214 * Updated unit tests to use ArduinoUnit v2.0
215 * Renamed pin13strobe to strobeBlinkPin
216 * Removed blinkVersion method from begin method for non-serial streams
217 * Fixed memory leak in setting firmware version (Matthew Murdoch)
218 * Added unit tests for a few core functions (Matthew Murdoch)
219 * Added IS_PIN_SPI macro to all board definitions in Board.h (Norbert Truchsess)
221 FIRMATA 2.3.4 - Feb 11, 2013
224 * Fixed Stream implementation so Firmata can be used with Streams other than
225 Serial (Norbert Truchsess)
227 FIRMATA 2.3.3 - Oct 6, 2012
230 * Added write method to expose FirmataSerial.write
231 * Added Arduino Leonardo to Boards.h
234 * Changed all instances of Serial.write to Firmata.write
235 * Fixed delayMicroseconds(0) bug in readAndReportData
237 FIRMATA 2.3.0 - 2.3.2
239 * Removed angle from servo config
240 * Changed file extensions from .pde to .ino
241 * Added MEGA2560 to Boards.h
242 * Added I2C pins to Boards.h
243 * Modified examples to be compatible with Arduino 0022 and 1.0 or greater
244 * Removed I2CFirmata example
245 * Changes to StandardFirmata
247 * Added system reset message to reset all pins to default config on sysex reset
249 FIRMATA 2.2 (changes prior to Firmata 2.3.0 were not well documented)
251 * changes undocumented
255 * added support for changing the sampling interval
256 * added Servo support
260 * changed to 8-bit port-based digital messages to mirror ports from previous 14-bit ports modeled after the standard Arduino board.
261 * switched order of version message so major version is reported first
265 * switched to MIDI-compatible packet format (though the message interpretation differs)