Teensy 3.1 to Arduno Shield DIY Adaptor

PaulStoffregen

Well-known member
I'm considering having PJRC sell an adaptor board to use Teensy 3.1 with Arduino shields. If this happens, it'll be only the bare PCB. My hope is to keep the price to $10 or less.

There's a lot of real estate on the Arduino form factor, but there's also a lot of useful things that might go into that space. A place to add the 3V coin cell seems pretty obvious. What else should be in all that open space? Keep in mind it probably needs to be through hole, or low density if surface mount, since this will be DIY soldering.

I know a couple people have started this sort of thing a couple times, with a few boards for sale on Tindie. This is the only one I could find still being sold.

https://www.tindie.com/products/pico/rfx-nrf24l01-proto-shield-kit/
 
Support for commonly useful items like: a voltage regulator, a microSD card, connectors (SPI, I2C, DE-9 serial?, other USB connectors) , level-shifting buffer, trim pot(s), various package footprints like TO-92 and DIP. The typical .1" grid of holes maybe isn't as convenient as some of the clever protoboard patterns that have several holes connected. Maybe just copy the layout of a small solderless breadboard making it simple to prototype on the breadboard and then duplicate the exact same geometry and wiring on the adaptor board.
 
We could use that :) We use Arduinos & Teensy. A power jack & regulator would be nice. An extra set of pins (like Seeeduino) would be nice so we can make shields on strip board.
 
I imagine since you are contemplating selling the pcb, that you could design in slots that the user might/might not utilitize (and those parts would not be part of the cheapest configuration). I would imagine you would want a slot for the voltage regulator. Perhaps something that ties together the USB B plug into the voltage regulator that ends with a micro usb to attach to the Teensy. It would be nice if you had attachments for A6-A9 which are on the Teensy, but not on the Uno. I tend to like having lots of power/ground pins, perhaps rows of 3 pins for signal/ground/power for attaching servos or sensors. It would be nice to have breakouts for the 3 serial ports (TX/RX/ground/power), and SPI. Presumably you should have a jumper and 4.7K ohm resistors for the I2C pins (and use the 2 i2c pins in the more modern Uno board layout). I suspect you should have room for a boost circuit to deliver 5v.
 
I suspect some people might run into problems with older shields that are only designed for 5v. The digistump fok created a level shifting shield that could presumably be used as is with the Teensy shield (or possibly you could incorporate similar ideas): http://digistump.com/products/51
 
In the early days, I thought about making my own adapter, but ultimately I never have. If I wanted to do it with the least fuss, until Paul creates his shield, this might be a useful starting point: http://www.ebay.com/itm/321381747749?ssPageName=STRK:MESINDXX:IT&_trksid=p3984.m1436.l2649.

Two years ago, I picked up some shields from a small Canadian company (Aztecmcu) that would have been perfect for this. It was like the standard Uno proto shield, except it had more rows setup in the normal prototype fashion, that you could connect to the pin headers without having to make solder bridges. However, they have gone out of business.

It is a shame that the Teensy and Nano have different pin layouts, or you could use the Nano shields.
 
Having a RS232 level shifter and DB9 connector might be handy. More LEDs and push buttons wouldn't hurt either.
 
One consideration about adding LEDs and push buttons is that this is an adapter shield, so another shield will be above, below, or both. Might not be able to see/reach lights and buttons.
 
True, and if you use it that way, then you simply ignore what you can't reach. Otherwise, keep it on the top. :)

OTOH, it may be possible to face a small array of LEDs out to the side.
 
Well in general, the point of this particular shield is to allow you to use the more common Arduino shields. So for example, you could then use this shields like these:
 
For what it is worth, I have my own adapter boards, one of which has the Arduino header formats on it... I have zip files for both of the current ones with design files (Diptrace), parts list and gerber files, that I have used at both Oshpark and Seeedstudio. All of these are up on forum threads, may also put up on github...
A few of the threads about these include:
http://www.lynxmotion.net/viewtopic.php?f=21&t=9220&p=90314
http://www.lynxmotion.net/viewtopic.php?f=26&t=9119&hilit=teensy&start=30
http://forums.trossenrobotics.com/showthread.php?6632-PhantomX-using-a-Teensy-3-1

A picture showing the one with the headers, with an XBee shield and an Adafruit 1.8" TFT
Teensyduino-with-XBee-and-T.jpg
 
I know a couple people have started this sort of thing a couple times, with a few boards for sale on Tindie. This is the only one I could find still being sold.

https://www.tindie.com/products/pico/rfx-nrf24l01-proto-shield-kit/

That's actually one of my boards, which was designed as a standard Arduino shield with nRF24L01+ connector sockets, to simplify adding nRF24L01+ modules to Arduino projects.

It has a parallel set of proper 0.1" grid aligned headers to make it easy to use with protoboard, breadboards, etc., and it was this that allowed me to fairly straightforwardly mount a Teensy 3.x on it to connect it to the nRF24L01+ headers. But if you wanted to use it as a general Arduino shield breakout to mount additional shields on top, it wouldn't be very well suited to that with the Teensy 3.x mounted in this way. It is a workable arrangement if the shield sits at the top of the shield stack, with all other shields below it, though.

To improve on this, for some time now I've been meaning to design a Teensy 3.x specific board which is much more general purpose Arduino shield break-out, as well as providing the nRF24L01+ module headers. (The reason the nRF24L01+ module support is important as the shields were designed originally in support of the larger RFXduino project based around nRF24L01+ modules: see my website embeddedcoolness.com for details if interested. For the next stage of this project I'm really interested in showing off the possibilities of a Teensy 3.1 enabled RFXduino node as a "Yun on steroids". :)

Coincidentally, I'd just about finished the design, and was over here at pjrc.com checking on some Teensy 3.x technical details when I came across this thread. Things don't get more timely than that! Perhaps, if appropriate, I could describe some features of the new board I've designed, and if anyone had any comments to offer, positive or negative, I would appreciate that as useful feedback.

I've attached a rendering of the Eagle board display.

  • Approximately Uno sized board (about 5cm x 7cm). No SMT, all easy soldering through-hole components.
  • Set of proper 0.1" grid aligned headers connected in parallel with the standard Arduino shield headers
  • All the digital and analog pins on the Teensy that correspond directly to Arduino Uno equivalents have been routed to the Arduino headers.
  • All the "superset" pins that don't correspond get routed to a separate header (A6-A11, A14/DAC, AGnd, Program, VBAT).
  • No connection to Teensy Vin or 100mA 3v3_out. Instead, the 3v3 rail for the board (Teensy and any peripherals) is supplied by an 800mA LD1117v33 voltage regulator.
  • If the Teensy is connected to a USB source, the LD1117v33 can be selected to be powered from the VUSB 5V source. The VUSB also supplies powers the 5V pin on the Arduino power header.
  • If the Teensy isn't connected to USB power source, (or the total 3v3 requirements of the project exceed the 500mA capacity of the VUSB pin before the poly fuse kicks in), the VUSB can be disconnected from the input of the input of the LD1117v33 by jumper, and an alternative power supply to the LD1117v33 input used instead. (It would also be an option to supply regulated 3v3 directly to the rail and obviate the need for the LD1117v33.)
  • The board has provision for two nRF24L01+ headers, one connected to HW SPI, the other connected to an alternative set of pins (D4-D6) for a bit-banged SW SPI, if required.
  • There is also a 6-pin ICSP SPI header for additional shield connectivity. (The HW SPI pins and Gnd are connected, but Reset and Vcc are not.)
  • The remaining board real estate is used as prototyping area.

It would be fairly easy and still economical to extend the length of the board up to 10cm (which would make it the size of a Mega or Due) to get in even more prototyping area, but I thought that might be getting a bit big (as a matter personal taste, I've always felt the Mega/Due boards were getting a bit unwieldy in size.) My thinking was that if more protoyping area was required, it would be simple to add (say) a standard 5cm x 7cm piece of protoboard underneath using the second parallel "grid aligned" headers.

Edit: Replaced screen grab of board from Eagle with a rendering
 

Attachments

  • eagleUp_teensy3_328_1b5a_board_top_s.jpg
    eagleUp_teensy3_328_1b5a_board_top_s.jpg
    139.4 KB · Views: 374
Last edited:
Thanks pico,
I like your simple board as well.

With my first(main) board for Teensy, I put on it most of the things I wanted for a simple robot controller, things like:

Form factor: same size (3"x2.3") and mounting holes as Botboarduino, Arc32, SSC-32, Botboard2...

Power buss: Screw terminal power connector, 3 pin servo like connections for lots of IO pins (30+) and all other brought out as well.

LDO Voltage regulators (5v/3.3v) - Since several robots use RC servos, want to run on 6v NIMH battery or 6.6v LiFEPO4. Have own voltage regulators for
both voltages as did not want to drive things like XBee off the of the Teensy.

Speaker - I wanted some form of noise, for when controlling robot, it can beep or the like.

Buttons/LEDS - First ones I did not add any buttons, later wished I had one... Leds, have one on Teensy, maybe one or more others? If I do another batch
may update again use better buttons (like the ones used on botboarduino).

Dynamxel (AX series) Bus - A few robots I have use AX-12/18 servos so wanted a few connectors for that.

Jumpers to allow removal of all special stuff...

While I was playing with the above board, a member up on Lynxmotion (Linuxguy) was interested, but really wanted Arduino headers, so I
started playing around with 2nd board as shown earlier with headers. I had to increase the board size (3.4x2.65)and rearrange, and also ended up
dropping the XBee as not enough room, plus could use shield... I am not sure if I made a good decision, but I shield headers are sort of
flipped 180 degrees, that is the ICSP header is closer to the power pins(left side) instead of right hand side (assuming power on left). I did
this as the IO pins on Teensy better align with the header pins in this configuration. Could maybe try like you did and move/rotate the teensy where
the USB comes out the bottom... With the current batch with many shields, it is difficult to be able to use any of the inner servo headers. For myself
could solve by simply plugging in a set of stack-able headers between the board and shield, but would be better if I could find a source of tall headers.
I believe Samtec make some like: http://www.samtec.com/documents/webfiles/pdf/ESW_TH.PDF but have not found anyone who stock them. I am guessing that these are the same or similar to the ones used on the Adafruit 1.8" tft shield. (I also have a 2.8" touch shield coming in the mail to try out). Note: on this board I ended up putting on two sets of power screws, that I can through jumpers (double per), can configure a couple of ways. (One to AXBus S3 lipo, other to NIMH for RC servos. Or can configure for one just to voltage regulators other to Servos, or all connected (nice for daisy chaining power)..

Reset - I did bring out to ICSP header. Which is nice as can use reset button on shield to reboot... Question is, what is a decent way to hook up reset? I end up soldering small wire to bottom of teensy, that I bring to a pin hole under the teensy and as I mount the teensy, the wire gets folded...

As you mentioned, I could also increase the size of the board up to 10x10cm and the fabrication up on Seeedstudio would be the same. However the price to fabricate at OSHPark would increase as they charge per square inch.

As for cost per board? Depends on how much is populated.
Completely unpopulated (5x10cm from Seeedstudio ~$30 shipped for 5)
Arduino Headers, plus breakoff headers for connecting teensy - depends do you use surface mount pin on bottom?
Power: Terminal? Voltage Regulators?
Other stuff: again depends Speaker(plus transistor, diode, resistors...), AX Buss(connectors, diode, 3 pin connectors

Not sure if this answer helped or not...

Again since I am not doing a commercial product, I put the things on it I wanted... For the 2nd one I thought about adding things like microSD, but then decided if I want this, could use a shield and actually several shields like the Adafruit displays already have one.
 
OK, I've sent the gerbers off to get a test run of 10 of the new boards made up.

If it all works as expected, I'll add these to the store on my website, and also sell them from Tindie.

I think this will complement the smaller (~5x5 cm) shield that Paul linked to in his original post above; a bit bigger (~5x7 cm, "Uno" sized), but as a dedicated Teensy 3.x board, it will have more pins broken out (all except the underboard "pad" pins, really -- everyone's still on their own to figure that out!), and more prototyping real estate as the trade-off. Both will have the nRF24L01+ headers built-in (their original raison d'etre, really, to support easy nRF24L01+ deployment), but they don't have to be populated if not needed, of course.

The "double-header" (Arduino shield and protoboard/breadboard compatible) layout means you can stack Arduino shields up and connect to protoboard underneath using the second set of headers, if you wanted to.

Here's a pic of how the secondary "grid-aligned" headers can be set-up to connect to protoboard with female headers pointing down from the carrier board (the dev board shown here is a small 328-based board, but same idea with the double header layout):

S1060002cbs.jpg


and here's how Arduino shields can also be connected by adding a second set of female "shield layout" headers pointing up (in the traditional Arduino style):

S1060007cs.jpg


I think this gives a lot of expansion possibilities, without having to "kitchen sink" the carrier board itself (which adds to both size and cost, of course.) Comments and criticisms welcome.
 
Last edited:
I think this will complement the smaller (~5x5 cm) shield that Paul linked to in his original post above; a bit bigger (~5x7 cm, "Uno" sized), but as a dedicated Teensy 3.x board, it will have more pins broken out (all except the underboard "pad" pins, really -- everyone's still on their own to figure that out!),
My first version breakout board also did not setup these pins. My newer ones do. I did not find a 2x7 connector, but did find 2x8, which are like other breakaway headers, so I simply cut off one set. The parts I ordered from digikey for this is: TSM-108-01-TM-DV-ND. I solder this onto the bottom of the Teensy 3.1 and then use normal breakaway single row pins (A26508-40-ND) for the other through hole pins...

I wanted access to these other pins both as I had one or more projects where I wanted more IO pins and also because some of the shields I have (example Adafruit 1.8" tft), decide they are going to use some valuable pins like 8, 10, 11... Which just used up the two other UARTS. It looked to me I can probably regain Serial2 with IO pins here as well as access to 2nd I2c... I have not tried it yet as so far I simply trying the board out with XBee Shield and Adafruit shield, to listen to message from my DIY remote control and display stuff on the screen... But may want more access later when I then integrate it into a robot.

I think this gives a lot of expansion possibilities, without having to "kitchen sink" the carrier board itself (which adds to both size and cost, of course.) Comments and criticisms welcome.
Looks like fun, maybe I will order one when it comes out. For now I will stick to my Kitchen sink :lol: versions as they do what I need and were influenced by previous boards (Lynxmotion Botboard 2, Botboarduino, Arbotix) that I have used that worked for me. The alternative for me, is to do a simple board like you have and then put everything onto a shield or shields (have done so before). That is also a very valid approach. This is the way for example that Orion Robotics has their electronic boards setup.

As for size and cost. hard to say... My primary (non Arduino headers is 3"x2.3"), why because I wanted it this size and mounting holes as many other boards were this size... The other one is a bit bigger as I (and some others who voiced interest) wanted it bigger as to fit more 3 pin headers and hopefully have access to the pins... Cost? Fabrication for 5 boards at Seed studio: 5x7=$18.90, for mine which fit in 10x10cm=$20.90, so yes $2 different for the group of 5 boards. Other costs depend on how much of the board you wish to populate...

Where costs get tricky is if you desire to have additional functionality, then costs can really add up. For example when Lynxmotion was going to migrate from Basic Atom pro on Bot Board 2, the first idea was to go with a simple Arduino Mega board with a form factor closer to Seeedstudio Mega and put all of the additional functionality onto a shield. They dropped the idea as it turned out the cost went way up as you now have to fabricate and populate 2 boards.

BUT again if your main purpose is to be be able to use one or so existing shields and/or do a little electronic protyping, I do believe your setup would be great for that, especially if it was the same size and has the same hole patterns as the standard arduino boards.

So again looks great
 
Some feature which I think is important:
- The SPI pins must be routed to the 6-pin ICSP header for shield compatibility.
- The availability of the IOREF pin for shield utilizing them.
 
Hello,

I will have a breakout board & shield ready for Tindie in the next few days (bad timing I guess!). Anyway, it is quite convenient to do a lot of prototyping and use Arduino shields, all the Teensy 3 pins are available.

Here are some pictures of prototype.
IMG_0071.JPGIMG_0049.jpg
 
Last edited:
My first version breakout board also did not setup these pins. My newer ones do. I did not find a 2x7 connector, but did find 2x8, which are like other breakaway headers, so I simply cut off one set. The parts I ordered from digikey for this is: TSM-108-01-TM-DV-ND. I solder this onto the bottom of the Teensy 3.1 and then use normal breakaway single row pins (A26508-40-ND) for the other through hole pins...

That's an interesting approach -- are these surface mount pins easy to work with? Sturdy?

Since I'll be supplying my board as either bareboard or kit, I'm always concerned that the components are easy for beginners to solder. That's why I use the big old TO-220 package voltage regulator... wasteful on real estate, but on balance, I feel it is important to keep the kit all through-hole to keep it accessible for those with only basic soldering skills or equipment.

But maybe I'm being too conservative... the Teensy crowd may well be expected to be somewhat more experienced than the average Arduino user.

Maybe I should just do the experiment... offer two versions (one with through-hole only and the other with limited surface mount) and see what people seem to prefer.

I wanted access to these other pins both as I had one or more projects where I wanted more IO pins and also because some of the shields I have (example Adafruit 1.8" tft), decide they are going to use some valuable pins like 8, 10, 11... Which just used up the two other UARTS. It looked to me I can probably regain Serial2 with IO pins here as well as access to 2nd I2c... I have not tried it yet as so far I simply trying the board out with XBee Shield and Adafruit shield, to listen to message from my DIY remote control and display stuff on the screen... But may want more access later when I then integrate it into a robot.

Certainly, nice to have access to those extra "pad" pins if it can be achieved straightforwardly. I may see if I can get ahold of some of those "surface mount" pins or similar that you describe and have a play around. My thinking was for many projects, they wouldn't be missed (I must admit that in my projects I've never found a reason to access them so far); and for those that you really wanted to get to them, direct soldering of wires on to the pads (perhaps with a connector attached at the other end) rather than pins would be the likely solution. But you've got me reconsidering things...

Thanks again for your interest and comments. :) Good to hear (and see) your ideas!
 
Last edited:
But maybe I'm being too conservative... the Teensy crowd may well be expected to be somewhat more experienced than the average Arduino user.
Perhaps most are. I am still somewhat solder challenged for through-hole soldering, let alone SMT. One of the features I appreciate about Teensy's over other similar processors is that for $3 extra, I can have the pins soldered on the chip so I can use it immediately in a breadboard. I find when ordering components that do need soldering, I order multiples, in case of mistakes. Some soldering mistakes can be fixed, but I've ruined 2-3 neopixel rings by trying to remove my previous soldering, and damaging the ring.
 
Last edited:
Note: I think it is the same pins (except they ship a 2x7), that comes with the Teensy 3/3.1 breakout boards by Tall-dog (https://www.tindie.com/products/loglow/teensy-31-breakout/)
I don't see the picture of it up there now, but I know I saw it before. They are not too bad to work with, I find that I first solder these on, then place all of the .1" breakout pins and then position into breakout board before I start soldering. This gives me a little wiggle room for any minor misalignment. I have not used sockets yet on the breakout board as I was concerned about the height. But might try them on one of mine for the fun of it. Still have two Teensy 3.1s looking to be mounted on something.

I hear you about small parts. I tried to make it somewhat easier and have larger parts on it now than I have on some previous boards which used mainly 0805 and some 0603. Example shield for Arduino Mega/Due/Chipkit...
Arduino-Due-with-my-shield.jpg
But I am not sure if I found the 1206 parts any easier and actually for the .1uf capacitors, the 0805s may be easier as less bulky... I have also thought about trying a layout of the stuff with mostly through hole parts. Again some of the parts may be overkill, like trying to have a capacitor connected with each group of pins. This was how it was done on some boards I emulated, so I stuck with it.

As I mentioned for some projects a nice simple board like you or Freeto have would be great.

Kurt
 
Power Input > 12V (Batteries, Stepper,...)
Power Regulator Output 5V > 2A (first stepps with Leds,...)
 
Back
Top