Teensy 3.5 and 3.6 status

Status
Not open for further replies.

kito

Active member
Hi,

Wow! I have not checked in awhile and I see two interesting teensy 3.5 and 3.6 boards. Christmas is early.

I am looking at a new project which I need to control an I2C and SPI bus which I know the teensy 3.2 will work, but what about these new 3.5 and 3.6 boards? When I checked PRJC web it lists the boards for sale, but I don't get the good feelings I felt when I viewed teensy 3.1 and 3.2 web page from the past. What I see are outdated comparison tables and even the pin out info seems like your supposed to dig into long forum posts which may or may not be the correct information. Also there were these cool examples like the DAC output showing a scope driving a sine wave which are no longer there. These kinds of things reassure me that board and sw is a in usable state.

So back to my project, how stable is the teensy 3.5 and 3.6 boards? Specifically the i2c spi libaries, etc. Is there a status page or something that somebody can see whats working and what still not working or buggy? Should I just stick with teensy 3.2 for now? Also will 3.2 Teensy models will be no longer be sold in the future?

Thanks!
 
Last edited:
Yes the Teensy 3.5 and T3.6 are new. I personally think they are great! And yes the PJRC website could use a major make over ;)

But I understand that Paul has only so many hours in the day and prioritized getting the new boards out, with lots of support.

There were several of us that were lucky enough to get beta versions of the board, where we tried to find and resolve as many of the compatibility issues as possible. During the beta all of postings went to one thread and most of the information was summarized by the member defragster in posting #8 https://forum.pjrc.com/threads/34808-K66-Beta-Test?p=106291&viewfull=1#post106291

Also then they ran a great kickstarter for the boards: https://www.kickstarter.com/projects/paulstoffregen/teensy-35-and-36?ref=discovery
There is lots of the details up there on the new boards.

As for I2C and SPI, one of the great things about these boards is they have more of them. That is they both have 3 SPI busses. and the T3.5 has 3 I2C busses and the T3.6 has 4 I2C busses.
Support. SPI library has been updated to support SPI1 and SPI2 (plus other things like additional alternate pins). The Wire library has been updated some to support these boards for the main I2C buss. i2c_t3 has been updated to support all of the busses.

Paul as well as the members of the community have done a lot of work to make sure all of the core components are working as well as as many libraries as possible. Many times it is as simple as adding to some conditions to #if logic.

Like places that have:
Code:
#if defined(__MK20DX128__) || defined(__MK20DX256__)
that supported T3.0 3.1, 3.2
to:
Code:
#if defined(__MK20DX128__) || defined(__MK20DX256__) || defined(__MK64FX512__) || defined(__MK66FX1M0__)
Which adds the T3.5 and T3.6

For sure there are some that have not been done yet and some new capabilities yet to be completed or enhanced (like host USB, Ethernet, ...) but they are a cool product, that will continue to get better.

Which product to get? T3.2 is nice and safe. T3.5 is a great upgrade if you need 5v compatibility and T3.6 is great if you want the highest performance, but it is not 5v compatible.

Not sure if that helps!
 
Check out his post and thread : K66-Beta-Test

That started 6 months back. Hardware was rock solid and the software is not only backward compatible - but many expanded hardware capabilities are well supported - added i2c and SPI bus pins and extra serial ports.
 
One thing that perhaps needs attention is using the non-first i2c/SPI buses with standard libraries.

Right now, you can use the 2nd .. 4th i2c buses if you use the i2c_t3 library instead of Wire. However, most of the higher level libraries that are provided by Adafruit, Arduino, Sparkfun, etc. only use Wire.h, and typically only use the standard i2c bus (*). If you want to use a MCP23017, you would need to clone the library to a new name, change Wire.h to i2c_t3.h, and use Wire1, Wire2, or Wire3 as appropriate instead of Wire. Some people have added additional arguments to the constructors to specify which i2c bus to use.

Similarly with SPI, the library functions typically use the single SPI global class. KurtE has a SPIN class to abstract this (**).

I should mention, I got a beta test 3.6 board, and I've smoked it due to hooking up a 5v neopixel without proper protection. But that would have happened if I had used an LC. Unfortunately, Freescale made that choice that the chip used in the 3.6 no longer has the 5v protection. I have 3.6's from the kickstarter campaign and a 3.5 I bought retail at my local Microcenter to replace the beta 3.6.

One minor gotcha that you need to think about is any shield (like the prop shield or Adafruit feather adapter) that connects to the pins in the back row, now has to have wires to join the pins, which are now in a different location (the DAC0 is now on the outside row, and the program/vbat pins are on a new interior row in a different spot). FrankB designed this PCB which can act as a shim between the 3.6/3.5 and the 3.2 layout. https://pcbs.io/share/8gXO3.

* a lot of the standard i2c libraries that I see have #ifdef's so that the Arduino Due uses Wire1 instead of Wire, due to the Arduino designers hooking up the 2nd i2c port to the standard Arduino SDA/SCL pins instead of the first i2c port.

<edit>
** In the original version of this message, I mixed up defragster and KurtE, in terms of who is creating the SPIN library. Sorry about that.
 
Last edited:
I did the SPIN library and have a few different TFT display libraries modified to allow displays on the different spi buses.

At some point the wire library will probably be updated to also do Wire1, Wire2... As well.
 
Indeed SPIN is all KurtE - sad I plugged in and did much more during the beta than since. That header usable Beta 1 PROTO board was nice!

One thing was a couple i2c displays - code was easy to mod with a couple #defines to switch to alternate Wire# with i2c_t3. Though I'd have to find my old posts to remember how :confused: >> 07-15-2016
//#include "Wire.h"
#include <i2c_t3.h>
#define Wire Wire1
//#define Wire Wire2
 
Indeed SPIN is all KurtE - sad I plugged in and did much more during the beta than since. That header usable Beta 1 PROTO board was nice!

One thing was a couple i2c displays - code was easy to mod with a couple #defines to switch to alternate Wire# with i2c_t3. Though I'd have to find my old posts to remember how :confused: >> 07-15-2016

Yes, it is easy to modify the libraries. But it would be nice to have a solution so that you can have multiple devices on different i2c buses and just change the constructor or begin function to say which i2c device to use.
 
Since Teensyduino 1.31, I believe most things are pretty stable and well supported on 3.5 and 3.6.

The upcoming 1.32 release has a few minor fixes specific to these new boards, like compatibility in the Arduino SD library with very old SD cards when used with the built in SDIO port. But most of the 1.32 changes are improvements that apply to all 32 bit boards, including LC and 3.2.

Support for the new ethernet and usb host on 3.6 are still only at the early testing stage.

The SDIO port with the Arduino SD library is about 50% faster than using SPI on Teensy 3.2, which is pretty dismal compared to what it's theoretically capable of doing. WXMZ's library or Bill's experimental SdFat versions are the only way to currently get the major performance gains with SD cards. Eventually I will greatly improve the SD library, but that's months away.

The website needs a ton of work!
 
Ok thanks alot guys. I purchased a few 3.6 boards to play around with, but if I had to make a decision today I would stick with teensy 3.2 despite all the advancements in the 3.5/3.6 boards. I sure things like these i2c issues are fixable eventually but its hard to tell without some kind of official status page.
 
Ok thanks alot guys. I purchased a few 3.6 boards to play around with, but if I had to make a decision today I would stick with teensy 3.2 despite all the advancements in the 3.5/3.6 boards. I sure things like these i2c issues are fixable eventually but its hard to tell without some kind of official status page.

BTW, the multiple i2c issue is also in the Teensy 3.1/3.2 and LC. On the 3.1/3.2 the secondary i2c is on the underneath pads on pins 29/30, so you have need the 2nd i2c bus to go to those pins. On the LC it is on pins A8/A9, so you don't have access the bottom pads.

On the 3.6, 3 out of the 4 i2c buses are available with the outer rows pins (and on the Teensy 3.5, all 3 of the i2c buses are on the outer row pins). So, it is just more likely that you will have to hook up devices to the 2nd i2c bus.
 
Status
Not open for further replies.
Back
Top