Whilst I hope that undocking will soon be implemented, you can work around it by opening a second instance of the IDE associated with the same serial port and leaving the Serial monitor open in it
If I really need to copy Serial output I use a separate terminal emulator. This is certainly less convenient but I rarely need to copy the serial output so it suits me
I am sticking with version 2 as it has many redeeming features
At the very least I find the ability to jump to the definition of a function, even if it is in a library, very handy, as is the automatic command completion when entering code
There appears to be a lot of problems that have yet to be resolved. Compatible with earlier sketches is a concern. Compatibility with older hardware is a concern.
There are certainly things that need to be improved but nothing too major I think
I cannot remember seeing any reports of incompatibility with older sketches or older hardware. Can you cite any specific problems that you have seen reported ?
I see the lack of a serial plotter window as a big drawback. Yes it has one but it is tiny compared to the older IDE. They have been saying they would work on it for ages.
Also the way that a lot of people seem to have their code or libraries disappear, is worrying. As it the seemingly insistent way you have to use the cloud. Although I could be wrong on this some of the R4 upgrades pages seem to mention it.
In short it is not finished and still contains bugs and other people are still having difficulty with it.
Finally I get the feeling that it is written by people who do not truly understand embedded hardware. I might be prejudiced about this because of the many people like this I have had to managed over the years that can kill a product by the insistence on writing code in a way they perceive is "right" rather than what is needed.
Which version are you talking about ? As you say, there is a Serial plotter, it is in its own window separate from the IDE unlike the Serial monitor, and it is resizable up to full screen
That is certainly true and the lack of progress is worrying
I understand that it is the number of samples it will display is small. You might be able to make the window bigger but does increase the number of samples?
If it does then that is even worse because you can't make fast updating plots that don't scroll.
Loading Arduino IDE on RPI4 I went with the Package Manager and got 2.05. It doesn't like half of my filenames to start with.
I wrote examples with leds and buttons that showed how often loop() is running, my non-blocking sketch health meter (make a change and see the effect) that typically ran 66K. But with 2.05 the typical is 55K.
Now I have 1.8.19 but not the old button&led but just a 2 task blink led demo I added Loopcounter to...
I'm getting a 13x-thousand hertz loop!
See what you get from your IDE, the board is an Uno 3.
// add-a-sketch_on-off_blinker 2018 by GoForSmoke @ Arduino.cc Forum
// Free for use, Apr 30/2018 by GFS. Compiled on Arduino IDE 1.6.9.
// This sketch shows a led blink task turned on-off by another task.
// This led blinker has a built-in on-off switch, if wait > 0 it is ON.
// BlinkSwitcher is a demo that uses OnOffBlinker.
#define microsInOneSecond 1000000UL
// blinker vars
byte ledState, ledPin = 13;
word startBlink, waitBlink; // 16 bit millis is good to 65.535 seconds
// blink switching vars
byte blinkCounter, lastLedState; // these are to change the blinking
word startOffTime;
const word waitOffTime = 3000; // millis
void setup()
{
Serial.begin( 115200 );
Serial.println( F( "\n\n\n Blink Led, free by GoForSmoke\n" ));
Serial.println( F( "This sketch shows a led blink task turned on-off by another task." ));
pinMode( ledPin, OUTPUT );
waitBlink = 250;
}
void LoopCounter() // tells the average response speed of void loop()
{ // inside a function, static variables keep their value from run to run
static unsigned long count, countStartMicros; // only this function sees these
count++; // adds 1 to count after any use in an expression, here it just adds 1.
if ( micros() - countStartMicros >= microsInOneSecond ) // 1 second
{
countStartMicros += microsInOneSecond; // for a regular second
Serial.println( count ); // 32-bit binary into decimal text = many micros
count = 0; // don't forget to reset the counter
}
}
void OnOffBlinker() // only blinks if there's a wait time, can be switched on/off
{
if ( waitBlink > 0 ) // this is the on/off switch
{
// word( millis()) gets the low 16 bits of the 32-bit millis() return.
if ( word( millis()) - startBlink >= waitBlink ) // difference in time by subtracting start from end
{
ledState = !ledState; // ! is NOT: not_0/true becomes 0/false else 0 becomes 1.
digitalWrite( ledPin, ledState ); // the led changes state.
startBlink += waitBlink; // next blink starts when it should, where diff > wait.
}
}
else if ( ledState > 0 ) // waitBlink == 0 turns blinking off
{
digitalWrite( ledPin, ledState = LOW ); // make sure the led is OFF
} // yes, you can set a variable during calculation in C, the write here is LOW.
}
void BlinkSwitcher()
{
// this task pauses the blinker after 5 blinks then turns blinking back on, repeat.
if ( waitBlink > 0 ) // while the led is blinking
{
if ( ledState != lastLedState ) // blink has just transitioned
{
if ( ledState == 0 ) // count a blink only if turned off, blink is finished
{
blinkCounter++;
if ( blinkCounter == 5 ) // 5 blinks then none for 3 seconds
{
blinkCounter = 0; // the if has the ++ first, count stats at 1.
waitBlink = 0; // turn the blinking off, start off timing
startOffTime = millis(); // set start to off time
}
}
lastLedState = ledState;
}
}
else // this only runs when blinking is off
{
// word( millis()) gets the low 16 bits of the 32-bit millis() return.
if ( word( millis()) - startOffTime >= waitOffTime )
{
startBlink = millis();
waitBlink = 250;
}
}
}
void loop()
{
LoopCounter();
// this is the interruptable blink task
OnOffBlinker(); // sets 'now' only when blinking
// this task pauses the blinker after 5 blinks then turns blinking back on, repeat.
BlinkSwitcher();
}
The Arduino IDE developers are tracking this deficiency here:
You didn't provide enough information for me to know exactly what the limits are that are affecting you, but there are some known bugs and deficiencies here:
If you have a GitHub account, you can subscribe to that issue to get notifications of any new developments related to this subject:
Have you encountered these personally? You should be cautious about judging any product based on the reports from random users here on the forum because after investigation we often find that the true cause of the problem they are reporting is completely different from the one they assumed initially.
Are there bugs? Yes. But there are plenty in Arduino IDE 1.x as well. Keep in mind that people who are happy with an application don't have any strong motivation to post on the forum about it. We hear from the ones who are having problems, which might be caused by specific problematic attributes of the environment on their computer/network that the great majority of users don't have.
I have the same response here.
You are wrong. There is absolutely no insistence on using Arduino Cloud. The Arduino Cloud sketchbook integration feature of Arduino IDE 2.xIt is a completely optional feature. In fact, you can even remove it completely from the UI with a setting in the advanced settings (arduino.cloud.enabled).
Have you tried Arduino IDE 2.x? If not, I recommend you give it a try before jumping to conclusions. After that you can form an opinion based on your own experiences.
The Arduino IDE developers are tracking this deficiency here:
The Arduino IDE developers are tracking this deficiency here:
You probably mean "2:1.0.5+dfsg2-4.1" instead of "2.05":
That is a 3rd party modified version of the ancient Arduino IDE 1.0.5. The 2: prefix does not indicate it is Arduino IDE 2.x. It is referred to as the "epoch" component of a package version:
I know there are some unofficial Arduino IDE 2.x packages, but I haven't used them so I can't comment on whether harmful changes have been made (as has frequently been the case in my experience supporting the users of these packages) or whether they can be used on a RPi computer.
I always recommend getting the official builds of Arduino IDE from the "Software" page:
However, in the case of Arduino IDE 2.x, Arduino does not provide official builds for the Linux ARM architecture of the RPi SBC. A community member does provide builds for that architecture. They are not officially supported by the Arduino company so very much an "at your own risk" thing, but you can find them here in case you want to give them a try:
This is the answer to a lot of things, far too many for a product. Also tracking something is just that you know about it. It seems that very little progress is being made. It is the sort of management speak you here a lot in industry. Sounds good, tells you nothing.
it seems there is an explosion of hardware releases going on at Arduino without the software resources to back it up.
I saw a post the other day from the Arduino team asking for input from members on what they expect from an IDE. Well one that works and that bugs are fixed quickly, and that bug fixes do not cause other things to break. I know it is a big ask but in my own opinion IDE 2.x has been a disaster so far.
I have been hanging around this forum a long time and never felt the need to hold back on upgrading to the latest IDE until now. It is getting like Windows Apple and Linux, where getting the latest upgrade can leave all sorts of thing not working.
If you would like to see progress, feel free to submit high quality pull requests to resolve some of the deficiencies in this free open source software.
Did you try it before forming that opinion?
If you did try it, was it with a recent version? Despite the perceptions of a lack of progress, there has indeed been a lot of progress, so the experience may be different with the latest version than with the IDE of a year ago.
One thing to note is that there were significantly more problems during the period when the Arduino IDE 2.x project was in the pre-release phase of development. Arduino made the IDE available to the community during that time in order to allow them to contribute through beta testing. The testing and feedback from the community was very valuable, but some users didn't understand that the pre-release versions of the IDE were distributed only for the purpose of beta testing and that they should expect to experience some problems just as you should with any beta test version of software. The expectation that the pre-release versions should be stable enough for standard project development caused those users to take an unreasonably negative attitude.
Yes. Just to note some points that really put me off (Linux Appimage):
slow. like unbearably slow. why?
3 config folders - waht genus did this?
.config/Arduino\ IDE/
.config/arduino-ide/
.arduinoIDE/
why is there that naging "cloud" icon? I don't want any "cloud" on my dev.
Font issues. Again the IDE is not configurable. Play with themes- jes, great. I want black bext background and red keywords please. No way.
Worst of all: It does not have this slick do-it-now feeling any more. It's just unbearably slow. Any simple text editor + Makefile fits my needs better than 2.x.
When I gave 2.X a try, it was too early.
I love the enhancements which lift the IDE to "state of the art", like go to definition, code completation, (color-)formatting and so on.
But it only worked rudimentally on that version. It forgot about Com ports, serial monitor worked only once and a IDE restart was necessary. Boards could be added but not selected. Code was shown as faulty but wasnยดt and compiled.
More then one window caused strange behaviours.
Very slow start.
And much more, which I already forgot... Which surely are now mostly fixed.
But these were soooo many issues, that I did not expect to be fixed within a year. So I staied on the previous version and never thought to change again.