Teensy 4.0 First Beta Test

Status
Not open for further replies.
Radiohead Library

Created pull request to @Paul's GitHub repository for the Radiohead library: RF69 Examples for the T3.x and T4.x with readme #25
 
Good work Kurt. Nice to see the FlexIO pins proving to work as expected/hoped to maximize end user choice in hooking stuff up on the available pins.
 
@KurtE - think you are having way too much fun with FlexIO :) You are making want to convert the encoder sketch to a library.
 
USB Joystick Example
Started playing around USB examples. Since I understand some of the joysticks figured I would start with that example. To start I copied over the missing usb files (not the ones already there) including the joystick and tried to compile the basic example but got the following error:
Code:
Basic:20: error: 'Joystick' was not declared in this scope
To make a USB Joystick, use the Tools > USB Type menu
   Joystick.X(analogRead(0));
Now, I do have serial-keyboard-mouse-joystick selected from the Type Menu. I started poking around the usb files but really couldn't find the where the problem is. Anyone could point me in the right direction?
 
Mike - I suspect if you look at the T3 tree you'll see the #ifdef's where the extra USB parts come and go. And in similar spot in T4 you'll see " #if 0 // TODO #endif return 0; " - if it is there yet at all?

In passing the core USB simple core stuff like this is showing that : usb_serial_read, usb_serial_available, usb_serial_write_buffer_free, usb_serial_flush_output,
 
Mike - I suspect if you look at the T3 tree you'll see the #ifdef's where the extra USB parts come and go. And in similar spot in T4 you'll see " #if 0 // TODO #endif return 0; " - if it is there yet at all?

In passing the core USB simple core stuff like this is showing that : usb_serial_read, usb_serial_available, usb_serial_write_buffer_free, usb_serial_flush_output,

Just saw that after I read your post in usb_serial.c, but that shouldn't be throwing the error I am seeing on compile, I don't think. I would think it would still compile but just not work?
 
Did a quick scan after prior - the descriptors and the code are spread different from the 'in progress' core code ... global search on T3 tree shows undef as well - there are lots of crossed/built_on dependencies - that message isn't real specific - I'm not sure where I'd begin.

Only look I ever on descriptors was somebody wanted to change USB types during runtime startup and I found a place for that he got working ...

It could be flag passing negating something in one place that is needed?
 
It could be flag passing negating something in one place that is needed?
Evening Tim - should have said that before.

Anyway now you see where my confusion is, just can't seem to find where the problem is. Just out of curiosity I ran the serial+keyboard type using the Keyboard basic and got the same error, except of course for "Keyboard" not defined. So you are probably right - something isn't linked yet.

Think will leave it for now and then come back to it.
 
Thanks guys, it will be interesting to see how well the FlexIO works out for real things. I do think it will work out OK for things like Uarts, but hopefully will see how well it might work for things like SPI, especially if on the real board the 2nd SPI bus is removed for CAN pins.

@mjs513 - Yep it is fun. Still not sure how much of this should be part of Core versus library or libraries and how far to take it. I do think I will get at least one display library setup to handle it. Not sure yet which way to take it.

a) Note normal SPI objects are derived from SPIClass, but as class is not full of virtual functions... Probably won't get there.

b) I could hack up my SPIN class to have a sub-class of my Flex objects to try out...

c) Just hack up a library to use the FlexSPI objects...

Probably c) is where I will start.

Might start with a simple Teensyview
 
@mjs513 - Yep it is fun. Still not sure how much of this should be part of Core versus library or libraries and how far to take it. I do think I will get at least one display library setup to handle it. Not sure yet which way to take it.
My two cents - I would leave it as a separate library. Think it would be cleaner and easier for users to incoporate into custom projects.

Might start with a simple Teensyview
Never used Teensyview - don't even know what it is :)

b) I could hack up my SPIN class to have a sub-class of my Flex objects to try out...
That might be interesting and use if for ILI9341
 
USB HOST SHIELD MINI / UHS20

Since I couldn't figure out what's going on with usb_joystick decided to go back and give a shot at trying to get the UHS20 library working with the T4 and a PS4 bluethooth controller. Seems all I had to do was to add the 1052/1062 pin configs in the avrpins.h file. Running the board_qc.ino file:
Code:
Circuits At Home 2011
USB Host Shield Quality Control Routine
Reading REVISION register... Die revision SPI MISO: 12 MOSI: 11, SCK: 13
03
SPI long test. Transfers 1MB of data. Each dot is 64K................ SPI long test passed
GPIO test. Connect GPIN0 to GPOUT7, GPIN1 to GPOUT6, and so on
Test failed. Value written: 00 Value read: FF 
GPIO test passed.
PLL test. 100 chip resets will be performed
Resetting oscillator

Reset number 0 Time to stabilize - 1595 cycles

Reset number 1 Time to stabilize - 1595 cycles

Reset number 2 Time to stabilize - 1594 cycles

Reset number 3 Time to stabilize - 1595 cycles

Reset number 4 Time to stabilize - 1595 cycles

Reset number 5 Time to stabilize - 1595 cycles

Reset number 6 Time to stabilize - 1595 cycles

Reset number 7 Time to stabilize - 1594 cycles

Reset number 8 Time to stabilize - 1594 cycles

Reset number 9 Time to stabilize - 1594 cycles

Reset number 10 Time to stabilize - 1594 cycles

Reset number 11 Time to stabilize - 1595 cycles

Reset number 12 Time to stabilize - 1595 cycles

Reset number 13 Time to stabilize - 1595 cycles

Reset number 14 Time to stabilize - 1594 cycles

Reset number 15 Time to stabilize - 1594 cycles

Reset number 16 Time to stabilize - 1595 cycles

Reset number 17 Time to stabilize - 1595 cycles

Reset number 18 Time to stabilize - 1595 cycles

Reset number 19 Time to stabilize - 1594 cycles

Reset number 20 Time to stabilize - 1595 cycles

Reset number 21 Time to stabilize - 1594 cycles

Reset number 22 Time to stabilize - 1595 cycles

Reset number 23 Time to stabilize - 1594 cycles

Reset number 24 Time to stabilize - 1594 cycles

Reset number 25 Time to stabilize - 1594 cycles

Reset number 26 Time to stabilize - 1594 cycles

Reset number 27 Time to stabilize - 1594 cycles

Reset number 28 Time to stabilize - 1595 cycles

Reset number 29 Time to stabilize - 1594 cycles

Reset number 30 Time to stabilize - 1594 cycles

Reset number 31 Time to stabilize - 1594 cycles

Reset number 32 Time to stabilize - 1594 cycles

Reset number 33 Time to stabilize - 1595 cycles

Reset number 34 Time to stabilize - 1594 cycles

Reset number 35 Time to stabilize - 1595 cycles

Reset number 36 Time to stabilize - 1594 cycles

Reset number 37 Time to stabilize - 1594 cycles

Reset number 38 Time to stabilize - 1595 cycles

Reset number 39 Time to stabilize - 1594 cycles

Reset number 40 Time to stabilize - 1594 cycles

Reset number 41 Time to stabilize - 1594 cycles

Reset number 42 Time to stabilize - 1595 cycles

Reset number 43 Time to stabilize - 1595 cycles

Reset number 44 Time to stabilize - 1594 cycles

Reset number 45 Time to stabilize - 1595 cycles

Reset number 46 Time to stabilize - 1595 cycles

Reset number 47 Time to stabilize - 1594 cycles

Reset number 48 Time to stabilize - 1594 cycles

Reset number 49 Time to stabilize - 1594 cycles

Reset number 50 Time to stabilize - 1594 cycles

Reset number 51 Time to stabilize - 1594 cycles

Reset number 52 Time to stabilize - 1594 cycles

Reset number 53 Time to stabilize - 1594 cycles

Reset number 54 Time to stabilize - 1595 cycles

Reset number 55 Time to stabilize - 1594 cycles

Reset number 56 Time to stabilize - 1595 cycles

Reset number 57 Time to stabilize - 1595 cycles

Reset number 58 Time to stabilize - 1595 cycles

Reset number 59 Time to stabilize - 1594 cycles

Reset number 60 Time to stabilize - 1595 cycles

Reset number 61 Time to stabilize - 1594 cycles

Reset number 62 Time to stabilize - 1594 cycles

Reset number 63 Time to stabilize - 1595 cycles

Reset number 64 Time to stabilize - 1595 cycles

Reset number 65 Time to stabilize - 1594 cycles

Reset number 66 Time to stabilize - 1594 cycles

Reset number 67 Time to stabilize - 1595 cycles

Reset number 68 Time to stabilize - 1595 cycles

Reset number 69 Time to stabilize - 1594 cycles

Reset number 70 Time to stabilize - 1595 cycles

Reset number 71 Time to stabilize - 1595 cycles

Reset number 72 Time to stabilize - 1594 cycles

Reset number 73 Time to stabilize - 1594 cycles

Reset number 74 Time to stabilize - 1594 cycles

Reset number 75 Time to stabilize - 1595 cycles

Reset number 76 Time to stabilize - 1594 cycles

Reset number 77 Time to stabilize - 1594 cycles

Reset number 78 Time to stabilize - 1594 cycles

Reset number 79 Time to stabilize - 1595 cycles

Reset number 80 Time to stabilize - 1595 cycles

Reset number 81 Time to stabilize - 1594 cycles

Reset number 82 Time to stabilize - 1594 cycles

Reset number 83 Time to stabilize - 1595 cycles

Reset number 84 Time to stabilize - 1595 cycles

Reset number 85 Time to stabilize - 1594 cycles

Reset number 86 Time to stabilize - 1595 cycles

Reset number 87 Time to stabilize - 1594 cycles

Reset number 88 Time to stabilize - 1594 cycles

Reset number 89 Time to stabilize - 1595 cycles

Reset number 90 Time to stabilize - 1594 cycles

Reset number 91 Time to stabilize - 1595 cycles

Reset number 92 Time to stabilize - 1595 cycles

Reset number 93 Time to stabilize - 1594 cycles

Reset number 94 Time to stabilize - 1594 cycles

Reset number 95 Time to stabilize - 1594 cycles

Reset number 96 Time to stabilize - 1594 cycles

Reset number 97 Time to stabilize - 1594 cycles

Reset number 98 Time to stabilize - 1594 cycles

Reset number 99 Time to stabilize - 1595 cycles
SPI MISO: 12 MOSI: 11, SCK: 13

Checking USB device communication.

Reset complete. Waiting for the first SOF...
Getting device descriptor
Descriptor Length:	12
Descriptor type:	01
USB version:		0200
Device class:		FF
Device Subclass:	01
Device Protocol:	01
Max.packet size:	40
Vendor  ID:		0A5C
Product ID:		21E8
Revision ID:		0112
Mfg.string index:	01
Prod.string index:	02
Serial number index:	03
Number of conf.:	01

All tests passed. Press RESET to restart test
Only problem I had was that the press_any_key function (Serial input) didn't work so I commented it out. Have to go back and see why - but think I had this problem before.

As for the PS4 Controller, had a loose connection for reset but after that it worked like a charm. Guess I will have to put in a pull request.
 
USB HOST SHIELD MINI / UHS20

Since I couldn't figure out what's going on with usb_joystick decided to go back and give a shot at trying to get the UHS20 library working with the T4 and a PS4 bluethooth controller. Seems all I had to do was to add the 1052/1062 pin configs in the avrpins.h file. Running the board_qc.ino file:
Code:
Circuits At Home 2011
USB Host Shield Quality Control Routine
Reading REVISION register... Die revision SPI MISO: 12 MOSI: 11, SCK: 13
03
SPI long test. Transfers 1MB of data. Each dot is 64K................ SPI long test passed
GPIO test. Connect GPIN0 to GPOUT7, GPIN1 to GPOUT6, and so on
Test failed. Value written: 00 Value read: FF 
GPIO test passed.
PLL test. 100 chip resets will be performed
Resetting oscillator

Reset number 0 Time to stabilize - 1595 cycles

Reset number 1 Time to stabilize - 1595 cycles

Reset number 2 Time to stabilize - 1594 cycles

Reset number 3 Time to stabilize - 1595 cycles

Reset number 4 Time to stabilize - 1595 cycles

Reset number 5 Time to stabilize - 1595 cycles

Reset number 6 Time to stabilize - 1595 cycles

Reset number 7 Time to stabilize - 1594 cycles

Reset number 8 Time to stabilize - 1594 cycles

Reset number 9 Time to stabilize - 1594 cycles

Reset number 10 Time to stabilize - 1594 cycles

Reset number 11 Time to stabilize - 1595 cycles

Reset number 12 Time to stabilize - 1595 cycles

Reset number 13 Time to stabilize - 1595 cycles

Reset number 14 Time to stabilize - 1594 cycles

Reset number 15 Time to stabilize - 1594 cycles

Reset number 16 Time to stabilize - 1595 cycles

Reset number 17 Time to stabilize - 1595 cycles

Reset number 18 Time to stabilize - 1595 cycles

Reset number 19 Time to stabilize - 1594 cycles

Reset number 20 Time to stabilize - 1595 cycles

Reset number 21 Time to stabilize - 1594 cycles

Reset number 22 Time to stabilize - 1595 cycles

Reset number 23 Time to stabilize - 1594 cycles

Reset number 24 Time to stabilize - 1594 cycles

Reset number 25 Time to stabilize - 1594 cycles

Reset number 26 Time to stabilize - 1594 cycles

Reset number 27 Time to stabilize - 1594 cycles

Reset number 28 Time to stabilize - 1595 cycles

Reset number 29 Time to stabilize - 1594 cycles

Reset number 30 Time to stabilize - 1594 cycles

Reset number 31 Time to stabilize - 1594 cycles

Reset number 32 Time to stabilize - 1594 cycles

Reset number 33 Time to stabilize - 1595 cycles

Reset number 34 Time to stabilize - 1594 cycles

Reset number 35 Time to stabilize - 1595 cycles

Reset number 36 Time to stabilize - 1594 cycles

Reset number 37 Time to stabilize - 1594 cycles

Reset number 38 Time to stabilize - 1595 cycles

Reset number 39 Time to stabilize - 1594 cycles

Reset number 40 Time to stabilize - 1594 cycles

Reset number 41 Time to stabilize - 1594 cycles

Reset number 42 Time to stabilize - 1595 cycles

Reset number 43 Time to stabilize - 1595 cycles

Reset number 44 Time to stabilize - 1594 cycles

Reset number 45 Time to stabilize - 1595 cycles

Reset number 46 Time to stabilize - 1595 cycles

Reset number 47 Time to stabilize - 1594 cycles

Reset number 48 Time to stabilize - 1594 cycles

Reset number 49 Time to stabilize - 1594 cycles

Reset number 50 Time to stabilize - 1594 cycles

Reset number 51 Time to stabilize - 1594 cycles

Reset number 52 Time to stabilize - 1594 cycles

Reset number 53 Time to stabilize - 1594 cycles

Reset number 54 Time to stabilize - 1595 cycles

Reset number 55 Time to stabilize - 1594 cycles

Reset number 56 Time to stabilize - 1595 cycles

Reset number 57 Time to stabilize - 1595 cycles

Reset number 58 Time to stabilize - 1595 cycles

Reset number 59 Time to stabilize - 1594 cycles

Reset number 60 Time to stabilize - 1595 cycles

Reset number 61 Time to stabilize - 1594 cycles

Reset number 62 Time to stabilize - 1594 cycles

Reset number 63 Time to stabilize - 1595 cycles

Reset number 64 Time to stabilize - 1595 cycles

Reset number 65 Time to stabilize - 1594 cycles

Reset number 66 Time to stabilize - 1594 cycles

Reset number 67 Time to stabilize - 1595 cycles

Reset number 68 Time to stabilize - 1595 cycles

Reset number 69 Time to stabilize - 1594 cycles

Reset number 70 Time to stabilize - 1595 cycles

Reset number 71 Time to stabilize - 1595 cycles

Reset number 72 Time to stabilize - 1594 cycles

Reset number 73 Time to stabilize - 1594 cycles

Reset number 74 Time to stabilize - 1594 cycles

Reset number 75 Time to stabilize - 1595 cycles

Reset number 76 Time to stabilize - 1594 cycles

Reset number 77 Time to stabilize - 1594 cycles

Reset number 78 Time to stabilize - 1594 cycles

Reset number 79 Time to stabilize - 1595 cycles

Reset number 80 Time to stabilize - 1595 cycles

Reset number 81 Time to stabilize - 1594 cycles

Reset number 82 Time to stabilize - 1594 cycles

Reset number 83 Time to stabilize - 1595 cycles

Reset number 84 Time to stabilize - 1595 cycles

Reset number 85 Time to stabilize - 1594 cycles

Reset number 86 Time to stabilize - 1595 cycles

Reset number 87 Time to stabilize - 1594 cycles

Reset number 88 Time to stabilize - 1594 cycles

Reset number 89 Time to stabilize - 1595 cycles

Reset number 90 Time to stabilize - 1594 cycles

Reset number 91 Time to stabilize - 1595 cycles

Reset number 92 Time to stabilize - 1595 cycles

Reset number 93 Time to stabilize - 1594 cycles

Reset number 94 Time to stabilize - 1594 cycles

Reset number 95 Time to stabilize - 1594 cycles

Reset number 96 Time to stabilize - 1594 cycles

Reset number 97 Time to stabilize - 1594 cycles

Reset number 98 Time to stabilize - 1594 cycles

Reset number 99 Time to stabilize - 1595 cycles
SPI MISO: 12 MOSI: 11, SCK: 13

Checking USB device communication.

Reset complete. Waiting for the first SOF...
Getting device descriptor
Descriptor Length:	12
Descriptor type:	01
USB version:		0200
Device class:		FF
Device Subclass:	01
Device Protocol:	01
Max.packet size:	40
Vendor  ID:		0A5C
Product ID:		21E8
Revision ID:		0112
Mfg.string index:	01
Prod.string index:	02
Serial number index:	03
Number of conf.:	01

All tests passed. Press RESET to restart test
Only problem I had was that the press_any_key function (Serial input) didn't work so I commented it out. Have to go back and see why - but think I had this problem before.

As for the PS4 Controller, had a loose connection for reset but after that it worked like a charm. Guess I will have to put in a pull request.

UHS30 works out-of-the-box. UHS2 is going to be obsolete soon due to quirks and various politics going on.
UHS3 will also be moving to my own account soon as well.
 
UHS30 works out-of-the-box. UHS2 is going to be obsolete soon due to quirks and various politics going on.
UHS3 will also be moving to my own account soon as well.
Unfortunately UHS30 doesn't support what I need it to do like UHS20 does, i.e., support for Bluetooth for PS type controllers as well as connected controller. So I will keep using it until USH30 supports these devices.
 
Unfortunately UHS30 doesn't support what I need it to do like UHS20 does, i.e., support for Bluetooth for PS type controllers as well as connected controller. So I will keep using it until USH30 supports these devices.

That will be coming soon once Kris is done with holiday, supposedly.
Of course pull requests are always welcome, and porting is quite easy to do.
Technically you don't even need a library to support a new device in UHS3, you can actually code your driver straight in your sketch.
This is handy for testing and roughing out ideas and even starting a rough port.
Several drivers have been ported thus-far, so there are plenty of examples on how to port.
Unfortunately my schedule is totally stuffed with work currently, so much so that as of late, I have been working 48 hour days trying to accommodate my client.
I'm willing to give pointers and help during the process of porting any driver, and can do limited testing, providing I have the hardware here to test with.
I just don't have time right now to dedicate a few days in a row to port the remaining drivers.
 
Mike - Teensy View is a Teensy PCB sized and pinned 128x32 OLED from SparkFun - pretty cool - never found need to make one permanent - but I got two :)

Kurt - Any alternatives it can offer is good - pretty sure the 1062 is on order and pending delivery in some quantity. I went looking I thought it was second SPI that went missing - even 7.5 would be better than nothing or most alternative busses for most uses.
 
I'm planning a T4 <-> Raspberry Pi adapter-board to be able to connect some Raspberry addon-boards to the T4 (and maybe T3.x)
This is most complete pinout i've found so far:
i2spins-001.jpg

The pins with red descriptions are I2S.
Who knows more about alternative pin functions for the remaining GPIOs? What means "xx_GEN" and "GCLK" ?

Are there pullups for I2C on the Raspberry? On on both I2C ports?
Edit: Port 1 (pins 3 + 5) has 1.8K Pullup-Resistors.
 
Last edited:
Last edited:
That will be coming soon once Kris is done with holiday, supposedly.
Of course pull requests are always welcome, and porting is quite easy to do.
@xxxajk
That is a possibility but at the moment my focus is on T4. Once that is finished I can focus on other development efforts.
 
I'm planning a T4 <-> Raspberry Pi adapter-board to be able to connect some Raspberry addon-boards to the T4 (and maybe T3.x)
This is most complete pinout i've found so far:

Are there pullups for I2C on the Raspberry? On on both I2C ports?
Edit: Port 1 (pins 3 + 5) has 1.8K Pullup-Resistors.

Sounds like fun! I have played around some with experimenting about making my own boards that plug in, with a Teensy 3.x board into RPI...

One of the interesting thing with the RPI 40 pin connector, is that it has become somewhat of a standard, where some other manufactures have produced boards that are reasonably compatible, but in many cases with some of these pins, there does not appear to be a hard standard.

Example: Odroid C1 has this connector and their description of the pinout is up at: https://wiki.odroid.com/odroid-c1/hardware/expansion_connectors
Likewise their C2: https://wiki.odroid.com/odroid-c2/hardware/expansion_connectors
Likewise the UP boards have similar setup: https://wiki.up-community.org/Pinout


As for RPI? Wondering if the new RPI3+ boards are exactly the same as the RPI0? ones.

Probably for some of this, I would look at some of the support libraries that http://wiringpi.com/ or maybe MRAA (https://github.com/intel-iot-devkit/mraa)
 
:)
Yes.. looks like I can't route I2S if I want T3.x compatibility. I thought I add a T3 <-> audioshield adapter..but..

@Paul: Am I'm reading the pinout right - I see this the first time - I2S is not possible without Pogo-Pins ? for both SAIs are signals missing on the regular pins.
Can you recommend a SPDIF chip ?
 
:)
Yes.. looks like I can't route I2S if I want T3.x compatibility. I thought I add a T3 <-> audioshield adapter..but..

@Paul: Am I'm reading the pinout right - I see this the first time - I2S is not possible without Pogo-Pins ? for both SAIs are signals missing on the regular pins.
Can you recommend a SPDIF chip ?

you cannot use audio adapterboard (direct mount) with teensy (e.g. pin13 is NOT I2S input)
but you CAN use T4 SAI without pogo. See my earlier example
(IIRC, TX is slaved to RX on T4 while with audio board RX is slaved to TX)
 
I have Pauls adapterboard with both SAIs, but this uses pogo-pins.
(IIRC, TX is slaved to RX on T4 while with audio board RX is slaved to TX)
Ah, that's the trick..
 
Last edited:
Status
Not open for further replies.
Back
Top