Weird issue with Serial.dtr() ?

Status
Not open for further replies.

tonton81

Well-known member
I'm posting a limited snippet that "locks up", and im able to make it happen (lockup) every time. It seems somewhere between the DTR toggling teensy will lock up and the IDE as well (or maybe the USB driver crashes?)
Without closing the IDE in this state, other than killing the process at this point, I stumbled on another weird thing as well. If I press the program button on teensy when the IDE & teensy are locked, the serial monitor unlocks, greys out, teensyduino uploads, and serial monitor works again... something wrong with the code? usb drivers? (windows 8) my use of DTR? :p

Code:
void setup() {
  Serial.begin(1);
}

void loop() {
  delay(100); Serial.println(millis());  // print millis() every 100ms...
  static bool _DTR = 0; // last DTR state
  if ( _DTR != Serial.dtr() ) { // if old state and new state don't match...
    _DTR = Serial.dtr(); // set new DTR state
    if ( !_DTR && Serial.available() > 0 && Serial.peek() != 0xC0 ) {
      // Do Something...
    }
    if ( _DTR && Serial.available() > 0 && Serial.peek() == 0xC0 ) {
      // Do Something...
    }
  }
}

Once that code is loaded on teensy you can do this as many times if you want...

1: Open serial monitor
2: type anything to put something in the buffer
3: close the monitor
4: repeat

But, if you do this:

1: close serial monitor
2: with esptool installed, run this in command line to send an erase signal to the ESP via esptool (we're just capturing the packets here, but the tool toggles the DTR in the process)
Code:
esptool -cp COM46 -ce
3: open Serial monitor after step 2 is done.
4: try to type something in the serial monitor box, hit send, and immediately the IDE & teensy lock up, with the characters still in the serial monitor box....
5: hit program button to unfreeze serial monitor and auto upload last hex...
 
Another weird issue:

Code:
void setup() {
  Serial.begin(1);
}

void loop() {
  delay(100);
  if ( !Serial ) Serial.println("closed");
  else Serial.println("opened");
}

running this (at least tested on T3.6), I get this output:

Code:
opened
opened
opened
opened
opened
opened
opened
opened
opened
opened
opened
opened
opened
opened
opened
opened
closed
opened
opened
opened
closed
opened
opened
opened
closed
opened
opened
opened
opened
opened
opened
opened
opened
opened
opened
opened
opened
opened
opened
opened
opened
opened
opened
opened
opened
opened
opened
opened
opened
opened
opened
opened
opened
opened
opened
opened
opened
opened
opened
opened
opened
opened
opened
opened
opened
opened
opened
opened
opened
closed
opened
opened
opened
closed
opened
opened
opened
opened
opened
opened
opened
opened
opened
opened
opened
opened
opened
opened
opened
opened
opened
opened
opened
opened
opened
opened
opened
opened
opened
opened
opened
opened
opened
opened
opened
opened
opened
opened
opened
opened
opened
opened
opened
opened
opened
opened
opened
opened
opened
opened
opened
opened
opened
opened
opened
opened
opened
opened
opened
opened
opened
opened
opened
opened
opened
opened
opened
opened
opened
opened
opened
opened
opened
opened
opened
opened
opened
opened
opened
opened
closed
opened
opened
opened
closed
opened
opened
opened
closed
opened
opened
opened
closed
opened
opened
opened
opened
opened
opened
opened
opened
opened
opened
opened
opened
opened
opened
opened
opened
opened
opened
opened
opened
opened
opened
opened
opened
opened
opened
opened
opened
opened
opened
opened
opened
opened
opened
opened
opened
opened
opened
opened
opened
opened
opened
opened
opened
closed
opened
opened
opened
closed
opened
opened
opened
closed
opened
opened
opened
closed
opened
opened
opened
opened
opened
opened
opened
opened
opened
opened
opened
opened
opened
opened
opened
opened
opened
opened
opened
opened
opened
opened
opened
opened
opened
opened
opened
opened
opened
opened
opened
opened
opened
opened
opened
opened
opened
opened
opened
opened
opened
opened
opened
opened
opened
opened
opened
opened
opened
opened
opened
opened
opened
opened
opened
opened
closed
opened
opened
opened
closed
opened
opened
opened
closed
opened
opened
opened
closed
opened
opened
opened
closed
opened
opened
opened
opened
opened
opened
opened
opened
opened
opened
opened
opened
opened
opened
opened
opened
opened
opened
opened
opened
opened
opened
opened
opened
opened
opened
opened
opened
opened
opened
opened
opened
opened
opened
opened
opened
opened
opened
opened
opened
opened
opened
opened
opened
opened
opened
opened
opened
closed
opened
opened
opened
closed
opened
opened
opened
closed
opened
opened
opened
opened
opened
opened
opened
opened
opened
opened
opened
opened
opened
opened
opened
opened
opened
opened
opened
opened
opened
opened
opened
opened
opened
opened
opened
opened
opened
opened
opened
opened
opened
opened
opened
opened

Seems to be getting random intermittant opened/closed just by keeping the Serial monitor open, which should have just report only opened indefinately

for readability on forum, i changed the output:

Code:
void setup() {
  Serial.begin(1);
}

void loop() {
  delay(100);
  if ( !Serial ) Serial.println("SERIAL MONITOR CLOSED");
  else Serial.println("                   SERIAL MONITOR OPENED");
}

Code:
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
SERIAL MONITOR CLOSED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
SERIAL MONITOR CLOSED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
SERIAL MONITOR CLOSED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
SERIAL MONITOR CLOSED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
SERIAL MONITOR CLOSED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
SERIAL MONITOR CLOSED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
SERIAL MONITOR CLOSED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
SERIAL MONITOR CLOSED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
SERIAL MONITOR CLOSED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
SERIAL MONITOR CLOSED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
SERIAL MONITOR CLOSED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
SERIAL MONITOR CLOSED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
SERIAL MONITOR CLOSED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
SERIAL MONITOR CLOSED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
SERIAL MONITOR CLOSED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
SERIAL MONITOR CLOSED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
SERIAL MONITOR CLOSED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
SERIAL MONITOR CLOSED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
SERIAL MONITOR CLOSED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
 
I don't see this on Win 10 with T_3.6 - edited after setup() Using TyCommander - unless I stop Serial Monitoring it runs "OPEN: + +" as expected:
Code:
int ii = 80;
void loop() {
  delay(100);
  if ( !Serial ) Serial.println("SERIAL MONITOR CLOSED");
  else {
    ii++;
    if ( ii > 80 ) {
      ii = 0;
      Serial.print("\nOPEN:");
    }
    Serial.print(" +");
  }
}

But when I switch to IDE 1.9.0b34 SerMon I get this and repeats - seeing CLOSED (+++groups) for long patches - then OPEN:
+ + +SERIAL MONITOR CLOSED
+ + +SERIAL MONITOR CLOSED
+ + +SERIAL MONITOR CLOSED
+ + +SERIAL MONITOR CLOSED
+ + +SERIAL MONITOR CLOSED
+ + +SERIAL MONITOR CLOSED

OPEN: + + +SERIAL MONITOR CLOSED
+ + +SERIAL MONITOR CLOSED
+ + +SERIAL MONITOR CLOSED
+ + +SERIAL MONITOR CLOSED
+ + +SERIAL MONITOR CLOSED
+ + +SERIAL MONITOR CLOSED
+ + +SERIAL MONITOR CLOSED
+ + +SERIAL MONITOR CLOSED
+ + +SERIAL MONITOR CLOSED
+ + +SERIAL MONITOR CLOSED
+ + +SERIAL MONITOR CLOSED
+ + +SERIAL MONITOR CLOSED
+ + +SERIAL MONITOR CLOSED
+ + +SERIAL MONITOR CLOSED
+ + +SERIAL MONITOR CLOSED
+ + +SERIAL MONITOR CLOSED
+ + +SERIAL MONITOR CLOSED
+ + +SERIAL MONITOR CLOSED
+ + +SERIAL MONITOR CLOSED
+ + +SERIAL MONITOR CLOSED
+ + +SERIAL MONITOR CLOSED
+ + +SERIAL MONITOR CLOSED
+ + +SERIAL MONITOR CLOSED
+ + +SERIAL MONITOR CLOSED
+ + + + + + + + +
OPEN: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
OPEN: + + + + + + + + + + + + +
 
Last edited:
i get same behaviour when i install just now 1.8.5 with teensyduino 1.4.1

Code:
void setup() {
  Serial.begin(1);
}

void loop() {
  delay(100);
  if ( !Serial ) Serial.println("SERIAL MONITOR CLOSED");
  else Serial.println("                   SERIAL MONITOR OPENED");
}

Serial monitor shows:

Code:
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
SERIAL MONITOR CLOSED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
SERIAL MONITOR CLOSED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
SERIAL MONITOR CLOSED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
SERIAL MONITOR CLOSED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
SERIAL MONITOR CLOSED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
SERIAL MONITOR CLOSED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
SERIAL MONITOR CLOSED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
SERIAL MONITOR CLOSED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED
                   SERIAL MONITOR OPENED

if I use putty instead, it works as expected, only SERIAL MONITOR OPENED shows indefinately

It seems serial monitor is broken :D
 
Just to confirm, I am able to reproduce this problem on Windows 7.

capture.png
 
Sadly, this does seem to be a bug the Arduino IDE, or perhaps the Java library it uses to access serial devices. We've also seen serial monitor problems on some Macintosh systems, which may or may not be related to this specific bug, but they don't happen with Coolterm or putty.

The good news is I've very recently been working on a major change to how Teensy works with the Arduino IDE. The idea is to completely remove all Arduino IDE use of serial, replacing it with use of native helper programs. We already do this for rebooting (teensy_post_compile & teensy_reboot) and uploading (Teensy Loader). This new work will add "teensy_ports" to populate the Tools > Ports menu, and "teensy_serialmon" to connect the serial monitor window to hardware.

I tested just now on Windows 7 with teensy_serialmon running in a command prompt. It's working well.

capture.png

Of course, this isn't how it's going to look for 1.42. This is just the helper running in a command prompt. The new edits to the Arduino IDE will run it as a process and forward its stdout stream to the serial monitor, and anything you send from the serial monitor goes to its stdin stream.

I had hoped to publish a first beta 2 days ago. But everything always takes longer than anticipated. The Windows side has been particularly painful, requiring a mix of Microsoft's "overlapped" asynchronous API and blocking functions in threads (with all the joys of multithreaded programming) because Windows doesn't support overlapped I/O on anonymous pipes, and Java doesn't support Microsoft named pipes.

Anyway, the point is we will soon be ditching Arduino's Java serial problems. In the short term, likely replacing them with problems entirely of my own making. But unlike the Java JSSC library and other problems too deep in the IDE & Java, I will actually be able to fix things!
 
I've made a first beta release with the redesign of the Arduino serial monitor and ports menu.

https://forum.pjrc.com/threads/49831-Teensyduino-1-42-Beta-1

If you're still watching this thread and experiencing this problem, please give this latest beta a try. It's still a bit rough around the edges, as you can see from the known issues list. But it does already solve some of these problems, and my hope is to be able to fix every long-standing serial issue by the 1.42 release. Some of these problems only happen on certain computers or with specific setups, so I'm really depending on feedback.
 
I'm testing the code from msg #6 with 1.42-beta3 using Windows 10 and a Teensy 3.5.

I can reproduce the problem when the port is selected under "Serial" in the Ports menu. When I select the port under "Teensy", the problem appears to be fixed.

@tonton81 - Any chance you could retry the test from msg #1 with 1.42-beta3 using the Teensy port selection?
 
i wouldnt be able to till weekend perhaps, im bombarded with several work shifts that took my time away from my workbench
 
@tonton81 - Any chance to look at this soon? I have Windows 8.1, but not Windows 8.0 Pro. I'm also hoping to avoid spending time with esptool, since I don't use ESP much. Right now I'm merging lots of audio lib features, in prep for 1.42-beta4. If there's still an issue here with esptool or Windows 8.1, would be good to know and maybe I can try to do something before packaging up beta4?
 
Status
Not open for further replies.
Back
Top