Arduino Software Development Environment 1.5.3 is available.

Arduino Software Development Environment 1.5.3 (a Beta version, used for the Due).
is now available, and has replaced the 1.5.2 version.

Note that the format of the libraries has changed, but I do not know
how that impacts the many Libraries that are being "developed/ported"
for use with the Due.

Presumably, dropping an ".h" file and a ".c" file into your sketch folder
is one way of adding a "library", right?

Is there anything that we need to be aware of to use this new version?
Thanks, Gary

The change log is at http://arduino.cc/en/Main/ReleaseNotes

TheKitty:
The change log is at http://arduino.cc/en/Main/ReleaseNotes

does anyone have more information about

sam: Added compatibility for avr/pgmspace.h (Paul Stoffregen)

??

i am assuming that this will allow easy methods for storing large strings in flash?

This appears to have broken the Ethernet library, neither the Webserver or DhcpAddressPrinter examples are working on my Due.

Both run fine on my Uno. I am using a V6 ethernet shield which was working with 1.5.2

I haven't gotten any further in trouble shooting than to make sure the SPI is working by running the CardInfo sketch from the SD library.

Is anyone else having trouble?

the DueGUI library i am using for my touch screen project does not compile anymore. all the errors stem from the use of strings. =(

i have been able to still use extremal I2C EEPROM and RTC circuits fine. i have not tried compiling older projects i have utilizing Ethernet.

I install Arduino IDE 1.5.3 and if i open the icon on desktop, splash screen is shown but nothing else (process arduino.exe ends without error message). New file C:\Users\MYNAME\AppData\Roaming\Arduino15\preferences.txt was also created.
How to debug whats going on?
Behavior is the same as on Windows XP x86 and on Windows 7 x64 (both in Czech language) and on Windows XP x64 (English language)
Nightly build also does not work.
latest versions works

noblepepper:
This appears to have broken the Ethernet library, neither the Webserver or DhcpAddressPrinter examples are working on my Due.

Both run fine on my Uno. I am using a V6 ethernet shield which was working with 1.5.2

I haven't gotten any further in trouble shooting than to make sure the SPI is working by running the CardInfo sketch from the SD library.

Is anyone else having trouble?

I have opened an issue at the github repository but until it gets fixed there adding three lines to the begin function in libraries/SPI/arch/sam/SPI.cpp that accepts an argument corrects this.

void SPIClass::begin(uint8_t _pin) {
    uint32_t spiPin = BOARD_PIN_TO_SPI_PIN(_pin);

    initCb();//1
    SPI_Configure(spi, id, SPI_MR_MSTR | SPI_MR_PS | SPI_MR_MODFDIS);//2
    SPI_Enable(spi);//3
    PIO_Configure(
        g_APinDescription[spiPin].pPort,
        g_APinDescription[spiPin].ulPinType,
        g_APinDescription[spiPin].ulPin,
        g_APinDescription[spiPin].ulPinConfiguration);

    // Default speed set to 4Mhz
    setClockDivider(_pin, 21);
    setDataMode(_pin, SPI_MODE0);
    setBitOrder(_pin, MSBFIRST);
}

Hello,
with the Arduino IDE 1.5.3 the RTClib for the DS1307 on the I2C-bus are not working. I can compile it without errors, but the date/time from the RTC are wrong.

With the IDE 1.5.2 and the same RTClib all works fine.

paulinchen

Quote
sam: Added compatibility for avr/pgmspace.h (Paul Stoffregen)
??

i am assuming that this will allow easy methods for storing large strings in flash?

The Due has no need for the PGM stuff, I haven't looked but I would think the mods are simply to #define some macros that allow older code to compile without errors.

If you want to allocate a large string in flash just using the const keyword should do the trick.


Rob

wallaceb:
the DueGUI library i am using for my touch screen project does not compile anymore. all the errors stem from the use of strings. =(

i have been able to still use extremal I2C EEPROM and RTC circuits fine. i have not tried compiling older projects i have utilizing Ethernet.

wallace may you copy/paste the errors (maybe in another post to see what can be done)?

C

Graynomad:
The Due has no need for the PGM stuff, I haven't looked but I would think the mods are simply to #define some macros that allow older code to compile without errors.

If you want to allocate a large string in flash just using the const keyword should do the trick.

Exactly, the macros removes all the PROGMEM modifiers and replaces all the special str*_p functions with the standard ones (for example strlen_p is replaced with strlen). This should be enough to ensure that sketches compiles correctly without modifications.

Hi,

I know this is a long overdue release. Problems will arise, no doubt about that, I'm expecting the most troubles with the new library format and its backward compatibility (since this is the very first release when it could be tested in the wild). Also the windows installer is showing some problems when installing over a previous installation.

I'm asking you to be patient and to be as much detailed as possible when reporting issues. More releases are coming soon.

Thanks!

change log for 1.5.3:

ARDUINO 1.5.3 BETA 2013.08.30

[ide]
* Removed useless baud rates from serial monitor
* Fixed some minor IDE UI bugs (Shigeru Kanemoto)
* Added support for new 1.5 Library format (https://github.com/arduino/Arduino/wiki/Arduino-IDE-1.5:-Library-specification)
* Pass board type from boards.txt (https://github.com/arduino/Arduino/issues/308)
* Display estimated RAM usage after compile (Loren M. Lang)
* Import library menu is now scrollable
* Scrollable menus can now be scrolled with the mouse wheel

[arduino core]
* sam: Fixed delayMicrosecond() when interrupts are disabled
* sam: Upgraded libsam, and added missing modules (CAN, ETH, etc.) (Thibaut Viard)
* sam: Added compatibility for avr/pgmspace.h (Paul Stoffregen)
* sam: Added serialEvent*() support
* sam: Fixed micros() to work with inside interrupts. (stimmer)
* avr: Added support for Flash strings on String class (Jantje)
* Added support for floating point numbers in String class (Tevin Zhang, SebiTimeWaster)
* sam: Fixed String buffer overflows (Paul Stoffregen)
* avr: Added recipe for assembly files (C. A. Church)
* avr: Use analogPinToChannel if it's defined (Kristian Sloth Lauszus)
* avr: Optimized HardwareSerial buffer (Matthijs Kooijman)
* removed unused flags from String (free 1 byte of SRAM)

[libraries]
EDIT:* sam: Removed CAN library, you can find an updated version here:
EDIT:       https://github.com/collin80/due_can
* sam: Bugfix SPI library: begin() after end() now works (stimmer)
* sam: Bugfix SPI library: incorrent pin configuration in non-extended mode.
* Ported all libraries to new 1.5 format
* Updated Firmata to version 2.3.6 (Jeff Hoefs)

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

[other]
* Merged all improvements made in Arduino IDE 1.0.5

cmaglie:

wallaceb:
the DueGUI library i am using for my touch screen project does not compile anymore. all the errors stem from the use of strings. =(

i have been able to still use extremal I2C EEPROM and RTC circuits fine. i have not tried compiling older projects i have utilizing Ethernet.

wallace may you copy/paste the errors (maybe in another post to see what can be done)?

C

i posted the errors in the DueGUI thread, but here is the same post

wallaceb:
it appears there are problems using this library with the newly released 1.5.3 IDE. there are no issues with 1.5.2. it appears to be a result of changes in the string library.

here are the compile errors i get when compiling the "DueDUI_demo":

DueGUI_demo.ino: In function 'void setup()':

DueGUI_demo:375: error: conversion from 'int' to 'String' is ambiguous
F:\arduino-1.5.3\hardware\arduino\sam\cores\arduino/WString.h:61: note: candidates are: String::String(const __FlashStringHelper*)
F:\arduino-1.5.3\hardware\arduino\sam\cores\arduino/WString.h:59: note:                 String::String(const char*)




if i remove the line `DueGUI.db_St(1,"\n\nSERIAL CONNECTED AT 115200\nCompiled at: ");DueGUI.db_St(1,__TIME__);DueGUI.db_St(1," on: ");DueGUI.db_St(1,__DATE__); DueGUI.db_St(1,"\nVersion number: ");DueGUI.db_St(1,(int)VERSION);DueGUI.db_St(1,"");`

then i get these errors:



F:\Documents\Arduino\libraries\DUEGUI\DUEGUI.cpp: In member function 'String DUEGUI::displayNumFormat(int, int)':
F:\Documents\Arduino\libraries\DUEGUI\DUEGUI.cpp:4195: error: call of overloaded 'String(int&, int)' is ambiguous
F:\arduino-1.5.3\hardware\arduino\sam\cores\arduino/WString.h:73: note: candidates are: String::String(double, int)
F:\arduino-1.5.3\hardware\arduino\sam\cores\arduino/WString.h:72: note:                 String::String(float, int)
F:\arduino-1.5.3\hardware\arduino\sam\cores\arduino/WString.h:71: note:                 String::String(long unsigned int, unsigned char)
F:\arduino-1.5.3\hardware\arduino\sam\cores\arduino/WString.h:70: note:                 String::String(long int, unsigned char)
F:\arduino-1.5.3\hardware\arduino\sam\cores\arduino/WString.h:69: note:                 String::String(unsigned int, unsigned char)
F:\arduino-1.5.3\hardware\arduino\sam\cores\arduino/WString.h:68: note:                 String::String(int, unsigned char)
F:\arduino-1.5.3\hardware\arduino\sam\cores\arduino/WString.h:67: note:                 String::String(unsigned char, unsigned char)
F:\Documents\Arduino\libraries\DUEGUI\DUEGUI.cpp: In member function 'String DUEGUI::IntegerToString(long int, int, char)':
F:\Documents\Arduino\libraries\DUEGUI\DUEGUI.cpp:4206: error: call of overloaded 'String(long int&, int)' is ambiguous
F:\arduino-1.5.3\hardware\arduino\sam\cores\arduino/WString.h:73: note: candidates are: String::String(double, int)
F:\arduino-1.5.3\hardware\arduino\sam\cores\arduino/WString.h:72: note:                 String::String(float, int)
F:\arduino-1.5.3\hardware\arduino\sam\cores\arduino/WString.h:71: note:                 String::String(long unsigned int, unsigned char)
F:\arduino-1.5.3\hardware\arduino\sam\cores\arduino/WString.h:70: note:                 String::String(long int, unsigned char)
F:\arduino-1.5.3\hardware\arduino\sam\cores\arduino/WString.h:69: note:                 String::String(unsigned int, unsigned char)
F:\arduino-1.5.3\hardware\arduino\sam\cores\arduino/WString.h:68: note:                 String::String(int, unsigned char)
F:\arduino-1.5.3\hardware\arduino\sam\cores\arduino/WString.h:67: note:                 String::String(unsigned char, unsigned char)
F:\Documents\Arduino\libraries\DUEGUI\DUEGUI.cpp: In member function 'void DUEGUI::setObjectDate(int, int, int, int, bool, bool)':
F:\Documents\Arduino\libraries\DUEGUI\DUEGUI.cpp:5620: error: call of overloaded 'String(int&, int)' is ambiguous
F:\arduino-1.5.3\hardware\arduino\sam\cores\arduino/WString.h:73: note: candidates are: String::String(double, int)
F:\arduino-1.5.3\hardware\arduino\sam\cores\arduino/WString.h:72: note:                 String::String(float, int)
F:\arduino-1.5.3\hardware\arduino\sam\cores\arduino/WString.h:71: note:                 String::String(long unsigned int, unsigned char)
F:\arduino-1.5.3\hardware\arduino\sam\cores\arduino/WString.h:70: note:                 String::String(long int, unsigned char)
F:\arduino-1.5.3\hardware\arduino\sam\cores\arduino/WString.h:69: note:                 String::String(unsigned int, unsigned char)
F:\arduino-1.5.3\hardware\arduino\sam\cores\arduino/WString.h:68: note:                 String::String(int, unsigned char)
F:\arduino-1.5.3\hardware\arduino\sam\cores\arduino/WString.h:67: note:                 String::String(unsigned char, unsigned char)
F:\Documents\Arduino\libraries\DUEGUI\DUEGUI.cpp:5622: error: call of overloaded 'String(int&, int)' is ambiguous
F:\arduino-1.5.3\hardware\arduino\sam\cores\arduino/WString.h:73: note: candidates are: String::String(double, int)
F:\arduino-1.5.3\hardware\arduino\sam\cores\arduino/WString.h:72: note:                 String::String(float, int)
F:\arduino-1.5.3\hardware\arduino\sam\cores\arduino/WString.h:71: note:                 String::String(long unsigned int, unsigned char)
F:\arduino-1.5.3\hardware\arduino\sam\cores\arduino/WString.h:70: note:                 String::String(long int, unsigned char)
F:\arduino-1.5.3\hardware\arduino\sam\cores\arduino/WString.h:69: note:                 String::String(unsigned int, unsigned char)
F:\arduino-1.5.3\hardware\arduino\sam\cores\arduino/WString.h:68: note:                 String::String(int, unsigned char)
F:\arduino-1.5.3\hardware\arduino\sam\cores\arduino/WString.h:67: note:                 String::String(unsigned char, unsigned char)

[/quote]

Graynomad:

Quote
sam: Added compatibility for avr/pgmspace.h (Paul Stoffregen)
??

i am assuming that this will allow easy methods for storing large strings in flash?

The Due has no need for the PGM stuff, I haven't looked but I would think the mods are simply to #define some macros that allow older code to compile without errors.

If you want to allocate a large string in flash just using the const keyword should do the trick.


Rob

Just to clarify:

const char message1[]="Hello world!";
Serial.println(message1);

This stores the string in flash and reads it from flash directly or does it bring it into RAM before sending it out the serial port?

Edit: Has it always been this way? ie 1.5.2?