Teensyduino 1.20 features

Status
Not open for further replies.

PaulStoffregen

Well-known member
I'm working towards a 1.20 software release. The main theme is "infrastructure features", or code which allows future libraries and projects to be built.

Here's my current list of features planned for 1.20.

  • Interrupt vectors in RAM
  • DMAChannel & DMASetting object
  • serialEvent
  • new attachInterrupt function, for writing interrupt vector table
  • SPI transactions
  • Fix linker bug, reduce memory waste (Andrew Kroll)
  • FASTRUN functions in RAM
  • All (or nearly all) included libraries ported to Teensy 3.x
  • Optimized ILI9341 library

Some of these may be dropped, and other stuff might get added. Now is the time to comment (or contribute) for 1.20 features.
 
Nice list: Several of these items will be great to have full support for the Adafruit 2.8" TFT shield with touch.

ILI9341 - I have a version that uses your fast SPI mode up at: https://github.com/KurtE/Adafruit_ILI9341

Touch: STMPE610 teensy support: I have a version up at: https://github.com/KurtE/Adafruit_STMPE610
Note: STMPE610 version I have uses SPI library as the CS pin is not one of the special pins...

Which implies: you need some form of SPI switching/transactions - I have done my own for test cases, which I have uploaded on some threads... Will be great to have an official version, that maybe is fully integrated.

SD library - Was not working for me, with either the 2.8" TFT display nor the 1.8" TFT display with the Adafruit or SD library example programs. Both worked with SDFAT library examples: Found what I think is the problem (or at least a fix for me), which I posted in this thread: http://forum.pjrc.com/threads/25824-T3-1-and-SD-card-CS-pin (#15 and #17)

ILI9340 fast SPI support: I know that Sumotoy has posted a version in the thread: http://forum.pjrc.com/threads/26030-Teensy-3-1-and-ILI9340-Display-Issue
But also - I have not found any real differences between the Adafruit ILI9340 and ILI9341 drivers (except support for other processors...). In some other drivers I have seen what may be some init differences...
 
How about multicasting support for the EthernetUDP library

I'll look at this after SPI transactions. Please remind me when there's a release candidate with SPI transaction (will not be in the 1st one...)

Suggest updating to the latest GitHub version of Adafruit SSD1306

I updated my copy a few weeks ago. It'll be in rc1. If it's still to old, please let me know after rc1 is out.

ILI9341 - I have a version that uses your fast SPI mode up at: https://github.com/KurtE/Adafruit_ILI9341

Thanks. I'm bringing this in now. It'll be in rc1.

Nice list of goodness. I think you forgot to mention updates to the toolchain?

Opps, yes, forgot to mention that. I'm working on that today. Something (probably the zlib stuff) caused the Windows build to bloat to incredible size (a few hundred megabytes).

I'm testing a Linux 64 bit build right now. The linker bug seems to be fixed... getting much small build size.
 
Suggest supplying the latest GitHub version of Arduino-Temperature-Control-Library
(previously Dallas Temperature) as described here. Tested with Teensy 2.0, ++2.0, 3.0.
 
So many people want so many things, and really, I do want to give everyone ALL THE THINGS!!! ;)

At the moment, I'm really trying to get to a 1st release candidate with what'd ready right now. As you can see on the github commit log, many changes have been made in the core library, and today I've been rebuilding the toolchain with the linker and zlib fixes from Andrew.

There are going to be at least a few release candidates leading up 1.20. If I miss stuff in the first one, don't worry... it's not I'm rejecting anything yet, I just want to get 1.20-rc1 pushed out ASAP with these core lib and toolchain changes.

Between rc1 & rc2, I'm planning to work on the SPI transaction support, and a tiny bootloader upgrade to solve the NMI-default issue on pin 33.
 
Here's a super simple addition request to 1.20... from http://forum.pjrc.com/threads/25757-Q-on-altering-boards-txt?highlight=boards.txt, post #5

add these to boards.txt for teensy 3.0 and 3.1

When I added the below to (Windows) C:\Arduino\hardware\teensy\boards.txt, whoopie, the IDE I'm using (VisualMicro/VS) no longer needs a special project setting. Just pick a Teensy board. Saves a PITA resetting more than just the board type in that IDE. Now, it's quick. Great.

teensy31.build.option5=-DF_CPU=96000000
teensy31.build.option6=-DUSB_SERIAL
teensy31.build.option7=-DLAYOUT_US_ENGLISH

teensy3.build.option5=-DF_CPU=96000000
teensy3.build.option6=-DUSB_SERIAL
teensy3.build.option7=-DLAYOUT_US_ENGLISH

without this, those of using Visual Micro + Studio 6 have to re-edit boards.txt to add the above. I use this full time now.
 
I've posted the first release candidate.

http://forum.pjrc.com/threads/26099-Teensyduino-1-20-Release-Candidate-1-Available

Many of the features mentioned on this page didn't make rc1. I do hope to get much of this into rc2....

Steve, adding those lines into boards.txt would conflict on the Arduino IDE with the settings from the menu. I could add them as commented out lines, to make things easier, but they can't go directly into the main boards.txt which is meant to work with the Arduino IDE.
 
A text file containing the teensyduino revision and change log. I could not find one on my windows install.
 
I just ran Adafruit_ILI9341 graphicstest using the optimized copy (from KurtE) that's now included in the 1.20-rc1 installer.

To see the entire result, I had to add "while (!Serial) ;" at the beginning of setup().

Here's the result.

Code:
ILI9341 Test!
Check for Hardware SPI
Hardware SPI
Display Power Mode: 0x9C
MADCTL Mode: 0x48
Pixel Format: 0x5
Image Format: 0x9C
Self Diagnostic: 0xC0
Benchmark                Time (microseconds)
Screen fill              544037
Text                     26980
Lines                    245785
Horiz/Vert Lines         44407
Rectangles (outline)     28239
Rectangles (filled)      1129446
Circles (filled)         155577
Circles (outline)        107521
Triangles (outline)      77953
Triangles (filled)       365878
Rounded rects (outline)  52092
Rounded rects (filled)   1228089
Done!
 
Teeny 3.1 @96mhz?
What's the SPI clock rate?
(i assumes the Lines test result has not been "fixed". Adafruit version returns time for last line-drawing sequence instead of the sum of all sequences.)

thanks for your quick reply
 
Last edited:
I mainly wanted some way to know which version was installed on the PC.

Use Help > About.

about.png

If it doesn't say which Teensyduino version, it's older than 1.18... and you should certainly update!
 
Hi Paul,

What I would like to see is that every time the serial monitor window is brought up the sketch would restart. So it is possible to rerun a sketch multiple times without have to reload it. I know you can hit the reset button on the teensy but sometime in my projects it is hard to get to.
 
What I would like to see is that every time the serial monitor window is brought up the sketch would restart. So it is possible to rerun a sketch multiple times without have to reload it. I know you can hit the reset button on the teensy but sometime in my projects it is hard to get to.

I can see how that would be useful. I can also see how it would break other people's usage (if they have a long-running sketch monitoring something, and occasionally pop up a serial monitor to see how it is getting on). So if added, this feature should be opt-in rather than always-on.
 
So if added, this feature should be opt-in rather than always-on.

Teensy 2.0 has this feature, always-on. People seem pretty happy with it.

It's been on my to-do list for Teensy 3.0 since release. Who knows, maybe I'll actually get it done someday?
 
Basic Atom Pros (Basic Micro) - had/have this. But they did this in the days when we connected to them using RS232 and they reset the processor using the (RTS or DTR) pins. There were times this was handy, but also times when this was a pain. Example running your program, you get up to the point where you are about to capture what it is you want, you plug in the cable and everything resets... So as Nantonos said it would be great to have this as an option.
 
Status
Not open for further replies.
Back
Top