Custom ArduinoIDE: Boards & Ports toolbar add-on

Have you ever done testing of lots of different boards with the Arduino IDE?
Were you frustrated with having to search your target board and port in the Tools>Boards submenu every time? Do this a few dozen times and you realize this is a major pain and time waste. Especially true if:

  • your boards menu is getting ever longer with every version and new package
  • with every new board there is a new serial port to select
  • you are in a hurry, make a wrong selection, get compile/upload errors, start selecting your board/port from scratch, face-palm!

I think if I add all the time I spent doing that in the past decade I could go on a short vacation in the carribean, wouldn’t that be nice!

I spent some time dusting off my Java skills and understanding the Arduino IDE source code and made this little add-on toolbar:

Here’s a video overview of how this works:

This toolbar features:

  • a top row with buttons allows selecting up to 5 recently used boards
  • bottom row shows all the available serial ports
  • selected board/port are highlighted in red to make it obvious
  • it’s … freeeee

How this makes repeated testing/programming/uploading easier:

  • keeps the menu/status bar in sync with the selection
  • saves time from going through menus to select between commonly used boards
  • quickly switch between ports with every new board that you plug in
  • serial bar kept updated with available ports so no guessing when a new port is generated

And to make it a little civilized, I added some preferences to control these toolbars:

You can download the source code (changed files) here. You will need to replace the original files in Arduino source code (1.8.5 release at time of writing), then rebuild the IDE. I used this guide to setup a build environment on Windows (saved as PDF here), and here’s one for Ubuntu. You will need Java and CygWin (and optionally Eclipse IDE). If that’s too much to mess with, you can download a copy of this custom pre-compiled version for Windows here.

UPDATE: I forked my own Arduino repository and added these changes to it for easier tracking (after the 1.8.7 release which includes many fixes and improvements since 1.8.5). I submitted a pull request and I hope it gets merged into the master. You may also download a precompiled 1.8.7 version with these changes from here.

I’ve used this add-on for almost a year and it’s so awesome I could not live without it!

As always, I welcome feedback and suggestions and please let me know if you found this add-on useful!

7 thoughts on “Custom ArduinoIDE: Boards & Ports toolbar add-on

  1. I’m curious how you use the Arduino IDE for testing. If you’re not actually doing development, but downloading some kind of test sketch to quickly exercise each board, it might be easier to use the command line tools in combination with some scripts to produce an easy pass/fail result.

    • I use it for various tasks. The switching feature I actually craved for years, just never had the time to dig the code and do it.
      The command line is a snap to use, but not a snap to write commands (unless you have a ton of BAT files). That’s another project I want to do – make a UI that controls avrdude along with interactive port selection, spend the time to compile most common HEXes and just use it that way. That would be even faster than the IDE with my add-on. But it would take a few days worth to make.

  2. As a Mac user, this looks so nice that I am thinking of buying a little Windows laptop so that I can use it…..😀

  3. Man – That is very nice though I wonder why you didn’t use the space between the “Save” button and the “Serial Monitor” button.

    I’ve often wished it was possible to add new buttons to that area with additional “user defined” functionality (Advanced Users that is 🙂 in a similar way to what you have done.

    Last time I looked you could do that as standard practice in most of the Microsoft application suite so that you could write some vba script and attach it to a new button. Would be wonderful to have similar functionality in Arduino IDE.

    • The SAVE/Monitor buttons are image buttons. See the source code and you will understand the challenges.
      What you describe from MS applications will not happen in this IDE, not unless they move to another platform completely.

Leave a Reply

Your email address will not be published. Required fields are marked *