Developing Arduino Projects with Microchip Studio (Without the Bootloader)

Hi @dricex86. Thanks for taking the time to share this information.

This is unexpected. Arduino IDE automatically sends a signal to the board to activate the bootloader (this is known as the "1200 bps touch"), then immediately after performs the upload operation. So the bootloader should never have the chance to time out.

Are you manually activating the bootloader by performing a double reset? If so, try an upload using Arduino IDE without doing that. I think you will be pleasantly surprised. The only time this doesn't work is if the program running on the board disables or breaks its ability to recognize the "1200 bps touch" signal (e.g., the board is sleeping, the processor has crashed due to a divide by zero bug in the code).

Although it is true that the Arduino IDE 1.x editor was fairly primitive, the editor in Arduino IDE 2.x editor is quite capable (it is based on the same technology as VS Code, the world's most popular programming editor/IDE). The only capability I find myself missing in the Arduino IDE editor is a split editor (which Microchip Studio surely has).

You can skip the use of a bootloader in Arduino IDE if you like. Just use Sketch > Upload Using Programmer from the Arduino IDE menus instead of Sketch > Upload.

There are also some excellent 3rd party boards platforms (e.g. MiniCore) that configure Arduino IDE so that even Sketch > Upload will flash the program via the selected programmer.

You can bundle libraries with the sketch project when using Arduino IDE if you like. Arduino IDE doesn't have any features to facilitate the bundling, so you do need to copy the library files into the sketch folder manually. However, from your description is sounds like that is also true for Microchip Studio.

This is false. Arduino IDE 2.x does have support for real hardware debugging:

https://docs.arduino.cc/software/ide-v2/tutorials/ide-v2-debugger/

I don't have a meaningful amount of experience using Microchip Studio, so I can't say how the debugging capability of Arduino IDE compares to that of Microchip Studio.

Arduino IDE's debugger is the Cortex-Debug VS Code extension, which is likely what you would be using for embedded systems project development with VS Code. So Arduino IDE's debugging capabilities should be comparable to what you get using VS Code.

As I wrote above already, this is false. It is not required to use a bootloader with Arduino IDE.

It is true that Microchip Studio's fuse configuration capabilities are comprehensive, but I feel that it is not exactly accurate to say that Arduino IDE has "none".

When you perform a "Burn Bootloader" operation, Arduino IDE sets the fuses as specified in the definition of the selected board. For most users, that is perfectly sufficient.

For more advanced users, 3rd party boards platforms such as those maintained by MCUDude and SpenceKonde allow the user to configure the useful fuses via a friendly interface. Those platforms also allow the users who don't want to use a bootloader to disable the bootloader feature, so that the "Burn Bootloader" operation only sets the fuses and does not waste time flashing a bootloader binary that won't be used.


There is something very important that you left out of your comparison:

Feature Arduino IDE Microchip Studio Visual Studio Code + Extensions
Linux support :white_check_mark: Full support :cross_mark: None :white_check_mark: Full support
macOS support :white_check_mark: Full support :cross_mark: None :white_check_mark: Full support
Windows support :white_check_mark: Full support :white_check_mark: Full support :white_check_mark: Full support

For me, this is a dealbreaker. I avoid reliance on any tool that is not cross-platform.

1 Like