Problems with Arduino AVR Boards v 1.6.12

I am using IDE 1.6.9

After updating Arduino AVR Boards to v. 1.6.12, I can no longer uplload to board. Going back to v. 1.6.11 and it works again.

Tried this on Arduino Mega2560 and Nano. Same result.

Any idea? Erik

There's a chance that Arduino AVR Boards 1.6.12 is just incompatible with Arduino IDE 1.6.9, I haven't checked yet. It's certainly happened in previous releases. Unfortunately the Arduino developers don't bother to test the releases with previous IDE versions which is idiotic since the IDE is going to tell users to update to the new version. You would need to actually post the console output when uploading fails for me to be able to look into the issue.

The update for Arduino AVR Boards version 1.6.11 to 1.6.12 caused errors with my USBasp. I reverted (painfully I might add) my AppData\Local\Arduino15 folder was able to restore my use of the USBasp. The error I got when trying to burn a bootloader or upload using programmer with IDE 1.6.9 and 1.6.10 was:

avrdude: error: could not find USB device "USBasp" with vid=0x16c0 pid=0x5dc

jl277013: avrdude: error: could not find USB device "USBasp" with vid=0x16c0 pid=0x5dc

I also encountered that issue. You can see the verbose output and the modified programmers.txt I added to get past that error here: http://forum.arduino.cc/index.php?topic=415210 The new programmers entry gets me a bit farther in the avrdude process but I get another error(also described in that forum post). I've tried with 4 different USBasps on two different computers with 5 different firmwares and always the same result. With Arduino AVR Boards 1.6.11 everything works fine.

Other users have been able to successfully use their USBasps with Arduino AVR Boards 1.6.12/avrdude 6.3(https://github.com/MCUdude/MightyCore/pull/31#issuecomment-236302052 and https://github.com/arduino/Arduino/issues/5175#issuecomment-236257471) and they don't mention even needing to modify programmers.txt so I'm wondering if it's something specific to Windows(I'm using Windows 7)? I see from your path that you're also using Windows.

pert: There's a chance that Arduino AVR Boards 1.6.12 is just incompatible with Arduino IDE 1.6.9, I haven't checked yet. It's certainly happened in previous releases. Unfortunately the Arduino developers don't bother to test the releases with previous IDE versions which is idiotic since the IDE is going to tell users to update to the new version. You would need to actually post the console output when uploading fails for me to be able to look into the issue.

I updated to IDE V1.6.9 yesterday, and after reading this thread I tested Arduino AVR Boards V1.6.12. I have no problem with uploading to my UNO and Mega2560 boards. (Windows 10 Pro 64-bit.)

But using Arduino AVR Boards V1.6.12 does break my USBASPs, one with original firmware and the other with updated firmware. They work fine with Arduino AVR Boards v1.6.11. (After installing a specialised driver for Win10, but that's another issue. :) )

I also updated to the 1.6.12 board definition on ide 1.6.9 and I get absolutely 0 errors. It just will not upload to the mega2560.

If I use avrdude directly it does upload but the program does not run properly on the 2560 after upload.

went back to 1.6.11 and everything is ok now.

@dennymoney can you provide more information on what problems you had with your mega2560 and Arduino AVR Boards 1.6.12? The Arduino developers are working on fixing some issues with the new avrdude version now so if there are any additional issues it would be good to report them ASAP.

It sounds like they are going to revert back to the old avrdude 6.0.1 for the next release and then maybe the one after go back to a new, improved version.

Hello,

i have a problem with the new IDE 1.6.12 and the command line function.
The Arduino Nano 328 donst’t work, older version 1.6.9 is working.

The standardoutput msg is:

java.lang.NullPointerException
at processing.app.BaseNoGui.selectSerialPort(BaseNoGui.java:1088)
at processing.app.helpers.CommandlineParser.parseArgumentsPhase1(CommandlineParser.java:143)
at processing.app.Base.(Base.java:273)
at processing.app.Base.guardedMain(Base.java:219)
at processing.app.Base.main(Base.java:132)

My command line string is:

“arduino:avr:nano:cpu=atmega328”

Thx for helping.

UlliS: My command line string is:

"arduino:avr:nano:cpu=atmega328"

I'm pretty sure there's more to your command line string than that.

This seems to be an Arduino IDE 1.6.12 specific issue that's already been fixed because I encounter the same issue with 1.6.12 but it works fine with the hourly build or 1.6.11.

This is clear proof that Arduino doesn't do even the most minimal automated testing of their software before they release it as that would obviously use the command line and would immediately have indicated a problem.

Hello Pert,

thanks for this quick infomation.

The complete String is:

“–board arduino:avr:nano:cpu=atmega328 --port COM55 --upload " & “””" & path & “”""

But you have already found my Github entry :slight_smile:

Arduino 1.6.11/1.6.9 and lower version works fine.
I will test the “HOURLY BUILDS” in the evening.

Thx!

I though that GitHub issue report looked familiar. If the issue is fixed for you in the hourly build then please close your GitHub issue so the developers can spend their time fixing all the other bugs the IDE still has instead of dealing with one that's already been solved.

Ok, nevermind on closing the issue, I just received the email that it was closed by the developer just when I made my last comment. If the issue isn't fixed for you in the hourly build then please do report it as that is a serious bug.

:frowning: Got the same issue as rest of the users here. Was running with 1.6.4 and would update to 1.6.13 as this version supported ESP8266. But my old code and libraries won’t accept the new compiler.

My old “Time” library won’t compile, so now I have two compilers. One for the old code and one for the new code. Pretty annoying. >:( >:(

C:\Users\User\Documents\Arduino\libraries\DS1302RTC/DS1302RTC.h:97:26: error: ‘tmElements_t’ has not been declared

static uint8_t read(tmElements_t &tm);

A quick fix :

  1. in your old library directory “C:\Users\user\Documents\Arduino\libraries\Time”, make a copy of the file time.h.
  2. Rename the file time.h to time_old.h (you now have both time.h and time_old.h)
  3. Under directory “C:\Users\user\Documents\Arduino\libraries\Time” add the file time_old.h
  4. Under directory “C:\Users\user\Documents\Arduino\libraries\DS1302RTC” add the file time_old.h
  5. Under directory “C:\Users\user\Documents\Arduino\libraries\DS1302RTC” Edit DS1302RTC.h to “#include <time_old.h>” instead of “#include <time.h>”

I worked for me :slight_smile: (and worked also in version 1.8.2)

It’s a well known issue. The real fix is:

  • Update to the most recent version of the Time library if you’re using an old version.
  • In any of your sketches and libraries, change:
#include <Time.h>

to:

#included <TimeLib.h>

Most libraries with this problem have already been fixed so you may be able to just update to the newest version instead of having to edit the library. If you have a library that hasn’t been fixed then notify the author of the necessary change or if you post a link to it I’ll see what I can do.

pert: It's a well known issue. The real fix is:

  • Update to the most recent version of the Time library if you're using an old version.

Well thats exactly what i did, and then my time.h was suddenly without "tmElements_t &tm". If you read the new time.h Library, you will see the whole part of tmElements_t is missing.

When I installed back the 1.6.9 version it worked perfect. But because I need the new version, I had to do that trick.

Tvixen: If you read the new time.h Library, you will see the whole part of tmElements_t is missing.

That's because they moved all the code to TimeLib.h: https://github.com/PaulStoffregen/Time/blob/master/TimeLib.h#L53 Time.h is only retained for backwards compatibility.

I advise you to be more careful regarding capitalization. It doesn't matter on Windows (in fact that's the source of the problem) but it does on other operating systems. If you don't use the right case for filenames it will make your code not portable.

Ok, installed the Time-Master.zip, and it worked as well as the name change in library.

But why is the time.h library not auto updated in the new compilers after 1.6.11 And why can I find any library called TimeLib in the compiler ?

I don't know if you can answer these questions, but I think this should be a part of the auto library update.

And thanks for enlighten me :D (and others having this error)

Tvixen:
But why is the time.h library not auto updated in the new compilers after 1.6.11
And why can I find any library called TimeLib in the compiler ?

I don’t understand the question. Please provide more details.

The cause of the problem is that recent versions of avr-gcc as well as the tools for other boards have a file named time.h, which is different from the Time library (Time.h). The tools folder has include priority over the library folders. Windows is not case sensitive for filenames so:

#include <Time.h>

is the same as:

#include <time.h>

This means if you’re using Windows and a recent hardware package version you end up including the wrong file and get errors. The solution was for the Time library to be changed to allow the use of a different file name and avoid the conflict. You independently found the same solution, you used a different filename but it works just as well. I replied because I wanted to make it clear that the author of the Time library was aware of the problem and has already done what he can to fix it.

So Time library was fixed but then there are many other libraries and examples that use the Time library and need to have the include statements changed to use TimeLib.h so it’s been a slow process getting the issue completely solved. I’ve submitted a few pull requests to make this fix to various libraries and I think some of them have not been merged yet.

Ahh ok, thanks for the explanation.