Skip to content

Differences between Arduino IDE Versions

Bob Frazier edited this page Dec 31, 2016 · 3 revisions

Differences between Arduino IDE Versions (and associated code changes)

This project was originally developed for the Arduino 1.05 release, but has been updated to be consistent with the source repository used by 1.06. Although it is likely to work with the earlier releases, future releases may have specific requirements, new APIs, and bug fixes, and as such may require the newest IDE. These version-related changes will be described here for reference.

As additional IDE version-related updates are made, they will be documented here.

Relevant changes in Arduino 1.06

Core and Variants

  • boards.txt has minor differences. The patch file 'patch.boards.txt' should work as-is
  • pins_arduino.h changes 'LED_BUILTIN' from uint8_t constant to '#define'
  • pins_arduino.h adds macro 'digitalPinToInterrupt(n)'
  • pins_arduino.h adds macros for SERIAL_PORT_MONITOR, SERIAL_PORT_HARDWARE, etc.
  • Arduino.h adds 'initVariant()' and 'atexit' (both are 'weak' functions)
  • wiring_private.h has definitions for EXTERNAL_INT_0 (etc.) and EXTERNAL_NUM_INTERRUPTS (these are implemented in pins_arduino.h for the xmega)
  • main.c adds call to weak function 'initVariant()' before optional USB init and call to 'setup()'
  • enhancement to String class (WString.h, WString.cpp)
  • enhancement to USBAPI.h, USBCore.cpp
  • Print.h adds 'write' overload for char * (vs ONLY uint8_t *)
  • Print.cpp minor edits, consistent with String enhancements
  • GPL license change (and header/source banner mods), including MIT --> GPL on IPAddress.h
  • partial re-write of CDC.cpp

(project modified to reflect 1.06 changes, verified compatible with 1.05 IDE)

libraries

  • SD library, modifies File.cpp and SD.h by removing File::~File() trivial implementation
  • XWire library, adds support for multiple TWI interfaces using parameterized constructor, and also adds a 'TWI_t *' as the first parameter to the 'twi_XXX' utility functions defined/implemented by twi.c, twi.h in the 'utility' directory.

NOTES on more recent IDE versions

Because of the 'infighting' that had been going on over at Arduino.cc regarding the software and "who has the rights", etc. I have not done ANYTHING with respect to porting XMegaForArduino over to the latest IDE. Once it has become obvious that there are no 'code in flux' issues that would cause me to waste my time, AND the various Linux distros and BSD ports are consistent in the compilers and tools being used, I'll once again make sure that the code is compatible with the latest versions. Until then, you can still download the 1.06 IDE and do the code patches based on the patches tree