Author Options:

Arduino BOARDs.TXT messed up Answered

I messed up a bit in the boards.txt... I suppose. I added a few extra's for ATTiny, ATMega... And now I get some errors, but I can still program.
I think it came by installing newer updates over new updates from the IDE. A little time ago, you had to be sure to copy your "not standard" libraries to another place, before making updates of the IDE, it looks that now you don't have to anymore. But I keep fighting the BOARDS.TXT

Can anyone help me, how I get it right again?


The forums are retiring in 2021 and are now closed for new topics and comments.

3 years ago

Start from scratch and only import/add what you really need.
Am saying that as I know from experience that code from online sources often requires a specific viersion of the IDE - using the latest does not always work.
Updating is something you should not do IMHO.
Reason is quite simple:
What is included by default for the IDE works out of the box.
Librariers you need can be imported at runtime, so again no real to update them unless you only use your own code.

Messing with the txt files that control it all is something you should only do if you know exactly what you do - and after making backups for every working and tested alteration.


Answer 3 years ago

Thank you for the answer! Updating is something you should not do? Do you mean by that the IDE versions update from Arduino?

I should take some while to look at the specials in my Boards.txt, some I like to use are for programming the ATTinys... The ones you can put in the preferences in the IDE , most are 3rd party board support. The question is of course... which ones do I choose? Like from this Github...



Answer 3 years ago

Let's start the other way around ;)
Compatible means the boards are more or less conform to the original board, for example they might use a different UART or voltage regulator, maybe have additional features.
But: The code to make them work is the same.
If you want to use a clones or otherwise non genuine Arduino Mega then chances are it will work out of the box and might only need the right driver to be recognised.
On the other hand if you have a board that is neither listed in any form, nor recognised by the IDE it really does help tp include the definition - into a seperate copy of your orginal IDE.
Big problem is that once you have included a lot of changes and additions it will be very hard to find the source of any problem that relates to it.
If specific code is designed for a specific board but your definition differs than trust me - it will be the last spot you check when searching for weird errors and problems.
Some people also like to add all sorts of librariers and runtime modules to their IDE.
This works great if only you use it and know what you do.
But someone downloading your code and using libraries imported at runtime might use totally different library versions.
Best prctise here is to include all with the code you offer and that means either uploading your copy of the entire IDE or using the standard of importing them at runtime.
The last is also much easier for updates of them.
If an update messes with your code and you decide that it is no good for you then just leave the old one in your code.

Just to point out the "minor" difference:
What is included in your IDE will always be prefered over external sources.
That means you can use INCLUDE in your code to get them working.
With added stuf or when checking libraries it makes sense to manually import them from the IDE menu - this way you can be specific and check if everything works as expected.
If your code complies and works fine with xxxlibrary version 1.0 and you simply load the 1.2 version maually and get all sorts of error messages you know exactly why you got them ;)