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:
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!