With the recent surge in Omicron cases, shipping may be slower than stated times. We are working to build, ship and respond to everything as quickly as possible. Please see all COVID-19 updates here. Thank you for your continued support.

Member #258806

Member Since: October 14, 2011

Country: United States

  • Several months after this tutorial was written, Teensy 3.6 was released. It run at about double the speed of Teensy 3.2 and have 4 times as much RAM. That extra capacity can be pretty useful for audio synthesis, especially if using 4 channels.

    This mod works the same way, except the extra RX signal goes to pin 38 on Teensy 3.6, rather than pin 30 as documented for Teensy 3.2. This is documented in the Audio Library Design Tool right-side panel for the I2S Quad object.


  • Confirmed, the arrow is correct. The TEXT IS INCORRECT. It should read "trace between the center and right pads of the I2C address selector also need to be cut".

    While not easy to see in this low-res web image, when you look at the actual PCB with a magnifier to actually make this mod, you will see the trace is between the center and right side pad.

    The 0.1uF capacitors on pin 15 will cause trouble for the extra data signal. If you connect audio shields together in the simplest, most straightforward way where all pins connect (similar the photos), both of their pin 15 pads connect together. Both capacitors need to be removed, since either would cause trouble.

    If you were to cut the header, so there was no connection to pin 15 on the unmodified board, so that neither Teensy nor the modified board connects to it, then leaving the capacitor in place on the unmodified board would be fine. It can't interfere with the 2nd data signal if it's not connected between the boards. Obviously the capacitor must be removed from the modified board, so no matter how you connect between the 3 boards, you will need to do the capacitor removal on at least the audio shield where you cut the trace, soldered the alternate I2C address pads, and arranged for the data signals to do to other pins.

    With an ordinary soldering iron, probably the simplest way would involve building up a small bead of solder on the tip of your iron. The part is so small that you can just lay a bead of solder on top to melt both sides at the same time. The part might stick to your iron's tip as you pull it away. If not, just a gentle press will easily push it aside from the pads, towards the large open area near the edge of the board. You can then pick it off with tweezers, if it doesn't fall off from the slightest touch.

  • If using any Arduino with 5V signals, you'd need to level shift them down to 3.3V.

  • OctoWS2811 was updated for Teensy 3.5 and 3.6 on October 21, 2016.


    This link isn't quite the video demo you wanted, but hopefully the source code and github commit log can give you some confidence it does indeed support 3.5 and 3.6.

  • If you look at the github commit logs, it's very clear Arduino Srl simply copied Arduino 1.6.1, added in the Zero core (which they also copied from an early stage of the Zero beta testing) and a motion sensor library, and renamed it to 1.7.0. All their commits from CC's 1.6.1 to 1.7.0 fit on a single page!

    Meanwhile, the real Arduino published 1.6.2 with well over 100 new commits with a LOT of new code, adding a dynamic update system and other substantial new features. So much new stuff turned out to have some significant bugs, especially with the older java environments on some Linux systems, so they released 1.6.3 with bug fixes about 5 days later. Since then, if you look on Github, the real Arduino has continued developing with several commits every day.

    Meanwhile, Arduino.org created version 1.7.1, where the only new feature is an Ethernet2 library for a new Ethernet shield they've made. Of course, the code is all from Arduino.cc and Wiznet (company that makes the Ethernet chip). They added the Zero bootloader source (from Atmel). The few other commits between 1.7.0 to 1.7.1 which are actually their own work are just renaming more stuff, mostly in the readme file!

  • The FIFO is an extra buffer in hardware. It really helps at fast baud rates, allowing several characters to be buffered in the hardware and all moved to the larger software buffer with only a single interrupt. If other stuff is doing interrupts at higher priority, it allows more interrupt latency from other code before incoming serial data would be lost, or the output fails to keep maximum speed. FIFOs also reduce the total number of interrupts, which is more efficient.

    Teensy-LC does not have FIFOs. Neither do any of the normal AVR Arduino boards.

    Teensy 3.1 does have FIFOs on 2 of its 3 serial ports. If you're going to use fast baud rates, especially on 2 ports simultaneously, or in combination with other libraries using a lot of interrupts, the get higher performance Teensy 3.1.

    For slow baud rates, like 38400 or less, the FIFOs rarely make much difference.

  • There is a Makefile you can use without Arduino. To get it you have to download and install everything, which is a bit wasteful in bandwidth and disk space. After installing, the Makefile in Arduino's hardware/teensy/avr/teensy3 folder.

  • Yes. Use this example. https://github.com/PaulStoffregen/Audio/blob/master/examples/WavFilePlayer/WavFilePlayer.ino

  • The version 1.0 library has a recording example. Open it with File > Examples > Audio > Recorder.


  • A schematic is available....


No public wish lists :(