Teensy-Arduino adapter shield
Ever since I discovered the Teensy 3.0 board from PJRC, I’m hooked up to it. It’s compatible with the Arduino programming language, but the microcontroller is so much more powerful than a regular Arduino or even the Arduino Due. The only downside is the limited amount of Teensy expansion shields. But what if you could hook up all your Arduino shields to the Teensy? You could then take advantage of both the powerful microcontroller as well as the variety of Arduino expansion shields. That’s why I developed the Teensy-Arduino adapter shield, which does just what it says on the tin: seamless compatibility between the Teensy 3.0 board and Arduino shields.
Main features:
- Drop-in, pin-to-pin Arduino Rev3 compatible
- Convert between Teensy and Arduino footprints: unlock the wealth of different Arduino shields for your Teensy projects
- Interface Arduino 5V levels (logic and even analog!) to Teensy 3.3V level: no need to make any change to your existing Arduino projects
- Bidirectional logic buffers can source up to 50mA per digital output (up from 9mA per Teensy output)
- Unity gain opamps on analog inputs improve accuracy and speed of analog-to-digital conversion
- Run your Teensy from any 7-15V DC power supply
- Select 3.3V logic levels with a simple switch to use your Teensy with 3.3V Arduino shields (in stead of 5V)
Status of the shield
Currently, I’m testing prototype versions of the shield, and I’ll be making some tweaks in order to enhance quality and usability. (e.g. offsetting the Teensy placement a bit more so the USB microconnector isn’t obstructed by the Arduino ICSP header). If you have any suggestions regarding the layout or features of the adapter shield, be sure to leave them in the comments.
I don’t yet know if I’ll put the board in volume production and up for sale or keep it as an internal product in our organization. This because it’s hard for me to estimate if there’s a real demand for this board. If you’re interested in this board, leave a reply in the comments or register your interest with the form below (your email will only be used to notify you if the board has gone into volume production). If I reach 50 interested people, I’ll let the fab churn the boards out.
Oh, the price you ask? Hard to tell, but I expect it to be somewhere around €20 to €30. A bargain considering you unlock the wealth of Arduino shields for your Teensy, right?
Why the Teensy-Arduino adapter shield?
I love Arduino. I really do. I use it almost all the time, at home or at work. Not only is it fun and easy to program with, there’s also an abundance of different expansion shields available.
My only beef with the AVR based Arduino’s is its limited processing and memory capacity. Although the AVR 8-bit microcontroller architecture has aged gracefully, it just isn’t suitable for today’s networked, data-intensive processing tasks anymore. Sure, Arduino now has the 32-bit Due, but at a ridicioulus large footprint and a tad too pricey. And worst of all: they neglected to take advantage of the built-in peripherals provided by the SAM3X chip. No Ethernet wiring, no DMA wiring. Booh!
Then I discovered the Teensy 3.0. A capable, cheap and small 32-bit ARM board. It offers advanced capabilities such as complex math processing. And it’s programmable with the Arduino IDE and language we all love so much! Unfortunately, the smaller footprint and different voltage levels meant I could throw away my amassed army of Arduino shields.
Or did I?
I wanted a board which would allow me to use all my existing Arduino shields without a second thought. I also wanted it to fix some of the ‘prototype-unfriendly’ features 32-bit micrcontrollers have compared to their robust 8-bit brethrens, such as low current sinking/sourcing capability and extreme sensitivity to reverse polarity or too high voltage levels. Hey, we all make some bad wiring decisions in our lifes, don’t we?
Since I design and manufacture a lot of PCB’s at work, I decided to build this adapter board. It interfaces the Teensy 3.0 board with Arduino shields. It takes care of all the logic level translations, increases the drive capability of the digital pins, offers pin input protection, improves the ADC performance and even has it’s own built-in power supply so you can run the Teensy stand-alone. Just for fun, I also added a 12mm coin cell battery holder. It allows you to use the built-in RTC of the Teensy to keep the time, even without power.
But the main thing, of course, is the Arduino compatible footprint. Just place any Arduino shield on top of this board and use it like you would use with an Arduino board, but now with the power of the Teensy 3.0 under the hood.
What does it do?
Digital
- Bidirectional level shifting between 5V (Arduino) and 3.3V (Teensy) logic levels on all digital, SPI and I²C pins
- Increased current sinking/sourcing capability up to 50mA
- +/-15kV ESD protection
- Selectable 5V/3.3V output
The Teensy-Arduino adapter shield has two TXB0108PWR autosensing bidirectional level shifters taking care of the voltage level translations on the digital pins, including the SPI pins through the ICSP header (e.g. for use with the Arduino Ethernet shield).
Internally, the level shifters work with a single MOSFET transistor, using a clever trick first described by Herman Schutte when he worked at Philips Semiconductor (now NXP). Read the original application note.
As an extra, the level shifters act as a buffer, protecting the sensitive Teensy pins and improving the current sinking/sourcing capability.
The Teensy-Arduino adapter shield also has a VREF switch. This switch controls the output level of the level shifters. Leave it at 5V for use with most Arduino shields. However, when using 3.3V Arduino shields, move the switch to the 3.3V position. The level shifters will now work on a 3.3V level, and the IOREF pin will be now be at 3.3V. This of course degrades the level shifters to expensive 1:1 buffers, but maximizes compatibility with existing Arduino shields.
Note: keep in mind the level shifters will now be supplied 3.3V through the Teensy voltage regulator, so keep total current sourcing within 100mA!
Currently, the Teensy-Arduino adapter shield also has a communication header compatible with the popular Sparkfun FTDI breakout board. This is mainly for my own convenience, because I use a lot of UART communications in my projects and this way I can easily connect the FTDI converter to my Teensy.
Analog
- 5V compatibility on analog inputs
- Increased accuracy, stability and speed of ADC readings
- Analog input protection
The Teensy-Arduino adapter shield uses a simple 18k/33k resistor divider to rescale 5V analog inputs to 3.24V (the closest you can get to 3.3V by using standard resistor values). The resistor divider has an accuracy of 1%.
To remove any input impedance mismatch between the resistor divider and the analog inputs, an LM358D opamp in unity gain mode is placed between the resistor divider and the analog input pin. Since this opamp has virtually no output impedance, it instantely charges the ADC input capacitor, (theoretically) removing the need to average multiple ADC readings.
The same resistor divider is also connected to the AREF input of the Teensy. By adding
analogReference(EXTERNAL);
in your sketch, you set the upper limit of the ADC to the maximum value the analog input can ever read through the resistor divider. When you apply 5V to the analog input, the Teensy will read 1023 (in 10-bit resolution), just like it would on a regular Arduino. You can desolder solder jumper SJ1 on the back of the board if you wish to use another external reference.
Note: because of the opamps, the analog inputs of the Teensy can no longer be used as digital outputs. This can be a problem when you use some (older) Arduino shields utilizing I²C communication on analog pins 4 & 5. If you want to use these shields, connect solder jumpers SJ7 and SJ8 on the back of the board. This will connect the I²C pins directly to analog pins 4 & 5, but render the analog input function on those pins void.
Newer Arduino shields use I²C communication on digital pins 16 & 17, and so should you!
Power
- On-board 5V power supply
- Automatic power supply selection (on-board 5V, USB 5V)
- Use the Teensy stand-alone (without USB connection)
- 3V back-up battery
The Teensy-Arduino adapter shield uses the same LD1117S50 linear regulator found on many Arduino boards and shields, providing clean 5V power from a DC input of 7-15V. The regulator can provide up to 750mA of current, which is more than enough to power the Teensy and a bunch of Arduino shields. The power supply is protected against reverse polarity, just in case.
All 5V logic is supplied through this regulator, unless no external power is connected at which instance it will be supplied through the 5V USB VCC. An opamp/MOSFET combo provides automatic power supply selection. When present, the Teensy-Arduino adapter shield will always run from an external power supply, even when a USB cable is connected to the Teensy.
To avoid circulating currents between the external power supply and the USB port, you should
- never connect an external power supply when the Teensy is connected to a USB port
- cut the trace connecting the USBVCC and VIN pins on your Teensy board (see tutorial).
Not respecting these rules may damage your Teensy and potentially open the Seven Gates of Hell. Don’t tell us we didn’t warn you!
As an extra, the Teensy-Arduino adapter shield has a 12mm coin cell holder for 3V LR221 batteries. The battery is connected to the VBAT pin of the Teensy and can be used as a backup power source to keep the internal Real Time Clock going.
Don’tuse it as a backup power source to power your Teensy board, because holy priceless collection of Etruscan snoods, Batman, you would drain the battery in minutes!
Reset
- Reset the Teensy board through a pushbutton
- Compatible with reset buttons on Arduino shields
The Teensy-Arduino adapter shield has a reset button, which can pull the Teensy reset pin low through a CAT811 voltage supervisor controller. This button is connected to the RESET pin, meaning pushing the button or pulling the RESET pin to ground initiates a reset of the Teensy. The reset button on Arduino shields will provide the same functionality. This can come in handy, e.g. when resetting an Ethernet shield (pushing the reset on an Ethernet shield will simulteaneously reset the Teensy and the Ethernet chip). The CAT811 controller will also initiate a reset when the input voltage drops below 2.6V, preventing undefined states of the Teensy microcontroller.
Note: the reset button does NOT have the same functionality as the button on your Teensy board. The button on the Teensy board is used to bring the Teensy microntroller into programming mode, not to reset it.
Footprint
- Arduino Rev3 compatible
- Two mounting positions for the Teensy board
The Teensy-Arduino adapter shield uses the Arduino Rev3 layout, meaning it has a IOREF pin signaling the I/O voltage level and digital pins 17 & 18 dedicated for I²C communication.
The Teensy board can be mounted in two ways: on top or below the shield.
On top has the benefit of retaining a flat, stable underside of the board and providing easy access to the Teensy programming button. Below has the benefits of exposing the additional Teensy I/O SMD pads for further expansion.
Things to do
- Add the schematic
- Add better pictures
- See if the Teensy placement can be offset to the right
- Check gain of the opamps
- Check reset behaviour
- Check performance of the TXB0108 with open drain I²C bus
I would like one of these.
Thanks,
–Gary
I’d like one!
Matt
I will buy one.
likely more 🙂
I’m interested in buying at least one of these.
Plz check here for some updates! http://forum.pjrc.com/threads/23959-Teensy-Arduino-adapter-shield?p=36402&viewfull=1#post36402
I would like to buy one
I like two of these shields…..when can you deliver the finally tested shields?
Would be very interested in several of these. So there are customers out here. Will watch for release date. Soon, I hope.
This looks great, I’d love to see this available for purchase as a microcontroller dev board with the common Arduino form factor and fewer memory limitations would fantastic.
I’d like some
Any updates on the shield? The last word seems to be back in October…
Is the board available ?
I could use a couple.
Yes! Want one.
I think, I’d buy two of them. At least one.
Integrating the level shifters makes it very convenient. MaybeStephan Watterott from http://watterott.com might be interested in a distribution.
Thanks!
I will buy one too
Very much interested in this adapter board.
Any updates on the status of the board?
Please I want one! Do you ship to Canada?
This is what I need. I will buy 10 of these today if they are available.
Please get in touch with me,
thanks
Matthew
I think you have a winning idea. Will there be a version of it for the Teensy 3.1? I’d buy one for that version. May I also suggest you consider installing the Teensy on the underside of the board, that gives you more room on the topside for Arduino shields and level shifters etc. While you are at it add headers that would make the underside of the board breadboard compatible. That way you can provide functionality to another maker platform. If the downward facing headers are the female variety, the contacts would be protected while protecting the Teensy and could simply be used with a set of male headers to mate to the breadboard when desired.
Hi, I would like to buy a couple if possible. Please contact me.
I’d like to buy one Teensy3.1-compatible board.
Thanks for all your thorough efforts to make this a robust and user-friendly board.
Yes! Want a one.
Your subscribe link on top doesn’t work.
Let us know when we can order these and if they will work with teensy 3.1.
I would take several. Work as engineer for local radio station. Have been using arduino for monitoring purposes but with the power of the teensy 3.1 and this adapter I can see more projects in the works already.
I would certainly buy one, maybe two if the price was right.
John
This would make my life so much easier. I not only want one, I NEED one!
Now we almost in the beginning of 2015 Please let us know when it will be available
How about a mega sized adapter with connections to all of the extra I/O on the under side of the Teensy 3.1? Might need to solder an SMT adapter to the under side rectangular pads to plug into a pin socket.
I’d really like one of these
Ready to buy along with many others!
I would like to acquire one of these boards!
I’d buy one, at least.
Have you discussed with paul @ pjrc.com ???
I imagine he might be interested in reselling your boards- could be rather synergistic.
Best
Graham
If you are selling, I will buy. Are you selling?
I also would be very interested in some of these 🙂
Would you make a shield for Teensy 3.6? I badly need one. All of the pins are only 3.3V tolerant. 🙁
With a HAL already in Marlin 2.0 for Teensy 3.6, please tell me RADDS & a 3.6 would plug into this…
I’d buy one today!