For anyone that is looking for an alternative to the Arduino IDE, there is now an Arduino plugin for Visual Studio Code, developed by Microsoft.
It is a much, much better IDE than Arduino, easily supports big projects, has very helpful code completion, etc. Here’s the link, though you can install it easily from within VS Code.
You need to have the regular Arduino IDE installed, since it relies on many of the same libraries. I had it up and running in a matter of minutes. There is a handy little toolbar across the bottom of the screen that lets you define the board type, programmer, etc.
There are verify and upload buttons, just as in the Arduino IDE and they work the same. During upload you’ll see the Arduino splash screen.
A couple of small gotchas:
You need to define a serial port, even if you are using the USBTinyISP and don’t need it. Any port will do.
It will warn you about missing libraries. You might need to manually add #include <blinklib.h> to some sketches, and then define the include_path, VS Code will propose a fix.
Here’s the Arduino extension page in VS Code, you can install it directly from the extension marketplace.
This looks much nicer than the Arduino IDE! The first gotcha is tripping me up. Whenever I click < Select Serial Port > or try to upload, I get the message to define a serial port, which just leads me back here. Can I get a clarification on how to define the serial port?
It doesn’t actually need the serial port when you are using the USB Tiny programmer, but it doesn’t let you proceed without one. Trying plugging in the serial interface board that came with the dev kit, that should turn up as a serial interface. Then select it, even though you won’t use it.
In my case I have a Bluetooth virtual serial port for some random robot selected.
I’ll report it as a bug, should be easy enough to fix. (Actually, it’s already on the issue tracker. The reporter found a workaround by editing the arduino.json file to include a dummy port.)
The first difference in the output is the call to arduino-builder. The custom blinklib has a few extra prefs parameters on the command line. These don’t appear when using the standard blinklib.
Don’t know if this is the cause of the failure, but it’s where the two start to diverge.
Yeah I’m sure it’s something with my setup. I had to reinstall the Arduino IDE again because I put it in a non-standard place the first time so maybe I have two versions floating around confusing things.
Mostly I think I just need to roll up the sleeves and learn more about how Arduino does things
Okay I got it working by hacking your boards.txt to add the upload.protocol (despite the comment telling me not to) and changing the upload.pattern in your platform.txt to match the one from the stock blinklib.
I hate not understanding how things work so this will still bother me, but at least I can switch between the two now.
All the configuration files on my custom Blinklib were a direct fork of the existing Move38 files at the time I did it. It is possible that they changed something that now diverged on my library but that does not explain why I am not seeing any issues while you are. I still think it is something on your specific setup that is causing it.
In any case, as I understand it, Move38 should be releasing a new SDK release in the near future. When thye do, I will update my custom blinklib to match its configuration again.