Alternate IDE for firmware tweaking?

Anybody use something other than the arduino IDE for editing? The lack of code completion makes discovery kind of painful. I’m super new to this type of dev, but if I get time I’m going to try to make this work with CLion, but I have the Jetbrains blinders on and really don’t know the C++ ecosystem all that well.

I’m using Emacs to edit the firmware files, and the CLI build system to build & flash it.

As a first step, you could try using an external editor with Arduino: in Preferences, tick the “Use external editor” button. Then you can edit the sketch in your editor of choice, and when it comes to compiling, go back to the Arduino IDE and do the compile & flash step there only.


Yeah, the Arduino IDE is abhorrent. I use Sublime Text (used to use VS Code) with the EasyClangComplete plugin. For compiling, I just use the CLI and a good old make flash.

EasyClangComplete is able to get almost everything going, but any references to CRBG throws a warning, as does KEYMAPS macro.

1 Like

I use Visual Studio Code with the Arduino extension and it works really well.

1 Like

Thanks for suggestions. Will check them out today (ish).

I’m using Emacs and algernon’s docker build script. It’s easier to use and I don’t have to install any Arduino programs. Works great!

1 Like

@TreTuna I’m fairly new to Visual Studio Code and Kaleidoscope, but am having trouble figuring out how to setup/configure Visual Studio with the Arduino extension pointing to the right locations/etc for the Kaledioscope libraries/include files/etc.

Do you by any chance have a working configuration that you could share that will point me in the right direction?



Here’s how you do it:

Download the extension

Use VS Code’s Command Palette (Ctrl+Shift+P) and type Arduino to see the Arduino commands list.

Then use the following commands:

“Arduino: Change Board Type ” and then select “Keyboardio Model 01”
“Arduino: Change Serial Port ” and choose the COM port your keyboard uses (mine is COM5 for example)

Go into VS Code’s setting.json and add this line as is:

“C_Cpp.intelliSenseEngine”: “Tag Parser”,

That’s it!

The Arduino Extension adds 2 buttons on the top right for verifying and uploading your ino if you don’t want to use the Command Palette.