Teensy 4.0 First Beta Test

Status
Not open for further replies.
I've fixed the partial line bug which Defragster reported in #4230. It turned out to be on the Java side.

Here's an 8th try. Hopefully this is getting close....

But this doesn't have a fix for the mysterious stopping on Macintosh. I hope to look at that again later today, when I can get that other Mac back on my workbench.
 

Attachments

  • serialmon_speedup_8th_try.zip
    403.4 KB · Views: 88
I've fixed the partial line bug which Defragster reported in #4230. It turned out to be on the Java side.

Here's an 8th try. Hopefully this is getting close....

But this doesn't have a fix for the mysterious stopping on Macintosh. I hope to look at that again later today, when I can get that other Mac back on my workbench.

Incomplete lines seem to be fixe with Try #8. Glad you found it - was odd how it only showed when I went to the USBHost code thread example with 'progress dots' - then could recreate it - but never saw it elsewhere before.

Restarted the twin T4's running lps.ino 'long line' variant to look for output stalls. Just started - so nothing yet. Not sure if anything changed on Win for that - but no new/odd messages in console yet.

It is noteworthy/interesting that Win 10 PC will run one IDE instance of that lps.ino at ~220K lps- then starting second t_sermon T4 with same sketch they then BOTH report ~285K lps - with less fluctuation in the print rate +/- 3K instead of the single instance going 215K to 235K … i.e. +/- 10K. The drop even happens when one it turned off and rises when 2nd unit back up to speed. Note - both on the same powered HUB.
>> Just move one T4 to front panel USB - both running now at ~220K lps.


FeatureCreep:: With Two instances - one T4 for each - the 'Tools / Ports' shows both T4's equally - when in fact one is 'not available' because it is in use on the other IDE - is it possible to 'Gray out' or indicate: while present … it can not be selected?
 
was odd how it only showed when I went to the USBHost code thread example with 'progress dots' - then could recreate it - but never saw it elsewhere before.

Really glad you noticed. I also did several tests and didn't see the problem. It actually turned out to be 2 problems.


one IDE instance of that lps.ino at ~220K lps- then starting second t_sermon T4 with same sketch they then BOTH report ~285K lps

Yeah, these sorts of strange results are because I still have much work to do optimizing the Teensy side. When things are less than optimum, subtle changes in the host side timing can have a big effect.

Teensy 4.0 is capable of so much more, probably over 1M lines/sec. But I've been intentionally leaving it as-is until the Arduino side is able to handle the speed. Feels like we're getting pretty close now, at least for Windows and Linux. Still unresolved problems on Macintosh.

Have you seen any more issues on Windows where teensy_serialmon mysteriously stops, even though Teensy is still running and should be sending?



FeatureCreep:: With Two instances - one T4 for each - the 'Tools / Ports' shows both T4's equally - when in fact one is 'not available' because it is in use on the other IDE - is it possible to 'Gray out' or indicate: while present … it can not be selected?

Oh, that's the discovery manager and editor menu system.... completely different parts of the Arduino IDE code.

Currently the JSON protocol between teensy_ports and the pluggable discovery thread lacks the fields to inform Arduino whether a port is busy. In fact, teensy_ports has no way to know this. Maybe there's some WIN32 function which can tell whether a port is already open by another process? If there is, I've never seen any mention on MSDN or other sites... so not even sure if that's possible. Even if the JSON protocol supported this, the Arduino IDE also lacks the internal APIs for the menu system to get this from the discovery manager system, to make it possible to then edit the GUI code to present the busy ports differently.

It's a neat idea, but so far from quick & easy to do.
 
Have you seen any more issues on Windows where teensy_serialmon mysteriously stops, even though Teensy is still running and should be sending?
@Paul - Have a quick look at https://forum.pjrc.com/threads/57386-T4-Quad-Timer-Capture-and-Output post #5... there is code there where you might reproduce a Win serial mon issue?

I have since made some code changes (not shown) and the issue disappeared. Looks to me like buffer size related?
 
@Paul - Have a quick look at https://forum.pjrc.com/threads/57386-T4-Quad-Timer-Capture-and-Output post #5... there is code there where you might reproduce a Win serial mon issue?

I have since made some code changes (not shown) and the issue disappeared. Looks to me like buffer size related?

I see post #5 there shows a problem with input and 'v' - on prior page there is a link to Serial.Available() issue - that may be related - something other poster noted on thread linked there that disables USB input interrupt as observed in Serial input - keeps the .Avaialable() count from updating. As noted - trying to get simple input during Beta would fail in similar ways - never clear or explainable - I think that was one reason I gave up on debug_tt at the time as one cool feature was breaking and taking user input to get on demand rather than SPEW output.
 
Really glad you noticed. I also did several tests and didn't see the problem. It actually turned out to be 2 problems.
Cool. Glad they got found and cleared.
As noted it was USB host and the progress dots were just not like they used to be … and the code for that part hadn't changed and made no sense so I had to investigate. Other code changed and reading SD card on FLASH dongle is broken … but testing the working USB Drives it was clear those dots were confused - really odd when I cut to paste … there were no new lines ?? :confused:


Yeah, these sorts of strange results are because I still have much work to do optimizing the Teensy side. When things are less than optimum, subtle changes in the host side timing can have a big effect.

Teensy 4.0 is capable of so much more, probably over 1M lines/sec. But I've been intentionally leaving it as-is until the Arduino side is able to handle the speed. Feels like we're getting pretty close now, at least for Windows and Linux. Still unresolved problems on Macintosh.

Have you seen any more issues on Windows where teensy_serialmon mysteriously stops, even though Teensy is still running and should be sending?

So far no Stall/Sleep on Windows. A couple of short runs - then then 5500 second run on both T4's - and just restarted both at 875 secs with no sleeping. Another couple of short restart runs and nothing yet … next try just hit 920 seconds … in cycles it would show 1 in 10 sleeping … then it won't show for some time long or short tests so will let it run and re-run. <RERUNS twin T4's:> 21264 secs,

Host side behavior/interaction is apparent - wasn't sure to what end it might be related. The fact that it will wake a sleeping t_sermon … then seeing faster throughput when doing more work on GUI draw, memory thrashing and USB Xfer.


Not likely related to this output work or any issues it may have - but there is some oddity in the T4 USB input processing that would be good to resolve - posted on prior page and perhaps what @TelephoneBill p#4254 pointed to as well. That would likely get done with jump to DMA USB and other speed up - but something is just wrong in there receiving chars - apparently disabling the interrupt?


Oh, that's the discovery manager and editor menu system.... completely different parts of the Arduino IDE code.

Currently the JSON protocol between teensy_ports and the pluggable discovery thread lacks the fields to inform Arduino whether a port is busy. In fact, teensy_ports has no way to know this. Maybe there's some WIN32 function which can tell whether a port is already open by another process? If there is, I've never seen any mention on MSDN or other sites... so not even sure if that's possible. Even if the JSON protocol supported this, the Arduino IDE also lacks the internal APIs for the menu system to get this from the discovery manager system, to make it possible to then edit the GUI code to present the busy ports differently.

It's a neat idea, but so far from quick & easy to do.

Understood - I wasn't sure how much central control/comms t_serialmon and t_ports had across instances - and certainly not owning the IDE menu. Just spoiled from TyCommander the monolithic App that can spawn new window/threads for multiple Teensys - but all the USB Device awareness is centrally controlled/monitored. Koromix is looking to make time in coming days to take off Beta restriction on T4 and maybe rework his USB Serial speed with something other than a 'toolbox Text Edit control' - hopefully to good effect in the time he can spare.
 
Last edited:
@Paul - I was just back to the MSC code on USBHost where bug in that was fixed. And the "Progress Dots" properly print during that test as well with Try #8 print JAVA print fix.

And WRT general speed and stability of Teensy_SerMon Try #8 JAR - not seeing any errors or faults from repeated runs - uploads - restarts of one sketch then another or with repeats of the LPS.ino at speed. < SEE BELOW :( > Not seen is "Sleep" yet either with Try #8 running or restarted on Twin T4's the past 4 hours.

Only thing is the vertical dot offset jitter with 4 per line version of LPS.ino. I can make a movie of it but it is 5+ MB in size.

FUNNY THING … IGNORE part of the ABOVE!!!

I shrunk the t_sermon output window to see if a smaller movie file resulted and THAT FROZE the t_sermon output - No Console text output was generated:
Try8_Sleep.jpg

It was about 3 times that high and I grabbed a corner and made it about a Quarter as wide and first the test was jumping in the window with horizontal scroll … then it STOPPED.

The second T4 continues to run now over 700 seconds where as shown in that screen shot is froze at 444 seconds.

NOTE: I plugged a USB Flash drive into computer front port and when it arrived the Frozen/Sleeping t_sermon came to life …

<EDIT REPRO>: I restarted both T4's - running fine.
>> GRAB LOWER RIGHT resize corner :: drag up left and horizontal spastic scroll starts - then it just STOPS
- Did this first on the same one window and it repeated from above
- Then it did the SAME on the second instance running the same code.


Plug in Flash Data drive to PC Front USB and BOTH t-Sermon's resume.
 
serialmon_speedup_8th_try.zip

MacBookPro8,2 early 2011 4Gb ram, i7 2.2GHz, osx 10.14.6, arduino 1.8.9, td1.47

I managed to install Mojave on my 3th machine, which is NOT supported by Apple.
Everything freshly installed.

attempt 1: 11min
attempt 2: 6min
attempt 3: 50min
attempt 4: 58min
attempt 5: 17min
attempt 6: 4min
attempt 7: 40sec
attempt 7: 8min

no exceptions were thrown.
speed has almost doubled from 117000 l/sec (osx 10.12.6, 10.13.6) to 227000 l/sec (osx 10.14.6).

I'm starting to suspect that a difference in hardware between machines could be the source of the problem, since it doesn't manifest on your MacBookAir running 10.14.6
My 3 Macs are from 2011, 2x MacBook Pro8,2, 1x iMac12,2.
I can do some test on osx 10.10 & osx 10.11, if needed.
 
Plug in Flash Data drive to PC Front USB and BOTH t-Sermon's resume.

Oh, now that is a strange behavior!

Looks like I do have more Windows-specific troubleshooting to do.....


I'm starting to suspect that a difference in hardware between machines could be the source of the problem, since it doesn't manifest on your MacBookAir running 10.14.6
My 3 Macs are from 2011, 2x MacBook Pro8,2, 1x iMac12,2.

Yes, this seems to fit what I've been seeing here. The only machine I've seen reproduce the problem is a Mid-2012 11 inch Macbook Air, running MacOS 10.12.2. My newer machine doesn't do it. Neither does my very old Macbook Pro runing 10.7.5. The good news is I just got my hands on that 11 inch Macbook Air again and I don't need to return it until Tuesday morning.


I'm out of time for this evening. Will be back on this very late tonight. Hope to have something tomorrow.
 
Oh, now that is a strange behavior!

Looks like I do have more Windows-specific troubleshooting to do.....
...

Okay this time since I posted 4088 and 4096 seconds running not sleeping.

>> Grabbed corner of the first shrunk - started to grow it and SLEEP.
>> Grabbed the corner of the second - Shrinking … SLEEP

Both instances of JAVA under 1.5% CPU - of course during screen shot one shot over 2% … also as low as .7 and .9 %
try8_2sleep.png

This time I plugged in a wireless MSFT Mouse radio dongle - to a separate HUB - USB CHIME CONNECT and Boom - both t_SerMon's running.

And to be complete this is the current state of the LPS.ino in use - I added the 24 MHZ test code and removed it with __xx. It prints 4 wide counts - so on shrinking it forces horizontal scroll - not sure what else is unique:
Code:
#if defined(__IMXRT1062__xx)
extern "C" uint32_t set_arm_clock(uint32_t frequency);
#endif

uint32_t count, prior_count;
uint32_t prior_msec;
uint32_t count_per_second;

bool flip = true;
void setup() {
  Serial.begin(1000000); // edit for highest baud your board can use
  while (!Serial) ;
#if defined(__IMXRT1062__xx)
  //    set_arm_clock(24000000);
  set_arm_clock(600000000);
  Serial.print("F_CPU_ACTUAL=");
  Serial.println(F_CPU_ACTUAL);
  delay(3000);
#endif
  count = 10000000; // starting with 8 digits gives consistent chars/line
  prior_count = count;
  count_per_second = 0;
  prior_msec = millis();
  pinMode( LED_BUILTIN, OUTPUT );
  digitalWriteFast( LED_BUILTIN, flip );
}

void loop() {
  while (1) {
    Serial.print(" >count=");
    Serial.print(count);
    Serial.print(", lines/s=");
    Serial.print(count_per_second);
    if ( !(count % 4) ) {
      Serial.print(' ');
      Serial.println(millis() / 1000);
    }
    count = count + 1;
    uint32_t msec = millis();
    if (msec - prior_msec > 1000) {
      flip = !flip;
      digitalWriteFast( LED_BUILTIN, flip );
      if ( !Serial ) {
        delay( 50 );
        flip = !flip;
        digitalWriteFast( LED_BUILTIN, flip );
      }
      prior_msec = prior_msec + 1000;
      count_per_second = count - prior_count;
      prior_count = count;
    }
  }
}

Corner resize reliable repro just now - 4 out of four easily with the last at 6000 seconds … one did take about ten sets of to-and-fro - a pause … and repeat but it went to sleep.
 
Last edited:
Paul - looking to make a table of mA current at speeds - multiple recompile and upload - then I get this below.

Retry to upload failed too - close Tloader and put T4 in Bootloader so it was in a clean state.

Similar text repeats on attempt to recompile.

Only one IDE instance during this. I closed t_sermon and then it worked to UPLOAD and re-open t_sermon - didn't look at TaskMan:
Code:
TeensyPipeMonitor close
inputPipeListener exception: java.lang.InterruptedException: sleep interrupted
TeensyPipeMonitor close
inputPipeListener thread exit
Sketch uses 14000 bytes (0%) of program storage space. Maximum is 2031616 bytes.
Global variables use 20272 bytes (1%) of dynamic memory, leaving 1028304 bytes for local variables. Maximum is 1048576 bytes.
T:\arduino-1.8.9t4\hardware\teensy/../tools/teensy_post_compile -file=mAmpLog.ino -path=T:\TEMP\arduino_build_867805 -tools=T:\arduino-1.8.9t4\hardware\teensy/../tools -board=TEENSY40 -reboot -port=usb:0/140000/0/8/7 -portlabel=hid#vid_16c0&pid_0478 Bootloader -portprotocol=Teensy 
TeensyPipeMonitor open usb:0/140000/0/8/7
FifoDocument.getText *****NEGATIVE NUMBER ERROR*****
opened, dev=COM37, name=Serial
javax.swing.text.BadLocationException: beyond end
	at processing.app.FifoDocument.createPosition(FifoDocument.java:580)
	at javax.swing.text.DefaultHighlighter.changeHighlight(DefaultHighlighter.java:246)
	at javax.swing.text.DefaultCaret$Handler.insertUpdate(DefaultCaret.java:1676)
	at processing.app.FifoDocument.processAppended(FifoDocument.java:391)
	at processing.app.inputPipeListener$1.run(TeensyPipeMonitor.java:293)
	at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:301)
	at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:758)
	at java.awt.EventQueue.access$500(EventQueue.java:97)
	at java.awt.EventQueue$3.run(EventQueue.java:709)
	at java.awt.EventQueue$3.run(EventQueue.java:703)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:74)
	at java.awt.EventQueue.dispatchEvent(EventQueue.java:728)
	at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:205)
	at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
	at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
	at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)
javax.swing.text.BadLocationException: beyond end
	at processing.app.FifoDocument.createPosition(FifoDocument.java:580)
	at javax.swing.text.DefaultHighlighter.changeHighlight(DefaultHighlighter.java:246)
	at javax.swing.text.DefaultCaret$Handler.insertUpdate(DefaultCaret.java:1676)
	at processing.app.FifoDocument.processAppended(FifoDocument.java:391)
	at processing.app.inputPipeListener$1.run(TeensyPipeMonitor.java:293)
	at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:301)
	at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:758)
	at java.awt.EventQueue.access$500(EventQueue.java:97)
	at java.awt.EventQueue$3.run(EventQueue.java:709)
	at java.awt.EventQueue$3.run(EventQueue.java:703)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:74)
	at java.awt.EventQueue.dispatchEvent(EventQueue.java:728)
	at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:205)
	at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
	at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
	at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)
javax.swing.text.BadLocationException: beyond end
	at processing.app.FifoDocument.createPosition(FifoDocument.java:580)
	at javax.swing.text.DefaultHighlighter.changeHighlight(DefaultHighlighter.java:246)
	at javax.swing.text.DefaultCaret$Handler.insertUpdate(DefaultCaret.java:1676)
	at processing.app.FifoDocument.processAppended(FifoDocument.java:391)
	at processing.app.inputPipeListener$1.run(TeensyPipeMonitor.java:293)
	at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:301)
	at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:758)
	at java.awt.EventQueue.access$500(EventQueue.java:97)
	at java.awt.EventQueue$3.run(EventQueue.java:709)
	at java.awt.EventQueue$3.run(EventQueue.java:703)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:74)
	at java.awt.EventQueue.dispatchEvent(EventQueue.java:728)
	at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:205)
	at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
	at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
	at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)
javax.swing.text.BadLocationException: beyond end
	at processing.app.FifoDocument.createPosition(FifoDocument.java:580)
	at javax.swing.text.DefaultHighlighter.changeHighlight(DefaultHighlighter.java:246)
	at javax.swing.text.DefaultCaret$Handler.insertUpdate(DefaultCaret.java:1676)
	at processing.app.FifoDocument.processAppended(FifoDocument.java:391)
	at processing.app.inputPipeListener$1.run(TeensyPipeMonitor.java:293)
	at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:301)
	at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:758)
	at java.awt.EventQueue.access$500(EventQueue.java:97)
	at java.awt.EventQueue$3.run(EventQueue.java:709)
	at java.awt.EventQueue$3.run(EventQueue.java:703)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:74)
	at java.awt.EventQueue.dispatchEvent(EventQueue.java:728)
	at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:205)
	at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
	at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
	at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)
javax.swing.text.BadLocationException: beyond end
	at processing.app.FifoDocument.createPosition(FifoDocument.java:580)
	at javax.swing.text.DefaultHighlighter.changeHighlight(DefaultHighlighter.java:246)
	at javax.swing.text.DefaultCaret$Handler.insertUpdate(DefaultCaret.java:1676)
	at processing.app.FifoDocument.processAppended(FifoDocument.java:391)
	at processing.app.inputPipeListener$1.run(TeensyPipeMonitor.java:293)
	at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:301)
	at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:758)
	at java.awt.EventQueue.access$500(EventQueue.java:97)
	at java.awt.EventQueue$3.run(EventQueue.java:709)
	at java.awt.EventQueue$3.run(EventQueue.java:703)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:74)
	at java.awt.EventQueue.dispatchEvent(EventQueue.java:728)
	at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:205)
	at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
	at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
	at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)
javax.swing.text.BadLocationException: beyond end
	at processing.app.FifoDocument.createPosition(FifoDocument.java:580)
	at javax.swing.text.DefaultHighlighter.changeHighlight(DefaultHighlighter.java:246)
	at javax.swing.text.DefaultCaret$Handler.insertUpdate(DefaultCaret.java:1676)
	at processing.app.FifoDocument.processAppended(FifoDocument.java:391)
	at processing.app.inputPipeListener$1.run(TeensyPipeMonitor.java:293)
	at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:301)
	at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:758)
	at java.awt.EventQueue.access$500(EventQueue.java:97)
	at java.awt.EventQueue$3.run(EventQueue.java:709)
	at java.awt.EventQueue$3.run(EventQueue.java:703)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:74)
	at java.awt.EventQueue.dispatchEvent(EventQueue.java:728)
	at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:205)
	at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
	at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
	at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)
javax.swing.text.BadLocationException: beyond end
	at processing.app.FifoDocument.createPosition(FifoDocument.java:580)
	at javax.swing.text.DefaultHighlighter.changeHighlight(DefaultHighlighter.java:246)
	at javax.swing.text.DefaultCaret$Handler.insertUpdate(DefaultCaret.java:1676)
	at processing.app.FifoDocument.processAppended(FifoDocument.java:391)
	at processing.app.inputPipeListener$1.run(TeensyPipeMonitor.java:293)
	at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:301)
	at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:758)
	at java.awt.EventQueue.access$500(EventQueue.java:97)
	at java.awt.EventQueue$3.run(EventQueue.java:709)
	at java.awt.EventQueue$3.run(EventQueue.java:703)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:74)
	at java.awt.EventQueue.dispatchEvent(EventQueue.java:728)
	at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:205)
	at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
	at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
	at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)
javax.swing.text.BadLocationException: beyond end
	at processing.app.FifoDocument.createPosition(FifoDocument.java:580)
	at javax.swing.text.DefaultHighlighter.changeHighlight(DefaultHighlighter.java:246)
	at javax.swing.text.DefaultCaret$Handler.insertUpdate(DefaultCaret.java:1676)
	at processing.app.FifoDocument.processAppended(FifoDocument.java:391)
	at processing.app.inputPipeListener$1.run(TeensyPipeMonitor.java:293)
	at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:301)
	at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:758)
	at java.awt.EventQueue.access$500(EventQueue.java:97)
	at java.awt.EventQueue$3.run(EventQueue.java:709)
	at java.awt.EventQueue$3.run(EventQueue.java:703)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:74)
	at java.awt.EventQueue.dispatchEvent(EventQueue.java:728)
	at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:205)
	at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
	at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
	at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)
javax.swing.text.BadLocationException: beyond end
	at processing.app.FifoDocument.createPosition(FifoDocument.java:580)
	at javax.swing.text.DefaultHighlighter.changeHighlight(DefaultHighlighter.java:246)
	at javax.swing.text.DefaultCaret$Handler.insertUpdate(DefaultCaret.java:1676)
	at processing.app.FifoDocument.processAppended(FifoDocument.java:391)
	at processing.app.inputPipeListener$1.run(TeensyPipeMonitor.java:293)
	at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:301)
	at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:758)
	at java.awt.EventQueue.access$500(EventQueue.java:97)
	at java.awt.EventQueue$3.run(EventQueue.java:709)
	at java.awt.EventQueue$3.run(EventQueue.java:703)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:74)
	at java.awt.EventQueue.dispatchEvent(EventQueue.java:728)
	at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:205)
	at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
	at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
	at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)
javax.swing.text.BadLocationException: beyond end
	at processing.app.FifoDocument.createPosition(FifoDocument.java:580)
	at javax.swing.text.DefaultHighlighter.changeHighlight(DefaultHighlighter.java:246)
	at javax.swing.text.DefaultCaret$Handler.insertUpdate(DefaultCaret.java:1676)
	at processing.app.FifoDocument.processAppended(FifoDocument.java:391)
	at processing.app.inputPipeListener$1.run(TeensyPipeMonitor.java:293)
	at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:301)
	at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:758)
	at java.awt.EventQueue.access$500(EventQueue.java:97)
	at java.awt.EventQueue$3.run(EventQueue.java:709)
	at java.awt.EventQueue$3.run(EventQueue.java:703)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:74)
	at java.awt.EventQueue.dispatchEvent(EventQueue.java:728)
	at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:205)
	at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
	at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
	at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)
javax.swing.text.BadLocationException: beyond end
	at processing.app.FifoDocument.createPosition(FifoDocument.java:580)
	at javax.swing.text.DefaultHighlighter.changeHighlight(DefaultHighlighter.java:246)
	at javax.swing.text.DefaultCaret$Handler.insertUpdate(DefaultCaret.java:1676)
	at processing.app.FifoDocument.processAppended(FifoDocument.java:391)
	at processing.app.inputPipeListener$1.run(TeensyPipeMonitor.java:293)
	at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:301)
	at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:758)
	at java.awt.EventQueue.access$500(EventQueue.java:97)
	at java.awt.EventQueue$3.run(EventQueue.java:709)
	at java.awt.EventQueue$3.run(EventQueue.java:703)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:74)
	at java.awt.EventQueue.dispatchEvent(EventQueue.java:728)
	at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:205)
	at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
	at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
	at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)
javax.swing.text.BadLocationException: beyond end
	at processing.app.FifoDocument.createPosition(FifoDocument.java:580)
	at javax.swing.text.DefaultHighlighter.changeHighlight(DefaultHighlighter.java:246)
	at javax.swing.text.DefaultCaret$Handler.insertUpdate(DefaultCaret.java:1676)
	at processing.app.FifoDocument.processAppended(FifoDocument.java:391)
	at processing.app.inputPipeListener$1.run(TeensyPipeMonitor.java:293)
	at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:301)
	at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:758)
	at java.awt.EventQueue.access$500(EventQueue.java:97)
	at java.awt.EventQueue$3.run(EventQueue.java:709)
	at java.awt.EventQueue$3.run(EventQueue.java:703)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:74)
	at java.awt.EventQueue.dispatchEvent(EventQueue.java:728)
	at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:205)
	at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
	at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
	at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)
javax.swing.text.BadLocationException: beyond end
	at processing.app.FifoDocument.createPosition(FifoDocument.java:580)
	at javax.swing.text.DefaultHighlighter.changeHighlight(DefaultHighlighter.java:246)
	at javax.swing.text.DefaultCaret$Handler.insertUpdate(DefaultCaret.java:1676)
	at processing.app.FifoDocument.processAppended(FifoDocument.java:391)
	at processing.app.inputPipeListener$1.run(TeensyPipeMonitor.java:293)
	at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:301)
	at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:758)
	at java.awt.EventQueue.access$500(EventQueue.java:97)
	at java.awt.EventQueue$3.run(EventQueue.java:709)
	at java.awt.EventQueue$3.run(EventQueue.java:703)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:74)
	at java.awt.EventQueue.dispatchEvent(EventQueue.java:728)
	at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:205)
	at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
	at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
	at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)
javax.swing.text.BadLocationException: beyond end
	at processing.app.FifoDocument.createPosition(FifoDocument.java:580)
	at javax.swing.text.DefaultHighlighter.changeHighlight(DefaultHighlighter.java:246)
	at javax.swing.text.DefaultCaret$Handler.insertUpdate(DefaultCaret.java:1676)
	at processing.app.FifoDocument.processAppended(FifoDocument.java:391)
	at processing.app.inputPipeListener$1.run(TeensyPipeMonitor.java:293)
	at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:301)
	at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:758)
	at java.awt.EventQueue.access$500(EventQueue.java:97)
	at java.awt.EventQueue$3.run(EventQueue.java:709)
	at java.awt.EventQueue$3.run(EventQueue.java:703)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:74)
	at java.awt.EventQueue.dispatchEvent(EventQueue.java:728)
	at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:205)
	at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
	at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
	at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)
javax.swing.text.BadLocationException: beyond end
	at processing.app.FifoDocument.createPosition(FifoDocument.java:580)
	at javax.swing.text.DefaultHighlighter.changeHighlight(DefaultHighlighter.java:246)
	at javax.swing.text.DefaultCaret$Handler.insertUpdate(DefaultCaret.java:1676)
	at processing.app.FifoDocument.processAppended(FifoDocument.java:391)
	at processing.app.inputPipeListener$1.run(TeensyPipeMonitor.java:293)
	at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:301)
	at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:758)
	at java.awt.EventQueue.access$500(EventQueue.java:97)
	at java.awt.EventQueue$3.run(EventQueue.java:709)
	at java.awt.EventQueue$3.run(EventQueue.java:703)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:74)
	at java.awt.EventQueue.dispatchEvent(EventQueue.java:728)
	at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:205)
	at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
	at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
	at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)
javax.swing.text.BadLocationException: beyond end
	at processing.app.FifoDocument.createPosition(FifoDocument.java:580)
	at javax.swing.text.DefaultHighlighter.changeHighlight(DefaultHighlighter.java:246)
	at javax.swing.text.DefaultCaret$Handler.insertUpdate(DefaultCaret.java:1676)
	at processing.app.FifoDocument.processAppended(FifoDocument.java:391)
	at processing.app.inputPipeListener$1.run(TeensyPipeMonitor.java:293)
	at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:301)
	at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:758)
	at java.awt.EventQueue.access$500(EventQueue.java:97)
	at java.awt.EventQueue$3.run(EventQueue.java:709)
	at java.awt.EventQueue$3.run(EventQueue.java:703)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:74)
	at java.awt.EventQueue.dispatchEvent(EventQueue.java:728)
	at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:205)
	at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
	at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
	at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)
javax.swing.text.BadLocationException: beyond end
	at processing.app.FifoDocument.createPosition(FifoDocument.java:580)
	at javax.swing.text.DefaultHighlighter.changeHighlight(DefaultHighlighter.java:246)
	at javax.swing.text.DefaultCaret$Handler.insertUpdate(DefaultCaret.java:1676)
	at processing.app.FifoDocument.processAppended(FifoDocument.java:391)
	at processing.app.inputPipeListener$1.run(TeensyPipeMonitor.java:293)
	at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:301)
	at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:758)
	at java.awt.EventQueue.access$500(EventQueue.java:97)
	at java.awt.EventQueue$3.run(EventQueue.java:709)
	at java.awt.EventQueue$3.run(EventQueue.java:703)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:74)
	at java.awt.EventQueue.dispatchEvent(EventQueue.java:728)
	at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:205)
	at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
	at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
	at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)
javax.swing.text.BadLocationException: beyond end
	at processing.app.FifoDocument.createPosition(FifoDocument.java:580)
	at javax.swing.text.DefaultHighlighter.changeHighlight(DefaultHighlighter.java:246)
	at javax.swing.text.DefaultCaret$Handler.insertUpdate(DefaultCaret.java:1676)
	at processing.app.FifoDocument.processAppended(FifoDocument.java:391)
	at processing.app.inputPipeListener$1.run(TeensyPipeMonitor.java:293)
	at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:301)
	at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:758)
	at java.awt.EventQueue.access$500(EventQueue.java:97)
	at java.awt.EventQueue$3.run(EventQueue.java:709)
	at java.awt.EventQueue$3.run(EventQueue.java:703)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:74)
	at java.awt.EventQueue.dispatchEvent(EventQueue.java:728)
	at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:205)
	at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
	at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
	at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)
javax.swing.text.BadLocationException: beyond end
	at processing.app.FifoDocument.createPosition(FifoDocument.java:580)
	at javax.swing.text.DefaultHighlighter.changeHighlight(DefaultHighlighter.java:246)
	at javax.swing.text.DefaultCaret$Handler.insertUpdate(DefaultCaret.java:1676)
	at processing.app.FifoDocument.processAppended(FifoDocument.java:391)
	at processing.app.inputPipeListener$1.run(TeensyPipeMonitor.java:293)
	at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:301)
	at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:758)
	at java.awt.EventQueue.access$500(EventQueue.java:97)
	at java.awt.EventQueue$3.run(EventQueue.java:709)
	at java.awt.EventQueue$3.run(EventQueue.java:703)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:74)
	at java.awt.EventQueue.dispatchEvent(EventQueue.java:728)
	at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:205)
	at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
	at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
	at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)
javax.swing.text.BadLocationException: beyond end
	at processing.app.FifoDocument.createPosition(FifoDocument.java:580)
	at javax.swing.text.DefaultHighlighter.changeHighlight(DefaultHighlighter.java:246)
	at javax.swing.text.DefaultCaret$Handler.insertUpdate(DefaultCaret.java:1676)
	at processing.app.FifoDocument.processAppended(FifoDocument.java:391)
	at processing.app.inputPipeListener$1.run(TeensyPipeMonitor.java:293)
	at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:301)
	at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:758)
	at java.awt.EventQueue.access$500(EventQueue.java:97)
	at java.awt.EventQueue$3.run(EventQueue.java:709)
	at java.awt.EventQueue$3.run(EventQueue.java:703)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:74)
	at java.awt.EventQueue.dispatchEvent(EventQueue.java:728)
	at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:205)
	at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
	at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
	at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)
javax.swing.text.BadLocationException: beyond end
	at processing.app.FifoDocument.createPosition(FifoDocument.java:580)
	at javax.swing.text.DefaultHighlighter.changeHighlight(DefaultHighlighter.java:246)
	at javax.swing.text.DefaultCaret$Handler.insertUpdate(DefaultCaret.java:1676)
	at processing.app.FifoDocument.processAppended(FifoDocument.java:391)
	at processing.app.inputPipeListener$1.run(TeensyPipeMonitor.java:293)
	at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:301)
	at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:758)
	at java.awt.EventQueue.access$500(EventQueue.java:97)
	at java.awt.EventQueue$3.run(EventQueue.java:709)
	at java.awt.EventQueue$3.run(EventQueue.java:703)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:74)
	at java.awt.EventQueue.dispatchEvent(EventQueue.java:728)
	at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:205)
	at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
	at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
	at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)
javax.swing.text.BadLocationException: beyond end
	at processing.app.FifoDocument.createPosition(FifoDocument.java:580)
	at javax.swing.text.DefaultHighlighter.changeHighlight(DefaultHighlighter.java:246)
	at javax.swing.text.DefaultCaret$Handler.insertUpdate(DefaultCaret.java:1676)
	at processing.app.FifoDocument.processAppended(FifoDocument.java:391)
	at processing.app.inputPipeListener$1.run(TeensyPipeMonitor.java:293)
	at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:301)
	at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:758)
	at java.awt.EventQueue.access$500(EventQueue.java:97)
	at java.awt.EventQueue$3.run(EventQueue.java:709)
	at java.awt.EventQueue$3.run(EventQueue.java:703)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:74)
	at java.awt.EventQueue.dispatchEvent(EventQueue.java:728)
	at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:205)
	at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
	at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
	at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)
javax.swing.text.BadLocationException: beyond end
	at processing.app.FifoDocument.createPosition(FifoDocument.java:580)
	at javax.swing.text.DefaultHighlighter.changeHighlight(DefaultHighlighter.java:246)
	at javax.swing.text.DefaultCaret$Handler.insertUpdate(DefaultCaret.java:1676)
	at processing.app.FifoDocument.processAppended(FifoDocument.java:391)
	at processing.app.inputPipeListener$1.run(TeensyPipeMonitor.java:293)
	at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:301)
	at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:758)
	at java.awt.EventQueue.access$500(EventQueue.java:97)
	at java.awt.EventQueue$3.run(EventQueue.java:709)
	at java.awt.EventQueue$3.run(EventQueue.java:703)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:74)
	at java.awt.EventQueue.dispatchEvent(EventQueue.java:728)
	at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:205)
	at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
	at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
	at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)
javax.swing.text.BadLocationException: beyond end
	at processing.app.FifoDocument.createPosition(FifoDocument.java:580)
	at javax.swing.text.DefaultHighlighter.changeHighlight(DefaultHighlighter.java:246)
	at javax.swing.text.DefaultCaret$Handler.insertUpdate(DefaultCaret.java:1676)
	at processing.app.FifoDocument.processAppended(FifoDocument.java:391)
	at processing.app.inputPipeListener$1.run(TeensyPipeMonitor.java:293)
	at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:301)
	at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:758)
	at java.awt.EventQueue.access$500(EventQueue.java:97)
	at java.awt.EventQueue$3.run(EventQueue.java:709)
	at java.awt.EventQueue$3.run(EventQueue.java:703)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:74)
	at java.awt.EventQueue.dispatchEvent(EventQueue.java:728)
	at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:205)
	at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
	at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
	at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)
javax.swing.text.BadLocationException: beyond end
	at processing.app.FifoDocument.createPosition(FifoDocument.java:580)
	at javax.swing.text.DefaultHighlighter.changeHighlight(DefaultHighlighter.java:246)
	at javax.swing.text.DefaultCaret$Handler.insertUpdate(DefaultCaret.java:1676)
	at processing.app.FifoDocument.processAppended(FifoDocument.java:391)
	at processing.app.inputPipeListener$1.run(TeensyPipeMonitor.java:293)
	at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:301)
	at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:758)
	at java.awt.EventQueue.access$500(EventQueue.java:97)
	at java.awt.EventQueue$3.run(EventQueue.java:709)
	at java.awt.EventQueue$3.run(EventQueue.java:703)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:74)
	at java.awt.EventQueue.dispatchEvent(EventQueue.java:728)
	at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:205)
	at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
	at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
	at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)
javax.swing.text.BadLocationException: beyond end
	at processing.app.FifoDocument.createPosition(FifoDocument.java:580)
	at javax.swing.text.DefaultHighlighter.changeHighlight(DefaultHighlighter.java:246)
	at javax.swing.text.DefaultCaret$Handler.insertUpdate(DefaultCaret.java:1676)
	at processing.app.FifoDocument.processAppended(FifoDocument.java:391)
	at processing.app.inputPipeListener$1.run(TeensyPipeMonitor.java:293)
	at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:301)
	at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:758)
	at java.awt.EventQueue.access$500(EventQueue.java:97)
	at java.awt.EventQueue$3.run(EventQueue.java:709)
	at java.awt.EventQueue$3.run(EventQueue.java:703)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:74)
	at java.awt.EventQueue.dispatchEvent(EventQueue.java:728)
	at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:205)
	at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
	at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
	at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)
javax.swing.text.BadLocationException: beyond end
	at processing.app.FifoDocument.createPosition(FifoDocument.java:580)
	at javax.swing.text.DefaultHighlighter.changeHighlight(DefaultHighlighter.java:246)
	at javax.swing.text.DefaultCaret$Handler.insertUpdate(DefaultCaret.java:1676)
	at processing.app.FifoDocument.processAppended(FifoDocument.java:391)
	at processing.app.inputPipeListener$1.run(TeensyPipeMonitor.java:293)
	at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:301)
	at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:758)
	at java.awt.EventQueue.access$500(EventQueue.java:97)
	at java.awt.EventQueue$3.run(EventQueue.java:709)
	at java.awt.EventQueue$3.run(EventQueue.java:703)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:74)
	at java.awt.EventQueue.dispatchEvent(EventQueue.java:728)
	at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:205)
	at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
	at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
	at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)
javax.swing.text.BadLocationException: beyond end
	at processing.app.FifoDocument.createPosition(FifoDocument.java:580)
	at javax.swing.text.DefaultHighlighter.changeHighlight(DefaultHighlighter.java:246)
	at javax.swing.text.DefaultCaret$Handler.insertUpdate(DefaultCaret.java:1676)
	at processing.app.FifoDocument.processAppended(FifoDocument.java:391)
	at processing.app.inputPipeListener$1.run(TeensyPipeMonitor.java:293)
	at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:301)
	at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:758)
	at java.awt.EventQueue.access$500(EventQueue.java:97)
	at java.awt.EventQueue$3.run(EventQueue.java:709)
	at java.awt.EventQueue$3.run(EventQueue.java:703)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:74)
	at java.awt.EventQueue.dispatchEvent(EventQueue.java:728)
	at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:205)
	at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
	at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
	at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)
 
Paul - I had downloaded your lasted sermon file and installed it on a Win10x64 machine and just been testing under normal conditions as I have all of them. Just now in doing repeated uploads as I debugged a sketch I received a Java exception:
Code:
javax.swing.text.BadLocationException: beyond end
	at processing.app.FifoDocument.createPosition(FifoDocument.java:580)
	at javax.swing.text.DefaultHighlighter.changeHighlight(DefaultHighlighter.java:245)
	at javax.swing.text.DefaultCaret$Handler.insertUpdate(DefaultCaret.java:1676)
	at processing.app.FifoDocument.processAppended(FifoDocument.java:391)
	at processing.app.inputPipeListener$1.run(TeensyPipeMonitor.java:293)
	at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:301)
	at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:758)
	at java.awt.EventQueue.access$500(EventQueue.java:97)
	at java.awt.EventQueue$3.run(EventQueue.java:709)
	at java.awt.EventQueue$3.run(EventQueue.java:703)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:74)
	at java.awt.EventQueue.dispatchEvent(EventQueue.java:728)
	at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:205)
	at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
	at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
	at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)
The sermon opened but after a second.

On recompiling and upload I received a second error:
Code:
TeensyPipeMonitor close
inputPipeListener exception: java.lang.InterruptedException: sleep interrupted
TeensyPipeMonitor close
inputPipeListener thread exit
errorPipeListener thread exit
Sketch uses 51400 bytes (4%) of program storage space. Maximum is 1048576 bytes.
Global variables use 11000 bytes (4%) of dynamic memory, leaving 251144 bytes for local variables. Maximum is 262144 bytes.
TeensyPipeMonitor open usb:0/140000/0/A/5
FifoDocument.getText *****NEGATIVE NUMBER ERROR*****
But the sketch still opened

EDIT: Sermon_try_7 didn't see any errors under normal operation.
 
On Try #8 longer run 38600+ seconds … NOTE: IDE was NOT shut down after last #4261 - so been running some time and stable across a few sketches off and on - just closed the faulty t_sermon.

Anyhow - both T4's on their instance running well … going to resize …
FIRST: Single slowish slide lower right corner to smaller window and … SLEEP
SECOND: Single slowish lower right side corner to LARGER window and … SLEEP

So one single attempt to resize those two windows smaller or even larger and both stopped running after 10+ hours.

Found something ELSE to plug into USB - it seems any device that CHIMES IN to Windows USB will WAKE the sleeping t_sermon's

Then the one I made SMALL I dragged larger and it froze and one I made LARGE I dragged smaller and it froze.

Then I unplugged that other USB device and when it CHIMED OUT again BOTH t_sermon's WOKE back to running - now over 40K seconds since last T4 Upload to each of the two.
>> None of these SLEEP/WAKE events of t_sermon in either IDE CONSOLE showed any messages since the last:
TeensyPipeMonitor open usb:0/140000/0/8/7
opened, dev=COM37, name=Serial

REPRO UPDATE: those same two T4's running now at 89730 and 89920 seconds after the above SLEEP and RESTART … time to resize:
#1: Three simple drags narrow , then wide, then diagonal smaller, bigger - No Sleep - then SLOW long narrow and SLEEP at 89829
#2: Same here - grab, drag release no problem. But grab the corner drag as need without release and SLEEP at 90150 secs
>> Plug in a T_3.1 and on arrival running whatever and they BOTH wake and continue.
-- repeat slow corner drag and BOTH SLEEP, close TLOADER, plug in T_3.1 with Button held: Both WAKE and continue on Button release
??:: Seems like GUI processing time perhaps causes miss of USB data grab that then leaves data waiting for attention until USB event wakes the retrieve code?


Other thread I compiled TensorFlow and no errors - didn't scan the warnings - but got flashing LED showing processing, but I have no mic. Posted a quick 'no delay()' hack {with a static brightness and an elapsedMillis var} to make the LED cycle. The LED update code called about 175K/second at 600 MHz so that explains the LED cycling too fast and just being 'on'. Did the call count with T4 at 48 MHz and it was still hitting 17K/sec calls to that update - which is likely still faster than the 64 MHz processor that code was written for.
 
Last edited:
FLEXCAN FD ENHANCED FIFO

A while ago I posted about not being able to get FD FIFO working on the RT1060, specifically, not being able to set the FD registers. I posed the question on the NXP Community Forum and finally got my answer, which I suspected:
...the RT1060 can't support the enhanced RX FIFO function, that's why both of you enter the hardfault, it's not the code problem.It's totally the RT1060,RT1064 reference manual bug, and I also get this information today. I already push the related department help to fix the reference manual bug ASAP.

However, looks like it will be supported in future versions:
I have been told that in the new chip RT1170, RT1070 will contain the FlexCAN enhanced RX FIFO function

Just wanted to let you all know.
 
Paul - let me know if the Resize Repro works on your Windows machine. It might be that sketch line length. Other than resize at high speed it seemed stable and good.


Just got Teensy 4 back in stock note from Adafruit. They don't show count - but I could put 100 in the cart … but not 200 :)

SparkFun still out showing : Some are estimated to be available by Sep 16, 2019.

And Out of stock at PJRC is the note … still with the extended note of : Update, Aug 9: More Teensy 4.0 are in production now, ...
 
Just saw this comment on SparkFun:
Member #1312835 / about 4 days ago / 1

I'm on Linux (Manjaro), and I've been using teensy-loader-cli with previous versions of Teensy. I checked their github and Teensy4.0 is not supported, and Teensy Loader GUI is not working with 4.0 neither. What are my options (except for waiting)?
 
Just an FYI - In the thread: https://forum.pjrc.com/threads/57176-teensy_loader_cli-and-Teensy-4-0?p=213735#post213735
I added the Teensy T4 strings, to the CLI app, but that is not currently sufficient, as there is an offset record as the first record of a very large number, which then causes the code to bail.
Another member made a delta to that, which saved away the offset and stored the data in the local array and only used the offset later...

He said it worked for him... But I was not sure if there might be more than one offset record what would happen...

But if your like living on the edge...
 
Doesn’t a cli version come with Koromix’ TyTools?

koromix noted in an email that he hopes to have time this week to update TyCommander and TyTools - his last release had a 'beta' requirement to set an ENV var to prove you wanted to talk to a T4 - I suppose that extend to cli as well. I've been doing that and it works in the GUI TyCommander.

As KurtE notes - I was pointed to a Github teensy_loader_cli/issues/47 with the noted Delta for the PJRC tool - which also ideally will show the 'current date passing scheme' during upload the T4 bootloader uses.
 
I've updated the web page.

Yes :) , yes you did : "Update, Sept 3: A third batch of Teensy 4.0 boards are in production. We expect to have them ready to ship by the middle of next week. "

AdaFruit now showing count of 85 on hand. { A day later: PJRC Teensy 4.0 USB Development Board PRODUCT ID: 4323 9 IN STOCK } … And sold out before midnight 9/4
 
Last edited:
Opps, looks like someone from NXP might have accidentally revealed info about future chips.

It wasn't me!

No - Nothing slipped from Paul/PJRC. I saw that and wondered when posted - quick search got nothing.

Now Github has these notes:
> Add CM7 led demo binaries for RT1170-VAL
> Add ROM patch(Rev1) for RT1170 A0

Found a Chinese site translated - 1 GHz and 5070 coremark - dualcore?

I wonder what mjs513 saw ...
 
Confirming free running TensorFlow on T4 with Audio Board Library and mic on T4B2Ribbon board working thanks to @andrewpiepenbrink :: Tensorflow-on-Teensy
Code:
Heard unknown (202) @4636880ms
Heard no (202) @4643920ms
Heard no (202) @4647720ms
Heard no (201) @4649360ms
Heard no (201) @4650944ms
Heard no (204) @4657920ms
Heard yes (203) @4670464ms
Heard yes (204) @4672104ms
Heard yes (201) @4674440ms
Heard yes (201) @4677440ms
Heard yes (202) @4678944ms
Heard unknown (201) @4687704ms

That thread shows AdaFruit posted a version - push button required to sample and they suggest 200 MHz to make it speedy.

A bit of lag even on Teensy 4.0 … by their number from Sample to notify 2.6 secs
 
Last edited:
Status
Not open for further replies.
Back
Top