Arduino-builder returned 255 (and nothing else)

I had some IDE install updates fail and now I have a problem

I had a sketch which previously compiled but now fails with nothing but this on the output:

exit status 255
/home/ardnut/arduino-1.8.19/arduino-builder returned 255
Error compiling for board Raspberry Pi Pico.

BTW exactly the same result if I try to build the basic Blink example code.
Blink will compiler on other boards.
I have removed the philhowler rp2040 board support (3.9.5) , and reinstalled it . No change.

I certainly have zero chance of finding the problem with that kind of feedback.
Is there a way to get something more explicit than a generic "-1" error code from
arduino-builder ?

TIA.

you can try to install older version back

Topic moved to the IDE 1.x section of the forum.


Which board package are you using? I see that you added that info now. Can you provide the additional boards URL, please.

Please try to downgrade the boards package and try to compile blink. If that succeeds, the problem is probably in the board package.

After that you can try to upgrade again to see if the problem comes back.

https://github.com/earlephilhower/arduino-pico/releases/download/3.9.5/package_rp2040_index.json

Downgraded to 3.9.4 from board manager, no change. :frowning:

Also downgraded to previous version I had until today : 3.7.2, no change.

Now reverted to 3.9.5 since it did not help.

Hi @ardnut. Is there a specific reason you are using Arduino IDE 1.x?

I ask because Arduino IDE 2.x is a complete reworking of Arduino IDE that doesn't even use arduino-builder (it uses Arduino CLI instead). So there is a good chance that whatever problem you are encountering would not occur when using Arduino IDE 2.x (or at the very least might produce a more helpful error message.

Hi,

I think I did try v2 but it did not get me any more info.

Why don't I use it ? Because it's slow and I don't trust it.

Each time I tell to compile my code it spends about 20s "indexing" it. What's that about? I did not ask anyone to analyse or index my code, it told it to run the compiler. If I find I've missed comma or semicolon somewhere I just want to run the compiler to check sytnax. That's annoying once or twice but if I'm expected to work like that it become very slow and frustrating.

It seems impossible even to start the IDE2 without a live network connection. What's that about? I don't want an online service. I wand to build my sketch and produce code to run locally. If I "trick" it into starting and then cut the network it's constantly nagging me with messages about things I never asked it to do. There seems to be no means to disactivate the network dependency and I have no idea what information it is transfering to what server without so much as informing me.

Is it automatically uploading my code to some cloud backup somewhere? I did not subscribe of give permission for it upload anything. I don't like this kind of hidden "feature". I require something which compiles my code on my computer. Nothing more until I ask for it.

IDE seems more well behaved. If I want add more boards or add a library it chugs off to go and update the lists it has. That seems reasonable, though again really slow and a waste of time if I just did it an hour ago.

IDE2 needs to be a lot more open about what it is or isn't doing behind my back, and needs to give a config option to disactivate all the network interaction.

For now it's flagging lots of behaviour which looks suspicious and I don't have time to start dissecting the source code and hundreds of error messages on the console to find out what it is really doing, so I don't use it.

I'm sure support for IDE1 will disappear at some point, so I need to find a more autonomous way to compile my code.

You need to be a lot more up front about what it is doing and provide a way to efficiently work off line. I'm not looking for an online service. I have the cross compiler locally and that's what I need to use.

Thanks for asking.

Thanks for that.

I don't have the board. I did install the board package in a fresh portable install of 1.8.19 on Windows 11 and compiled blink for a raspberry pi pico without an issue. Repeated the exercise for a fresh portable install of 1.8.19 on Ubuntu24.04 and again no issue.

Note that the only board packages that were installed were AVR 1.8.3 and the one above and no additional libraries were installed.

I would suggest that you create a fresh portable install of 1.8.19 and test blink again. if that successfully compiles you can take it from there.

The first time that your run IDE 2.x after you installed it, it needs to download some additional stuff like the AVR board package; if that fails it will indeed not continue. After that, you can use it off-line. It's a bit inconvenient to use it off-line; it's a mission to install a board package and for libraries you need to download the ZIP versions using another system.

You might at occasion see a message (in a yellow bar) that it's off-line; that indicates that the internal processes can't communicate with each other at that time, it does not indicate that the IDE can't access the internet.

I don't think that it's doing anything behind your back but I've never analysed the source code.

Note
I think you're using Linux; it might however be a Mac.

Linux confirmed.

You are correct it does eventually start off line. It sat there with the pulsating Arduino logo and I eventually killed it. maybe I did not give it long enough.

I seem to have cleared whatever it was that was not in order, though it's poor that there was no way to get something from Arduino build system as to why it was failing.

IIRC the problems started when I used the most recent json file for rp2040 on IDE1. I then tried to install 4.0.3 and this failed but left a broken system. Removing the recent json from File|Prefs and adding the newest previous json from 3.9.5 release and installing that did NOT fix the issue.

To the best of my recollection what fixed this was installing 4.0.3 using IDE2. Then I flipped back to IDE1 and I have 4.0.3 available ! This may give problems further down the line since it allegedly does not support IDE1.

For now that fixed whatever the unreported error condition was.

[EDIT]
No. Back to square 1. I reopened IDE and had no pico boards available, I used board manager to install 3.9.5, selected pico board and tried to compile. Same silent failure.

Thanks for your interest in resolving this issue.

Yes, it may have poor performance when used on very old computers that have very limited resources.

It is required for the modern "IntelliSense" features that were added in Arduino IDE 2.x

I would be happy to address that if you would provide a detailed description of the specific unexpected messages you encountered.

No.

Then there is no problem because you are only imagining the existence of such a "hidden feature".

Then you will be glad to learn that Arduino IDE 2.x doesn't do that.

It is open source software. That is as open as it gets. If you don't trust Arduino then look at the source code. If you won't look at the source code then don't use it. It is only your loss.

Surely you realize that the same company and developers made Arduino IDE 1.x. So if you don't trust Arduino enough to use Arduino IDE 2.x, why are you using Arduino IDE 1.x?

Arduino IDE 2.x isn't an online service.

It does have a feature that allows users of the Arduino Cloud online service to download sketches from their Arduino Cloud sketchbook so they can use Arduino IDE instead of the browser-based Arduino Cloud Editor. But that feature is completely optional and can even be disabled entirely in the Arduino IDE settings if not wanted.

I have a dual core CPU with 4GB of RAM, is that "very limited" ?

It is required for the modern "IntelliSense" features that were added in Arduino IDE 2.x

I don't use VScode, it is possible to deactivate that indexing feature?

It is open source software. That is as open as it gets.

In principal that is true but it requires the expertise and TIME to parse and understand all the code. For a tool of this size that is a non trivial task accessible to few people. A clear statement, such as you are providing here would be more use to the mostly debutant programmers using such a platform.

But that feature [ Arduino Cloud] is completely optional and can even be disabled entirely in the Arduino IDE settings if not wanted.

I don't see any mention of this in settings. Could you explain where that is done?

It's not that I trust Arduino any less than anyone else offering a free service. But we are often reminded that naive trust is not a wise default position in the increasingly intrusive, "connected" world we live in. Things often degrade in this respect over time as new "modern" features are added, or policy changes.

When I see unexpected network activity or "indexing" my suspicions are aroused.

Thank you for you clear and informative replies.

We are talking about Arduino IDE here. It is irrelevant whether or not you use VS Code.

These features are in most modern IDEs. The VS Code documentation just happens to provide a good description of what is meant by "IntelliSense", which is aligned with Arduino IDE's features so I provided that link in case you weren't familiar with the term.

No.

OK, that problem is solved then :white_check_mark:

  1. Press the Ctrl+Shift+P keyboard shortcut (Command+Shift+P for macOS users) to open the "Command Palette".
    A menu will appear on the editor toolbar:
    Command Palette screenshot
  2. Select the "Preferences: Open Settings (UI)" command from the menu.
    You can scroll down through the list of commands to find it or type the name in the field.
    A "Preferences" tab will open in the Arduino IDE main panel.
  3. Type arduino.cloud.enabled in the "Search Settings" field of the "Preferences" tab.
  4. Uncheck the box under the "Arduino › Cloud: Enabled" setting.
  5. Close the Preferences tab by clicking its X icon.