No board selected for new projects

Arduino IDE 2.0.0-beta.3

Creating a new empty project or from an example does not populate the board necessitating reselelection of board and port for each new project. Previous versions rememebered the board previously being used (which was suboptimal because this was global and common, i.e. not saved with each project). It would be advantageous for a new project to select the last used board by default.

If you select a board for a new project then save that project the board is forgotten, necessitating reselection of the board. Subsequence save of project does remember the board. This adds to the frustration of having to select a new board for each project twice.

I agree that this is definitely not a fun experience. It's something that will surely be resolved in a future release of the Arduino IDE 2.x. The IDE is still in the beta development phase and there are certainly some rough edges to smooth off before it's ready for a production release, but it's being very actively worked on by some very talented people so I'm confident you'll see some very nice progress as each release comes out.

I just commented on this in your other post, but I'll repeat it here for the reference of others:

The plan is to make the IDE remember which board you had selected before, so this experience of not having a board selected should only happen once on the very first load of the IDE in the future versions:

or maybe not even then?

The plan is to make the IDE remember which board you had selected before, so this experience of not having a board selected should only happen once on the very first load of the IDE in the future versions:

Do you mean the very first load after installation ?

UKHeliBob:
Do you mean the very first load after installation ?

That's correct. After that first load, it will always start with the previously selected board. So the significant issue right now is that the board is not selected when you open a new sketch.

However, I also think the proposal to have the Uno selected by default on that first load after installation is reasonable. Even though it only ever happens once, that first load is the most important because it's a beginner's very first experience.

There is a tricky thing right now though, which I commented on in that proposal:

This is a little bit more tricky than it might seem at first. The reason is that, unlike the classic Arduino IDE, Arduino Pro IDE doesn't come with the Arduino AVR Boards platform of the Uno pre-installed. What happens now is that if you connect or select the Uno from the board menu, the Pro IDE displays a nice notiification that explains Arduino AVR Boards must be installed and offers to do it automatically.

The solution I see is that if an uninstalled board is already selected and you try to compile or upload, the Pro IDE should show that same notification. Currently it just gives you that same painful "Compilation error: Error: 2 UNKNOWN: no FQBN provided" error.

However, that comment was made in the context of the "Arduino Pro IDE" (the issue was transferred over from that repository). With an IDE specifically targeted at professionals, the classic IDE's practice of coming with a the Arduino AVR Boards platform pre-installed didn't make sense. A professional is perfectly capable of installing the platform they need and would not want the hundreds of extra megabytes added to the installation for a platform they might not even use. But for an IDE that is intended to be friendly to beginners, the most important thing is giving them the shortest and most gentle path to blink. In that context, it certainly makes sense to bundle Arduino AVR Boards.

However, I also think the proposal to have the Uno selected by default on that first load after installation is reasonable.

I am not so convinced about that. I suspect that these days a large proportion of new users will not be using a Uno. The message that is printed when a compile or upload is attempted with no board selected could do with some work !

Compilation error: Error: 2 UNKNOWN: no FQBN provided

Better still, prompt the user to select a board if the IDE is opened with no board selected

UKHeliBob:
The message that is printed when a compile or upload is attempted with no board selected could do with some work !

I agree, and requested that here:

UKHeliBob:
Better still, prompt the user to select a board if the IDE is opened with no board selected

Yeah, I think this would be best. There is already a "Select Other Board & Port" dialog, so I'd think it wouldn't be too hard to automatically display that dialog. Unfortunately, I'm noticing quite a bit of evidence that this dialog doesn't provide a very good experience for the people using boards with custom options (e.g., the Nano's "Old Bootloader" option).

There is already a "Select Other Board & Port" dialog, so I'd think it wouldn't be too hard to automatically display that dialog

I wondered about suggesting that but its title would need changing to remove the "Other"

Unfortunately, I'm noticing quite a bit of evidence that this dialog doesn't provide a very good experience for the people using boards with custom options (e.g., the Nano's "Old Bootloader" option)

It is no worse than how the classic IDE deals with such options. If the options could be added to the list of selectable boards it would help, but what about other options such as the multitude available for the ESP32 which can currently be selected in multiple different combinations from the Tools menu once the base board has been selected ?

UKHeliBob:
It is no worse than how the classic IDE deals with such options.

I don't agree. I feel that this procedure:

  1. Tools > Board > Arduino AVR Boards > Arduino Nano
  2. Tools > Processor > ATmega328P (Old Bootloader)

is more intuitive than this one:

  1. Click the dropdown boards menu on the top bar.
  2. Click "Select Other Board & Port"
  3. Search for "Nano".
  4. From the list of search results, click on "Arduino Nano".
  5. Click the "OK" button.
  6. Tools > Processor > ATmega328P (Old Bootloader)

With the former, there is a single place to find everything related to boards. It's a bit confusing to go to one place to select the board, then a different place to configure the board.

UKHeliBob:
If the options could be added to the list of selectable boards it would help, but what about other options such as the multitude available for the ESP32

Yeah, it would never work. The ESP32 platform has something like 14 million possible board configuration. Install ESP8266 as well and you're up to 50 million boards. And those aren't the only ones like that. The popular Mighty/Mini/MegaCore, megaTinyCore, ATtinyCore, and DxCore all have a ton of custom board options too.

The "Select Other Board & Port" dialog mirrors the Arduino Web Editor's dialog of the same name. That one does have support for custom board options:


so this is a possibility. In my opinion, it is not as good as the traditional Tools menu approach though.

I don't agree.

Now I am not sure what I think !

Currently, having selected a board from the tools menu the menu closes so you can be blissfully unaware that there are other options for the board, particularly if you chose the port first so have no reason to open the Tools menu again

The ability to search for boards is nice, which is something that the classic IDE does not provide. Thank goodness that the current boards menu is at least now split by board type and I have edited the board files to move the ones that I have to the top of the list

The "Select Other Board & Port" dialog mirrors the Arduino Web Editor's dialog of the same name. That one does have support for custom board options:

With something like the EPS32 board options that could never work with the number of possible combinations

Another thought. "Tools" is perhaps not the best name for a menu that includes board options. Why not a dedicated "Boards" menu instead ?

Sometimes I think that writing software is easier than designing user interfaces :slight_smile:

Sometimes I think that writing software is easier than designing user interfaces

Most especially in this case because user experience is so incredibly important in the Arduino IDE. There are many excellent IDEs, but I think what the Arduino IDE offers that is special is the gentle learning curve to make this technology accessible to everyone. If done right, I think this can be done in a way that doesn't exclude advanced users, though there will always be some tradeoffs made to accomodate novices.

Some of the features added in Arduino IDE 2.x will be very useful to advanced users, while not making the learning curve steeper. For example the column selection feature (Alt + Shift) is so useful, but a beginner can remain blissfully unaware of this capability until they find the need for it. I think the same of the context menu's "Go to definition. It's true that it does make the UI a bit more complex, but in a very non-intrusive manner, and with such a huge payoff.

a beginner can remain blissfully unaware of this capability until they find the need for it

Unfortunately most will not even be aware that it is possible, let alone how to do it, any more than they will know that you can do it in Word, but at least it is there for those that need it

This topic was automatically closed 120 days after the last reply. New replies are no longer allowed.