Arduino CLI And IDE now Released - Teensy Supported!

It is intentional. The IDE would be significantly less beginner friendly if they had to execute two separate processes in sequence in order to accomplish an upload.

The core and library compilations are cached, so you will find that subsequent compilations are quite fast due to only the sketch code having to be compiled.

If you prefer a separation of the two operations, I recommend using Arduino CLI. arduino-cli upload uploads the binary produced by a previous arduino-cli compile command. In cases where the "compile and upload" behavior like the Arduino IDE is wanted, an --upload flag can be added to the compile command
 
I realized that when the Verify/Compile radio is hit it compiles then when I hit upload the crazy thing compiles again so all I do is hit upload because it compiles anyways. Is this suppose to happen or a bug or intentional???

That is 'typical' behavior. Verify does all without upload to test building. Then hitting Upload does the build again before upload - even if nothing was changed.

However, if the Verify completes properly it does notify Teensy Loader of the build result and pressing the Teensy Button will then immediately Upload that resulting HEX file if no changes justify building again - and the Button is easy to reach.
 
Hi PaulStoffregen. I finally found the time to look at this:
#2: Boards Manager tries to install even if required tools are missing for the user's operating system. 1.58.0-beta1 and 1.58.0-beta2 were created only for Linux x86-64 and Windows, because we're testing a new toolchain.

What do you mean by "tries to install"? I did an experiment with a package index that provided a platform with tool dependencies not available for the host architecture and the platform installation always failed with the expected error with this format:

Code:
Error: 13 INTERNAL: Error downloading tool ___: no versions available for the current OS

Is that the behavior you observed, or did you see something different?
 
I expect the Arduino IDE to be so much smarter than this!

An error message like "Error: 13 INTERNAL: Error downloading tool" is correct on a technical level. But from a usability and UI design perspective, allowing known-futile download to be attempted at all (from the GUI), and especially as the default setting, falls far short of the novice-friendly user experience the Arduino IDE should provide.

If the package index is missing a required tool for the host architecture & operating system, the IDE should not provide any clickable GUI controls to attempt a known-futile installation. At most, perhaps the package version drop-down list could show the impossible-to-install version disabled (grayed out) and maybe if the mouse hovers over it for a few seconds a tooltip might appear explaining why it it's clickable. Or the Boards Manager drop-down list for installable versions could just omit showing anything it knows can't be installed on the user's host architecture & operating system. Or maybe a UI designer might have other ideas of how this scenario could be best presented to users by the GUI...

Allowing users to initiate (from the GUI) a download & install which is doomed to failure is behavior I would consider an issue in need of improvement.

Even more importantly, the IDE should definitely not pester the user with notifications that a newer version can be installed, when the JSON package index can be understood that it can't actually be installed on the user's machine.

The IDE should also be much smarter about how beta versions of packages are offered to users running stable IDE releases. The Boards Manager of a stable IDE should never initialize its GUI to default to installing a beta version of any package. If the package index has beta versions and the IDE is a stable version, the drop-down list should be initialized so the default to install is the most recent stable version. If the user wants to try a beta version, they can click the drop-down list and choose it.

Releasing any major software like IDE 2.0.0 is a major achievement. I believe everyone understands the first release of any new software is going to have less-than-perfect UI that gradually gets refined over time. Hopefully the IDE 2 Boards Manager and new version notifications will improve in future versions.

Maybe this should be several separate issues on github?
 
Last edited:
@Paul @PerT - I also agree that there are still a few warts, but it is getting better!

For example, yesterday's daily build has fix in it that the Serial Monitor now shows the full last line :D

Also was wondering about other builds. Like I know I installed the IDE2 on RPI 4...
Arduino has not released any, but you could get them from: https://github.com/koendv/arduino-ide-raspberrypi
Looks like it is getting closer to having a release, maybe? https://github.com/arduino/arduino-ide/issues/107

EDIT: I meant to mention, I think the state of running Nightly builds versus Released builds is still
different than running Released Boards versus Beta releases.
That is I run both on both.
I like the idea of for example Teensy boards, having the option of installing from Released channel versus beta channel
And I do want to see the new beta releases, that is how else would I know they are released?
 
allowing known-futile download to be attempted at all

Thanks for the clarification. I have submitted an issue report:

https://github.com/arduino/arduino-cli/issues/1889

Note that even though you are focused on the IDE behavior, the initial work must be done in Arduino CLI. Arduino IDE 2.x doesn't know anything about platform tool dependencies, nor which host architectures they are available for. It only knows the list of installed and available platform versions provided by Arduino CLI.

The IDE should also be much smarter about how beta versions of packages are offered to users running stable IDE releases.
Yes, I saw your previous post about this and replied to it a week ago (post #346). Please check the proposal I mentioned there and provide your feedback.
 
Releasing any major software like IDE 2.0.0 is a major achievement. I believe everyone understands the first release of any new software is going to have less-than-perfect UI that gradually gets refined over time. Hopefully the IDE 2 Boards Manager and new version notifications will improve in future versions.

Isn't that is what the entire beta release program is all about, getting rid of these bugs. Honestly IDE 2 wasn't ready for prime time release and I uninstalled the junk software. The program kept on trying to download software that was already installed and other quarks. I have 10 gig a data a month and after 1.5 gig was burnt up from IDE 2 alone i uninstalled it. I will stick to the latest stable 1.8.19 until Arduino can pull their head out their arse.
And thank all of you for your fine contribution, if Arduino team had people like you guys on the Teensy forum IDE 2 would be much better state of affairs.
 
The Amount of users is completely irrelevant yet that specific detail caused them to release something that was not ready for prime time. Seems to be a reoccurring scenario with large corporate entities. Arduino used to mean something yet now it is nothing but profit based motivated entity which is a typical multinational scenario that takes over. I would buy nothing from Arduino CC ever again. There prices reflect typical corporations that put profit ahead of all else and who is the ones that suffer, of course the consumers and the parents that pay for their kids tools to partake in the Arduino environment.

And with that said I will stick to what works 1.8.19 and doesn't suck the life out of my precious bandwidth thank you.

Regards,
Marathonman
 
There prices reflect typical corporations that put profit ahead of all else

If you are unsatisfied with the Arduino IDE 2.x, you can request a refund of the full purchase price.

I would buy nothing from Arduino CC ever again.

I will stick to what works 1.8.19

And even if you use 3rd party compatible, derivative, clone, or counterfeit products exclusively, you will still be able to use this free open source software. Arduino has devoted significant resources to facilitate this, and even more so in Arduino IDE 2.x with the advancements made in the pluggable discovery and pluggable monitor systems. Typical greedy corporation right???
 
A far more adult version would be e.g. Platformio. Yes, even that bugs sometimes - but it's really usable (and for non-Arduino boards, too)
 
A far more adult version would be e.g. Platformio. Yes, even that bugs sometimes - but it's really usable (and for non-Arduino boards, too)
Yes!, it seems time for an alternative and will be looking into PlatFormio thank you!;)
 
The Amount of users is completely irrelevant

I must disagree.

Speaking from experience as Teensy's user base has gradually grown to only a small fraction of Arduino's size, I can confirm software does indeed become more challenging as the number of users increases.

While Arduino is certainly much larger than PJRC (4 people including me & Robin, using 2 contract manufacturers to do all the soldering) Arduino is hardly a large corporate entity. I'm personally met with many of them over the years at conferences, so even though I don't have access to any private details like their financial statements, I do have a pretty good idea of who they are any how they work.


And with that said I will stick to what works 1.8.19 and doesn't suck the life out of my precious bandwidth thank you.

You can be pragmatic about using the software that meets your needs, without expressing toxic attitude. You could even take it a step further to document the issues impacting your usage in a constructive way in that ultimately facilitates Arduino improving their software for everyone (they do publish it for free and they have poured a lot of work into making it possible for Teensy and all other non-Arduino brand boards to use). For IDE 2, they do have a pretty solid history of responding to github issues.

But if you can't do any of that, at the very least you should understand this sort of negativity towards people who've worked so hard to create free software for everyone is not a good look.
 
Thought I would mention that Version 2.0.1 was released yesterday.

Has lots of improvements, which are described in the Arduino Forum thread: https://forum.arduino.cc/t/arduino-ide-2-0-1-is-now-available/1046764

Note: it does come with a new minor issue of selecting teensy in the drop-down list of attached arduinos, and trying to do a build with give a strange error
you can correct by selecting the Teensy in the Tools... menu
More details on the Arduino thread: https://forum.arduino.cc/t/invalid-fqbn-not-an-fqbn/1046630/4
 
Maybe it is just me, but there are times when I am running IDE 2, where I would like to open up some of the Teensy example sketches, like the ones that Teensysduino installs put into the 1.x installs.

Since the 2.x setup of Teensy is not directly modifying the Arduino Install files, like 1.x does, we can not currently install them in the location that 1.x does.
So for my own usage, I did it the way that several other board types like ESP32, OpenCM, OpenCR, ... do it, and that is by adding an empty library to the install, which has no source
but it includes all of the examples.

I named it "Teensy Example", tried starting with a '.' but then it does show up, but the Name property in the library properties starts with a '.', such that it should show up as the
first Teensy specific library.

I also renamed all of the .pde file into .ino files as currently IDE2 will not open examples that have .pde files.

Note: my directory is currently installed on my machine in the directory:
C:\Users\kurte\AppData\Local\Arduino15\packages\teensy\hardware\avr\0.58.3\libraries\Teensy Examples

But now I have:
Screenshot.jpg
It is interesting that the item shows up before the header. Not sure if maybe should change name to something like 0-Teensy Examples or the like.

But at least, they show up.

Edit: Changed the Name property to match Arduino Library rules. 0-Teensy Examples
 

Attachments

  • Teensy Examples.zip
    53.8 KB · Views: 24
Last edited:
Hi KurtE. Very nice proposal to include these examples with the Teensy platform.

I recommend you to check that your library is compliant with the Arduino library specification:

https://arduino.github.io/arduino-cli/latest/library-specification

Even if non-compliant libraries happen to work (or partially work as in this case where the non-compliant name field value causes incorrect menu sorting), there is no guarantee they will continue to work in future versions of the Arduino development tools.
 
Hi KurtE. Very nice proposal to include these examples with the Teensy platform.

I recommend you to check that your library is compliant with the Arduino library specification:

https://arduino.github.io/arduino-cli/latest/library-specification

Even if non-compliant libraries happen to work (or partially work as in this case where the non-compliant name field value causes incorrect menu sorting), there is no guarantee they will continue to work in future versions of the Arduino development tools.

Thanks,

As I suspected, the IDE does not allow Directory to start with . Nor for can the name field. I have changed it locally to 0 -
which is sorting correctly
 
Quick update - I put in my comments about using the arduino-cli up in posting #3 in this thread.
 
Quick question on Arduino IDE2 startup times.

One thing I notice on my main machine, which is running Windows 11, is it appears, like each time, when I start it up, and Arduino believes it is time to download the JSON
files, that the download of the Teensy json file, takes a very long time. If I remember correctly this is every 4 hours...

I am talking like 30 seconds maybe longer.

Note: My list of JSON file locations is reasonably large:
Code:
https://adafruit.github.io/arduino-board-index/package_adafruit_index.json
https://github.com/stm32duino/BoardManagerFiles/raw/main/package_stmicroelectronics_index.json
https://raw.githubusercontent.com/ROBOTIS-GIT/OpenCM9.04/master/arduino/opencm_release/package_opencm9.04_index.json
https://raw.githubusercontent.com/ROBOTIS-GIT/OpenCR/master/arduino/opencr_release/package_opencr_index.json
https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_dev_index.json
https://raw.githubusercontent.com/sparkfun/Arduino_Apollo3/main/package_sparkfun_apollo3_index.json
https://raw.githubusercontent.com/sparkfun/Arduino_Boards/master/IDE_Board_Manager/package_sparkfun_index.json
https://www.pjrc.com/teensy/package_teensy_index.json

And it always appears to wait on the Teensy one. Note: right now, it is at the last item in the list, other times I had it at the start of the list.

Was wondering if others see this as well?
Wondering if it is actually taking that long? Or something with my network?
Or if actually it is not that slow, but for whatever reason Arduino chooses to download that one last and system is doing something else like checking for Arduino Library updates or ???

While it is in this state, it appears to block Arduino IDE from doing several other things, like:
1) If I is showing that I have libraries and/or boards to update, if I click to open one of these panes it will remain empty until this completes.
2) It does not appear to want to properly handle knowing what boards are plugged in at the time.
3) builds...

just wondering if others have run into this?
 
@KurtE

Not seeing 30seconds from the time indexjson for teensy shows up but almost - around 20 seconds. But it takes about that long before the IDE actually finishes loading.
 
And it always appears to wait on the Teensy one.

Do you have wget installed? It's usually pre-installed on Linux and it's probably available for Windows.

When I run "wget https://www.pjrc.com/teensy/package_teensy_index.json" from command line, it says 0.08 seconds to fetch the file.

If PJRC's hosting of this file is causing the slowness, I've really like to know.
 
Do you have wget installed? It's usually pre-installed on Linux and it's probably available for Windows.

When I run "wget https://www.pjrc.com/teensy/package_teensy_index.json" from command line, it says 0.08 seconds to fetch the file.

If PJRC's hosting of this file is causing the slowness, I've really like to know.

I just ran it again and this, time, it actually paused on several of the names, and the total time was about 15 seconds.


Update downloaded wget:

Code:
C:\Users\kurte\Downloads>wget wget https://www.pjrc.com/teensy/package_teensy_index.json
--2022-12-30 13:36:40--  http://wget/
Resolving wget (wget)... failed: No such host is known. .
wget: unable to resolve host address 'wget'
--2022-12-30 13:36:42--  https://www.pjrc.com/teensy/package_teensy_index.json
Resolving www.pjrc.com (www.pjrc.com)... 96.31.77.63
Connecting to www.pjrc.com (www.pjrc.com)|96.31.77.63|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 35703 (35K) [application/json]
Saving to: 'package_teensy_index.json'

package_teensy_index.json     100%[=================================================>]  34.87K  --.-KB/s    in 0.1s

2022-12-30 13:36:43 (284 KB/s) - 'package_teensy_index.json' saved [35703/35703]

FINISHED --2022-12-30 13:36:43--
Total wall clock time: 3.5s
Downloaded: 1 files, 35K in 0.1s (284 KB/s)

C:\Users\kurte\Downloads>

EDIT2 (or is it 3): I see a newer thread up on Arduino:
https://forum.arduino.cc/t/arduino-ide-2-0-3-is-extremely-slow-on-win-11/1071189
Where they are seeing the RPI one hanging... SO probbably not a teensy issue.
 
Back
Top